Sun Cluster 概述 (适用于 Solaris OS)

数据完整性

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

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

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

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

表 2–1 介绍了 Sun Cluster 软件是如何使用法定数目来避免出现记忆分裂和失忆问题的。

表 2–1 群集法定数目及记忆分裂和失忆问题

分区类型 

法定数目解决情况 

记忆分裂 

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

失忆 

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