簡單的主備切換方案

2021-06-07 23:49:54 字數 874 閱讀 8116

主備切換是很多高可用性系統都必須解決的問題,方法有很多,象基於zookeeper的主備切換就是乙個很好的選擇。

在這裡提供一種更簡單但不完美的主備切換方法:

1) 假設a和b是集群中的主控(master)節點

2) 1~7是工作節點(如hdfs中的datanode)

3) 在每個工作節點上,都同時配置了a和b的ip,而且是對等的,無主備之分

所謂主:是指提供服務的主控,而備是指不提供服務的主控,當主故障時,由備接管其它服務,但因網路原因,可能主和備都未故障,這個是解決主備切換的關鍵問題所在。

選擇a或b作為主的過程:

1) 未連線之前,如圖1所示,a和b都不是主

2) 1~7隨機選擇連線到a或b

3) 這個時候可能會出現如圖2所示的情況

4) (關鍵點)在指定的時間內(如1秒),不管是a還是b,發現到自己的連線數小於50%(這個值可修改)就主動切斷連線,這個時候會將本來和自己建立連線的節點趕往另一邊

5) 當a或b發現到自己的連線數超過60%(這個值可修改)時,就認為自己是主了,並保持連線

6) 這樣當a或b有乙個掛掉時,最終肯定會有乙個滿足作為主的條件

如果是網路原因,而不是a或b本身故障,則會出現一些可以連線到a但不能連線到b,而另一些可以連線到b但不能連線到a,甚至還有些可以同時連線a和b,但總是只有滿足超過50%的才提供服務,這樣就不會出現同時存在兩個主的情況。所以,如果恰好是一半一半,那就無法提供服務,需要人工干預了,比如工作節點,平均分配在兩個不同idc,由於兩個idc間網路故障,問題就會出現。

圖1

會不會導致a和b都是40%或50%了?這個會,但會觸發重新競爭分配,只需要做一些策略調整,就可以解決這個問題,比如a是每1秒算乙個間隔,b為2秒乙個間隔。

opengauss 主備切換

第一步 準備切換為主節點的備節點,執行如下 主備均 正常的時候 gs ctl switchover d opt huawei install data db1 在 主 宕機或者失聯等情況下 在備節點 執行下面的命令 gs ctl failover d opt huawei install data ...

keepalived實現主備切換

wget tar zxvf keepalived 1.2.18 tar.gz c usr local yum install y openssl openssl devel cd keepalived 1.2.18 configure prefix usr local keepalived make...

Keepalived Nginx主備切換實現高可用

keepalived nginx主備切換 實現高可用 keepalived 基於vrrp 虛擬路由器冗餘協議 來實現對web服務的高可用方案 安裝keepalived 1.configure prefix data program keepalived sysconf etc 2.缺少依賴opens...