У меня есть две машины (A и B, A - Master), на которых работает VRPP (из keepalived) для виртуального IP.
Как я могу помешать А снова стать Мастером, если он потерпел неудачу и вернулся (по какой-либо причине)?
Я делаю это так, чтобы у нас было одно переключение на второй блок, и для возврата к нормальному режиму потребуется ручное вмешательство.
linux
keepalived
vrrp
MrMagu
источник
источник
Ответы:
Согласно этому относительно старому потоку в списке разработчиков, поддерживающему поддержку, это можно сделать. Вы устанавливаете оба сервера равным приоритетом (или ни одного вообще) и не объявляете состояние для MASTER или BACKUP, а вместо этого устанавливаете состояние EQUAL для обоих.
РЕДАКТИРОВАТЬ (07-Dec-2017):
Похоже, что EQUAL на самом деле не является действительным состоянием, несмотря на то, что оно, по-видимому, обеспечивает желаемый эффект на момент публикации этого ответа. Пожалуйста, обратите внимание на комментарии ниже, в частности, ссылку на текущий список вопросов для keepalived, предоставленный @cristi.
источник
EQUAL
директиву и воспринимала ее так, как если бы приоритет не был установлен (что, как оказалось, оказало желаемый эффект).Мы решили это, добавив
nopreempt
флаг в наш конфигурационный файл keepalived. Больше ничего менять не пришлось (все равно оставалось одно какMASTER
и одно какBACKUP
и так далее). В основном это говорит о том, что не следует переключать мастеров только потому, что новый сервер подключен к сети, переключаться только при сбое текущего мастера.источник
Насколько я понимаю, когда появляется новый VRRP-сервер, он вызывает выборы, а текущий сервер не получает никакой выгоды, поэтому старый мастер подойдет и победит на выборах. Я сомневаюсь, что вы могли бы многое сделать, чтобы остановить это, за исключением довольно зверского Shoot The Other Node In The Head. Keepalive может иметь некоторую конфигурацию для управления процессом выборов. К сожалению, у меня нет времени, чтобы проверить сейчас, но я постараюсь посмотреть позже.
источник