RAC Split Brain決議的投票演算法

2021-12-30 02:32:26 字數 2177 閱讀 4102

rac split-brain決議的投票演算法

獲知「裂腦」是**「癲癇」病的一種手術。醫生們認為癲癇病發作是由於大腦「異常放電」所至。  www.2cto.com  

為了阻止「異常放電」波及整個大腦(左、右半腦),就用手術來割斷病人左右腦的連線神經。

使今後病人在發病時至少還有半個大腦正常、能控制行為。但施行過手術的所謂「裂腦人」在術後有一段不適應期,

表現得行為**,彷彿體內存在著2個人,時常要發生衝突。

例如,右腦想讓乙隻手去臉上撓癢癢,左腦卻不認同、以為是誰的手要「登鼻子上臉」就讓另乙隻手去阻止,

於是明明是自己的2隻手,卻互不相讓、扭在一起扳起了手腕

計算機的行為和人的行為存在相同之處

在集群裡,節點間通過心跳(也就是,人左右腦的連線神經)了解彼此的健康狀況,以確保協同作業

如果只是心跳出了狀況,但各節點還可以正常執行(也就是,人左右腦還是ok的)

這時,每個節點都認為其他的節點宕機了, 自己是整個集群環境中的"唯一建在者"

自己應該獲得共享磁碟(即資源)的控制權

於是明明是共享盤的子節點,卻互不相讓、扭在一起扳起了手腕

集群重構時,所有的active節點和正在加入集群的節點都會參與到reconfig中,

那些沒有應答(ack)的節點都將不再被歸入新的集群關係中。

集群重構包括多個階段:

1.初始化階段 — reconfig manager(由集群成員號最低的節點擔任)向其他節點傳送啟動reconfig的訊號

2.投票階段 — 節點向reconfig manager傳送該節點所了解的成員關係

3.腦裂檢查階段 — reconfig manager檢查是否腦裂

4.驅逐階段 — reconfig manager驅逐非成員節點

5.更新階段 — reconfig manager向成員節點傳送權威成員關係資訊

在腦裂檢查階段,reconfig manager會找出那些沒有network heartbeat而有disk heartbeat的節點,

並通過network heartbeat(如果可能的話)和disk heartbeat的資訊來計算所有競爭子集群(subcluster)內的節點數目,

並依據以下2種因素決定哪個子集群應當存活下去:

1.擁有最多節點數目的子集群

2.若子集群內數目相等則為擁有最低節點號的子集群,比如在乙個2節點的rac環境中總是1號節點會獲勝

注意:這裡說的低節點號不是指 rac節點(1號 節點 ,2號節點)這樣的節點號, 而是實際 上下文的節點號, olsnodes -n 獲得的節點號

所以,投票只是對「健康狀況」的報道,而不是用來決定誰應該留下來 

假設集群中共有3個節點,其中1號例項沒有被啟動,集群中只有2個活動節點(active node),發生2號節點的網路失敗的故障,因2號節點的member number較小故其通過voting disk向3號節點發起驅逐 

若沒有vote disk,在network heartbeat不可用的情況下, cluster**成多個 subcluster時, 

它們如何知道對方的subcluster中node的數量呢?

它們如何傳送killblock 以實現evictee的驅逐通知呢?

votedisk都是讀的  www.2cto.com  

其實vote disk的個數和票數沒關係

幾個都是1票

只不過對於vote disk它是多數可用的工作原理,我們冗餘這個只是保證當vote disk出問題的時候所有節點可以繼續工作

當你有 1 個vote disk,並且它損壞了,則集群停止工作

當你有 2 個並且有 1 個損壞,則集群停止工作,因為,可用1/2沒不可用1/2;注意;而不=

當你有 3 個並且有 1 個損壞,則集群還是好的,因為,2/3 > 1/3

當你有 4 個並且有 1 個損壞,則集群也還是好的,因為,3/4 > 1/4

當你有 3 個並且有 2 個損壞,則集群停止工作,因為,1/3 < 2/3

當你有 4 個並且有 2 個損壞,則集群停止工作,因為,可用1/2沒不可用1/2

由上可知,oracle推薦vote disk為奇數個,3個votedisk ,那麼其中乙個節點只要能訪問其中2個就 ok,

而如果共有2個votedisk 那麼節點需要能正常訪問所有的vote disk,如果是 4個ok嗎? 當然,4個也可以,

但4個和3個在出故障時是一樣的,這樣你便浪費了乙個disk。

決議要素 2023年5項公開演講決議

決議要素 今年即將結束,這意味著是時候開始為新的決議制定決議了。如果您的2019年決議之一將在技術會議上發表 我鼓勵您將這些決議也包括在內。這也意味著您將開始收集更多拒絕提案。這是一件好事!它表明您正在努力嘗試使談話被接受。此外,每一次拒絕都會為您提供乙個徵求您的建議反饋的機會,以便您可以學習和改進...

IOS中動態方法決議

objective c提供了一種名為動態方法決議的手段,使得我們可以在執行時動態地為乙個selector提供實現。我們只要實現 resolveinstancemethod 和 resolveclassmethod 方法,並在其中為指定的selector提供實現即可 通過呼叫執行時函式class ad...

雪梨多家關聯公司登出 登出原因為決議解散

techweb 12月10日,近期,由雪梨 朱宸慧 擔任執行董事的杭州千屹企業管理 登出,登出原因為決議解散,目前雪梨共關聯17家公司,其中7家已登出。另據快科技報道,lxhifcq自出事以後,雪梨疑似不再給員www.cppcns.com工買保險。企查查顯示,據雪梨旗下杭州宸帆電子商務有限責任公司年...