Моя компания размещает веб-сайт на сервере с IIS, SQL Server и сторонней службой Windows (написанной на C #, исходный код доступен для поправок).
Мы купили новый идентичный сервер, состоящий из: 1x Quad Core, 12GB RAM, 4x160GB SATA Raid 5, Windows Server 2008 R2 Datacenter, Public IP.
Мы стремимся перевести все веб-страницы и стороннюю службу Windows в состояние высокой доступности.
После некоторого лабораторного тестирования того, как настроить отказоустойчивую кластеризацию и Hyper-V, у нас возникли глубокие сомнения в том, что "Лучший"решение будет, по"Лучший"означает ремонтопригодность и способность правильно обрабатывать сбой физического сервера.
Есть ли предложения о том, как нам настроить два сервера?
Нам не нужны все этапы настройки, просто намек на правильное направление.
ОБНОВИТЬ:
Элементов не хватает, но мы не знаем, какие из них важнее других и какие шаги нам следует предпринять.
ОБНОВЛЕНИЕ2:
Кажется, что виртуальные машины решают все подобные проблемы, но они также используют много ресурсов.
Разве нет более простой конфигурации аварийного переключения с использованием двух физических серверов для аварийного переключения экземпляра SQL?
Веб-страницы не имеют состояния, а служба Windows C # работает в основном с базой данных SQL, я думаю, можно было бы настроить их с помощью NLB?
Не стесняйтесь спрашивать дополнительную информацию, если она вам нужна, оставив комментарий к этому вопросу.
Все ли эти службы работают в одной системе? Я не знаю, какова нагрузка на систему, но похоже, что добиться активной-активной настройки было бы сложно.
Первое, что мне приходит в голову, это просто использовать NLB для веб-части. Установите одну систему в качестве основной, а другую - на смену в случае отказа первой. Зеркально отразите свою базу данных, используя SAFETY FULL, чтобы ведомое устройство отправляло подтверждение запроса, усиленного в его журналах, прежде чем принципал сделает то же самое. Это гарантирует, что ваши данные остаются синхронизированными в случае смерти одного из них, при условии, что ваше приложение может справиться с этим, поскольку это добавит некоторую задержку в процесс. Отработку отказа базы данных также можно выполнить автоматически с помощью зеркального отображения.
Если вы полагаетесь на IIS для своих сеансов приложений, active-active все равно не будет работать, потому что каждый сервер не будет знать о сеансах на другом сервере.
Изменить: ссылки на некоторые ресурсы:
Настройка NLB http://support.microsoft.com/kb/323437
Настройка зеркального отображения базы данных http://technet.microsoft.com/en-us/library/cc917680.aspx
Изучите технологию VMware FT: http://www.vmware.com/products/fault-tolerance/overview.html
Я предполагаю, что вы говорите о HA без COOP.
Следующие ниже рекомендации предоставят вам HA & COOP с использованием лидеров отрасли.
Некоторые рекомендации:
(1) Перейдите на VMware вместо Hyper-V.
(2) Переместите свои физические ОС в виртуальные с помощью программного обеспечения V2P.
(3) Переместите свой SQL-сервер в выделенные виртуальные машины и перейдите в режим Active-Active.
(4) Освободите свое хранилище с помощью NetApp
(5) Купите дополнительный сервер NetApp + x86 или 2 для своего сайта COOP.
Итоги:
У вас должно быть абстрактное хранилище RAID6, доступное локально и удаленно. NetApps должны копировать
У вас должно быть несколько виртуальных машин, на которых запущен ваш веб-сервер (IIS Clustered) и приложение C #
У вас должно быть несколько виртуальных машин с вашей БД
Ноты:
Если ваша БД очень чувствительна к производительности, подумайте о том, чтобы она оставалась физической.
Похоже, ты был на правильном пути для меня. Я предполагаю, что у вас все есть на внешнем SAN, верно?