я бегу оставайся живым под 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, его обслуживание самостоятельно и повторная установка необходимого исправления каждый раз, когда вы хотите его переустановить / обновить.