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

高可用性框架

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

下表显示了各种 SunPlex 组件故障(包括硬件故障和软件故障),以及高可用性框架中内置的各种恢复。

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

有故障的群集组件 

软件恢复 

硬件恢复  

数据服务  

HA API,HA 框架  

不适用 

公共网络适配器 

IP Network Multipathing 

多个公共网络适配卡  

群集文件系统 

主要和辅助复制 

多主机磁盘 

镜像多主机磁盘  

卷管理(Solaris Volume Manager 和 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? 参数的设置。 可以在 OpenBoot PROM ok 提示符处使用eeprom(1M) 设置 auto-boot?

群集配置系统信息库 (CCR)

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


Caution – Caution –

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


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