Sun Cluster 概念指南(适用于 Solaris OS)

高可用性框架

Sun Cluster 系统使用户和数据间的“路径”上的所有组件都具有高可用性,这些组件包括网络接口、应用程序本身、文件系统和多主机设备。一般情况下,如果一个群集组件可从系统中的任何单一(软件或硬件)故障中恢复,则它是高度可用的。

下表显示了 Sun Cluster 组件故障(包括硬件和软件)的种类和高可用性框架中内置的恢复方法的种类。

表 3–1 Sun Cluster 故障检测和恢复级别

有故障的群集组件 

软件恢复 

硬件恢复 

数据服务 

HA API,HA 框架 

N/A 

公共网络适配器 

Internet 协议 (IP) 网络多路径 

多个公共网络适配卡 

群集文件系统 

主要和辅助复制 

多主机设备 

镜像多主机设备 

卷管理(Solaris 卷管理器和 VERITAS Volume Manager,只能在基于 SPARC 的群集中使用) 

硬件 RAID-5(例如 Sun StorEdgeTM A3x00)

全局设备 

主要和辅助复制 

到设备、群集传输结点的多个路径 

专用网 

HA 传输软件 

多个专用硬件独立网络节点 

节点 

CMM,故障快速防护驱动程序 

多个节点 

Sun Cluster 软件的高可用性框架可迅速检测到节点故障,并在群集中的其余节点上为该框架资源创建一个新的等效服务器。不会出现所有框架资源都不可用的情况。未受故障节点影响的框架资源在恢复期间完全可用。而且,故障节点的框架资源一恢复就立即可用。已恢复的框架资源不必等待其它所有框架资源都完全恢复。

大多数高可用性框架资源的恢复对使用资源的应用程序(数据服务)都是透明的。框架资源访问的语义在整个节点故障期间得到全面的保护。只是应用程序检测不到框架资源服务器已转移到另一节点。通过使用附加到一个节点的文件、设备以及磁盘卷,该节点的故障对于其他节点上的程序是完全透明的。如果磁盘与另一节点之间也存在硬件路径,这种透明度就存在。多主机设备的使用就是一个例证,这些设备具有连接多个节点的端口。

群集成员监视器

为确保数据免遭破坏,所有节点必须在群集成员上达成一致协议。需要时,CMM 将协调群集服务(应用程序)的群集重新配置,以作为对故障的响应。

CMM 会从群集传输层接收到关于与其它节点连通性的信息。CMM 使用群集互连在重新配置期间交换状态信息。

在检测到群集成员的变化后,CMM 将执行该群集的同步配置。在同步配置中,根据该群集的新成员关系,可能会重新分配群集资源。

与 Sun Cluster 软件以前的发行版不同,CMM 是完全在内核中运行的。

有关群集如何防止将自身划分为多个独立群集的更多信息,请参见关于故障防护

故障快速防护机制

如果 CMM 检测到某个节点有严重问题,它将通知群集框架强制性关闭(停止使用)该节点,并从群集成员中将其删除。实现这种功能的机制称为故障快速防护。故障快速防护将使节点以两种方式关闭。

群集守护进程出现故障导致某个节点停止使用时,该节点的控制台上将显示一条类似以下内容的消息。


panic[cpu0]/thread=40e60: Failfast: Aborting because "pmfd" died 35 seconds ago.
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

停止使用后,节点可能会重新引导并尝试重新加入群集。或者,如果群集是由基于 SPARC 的系统组成的,节点可能停留在 OpenBootTM PROM (OBP) 提示符处。节点的下一步操作由 auto-boot? 参数决定。您可以使用 eeprom(1M) 在 OpenBoot PROM ok 提示符处设置 auto-boot?

群集配置库 (CCR)

CCR 使用两阶段提交算法进行更新:更新必须在所有群集成员上均成功完成,否则更新将被回滚。CCR 使用群集互连来应用分布式更新。


注意 – 注意 –

尽管 CCR 是由文本文件组成的,但也绝不要手动编辑 CCR 文件。每个文件都包含一个校验和记录来保证节点间的一致性。手动更新 CCR 文件可能会导致某个节点或整个群集不能工作。


CCR 靠 CMM 来保证群集只有在仲裁建立后才能运行。CCR 负责跨群集验证数据的一致性,需要时执行恢复,并为数据更新提供工具。