「叢集成員監視器」(Cluster Membership Monitor,CMM) 是一組分散式的代理程式,每個叢集成員一個代理程式。代理程式透過叢集交互連接來交換訊息,達到:
強制對全部節點 (法定數目) 提供一致性的成員視區
回應成員變更的磁碟同步化重新配置,使用註冊的呼叫
處理叢集分割 (Split Brain、Amnesia)
確保所有叢集成員之間的完整連接性
與先前的 Sun Cluster 版次不同,CMM 完全在核心程式中執行。
CMM 的主要功能是在任何指定的時間參與叢集的一組節點上,建立全叢集的協議。此限制稱為 叢集成員。
若要決定叢集全體成員,並在最後確保資料完整性,CMM 會:
記錄叢集成員的變更,如節點結合或離開叢集
確保「錯誤」的節點會離開叢集
確保「錯誤」的節點會停留在叢集之外,直到修復為止
防止叢集自行分割成節點子集
請參閱 "法定數目和法定裝置",以取得有關叢集如何保護自己以免於分割成多個個別叢集的詳細資訊。
為了讓資料免於毀損,所有的節點必須對叢集成員達成一致的協議。必要時,CMM 會為了回應故障而協調叢集服務 (應用程式) 的叢集重新配置。
CMM 從叢集傳輸層接收有關連接到其它節點的資訊。在重新配置期間,CMM 使用叢集交互連接來交換狀態資訊。
在偵測到叢集成員變更之後,CMM 會執行叢集的同步化配置,此時可能會根據新的叢集成員而重新分配叢集資源。
如果 CCM 偵測到節點的嚴重問題,它會呼叫叢集框架強制關掉 (混亂的) 節點,並將其從叢集成員中移除。 發生此情況的機制稱為 failfast。Failfast 會導致節點以兩種方式關閉。
如果節點離開叢集,並嘗試在無法定數目的情況下開啟新的叢集,它就會被"隔離"而無法存取共用磁碟。請參閱 "故障隔離",以取得有關 failfast 此種用法的細節。
如果一或多個叢集特定的常駐程式掛掉 (die)(clexecd、 rpc.pmfd、rgmd 或 rpc.ed),此故障可由 CMM 偵測出來,而節點也跟著混亂。
panic[cpu0]/thread=40e60:Failfast:Aborting because 'pmfd' died 35 seconds ago. (由於「pmfd」在 35 秒之前掛掉而中斷。)409b8 cl_runtime:__0FZsc_syslog_msg_log_no_argsPviTCPCcTB+48 (70f900, 30, 70df54, 407acc, 0) %l0-7:1006c80 000000a 000000a 10093bc 406d3c80 7110340 0000000 4001 fbf0 |
混亂過後,節點可能重新啟動並嘗試重新連接叢集,或停留於 OpenBoot PROM (OBP) 提示處。所採取的行動取決於 OBP 中 auto-boot? 參數的設定。