На данный момент, для балансировки нагрузки на веб-ноды, мы используем следующую схему: СARP + 2 x HAProxy + 10 x Nginx. Большим недостатком этой схемы является, то что CARP обязывает оба балансера находится в одной сети, соответственно на одной тех. площадке… В недалеком прошлом произошло падение всей площадки вместе с двумя балансерами, что сделало недоступными и ноды находящиеся за ее пределами.
Есть желающие поделиться опытом, по организации failover'а на другой площадке и автоматического переключения на него?
А при чем тут bgp? Им L2 все равно не растянешь. Bgp поможет лишь в связке с балансировщиком, которому достаточно L3 связности (lvs так умеет, ну и многие аппаратные балансировщики, crescendo, например).
А что мешает им растягивать айпишники с одного дц в другой?
Анонсишь сетку с одного датацентра, в другом держишь копию, падает первый начинаешь анонсить сетку через второй, перестройка маршрутов довольно быстрая.
DNS-сервера проверяют доступность площадки и, в случае падения, переключает запись на другую площадку.
Минусы — не быстро даже с малыми TTL, — dns-записи могут зависать в кэшах (браузеров, локальных резолверов).
По опыту: 90% пользователей переключается за время 2*TTL, 99% — в течение часа.
Интересный у вас опыт. Мой опыт говорит, что 90% переключаются за TTL, 99.999% переключаются за удвоенное TTL, а остальные 100 (0.001%) человек — это бакланы с правками в hosts.