Sun Cluster 3.0 概念

故障防护

群集的一个主要问题是引起群集分区的故障(称作群集分割)。当此故障发生时,并不是所有 节点都可以通信,所以个别节点或节点子集可能会尝试组成个体或群集子集。每个子集或分区都可能以为它对多主机磁盘的 唯一访问权和所有权。多个节点试图写入磁盘会导致数据损坏。

故障防护通过以物理方式防止对磁盘的访问,限制了节点对多主机磁盘的访问。当节点脱离群集时(它或是发生故障, 或是分区),故障防护确保了该节点不再能访问磁盘。只有当前成员节点有权访问磁盘,以保持数据的完整性。

磁盘设备服务为使用多主机磁盘的服务提供了失败切换能力。在当前担当磁盘设备组主节点(属主)的群集成员发生 故障或变得无法访问时,一个新的主节点会被选中,使得对磁盘设备组的访问得以继续,而只有微小的 中断。在此过程中,旧的主节点必须放弃对设备的访问,然后新的主节点才能启动。然而, 当一个成员从群集断开并变得无法访问时,群集无法通知那个节点释放那些将该节点作为主节点的设备。因而,您需要一种方法 来使幸存的成员能够从失败的成员那里控制并访问全局设备。

Sun Cluster 使用 SCSI 磁盘保留来实现故障防护。使用 SCSI 保留,故障节点被与多主机磁盘“隔离”起来,使它们 无法访问那些磁盘。

SCSI-2 磁盘保留支持一种保留形式,它或者授权给所有连接到磁盘的节点访问权(当没有保留上时),或者 限制对单个节点(即拥有该保留的节点)的访问权。

当群集成员检测到另一个节点不再通过群集互连进行通信时,它启动故障防护措施来避免另一个节点访问 共享磁盘。当发生此故障防护时,通常将防护的节点处于应急状态,并在其控制台上显示“保留冲突”的消息。

发生保留冲突是因为在节点已被检测到不再是群集成员后,一个 SCSI 保留被置于在此节点与其他节点间共享 的所有磁盘上。防护节点可能不会意识到它正在被防护,并且如果它试图访问这些共享磁盘之中的一个,它会检测到保留和应急状态。