そのため、2つのサーバーでkeepalivedを実行していますが、他のサーバーにフェイルオーバーできません。
以下に、サーバーの1つに対する設定があります。2つの唯一の違いは、優先順位番号masterが110であり、109であることです。
しかし、/ etc / init.d / process stop keepalivedでプロセスを停止してもフェイルオーバーしません。VRRP_Script(chk_script)が失敗しただけで、他には何もありません。フェイルオーバーはありません。
vrrp_script chk_script {
script "/usr/local/bin/failover.sh"
interval 2
weight 2
}
vrrp_instance HAInstance {
state BACKUP
interface eth0
virtual_router_id 8
priority 109
advert_int 1
nopreempt
vrrp_unicast_bind 10.10.10.8
vrrp_unicast_peer 10.10.10.9
virtual_ipaddress {
10.10.10.10/16 dev eth0
}
notify /usr/local/bin/keepalivednotify.sh
track_script {
chk_script weight 20
}
}
これは以下の私のchk_scriptです。スクリプトとしてkillall -0プロセスを実行した場合にも同じ問題が発生します。
!/bin/bash
SERVICE='process'
STATUS=$(ps ax | grep -v grep | grep $SERVICE)
if [ "$STATUS" != "" ]
then
exit 0
else
exit 1
fi
誰かがこれに対する修正を知っていますか?ありがとう。