Что произойдет, если кластер HAProxy назначит один и тот же виртуальный IP нескольким машинам?

Допустим, у меня есть два экземпляра HAProxy, работающие в кластере, чтобы обеспечить балансировку нагрузки для чего-то еще. Кластер HAProxy с двумя узлами может быть реализован с использованием Pacemaker и Corosync.

Рассмотрим ситуацию, когда два узла теряют связь друг с другом (но все же доступны внешнему миру). В этой ситуации они решили бы ОБА взять Виртуальный IP, связанный с этим кластером. Может ли эта ситуация возникнуть? Если да, нужно ли вам внедрять STONITH для защиты виртуального IP-ресурса? Есть ли способ решить эту проблему без STONITH?

1 ответ

Решение

Вам не понадобится stonith, потому что HAProxy не нужен контейнер с общим хранилищем. Если ваша кластерная пара попадает в ситуацию с раздвоенным мозгом, почему это имеет значение? Какой из них ваш маршрутизатор выберет, будет работать нормально.

You will probably want the following in sysctl.conf:
#Allow haproxy to start without the interface present - Required for stick table     replication:
net.ipv4.ip_nonlocal_bind = 1

Также убедитесь, что ваше решение HA изящно дает сбой, т. Е. В сценарии с разделенным мозгом убедитесь, что ОБА узлы пытаются и работают (на Loadbalancer.org мы использовали несколько патчей для сердцебиения HA-Linux, чтобы убедиться, что это происходит). Аппаратная реализация STONITH также будет работать.

Другие вопросы по тегам