最近在用keepalived搭建redis集群,需求很簡單,redis一主一從,主的掛掉后從的頂上,并且不希望主的重啟后搶占。
根據網上的資料,keepalived可以配置為兩個BACKUP,通過不同的priority來區分主從。
先說一下一般的故障處理程序:
A機為master,B機為backup
A機redis掛了,B機頂上成為master
重啟A機redis,由于配了nopreempt,所以不搶占,A機變成backup
這是網上很多資料里的講解,我現在的疑問是,如果這個時候B機的redis掛了,A機是否能成為master?
根據我自己搭的實驗環境上的測驗結果是,不能。因為A機不搶占,所以即使B機因為redis掛了而優先級下降,也不會導致VIP飄移到A機。所以我很迷惑,這種情況下怎么能實作自動讓A機重新變成master?
uj5u.com熱心網友回復:
如果A機修好啦,因為設定了不搶占,所以vip還會在從上。B機redis行程停止了,也不會漂移到主上,將監控腳本原理改成 檢測redis行程為0時 執行service keepalived stop ,keepalived停止,會將vip強行漂移到主,但主重啟keepalived會讓不搶占失效,所以需要把主的keepalived的組態檔中status引數改為SLAVE,這樣所有問題就解決啦。實作效果就是:主損壞,會漂移到從上,主修好不會搶占vip,當從損壞后,會漂移到主上
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/52295.html
標籤:系統維護與使用區
上一篇:除錯Linux內核啟動程序,觀察task_struct
下一篇:求大神支招
