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

keepalived shutdown - не запускает ловушку «notify» при завершении работы демона

я бегу оставайся живым под Debian (Lenny, Squeeze) в довольно простой настройке, я просто (ab) использую его как демон VRRP, чтобы определить мастерство между двумя равными машинами для некоторых виртуальных IP-адресов. Вся магия происходит в поставить в известность-скрипт.

Когда я полностью останавливаю демон (с помощью сценария инициализации debian), keepalived не запускает сценарий уведомления для резервного копирования или, по крайней мере, в режиме сбоя, в чем я подозреваю и что мне нужно.

Я мог бы «исправить» rc-скрипт с некоторыми нежелательными эффектами - notify-script будет жестко закодирован в rc-script, что приведет к нежелательной связи этих двух и беспорядку переноса патча на следующие версии debian, так что это не так, как я действительно хочу идти ...

Есть какие-нибудь подсказки для более чистого решения этой проблемы?

vrrp_instance FOORRP {
  virtual_router_id 42
  interface eth0
  state BACKUP
  priority 200
  nopreempt
  authentication {
    auth_type AH
    auth_pass foobar42
  }
  notify "/usr/local/bin/vrrp-state"
  virtual_ipaddress {
    127.0.0.2
  }
}

PS: использование "трех уведомлений _" - скриптов ничего не меняет

PPS: в журнал изменений (Версия 1.1.16) упоминается кое-что, что так или иначе соответствует моей проблеме (хотя я не использую ничего, связанного с lvs в keepalived), но я использую более новую версию (1.1.20): «notify_down не выполняется для работающие реальные серверы при выключении keepalived ".

Покопался в дополнительной документации и наконец нашел ее:

notify_stop "/usr/local/bin/vrrp-state fault"

Работает как положено .... X-}

Недавно я столкнулся с такой проблемой и обнаружил, что логично не выполнять эти сценарии. Эти сценарии выполняются в случае определенных событий, таких как становление ведущим или ведомым. Процесс Keepalived не следует останавливать, если он не выполняется вручную и для этого есть веская причина. Если вас беспокоит сбой в процессе поддержки активности (а не его отключение вручную), вы можете использовать контролировать. Это отличный инструмент для мониторинга ваших запущенных процессов и их перезапуска в случае сбоя.

Как вы упомянули, вы можете просто изменить сценарий запуска keepalived для выполнения желаемого сценария (например, остановки какой-либо другой службы). Я думаю, что это будет чище, чем исправление кода keepalived, его обслуживание самостоятельно и повторная установка необходимого исправления каждый раз, когда вы хотите его переустановить / обновить.