目前出現問題如下:
master keepalived配置為:
priority 200
nopreempt
slave keepalived設定為:
priority 190
兩個的檢查腳本都是:
vrrp_script chk_redis {
script "/usr/local/keepalived/scripts/redis_check.sh"
weight -20
interval 2
}
當master的redis1掛掉之後,master keepalived的priority會一直降,slave的redis2就會變成主redis,等發現並重啟redis1之後,master keepalived的priority 已經降為0了,這時候,如果redis2掛掉,因為master keepalived設定為nopreempt,所以不會搶佔為master,也就是虛擬ip存取的還是slave 機器,而slave的redis2已經掛掉,整個系統就出問題了。結果就是每次發現redis1掛掉之後,為了防止意外,就只能整個重啟redis1、redis2、master keepalived、slave keepalived。
不知道我這樣表達有沒有亂掉。
有沒有辦法解決這個問題。
謝謝!
keepalived +redis配置高可用,不需要配置優先權;優先權相同即可;
keepalived 對vip進行搶佔,在redis實例狀態發生變化時,執行你的腳本即可