Назад | Перейти на главную страницу

Идеальная конфигурация резервирования для 3 физических серверов под управлением IIS и SQL Server

Я хочу настроить максимально избыточную архитектуру для обслуживания веб-приложения, ориентированного на данные, всего с 3 серверами (всего 5U в стойке). Какая из этих двух схем была бы наиболее идеальной и какие плюсы и минусы каждой из них я бы рассмотрел?

Опция 1:

Вариант 2:

Мне нравится простота варианта 1, но мне не нравится, что сервер базы данных является большой точкой отказа. Вариант 2, похоже, решает проблему с базой данных, однако я уверен, что будут некоторые предостережения относительно того, что база данных будет зеркалироваться в трех экземплярах и работать вместе с IIS.

Есть предположения? Заранее спасибо.

Если ваша цель - высокая доступность (HA), вам действительно следует иметь отдельный сайт для аварийного восстановления. Что произойдет, если вы потеряете питание в стойке? Ваше приложение переходит в автономный режим. Зеркальное отображение базы данных - хорошее и дешевое решение для этого сервера базы данных. Вы также можете рассмотреть возможность дублирования репликации или даже репликации SAN (более дорогой), чтобы вы могли реплицировать и веб-сервер.

Для локальной HA вы можете настроить веб-сервер с балансировкой нагрузки на машинах A и B. Затем настроить отказоустойчивый кластер SQL Server на машинах B и C, где B является пассивным узлом, а C - активным узлом. Это означает, что машины A и B будут обслуживать веб-запросы и будут передавать эти запросы серверу базы данных на машине C. Если машина C выйдет из строя, база данных переключится на машину B, что даст вам избыточность, но с возможным снижением производительности. Если машина A умирает, то ее берет на себя машина B. Если машина B умирает, то машина A будет обслуживать веб-запросы, а машина C будет обслуживать запросы к базе данных как обычно. У вас могут выйти из строя две машины (если они обе не являются веб-серверами), и ваше приложение все равно будет работать, но с большим падением производительности.

Мне нравится предложение phoebus об использовании для этого виртуальных машин, однако вам действительно нужно протестировать производительность с виртуальными машинами, поскольку это может быть ограничивающим фактором. Я бы не стал кластеризовать виртуальные машины, я бы предпочел использовать Vmotion для аварийного переключения. Для производительности я бы также имел только 1 виртуальную машину на хост - нет никакого преимущества в создании более 1 виртуальной машины на хост IMO. Однако помните об ограничениях виртуальных машин - уменьшенном ОЗУ и ЦП. Вам также понадобится кто-то достаточно опытный, чтобы настроить его полностью оптимально. Например, я обнаружил, что в некоторых случаях производительность может повыситься за счет уменьшения количества виртуальных ЦП на виртуальной машине до 1.

Чтобы найти лучшее решение, необходимо провести много тестов и тестов, однако мне кажется, что нужно использовать веб-серверы с балансировкой нагрузки и кластеризацию SQL Server. Убедитесь, что ваши дисковые массивы можно настроить как общие диски.