Допустим, у меня есть полностью рабочая среда сервера приложений с балансировкой нагрузки.
Все серверы должны корректно переключаться. Это относительно легко сделать с серверами приложений, но как добиться переключения при отказе с помощью переднего балансировщика нагрузки?
Могу ли я использовать несколько балансировщиков нагрузки, прослушивающих один и тот же IP-адрес и один порт? Должен ли я запускать новый, как только я обнаружу, что старый умер?
В общих чертах:
В основном высокая доступность в активном / пассивном кластере работает одинаково независимо от того, какие технологии вы используете, поэтому вышесказанное относится к балансировщикам нагрузки, серверам баз данных, гипервизорам и т. Д.
В Linux это делается с помощью комбинации инструментов, один из которых на самом деле называется heartbeat
(и синхронизация ваших конфигураций часто выполняется с drdb
).
В Windows вы обычно используете отказоустойчивую кластеризацию или балансировку сетевой нагрузки, оба из которых предлагают виртуальный IP-адрес, совместно используемый несколькими серверами. Синхронизировать ваши конфиги можно с помощью DFS-R
для балансировки сетевой нагрузки или кластеризации на самом деле есть возможность совместно использовать куст реестра и повторно настраивать его в случае аварийного переключения.
Я, вероятно, протестирую через несколько дней следующее в качестве балансировщика нагрузки высокой доступности для некоторых "реальных" веб-серверов:
Pound
как обратный прокси и балансировщик нагрузкиKeepalived
заботится об отказе IPЯ буду запускать активную / пассивную конфигурацию, т.е. каждый IP (у меня их около 20) активен только на одном из этих серверов. Если один из этих серверов выходит из строя, другой обрабатывает все IP-адреса. Pound может определить, выходит ли из строя один из веб-серверов, и ведет себя соответствующим образом: Pound не перенаправляет к нему запросы, пока он снова не станет здоровым.
Не уверен, что подобное решение можно применить к вашим серверам приложений, но я полностью цитирую Марка Хендерсона.
Хотя концепция во многом такая же, «аппаратные» балансировщики нагрузки, как правило, просто используют собственные реализации вышеуказанных концепций.