Sun Cluster 概述(适用于 Solaris OS)

数据完整性

Sun Cluster 系统试图防止数据被破坏并确保数据完整性。 因为群集节点共享数据和资源,所以决不能将群集分割成同时处于活动状态的多个独立分区。 CMM 确保在任何时候仅有一个群集有效。

群集分区会引起两种类型的问题: 群集分割和失忆。 当节点间的群集互连失效,并且群集被分成多个子群集而每个子群集认为自己是唯一的分区时,会发生群集分割。 不知道其它子群集的子群集可能会导致共享资源冲突,例如重复的网络地址和数据被破坏。

如果所有节点都认为群集处于不稳定的状态,就会发生失忆。 以一个具有节点 A 和节点 B 的双节点群集为例。如果节点 A 关闭,仅更新节点 B 中的 CCR 配置数据,而不更新节点 A 中的CCR 配置数据。如果稍后节点 B 关闭,并重新引导节点 A,则节点 A 将使用 CCR 的旧内容运行。 该状态称为失忆,它可能导致使用旧配置信息运行群集。

群集分割和失忆可以通过以下方法避免:赋予每个节点一个选票,并规定只有获得多数票数才能成为有效群集。 获得多数票数的分区拥有仲裁,因此允许其运行。 该多数投票机制适用于节点多于两个的群集。 在双节点群集中,多数为二。 如果这样的群集分为两个分区,则需要使用外部投票才能使其中一个分区获得仲裁。 此外部投票由仲裁设备提供。 仲裁设备可以是在两个节点间共享的任何磁盘。

表 2–1 说明 Sun Cluster 软件如何使用仲裁来避免群集分割和失忆。

表 2–1 群集仲裁及群集分割和失忆问题

分区类型 

仲裁解决情况 

群集分割 

仅使获得多数票数的分区(子群集)作为群集(其中仅能有一个拥有多数票数的分区)运行。 节点失去仲裁竞争后,则该节点停止使用。  

失忆  

在引导群集时,保证至少有一个节点是最新的群集成员之一(因而有最新的配置数据)。