下列的資訊可以幫助您管理叢集軟體的設定。
叢集使用許多種叢集內部的通訊機制來確保資料的完整性以及當發生失效情況時能修正叢集的行為,叢集使用這些機制來做以下的事情:
控制系統何時能成為一部叢集成員
決定叢集系統的狀態
當失效情況發生時,控制叢集的行為
叢集通訊機制如下:
共用的(quorum)分割區
每一部叢集系統將會定期地寫入一個時間戳與系統狀態到 primary 與 shadow 的共用分割區,也就是位於 共用儲存空間上的 raw 分割區。 每一部成員將讀取由其他成員所寫入的系統狀態與時間戳,以找出它們 的狀態是否更新。 成員將會試著從 primary 共用分割區讀取資訊。 假如該分割區已毀損,成員將會從 shadow 共用分割區讀取資訊,並且同時修復 primary 分割區。 將透過檢查碼(checksums)維護資料一致性, 而且分割區間的任何不一致性都會自動地修正。
假如一部成員重新開機,不過卻無法寫入到兩個共用分割區,該系統並不允許加入叢集,除此之外, 假如一部既有的成員已不再能夠寫入這兩個分割區,它將會以關機的方式將自己於叢集中移除。
共用分割區只能在已停用網路 tie-breaker 且擁有兩部成員的叢集中用來當作一種通訊機制。
遠端的電源開關監視
每一部成員將會定期地監視遠端電源開關(假如有的話)連線的使用狀況,成員使用這個資訊來幫助找出 其他叢集成員的狀態,電源開關通訊機制的完全失效並不會自動導致容錯轉移,假如電源開關無法 power-cycle 一部當機的系統,將不會執行任何的容錯移轉,因為叢集的基礎架構無法保證成員目前的狀態。
乙太網路的 heartbeats
成員間是由點對點的乙太網路線來連線的,每一部成員將會定期地向這些網路線發出 heartbeats (pings) 訊號,叢集使用這個資訊來幫助找出成員的狀態,並且確保正確地叢集操作。 heartbeat 通訊機制完全失效的 情況並不會自動導致容錯移轉。
假如一部成員發現來自另一成員的時間戳並沒有即時更新,它將會檢查 heartbeat 的狀態,假如向其他成員發出 heartbeat 訊號的動作仍在執行中,叢集軟體將不會採取任何動作。 假如一部成員在一段時間後都沒有更新它的 時間戳,而且也不回應 heartbeat pings 的訊號,該部成員將被認定已下線。
只要有一部叢集系統可以寫入共用的分割區,即時所有其他的通訊機制都失效了,叢集仍將維持運作的狀態。
請注意,在某些兩部成員的設定中,共用的分割區只被用來當作一個備援,網路成員的演算法是對叢集成員 是否正在使用中的主要決定因素。 在這個設定中,不更新時間戳的一部成員絕不會導致容錯移轉的發生, 除非 clumembd 回報該成員已下線。