Не дать мастеру VRRP стать мастером после неудачи

У меня есть две машины (A и B, A - Master), на которых запущен VRPP (из keepalived) для виртуального IP.

Как я могу помешать А снова стать Мастером, если он потерпел неудачу и вернулся (по какой-либо причине)?

Я делаю это так, чтобы у нас было одно переключение на вторую коробку, и возвращение в нормальное состояние потребовало бы ручного вмешательства.

3 ответа

Решение

Согласно этому относительно старому потоку в списке разработчиков, поддерживающему поддержку, это можно сделать. Вы устанавливаете оба сервера равным приоритетом (или ни одного вообще), и не объявляете состояние ни MASTER, ни BACKUP, а вместо этого устанавливаете состояние EQUAL для обоих.

РЕДАКТИРОВАТЬ (07-Dec-2017):

Похоже, что EQUAL на самом деле не является действительным состоянием, несмотря на то, что оно, по-видимому, обеспечивает желаемый эффект во время публикации этого ответа. Пожалуйста, обратите внимание на комментарии ниже, в частности, ссылку на текущий список вопросов для keepalived, предоставленный @cristi.

То, как мы решили это, добавив nopreempt флаг нашего сохраненного конфигурационного файла. Больше ничего менять не пришлось (все равно оставил один как MASTER и один как BACKUP и так далее). В основном это говорит о том, что не следует переключать мастеров только потому, что новый сервер подключен к сети, переключаться только при сбое текущего мастера.

Насколько я понимаю, когда появляется новый сервер VRRP, он вызывает выборы, а текущий сервер не получает никакой выгоды, поэтому старый мастер подойдет и победит на выборах. Я сомневаюсь, что вы могли бы многое сделать, чтобы остановить это, за исключением довольно жестокого "Стреляй в другой узел в голове". Keepalive может иметь некоторую конфигурацию для управления процессом выборов. К сожалению, у меня нет времени, чтобы проверить сейчас, но я постараюсь посмотреть позже.

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