Sun Cluster 概念指南 (適用於 Solaris 作業系統)

關於故障隔離

叢集的主要問題是導致叢集被分割的故障 (稱為 Split Brain)。發 split brain 時,不是所有節點均可通訊,所以個別節點或節點子集可能會嘗試形成個別的叢集或子集叢集。每個子集或分割區都可能會「認為」自己對多重主機裝置擁有唯一的存取權和所有權。當多個節點嘗試寫入磁碟時會發生資料毀損。

故障隔離藉由實際防止磁碟存取來限制節點存取多重主機裝置。當節點離開叢集時 (故障或被分割),故障隔離可確保節點不會再存取碟。只有目前的成員可以存取磁碟,因此維持了資料的完整性。

磁碟裝置服務為使用多重主機裝置的服務提供容錯移轉功能。當目前作為磁碟裝置群組的主要節點 (所有者) 的叢集成員發生故障或無法連線時,將會選擇新的主要節點。新的主要節點可以讓對磁碟裝置的存取繼續,而只發生短暫中斷。在此過程中,舊的主要節點必須喪失對裝置的存取權才能啟動新的主要節點。然而,當成員退出叢集且接觸不到時,叢集就無法通知該主要節點釋放裝置。因此,您需要一個方法讓存活的成員可以從故障的成員接手控制和存取整體裝置。

Sun Cluster 系統使用 SCSI 磁碟保留來實現故障隔離。使用 SCSI 保留,便可以將發生故障的節點與多重主機裝置「隔離」,防止它們存取這些磁碟。

SCSI-2 磁碟保留支援一種形式的保留,它會授予對所有連接到該磁碟的節點的存取權 (當不存在保留時)。或者,存取權被限制為某一單一節點 (存放該保留的節點)。

當叢集成員偵測到另一個節點在叢集交互連接上已經不再進行通訊,即會起始隔離程序來防止其他節點存取共用磁碟。發生此故障隔離時,隔離的節點將會當機,並在其主控台上顯示「保留衝突」訊息。

如果發現節點不再是叢集成員,則在此節點和其他節點間共用的所有磁碟上觸發 SCSI 保留。隔離的節點可能不「發覺」其已被隔離,並且如果其嘗試存取共用磁碟,則會偵測到保留和當機。