В настоящее время я запускаю несколько приложений ASP.NET на одном выделенном сервере Windows 2012 Standard R2 с аппаратным брандмауэром спереди. Если этот сервер выйдет из строя, мои приложения нельзя будет использовать, так что это большой риск. Поэтому я хотел бы повысить надежность, удалив все точки отказа.
Мой веб-хостинг предложил 2 возможных варианта:
Вариант 1. Использование 2 серверов Windows 2012 Standard R2, 2 брандмауэра, 2 подсистемы балансировки нагрузки и настройка режима аварийного переключения (активный-пассивный), включая использование DFS для IIS и репликации файлов. Серверы содержат по 2 SSD-диска в режиме RAID1.
Вариант 2: Использование виртуального сервера Windows 2012 Standard R2 и виртуального маршрутизатора / брандмауэра в частном облаке, которое они размещают с помощью Apache Cloudstack с платформой хранения NetApp в конфигурации RAID60
Два вопроса:
Вариант 1 возможен с дополнительными серверами, но я бы не стал использовать для него DFS. Более вероятно использование массива DAS / SAN или даже некоторой репликации, чтобы файлы вашего приложения были доступны с обеих машин. Затем вы должны сбалансировать нагрузку на внешнем интерфейсе с помощью балансировщика нагрузки, который сам должен быть защищен от сбоев с помощью избыточных компонентов или запуска двух в конфигурации Active / Active или Active / Passive.
Однако я бы выбрал вариант 2. Это наиболее распространенный способ защиты приложений, не поддерживающих кластер, от сбоя компонентов сервера. Производительность с современными гипервизорами почти такая же / очень близка к работе на «голом железе», а хороший бэкэнд твердого хранилища без проблем обеспечит IOPS и избыточность для всех видов рабочих нагрузок.
Если ваши приложения ASP.NET перегружены базой данных, не забудьте задать вопросы о производительности ввода-вывода хранилища перед фиксацией. Производительность этого RAID60 будет зависеть от того, какие диски, контроллеры и матрица хранения используются.