红帽RHCS是红帽高可用性附加组件是一个集群的系统,可为重要产品服务提供可靠性、延展性以及可用性。以下正文提供了高可用性附加组件元件及功能的高级论述。
集群是由两台或多台计算机(称为节点或成员)共同执行任务。主要的集群类型有 4 种:
存储型集群在集群中提供跨服务器的一致文件系统映像,它允许服务器同步地读取和写入单一的共享文件系 统。存储型集群将应用程序的安装和修补限制到一个文件系统,简化了存储的管理。而且,使用集群范围的 文件系统,存储型集群消除了应用程序数据的冗余拷贝并简化了备份和恢复。高可用性附加组件与 Red Hat GFS2(弹性存储附加组件的一部分)共同提供存储集群。
高可用性型集群通过消除单点故障提供高可用性服务,并在一个节点停止运作时将服务从一个集群节点切换 到另外一个节点。通常,在高可用性型集群中的服务读写数据(通过以读写方式挂载的文件系统)。因此, 高可用性型集群必须维护数据的完整性,因为一个集群节点是从另一个集群节点接管某个服务的控制。集群 外的客户端无法看到高可用性集群中的节点失败。(高可用性集群有时指的是故障切换集群。)高可用性附 加组件通过其高可用性服务管理组件 rgmanager 提供高可用性集群。
负载平衡型集群将网络服务请求分摊在多个集群节点中来平衡请求负载。负载平衡可提供有效的延展性,因 为您可以根据负载要求调整节点数。如果负载平衡型集群中的某个节点不可操作了,负载平衡软件检测到这 个故障并将请求重定向到其他集群节点。负载平衡型集群中的节点故障在集群外是不可见的。负载平衡由负 载平衡器附加组件提供。
高性能型集群使用集群节点来执行并行运算。高性能型集群允许应用程序以并行的方式工作,因此提高了应 用程序的性能(高性能型集群也被称为计算集群或网格计算)。
高可用性附加组件是一组软件组件集合,它可以不同的配置进行部署来满足您对性能、高可用性、负载平衡 、延展性、文件共享和经济性的需要。
高可用性附加组件由以下主要组件构成:
使用以下组件提供高可用性附加组件:
高可用性附加组件集群基础结构为一组计算机(称为节点或成员)提供以集群方式一起工作的基本功能。一 旦使用集群基础结构组成了集群,您就可以使用其它组件来满足集群需要(例如,设定在 GFS2 文件系统中 进行文件共享的集群,或者设定服务故障切换)。集群基础结构提供下面的功能:
集群管理负责集群仲裁和成员资格管理。CMAN(集群管理器的缩写)在高可用性附加组件中为 Red Hat Enterprise Linux 6 执行集群管理。CMAN 是发布的集群管理器,它在每个节点中运行。集群中的所有节点 中都会部署集群管理。
CMAN 通过监控集群节点数目来了解集群仲裁。如果多过半数的节点是活跃的,那么集群就具有仲裁。如果 一半(或更少)节点是活跃的,集群就没有仲裁,所有的集群活动将停止。集群仲裁会阻止 "split-brain" 条 件的发生 — 此时同一集群的两个实例在运行。"split-brain" 条件将允许每个集群实例访问集群资源而无需了 解另外一个实例,这样会破坏集群的完整性。
仲裁由集群节点间经由以太网的消息通信决定的。仲裁也可以由通过以太网和仲裁磁盘的消息的组合来决定 。对于经由以太网的仲裁,仲裁由节点投票的 50% 加 1 组成的。而对于经由制裁磁盘的仲裁,仲裁由用户 指定的条件组成。
CMAN 通过监控其他集群节点的信息来跟踪成员。当集群的成员发生变化时,集群管理器通知其它基础结构 组件,以便其采取适当的行动。如果集群节点在规定的时间内没有传送消息,集群管理器会将这个节点从集 群中删除,并通知其它基础结构组件这个节点已经不再是成员了。同样,其它集群基础结构组件会根据获得 这个节点不再是集群成员的通知将决定采取什么样的行动。例如,Fencing 将保护不再是成员的节点。
锁管理是常见的集群基础结构服务,它提供一种同步集群基础结构组件对共享资源的访问的机制。在 Red Hat 集群中,DLM(分布式锁管理器)是锁管理器。顾名思义,DLM 是一个分布式的锁管理器,它运行在集 群的每个节点中;锁管理分布于集群的所有节点中。GFS2 和 GLVM 都使用锁管理器提供的锁。GFS2 用它 来同步对文件系统元数据(在共享存储中)的访问。CLVM 使用它来同步对 LVM 卷和卷组(也在共享存储中 )的更新。另外,rgmanager 使用 DLM 同步服务状态。
Fencing(保护)将节点从集群的共享存储里断开。Fencing 切断和共享存储之间的 I/O,因此保证了数据的 完整性。集群基础结构通过守护进程 fenced 来执行保护。
当 CMAN 决定某个节点已经失败后,它将通知其它集群基础结构组件该节点已失败。在收到通知后 ,fenced 将保护(fence)故障节点。其它集群基础结构组件将决定采取什么行动 — 也就是说,它们执行 所有必须执行的恢复。例如,当被告知节点故障时,DLM 和 GFS2 将暂停活动,直到它们检测到 fenced 已经完成对故障节点的保护。当确认故障节点已经被保护时,DLM 和 GFS2 会执行恢复。DLM 释放对失败 节点的锁定;GFS2 恢复故障节点的日志。
保护程序根据集群配置文件决定使用哪种保护方法。集群配置文件用两个关键元素定义了保护方法:保护代 理(fencing agent)和保护设备(fencing device)。保护程序调用这里定义的保护代理。而保护代理则通 过保护设备来保护节点。当保护过程结束时,保护程序将通知集群管理器。
高可用性附加组件提供各种 fencing 方法:
(图:电源保护示例)
“电源保护示例”中,节点 A 的保护程序使电源控制器关闭了节点 D。
(图:光纤通道开关电源保护示例)
“光纤通道开关电源保护示例” 演示了光纤通道开关保护示例。在这个例子里,节点 A 的保护程序让光 纤通道开关禁用了节点 D 的端口,并使节点 D 与存储设备断开。
指定保护方法通过编辑集群配置文件完成,如分配保护方法名、保护代理(fencing agent)、以及用于集群 里每个节点的保护设备(fencing device)。
集群配置文件 /etc/cluster/cluster.conf 可指定高可用性附加组件。它是一个 XML 文件,它描述了 下列集群属性:
高可用性服务管理提供在高可用性附加组件中创建和管理高可用性集群服务(cluster service)的功能。高 可用性附加组件中高可用性服务管理的关键组件是 rgmanager,它实现了 off-the-shelf 应用程序的冷故障 切换(cold failover)。在高可用性附加组件中使用其它集群资源配置应用程序来组成高可用性的集群服务。 高可用性集群服务可以从一个节点故障切换到另外一个节点,而不会对集群客户端有明显的影响。当某个集 群节点发生故障或集群系统管理员将服务迁移(例如,需要对这个节点进行预定的维护时)到另外一个节点 时会发生集群服务的故障切换。
要创建高可用性服务,您必须在集群配置文件中进行配置。集群服务由集群资源组成。集群资源是您在集群 配置文件中创建和管理的构建块(building block) — 例如,IP 地址、应用程序初始化脚本或者 Red Hat GFS2 共享分区。
集群服务在某个时间只能在一个节点中运行,这样可以维护数据的完整性。您可以在故障效切换域里指定故 障切换的优先级。指定故障切换的优先级是通过为故障切换域里的每个节点分配优先级别实现的。优先级决 定故障切换的顺序 — 决定集群服务应该切换到哪个节点。如果您没有指定优先级,集群服务将可能切换至 故障切换域里的任意节点。而且,您可以指定是否限制集群服务在其相关的故障切换域里的节点中运行。 (如果与非限制性故障切换域相关联,在故障切换域里的成员都不可用的时候,集群服务可以在任意节点中启动)。
(图:故障切换域示例)
在 图 “故障切换域” 中,我们将故障切换域 1 配置为只能在域内进行故障切换;因此,集群服务 X 只能 在节点 A 和 B 之间进行故障切换。故障切换域 2 也被配置为在域内进行故障切换;此外,它设置了故障切 换优先级。故障切换域 2 将节点 C 设置为优先级 1,而节点B 为优先级 2,节点 D 为优先级 3。如果节点 C 发生故障,集群服务 Y 将故障切换至节点 B。如果不能切换至节点 B,它将切换至节点 D。故障切换域 3 被 配置为没有优先级也不进行限制。如果运行集群服务 Z 的节点发生故障,集群服务 Z 将试图故障切换至故 障切换域 3 里的节点。而如果这些节点都不可用,集群服务 Z 可以切换至集群里的任何节点上。
管理 Red Hat 高可用性附加组件软件包括使用配置工具指定集群组件间的关系。以下集群配置工具可用于 Red Hat 高可用性附加组件:
可提供认证工程师做解决方案的前期规划、现场部署和调试、售后技术支持等。
可提供电话、远程工具和邮件等方式的远程技术支持服务。