Возможна ли установка высокой доступности с двумя серверами?
Используете Windows Web Server 2008 и MSSQL Web Edition (насколько я знаю, Express не поддерживается)?
Достижение точки, когда наш один выделенный сервер требует масштабирования, и переход на второй сервер уже более чем вдвое увеличивает стоимость, поскольку необходимо использовать Web Edition, а не Express (db составляет всего 500 МБ).
Не существует волшебного количества серверов, которое подразумевает «высокую доступность». Если ваши потребности скромные, вы можете сделать это с помощью одного бокса, хотя (очевидно), как только вам придется его перезагрузить, ваши 4 девятки.
Пока ваш сайт не используется активно, я бы сказал, что две (приличные) машины с настроенной зеркальной базой данных (которая, как вы знаете, поддерживается веб-сайтом MSSQL), и NLB все должно быть в порядке. Опять же, это очень общий вопрос. Я управляю примерно 50 ОГРОМНЫМИ сайтами на двух «серверах», но это большие блейд-серверы Sun, которые сигналят.
Я беспокоюсь не о машинах (я предполагаю, что вы будете запускать и IIS, и MSSQL на каждой машине, потому что иначе вы не могли бы попытаться добиться высокой доступности), а о том, что у вас есть между ними и интернет. Когда IIS был доступен в Интернете, это не проблема, как раньше, но IIS и MSSQL? Я бы не стал этого делать, если бы мне пришлось соответствовать требованиям PCI или HIPPA.
@Tom: Это ваш стандартный билд "глубокоэшелонированной защиты". Почти все предложат разделение веб-серверов и серверов баз данных, и, кроме того, вы должны установить жесткие ограничения. между их тоже ... В идеале на вашем веб-сервере не должно быть ничего, что вы не могли бы просто восстановить из резервной копии ... Весь ваш код зеркально отражен на вашей машине разработки, поэтому просто сбросьте его на веб-сайт, и все в порядке . Но серверы баз данных все время меняются, и ваша установка должна это отражать.
Если вы ограничены двумя машинами, вам придется установить сеть и базу данных на обоих и приложить все усилия, чтобы укрепить их. Я бы полностью заблокировал базы данных, чтобы к ним могли обращаться только друг друга и локальный веб-сервер.
NLB заменяет аппаратный балансировщик нагрузки и должен автоматически переключаться при отказе. Очевидно, YMMV: аппаратные решения могут многое предложить, но цена намного выше. Если вы не ожидаете большого объема трафика, NLB должно быть в порядке, но аппаратные балансировщики нагрузки, как правило, имеют превосходную защиту от таких вещей, как DDoS-атаки. Опять же, все дело в том, что вам понадобится.
@Tom: 1 IP в порядке. NLB использует «виртуальный» IP-адрес, который разрешается для всех локальных машин. Когда вы включите NLB, перейдите в свойства подключения, и вы увидите вкладку «Балансировка сетевой нагрузки». Для этой вкладки нужен адрес, который применяется ко всему кластеру (ваш статический IP-адрес). Затем вы переходите на обычную вкладку TCP / IP и настраиваете локальный IP-адрес, который является адресом, специфичным для отдельной машины.
Обычно для традиционной настройки высокой доступности требуется 3 машины: две бэкэнд серверы (обычно «основной» и «резервный», с «резервным» зеркальным отображением «основного»), а затем третий маршрутизатор машина, которая может принимать разные формы: иногда это прокси, иногда маршрутизатор, иногда просто веб-сервер.
Однако где-то должна быть машина, которая обнаруживает отказ основного и гарантирует, что трафик поступает на резервный сервер при необходимости. Обычно это должно быть одностороннее переключение с руководство сбросить из резервной копии обратно в основную. Причина в том, что если что-то отключило первичный сервер, вам нужно убедиться, что основная проблема устранена; Между тем, данные на первичном сервере будут рассинхронизированы с вторичным, и вам необходимо отразить эти изменения обратно на первичный перед сбросом.