Каков наилучший способ создания отказоустойчивого кластера для моего веб-сайта IIS?
Наш веб-сайт электронной коммерции в настоящее время работает на двух серверах:
- Сервер SQL: 2005 x 86 на Windows Server 2003 Standard x86 с одноядерным процессором и 4 ГБ памяти
- IIS сервер: Windows Server 2008 Web Edition x64 с двухъядерными гиперпоточными процессорами и 32 ГБ памяти
Наш доход неуклонно растет до такой степени, что нам необходимо развертывать резервные серверы с механизмом отработки отказа, чтобы у нас не было простоев.
Поскольку SQL-сервер настолько слабый по сравнению с веб-сервером, я подумал о покупке:
- 2 x SQL Server 2008 R2 веб-издание x64 однопроцессорная лицензия
- 2 лицензии на Windows Server 2008 R2 Web Edition
- 1 х Новый физический двухъядерный сервер 32 ГБ
- 1 х F5 Балансировщик нагрузки
Мне нужны лицензии Windows Server 2008 R2 Web Edition, чтобы я мог запускать SQL и IIS на одном компьютере для обоих этих серверов.
Идея состоит в том, чтобы запустить это как активный / пассивный отказоустойчивый кластер, который можно было бы обновить до активного / активного кластера, если бы мы приобрели дополнительное лицензирование SQL. Балансировщик нагрузки F5 будет служить устройством, которое контролирует два сервера, и если текущий активный перестанет отвечать на запросы, то переключится на использование другого сервера. Чтобы было ясно, это не кластеризация Windows, а просто использование балансировщика нагрузки для переключения при сбое между двумя компьютерами, так что теперь у вас есть кластер в общем смысле.
Это действительно лучший способ достичь того, что мне нужно? Есть ли какой-нибудь способ использовать старый сервер SQL Server 2003 для работы в качестве устройств, которые направляют http-запросы на соответствующий активный сервер, а затем сбой при возникновении проблемы? Есть ли стороннее программное обеспечение для кластеризации, которое могло бы помочь мне сделать это более простым способом?
2 ответа
Существует большая разница между отказоустойчивым кластером и кластером с балансировкой сетевой нагрузки. Для IIS вы хотите реализовать кластер NLB. Оба будут активны все время. Для SQL вы захотите реализовать отказоустойчивый кластер. Достижение уровней доступности, на которые вы намекаете, не так просто, как использование небольшого количества оборудования и установка операционных систем.
Отказоустойчивому кластеру потребуется какое-то общее хранилище, такое как SAS с прямым подключением или SAN (я предпочитаю iSCSI). Все это может быть выполнено в виртуальной среде путем кластеризации 2 серверов, работающих под управлением 2008R2 (корпоративная или более поздняя версия), с Hyper-V (по крайней мере 4 устройства. 2 для SAN, 1 для NLB и один для других коммуникаций). Они будут подключены к коммутаторам SAN, которые, в свою очередь, подключаются к SAN. Затем оба будут подключены к входным выключателям (NLB и др.). Затем вы можете создать кластер NLB как виртуальные машины, а отказоустойчивый кластер SQL - как виртуальные машины.
Теперь, чтобы добавить еще немного инфраструктуры. Вам понадобятся контроллеры домена (2 физических блока) и резервный сервер. Все говорят, что вы будете искать в диапазоне $150K и выше вместе с кем-то, кто действительно знает, что они делают. Достижение высокой доступности не дешево.
О, и не забывайте про избыточное питание и охлаждение. Иметь план аварийного восстановления (DR) и непрерывности бизнеса (BC).
Просто подумал об альтернативе. Ваш сайт размещен с соглашением об уровне обслуживания 99,99% (SLA). Убедитесь, что он местный и совершите экскурсию по центру обработки данных. Может быть дешевле в долгосрочной перспективе, учитывая человеческие затраты.
не покупайте ничего. Вы все равно не можете - веб-издание можно взять напрокат. Составьте контракт SPLA.
Приобретенные лицензии недоступны для хостинга И - в общем - намного дороже, чем лицензии SPLA в любом случае.
Нет необходимости в балансировщике нагрузки. Используйте NLB (Network Load Balancing), часть окон. Он справится с отказом довольно быстро (примечание: 100% безотказной работы действительно трудно получить - обычно приемлемы 5 секунд).
Запустите SQL с 3 подачами (2x стандартными, 1x экспресс). Зеркало, используйте экспресс в качестве свидетеля - веб не допускает хорошего восстановления после отказа.
Запускайте веб-серверы в активной / активной конфигурации с NLB.