Назад | Перейти на главную страницу

haproxy failover с мониторингом процесса?

Я знаю, что некоторые люди используют keepalived и heartbeat для активного / ждущего режима, но что делать, если процесс haproxy умирает?

Было бы неплохо, если бы виртуальный IP-адрес переключал серверы, если бы процесс haproxy прекратил работу и / или возникла проблема с сетью. В настоящее время мы изучаем сердцебиение и коросинхронизацию с кардиостимулятором. Может ли кто-нибудь подробно объяснить свое решение этой проблемы?

ОБНОВИТЬ: Спасибо, Кайл, см. Ответ и ссылки в нем.

Я бы сказал, что heartbeat это то, что вы ищете.

Если отслеживаемая служба (haproxy в вашем случае) имеет lsb-совместимый сценарий инициализации - сердцебиение будет работать initscript status. Если он сообщает, что служба не работает, он попытается запустить ее. Если он не сможет запустить его пару раз - он выполнит переключение на другой узел. Пока узлы имеют возможность связываться друг с другом, это будет выполняться очень контролируемым образом - адреса удаляются на одном узле и выводятся на другой.

Если две контрольные машины теряют связь друг с другом, они обе могут попытаться выполнить аварийное переключение. Один из способов решить эту проблему - настроить плагин STONITH (Shoot The Other Node In The Head). Это будет использовать интерфейс управления и пытаться отключить другую службу перед запуском ее служб. Такой механизм имеет решающее значение, если вы задействуете совместно используемое хранилище для отработки отказа.

Лично я никогда не испытывал haproxy die - считаю очень стабильным сервисом. я использую heartbeat для переключения IP-адресов только при работе на haproxy-узлах.

Спасибо, Квисле и Кайл! В итоге мы остановились на keepalived, поскольку, как сказал Кайл, это решение, рекомендованное создателями haproxy. Keepalived включает возможность запускать сценарий пользовательского пространства по вашему выбору и определять доступность ресурсов на основе статуса выхода. Таким образом, вы можете легко выполнить аварийное переключение с помощью мониторинга процессов. Еще одно преимущество - простота по сравнению с тактом с кардиостимулятором / corosync, всего одно приложение / процесс и один файл конфигурации.

В наших тестах мы видели, что аварийное переключение происходит так быстро, что не падает ни одного эхо-запроса. Еще раз спасибо!

http://www.keepalived.org/

Отличная статья о keepalived и VRRP

Также см: связанный ответ serverfault