本文包含对 IBM High Availability Cluster Multi-Processing (HACMP) for AIX 产品系列的介绍,以及作为 IBM 高可用性产品基础的概念。
其中将讨论以下主题:
什么是 HACMP?
历史和发展
高可用性概念
高可用性与容错的对比
什么是 HACMP?
在解释什么是 HACMP 之前,我们必须定义高可用性的概念。
高可用性
在当今的复杂环境中,为应用程序提供连续的服务是成功的 IT 实现的重要组成部分。高可用性屏蔽或消除计划内和计划外的系统和应用程序停机时间,是帮助为应用程序客户端提供连续服务的组件之一。这是通过消除硬件和软件单点故障(single points of failure,SPOF)来实现的。
高可用性解决方案将确保任何解决方案组件(无论是硬件、软件还是系统管理)的故障不会导致应用程序及其数据对用户不可用。
高可用性解决方案应该通过适当的设计、规划、硬件选择、软件配置和精心控制的变更管理规程来消除单点故障 (SPOF)。
停机时间
停机时间是应用程序不能为其客户端提供服务的时间范围。可以将停机时间划分为:
- 计划内停机:
- 硬件升级
- 维修
- 软件更新/升级
- 备份(离线备份)
- 测试(需要定期测试以实现集群验证。)
- 开发
- 计划外停机:
- 管理员错误
- 应用程序故障
- 硬件故障
- 环境灾难
用于 AIX 的 IBM 高可用性解决方案 High Availability Cluster Multi Processing 基于久经考验的 IBM 集群技术,并包括两个组件:
- 高可用性:通过使用重复和/或共享资源来确保应用程序可供使用的过程。
- 集群多处理:运行在相同节点上并具有共享或并发数据访问的多个应用程序。
基于 HACMP 的高可用性解决方案提供了自动化的故障检测、诊断、应用程序恢复和节点重新集成。使用适当的应用程序,HACMP 还可以为并行处理应用程序提供并发数据访问,从而提供卓越的水平可伸缩性。
图 1 显示了一个典型的 HACMP 环境。
图 1 HACMP 集群
历史和发展
IBM High Availability Cluster Multi-Processing 可追溯到 20 世纪 90 年代初。
HACMP 的开发始于 1990 年,目的是为运行在 RS/6000 服务器上的应用程序提供高可用性解决方案。
我们不提供有关每个早期版本的信息,因为那些版本在本书编写之际已不再被支持或不再使用,我们仅提供有关最近版本的重点介绍。
HACMP V4.2.2
与 HACMP Classic (HAS) 一起,此版本引入了增强的可伸缩性版本(enhanced scalability version,ES),ES 是基于并行系统支持计划(Parallel Systems Support Program,PSSP)所产生的可靠的可伸缩集群技术(Reliable Scalable Clustering Technology,RST)拓扑、组和事件管理服务。
HACMP V4.3.X
除了其它方面以外,此版本还引入了对 HACMP/ES 的 32 节点支持、C-SPOC 增强功能、ATM 网络支持、HACMP 任务指南(用于简化集群配置的 GUI)、多个事件前和事件后脚本、FDDI MAC 地址接管、监视和管理支持增强功能、逐个节点的迁移,以及 AIX 快速连接支持。
HACMP V4.4.X
此版本中的新项目包括与 Tivoli? 的集成、应用程序监视、无退回的级联 (cascading with out fallback)、C-SPOC 增强功能、改进的迁移支持、HA-NFS 功能集成,以及软拷贝文档(HTML 和 PDF)。
HACMP V4.5
在此版本中,AIX 5L 是必需的,并且存在自动化的配置发现功能、每个网络适配器上的多个服务标签(通过使用 IP 别名)、持久 IP 地址支持、64 位功能的 API,以及监视和从卷组定额丧失中恢复。
HACMP V5.1
这是引入了重大变更的版本,涵盖从配置简化和性能增强到更改 HACMP 术语的范围。
HACMP V5.1 中的部分重要新功能包括:
- SMIT “标准”和“扩展”配置路径(过程)
- 自动化的配置发现
- 自定义资源组
- 基于通过磁盘的心跳检测的非 IP 网络
- 快速磁盘接管
- 卷组的强制启用(varyon)
- 通过 IP 别名的心跳检测
- HACMP Classic (HAS) 已被丢弃;现在仅存在基于 IBM 可靠的可伸缩集群技术的 HACMP/ES
- 改进的安全性,通过使用集群通信守护进程(消除了对使用标准 AIX“r”命令的需要,从而消除了对 /.rhosts 文件的需要)来实现
- 改进的集群自定义和同步性能
- HACMP 术语的规范化
- 配置和维护的简化
- 在线规划工作表增强功能
- 卷组的强制启用
- 自定义资源组
- 接管节点上的服务 IP 地址/标签的心跳信号监视
- 通过 IP 别名的心跳检测
- 通过磁盘的心跳检测
- 各种 C-SPOC 增强功能
- GPFS 集成
- 集群验证增强功能
- 改进的资源组管理
HACMP V5.2
从 2004 年 7 月开始,新的 HACMP V5.2 添加了管理、配置简化、自动化和性能方面的更多改进功能。
下面是 HACMP V5.2 中的改进功能摘要:
- 两节点配置助手,同时带有 SMIT 菜单和 Java? 接口
(另外还有 SMIT“标准”和“扩展”配置路径)。
- 文件收集。
- 用户密码管理。
- 不再使用传统资源组,自定义资源组已将其取代。
- 自动化的测试过程。
- 自动集群验证。
- 改进的在线规划工作表(Online Planning Worksheets,OLPW)现在可以从现有的 HACMP 集群导入配置。
- 事件管理(Event management,EM)已由资源监视和控制(resource monitoring and a control,RMC)子系统(AIX 中的标准组件)所取代。
- 增强的安全性。
- 资源组依赖性。
- 自我修复的集群。
注意:在本红皮书编写之际,HACMP V5.1 和 V5.2 都已经可用。认证考试仅包含 HACMP V5.1 主题。
高可用性概念
什么对象需要受到保护?最终,关键环境中的任何 IT 解决方案的目标都是提供连续的服务和数据保护。
高可用性只是实现连续操作目标的一个构件。高可用性基于硬件、软件(操作系统及其组件)、应用程序和网络组件的可用性。
若要实现高可用性解决方案,您需要:
- 冗余服务器
- 冗余网络
- 冗余网络适配器
- 监视
- 故障检测
- 故障诊断
- 自动化的故障转移
- 自动化的重新集成
HACMP 的主要目标是消除单点故障 (SPOF)(请参见第 7 页上的表 1)。
表 1 单点故障
集群对象 | 消除单点故障的方法 |
---|---|
节点(服务器) | 多个节点 |
电源 | 多个电路和/或电源 |
网络适配器 | 冗余网络适配器 |
网络 | 用于连接节点的多个网络 |
TCP/IP 子系统 | 非 IP 网络以便为 TCP/IP 提供后备 |
磁盘适配器 | 冗余磁盘适配器 |
磁盘 | 冗余硬件和磁盘镜像或 RAID 技术 |
应用程序 | 配置应用程序监视和备份节点,以获取应用程序引擎和数据 |
表 1 中的“集群对象”列中列出的每个项目是一个物理或逻辑组件,如果该组件发生故障,则会导致应用程序无法为客户端提供服务。
高可用性与容错的对比
可以将用于硬件和软件故障检测及处理的系统定义为两个组:
- 容错系统
- 高可用性系统
容错系统
提供容错功能的系统旨在几乎无中断地操作,而不管可能发生的故障如何(也许由于自然灾害导致的完全站点故障除外)。在此类系统中,至少为所有的软件或硬件组件配置了重复组件。
因而,CPU、内存和磁盘具有特殊的设计,即使在一个子组件发生故障时也可以提供连续的服务。
此类系统非常昂贵,并且极其专门化。实现容错解决方案需要大量的精力和所有系统组件的高度自定义。
在不能接受任何停机时间的场合(生命保障等等),容错设备和解决方案是必需的。
高可用性系统
为高可用性而配置的系统是以如下方式配置的硬件和软件组件的组合:即确保在发生故障时,能够使用最短的可接受停机时间实现自动化的恢复。
在此类系统中,相关软件将检测环境中的问题,然后将应用程序传输到另一台计算机,从而接管原始计算机(节点)的身份。
因而,消除环境中的所有单点故障 (SPOF) 是非常重要的。例如,如果计算机只有一个网络连接,则应该在同一个节点中提供第二个网络接口,以便在提供服务的主适配器发生故障时接管工作。
另一个重要问题是镜像数据,并将数据放在可从集群中的任何一台计算机访问的共享磁盘区域,从而保护数据。
高可用性集群多处理(High Availability Cluster Multi-Processing,HACMP)软件提供了用于在高度可用的系统中集成应用程序的框架和一组工具。
要在 HACMP 集群中集成的应用程序需要相当多的自定义,此自定义不是在应用程序级别进行,而是在 HACMP 和 AIX 平台级别进行。
HACMP 是一个灵活的平台,允许运行在 AIX 平台上的通用应用程序实现集成,从而以合理的成本提供高度可用的系统。
高可用性解决方案
与其他解决方案相比较,高可用性 (HA) 解决方案可以提供许多优点。表 2 描述了一些 HA 解决方案及其特征。
表 2 HA 解决方案的类型
解决方案 | 独立系统 | 增强的 独立系统 | 高可用性集群 | 容错系统 |
---|---|---|---|---|
停机时间 | 两天 | 两小时 | 视情况而定(通常三分钟) | 永不停机 |
数据可用性 | 上次的完全备份 | 上一个事务 | 上一个事务 | 无数据损失 |
高可用性解决方案提供了以下优点:
- 标准的组件
- 可与现有的硬件一起使用
- 适用于几乎任何应用程序
- 可使用广泛的磁盘和网络类型
- 以合理成本实现卓越的可用性
针对 IBM Eserver pSeries 的 IBM 高可用性解决方案提供了一些独特的优点。此类优点包括:
- 经证实的解决方案(超过 14 年的产品开发历史)
- 灵活性(在独立 AIX 系统上运行的几乎任何应用程序都可以使用 HACMP 来保护)
- 使用“现成的”硬件组件
- 经证实的客户支持承诺
提供高可用性解决方案的注意事项包括:
- 全面的设计和详细的规划
- 消除单点故障
- 选择适当的硬件
- 正确的实现(不要走“捷径”)
- 训练有素的系统管理实践
- 有文档记录的操作过程
- 详尽的测试
HACMP 概念
HACMP 的基本概念可按如下方式进行分类:
- 集群拓扑
包含基本集群成员节点、网络、通信接口、通信设备和通信适配器。
- 集群资源
将要使其高度可用的实体(例如,文件系统、原始设备、服务 IP 标签和应用程序)。资源在资源组(resource group,RG)中分组在一起,HACMP 将资源组作为单个实体来保持其高度可用。
资源组可从单个节点使用,或在并发应用程序的情况下,可以同时从多个节点使用。
- 故障转移
表示资源组响应活动节点上的故障而从该活动节点转移到另一个节点(备份节点)。
- 退回
表示资源组在先前的节点变得可用时从备份节点转移到先前的节点。此转移通常是为了响应先前发生故障的节点的重新集成。
HACMP 术语
要理解 HACMP 的正确功能和用途,必须知道一些重要的术语:
- 集群 (Cluster)
独立系统(节点)或 LPAR 的松散耦合的集合,组织到一个网络中以便共享资源和彼此通信。
HACMP 定义了操作系统之间的关系,其中当某个集群节点无法提供服务时,对等的集群节点将提供该节点所提供的服务。
在任何集群组件发生故障的情况下,这些单独的节点共同维持一个或多个应用程序的功能。
- 节点 (Node)
运行 AIX 和 HACMP 的 IBM Eserver pSeries 计算机(或 LPAR),被定义为集群的一部分。每个节点都有一个资源集合(磁盘、
文件系统、IP 地址和应用程序),在节点发生故障的情况下,可以将该资源集合转移到集群中的另一个节点。
- 资源 (Resource)
资源是集群配置的逻辑组件,可从一个节点移动到另一个节点。提供高度可用的应用程序或服务所必需的所有逻辑资源在资源组 (RG) 中分组在一起。
在节点发生故障的情况下,资源组中的组件一起从一个节点移动到另一个节点。集群可能具有多个资源组,从而允许高效地使用集群节点(从而实现 HACMP 中的“多处理”)。
- 接管 (Takeover)
接管是指在集群内的节点之间转移资源的操作。
如果一个节点由于硬件问题或 AIX 崩溃而发生故障,其资源应用程序将移动到另一个节点。
- 客户端 (Client)
客户端是能够通过局域网访问运行在集群节点上的应用程序的系统。客户端运行客户端应用程序,连接到运行应用程序的服务器(节点)。
HACMP/XD(扩展距离)
High Availability Cluster Multi-Processing for AIX (HACMP) 基本软件产品处理部分连续操作问题。它处理单个站点的计算联合体中的计算机、适配器或局域网的故障恢复。
图 2 显示了典型的 HACMP/XD 高可用性地理集群(High Availability Geographic Cluster,HAGEO)。
图 2 典型的 HACMP/XD HAGEO 配置
若要在发生重大灾难(站点故障)的情况下保护应用程序,将需要附加的软件。HAGEO 提供了:
- 配置具有地理分离站点的集群的能力。
HAGEO 将 HACMP 扩展到包括两个地理位置上的远程数据中心或站点。此扩展可以防止个别站点成为集群中的单点故障。
地理镜像过程为每个站点提供了基本数据的更新副本。
任一个站点都可以运行关键应用程序,从而确保在故障或灾难导致一个站点失效的情况下,任务关键型计算资源在地理上分离的另一个站点上连续可用。
- 自动的故障检测和通知。
HAGEO 与 HACMP 合作提供了站点或地理网络故障的自动检测。它启动恢复过程,并将有关检测到的所有故障及其所执行的响应操作的信息通知系统管理员。
- 自动化故障转移
HAGEO 包括事件脚本,以处理站点或地理网络故障的恢复。这些脚本与标准 HACMP 事件脚本集成在一起。
可以通过添加事件前或事件后脚本来自定义配置的行为,就像对 HACMP 所做的那样。
- 快速的灾难恢复。
HAGEO 还在可操作的站点提供了数据和应用程序的快速恢复。地理镜像过程确保在灾难降临时,数据已经在第二个站点可用。
恢复时间通常要花几分钟,其中不包括应用程序恢复时间。
- 站点恢复期间的自动数据重新同步
HAGEO 作为站点恢复过程不可或缺的一部分处理每个站点上的镜像的重新同步。重新加入的站点上的节点将自动使用在该站点发生故障时接收的数据进行更新。
- 可靠的数据完整性和一致性。
HAGEO 的地理镜像和地理消息组件确保在站点发生故障时,幸存站点的数据与故障站点的数据保持一致。
当故障站点重新集成到集群中时,HAGEO 使用来自可操作站点的最新数据来更新该站点,从而再次确保数据一致性。
- 灵活、可伸缩的配置。
HAGEO 软件支持广泛的配置,允许您按自己的需要配置独特的灾难恢复解决方案。
HAGEO 集群中最多可以有八个节点,每个站点的节点数量各不相同。
HAGEO 与文件系统和数据库无关,因为地理镜像设备的行为与它所支持的磁盘设备的行为相同。由于镜像是透明的,配置为使用地理镜像的应用程序不必进行任何方式的修改。
HACMP/XD:HAGEO 组件
该软件具有三个重要功能:
- GeoMirror:
包括一个逻辑设备和在第二个站点上执行镜像的伪设备驱动程序;数据在一个站点输入。TCP/IP 用作镜像数据的传输协议。
GeoMirror 可以在异步或同步模式下使用,具体取决于站点之间的通信带宽,以及应用程序事务量(将决定更改的数据量)。
- GeoMessage:
在两个站点的 GeoMirror 设备之间提供可靠的数据和消息传输。
- 地理拓扑:
提供用于将地理镜像功能与 HACMP 功能集成的逻辑,以提供自动的故障检测和从影响整个站点的事件中恢复。
- 从灾难中恢复
当灾难导致站点故障时,幸存站点的节点上的集群管理器将快速检测情况,并采取操作以保持地理镜像的应用程序可用。
同样,如果集群由于全局地理网络故障而被分割,则配置为非主控 (non-dominant) 的站点上的集群管理器将关闭自身,以便避免数据偏差。
HACMP/XD:HAGEO 基本配置
可以按照 HACMP 基本软件所支持的任何一种配置来配置 HAGEO 集群。这些配置包括备用(standby)、单边接管(one-sided takeover)、相互接管(mutual
takeover)和并发访问(concurrent access)配置。
- 备用配置
备用配置是一种传统冗余硬件配置,其中集群中的一个或多个节点保持空闲,直到某个服务器节点发生故障。
在 HAGEO 中,这转变为使用一个空闲站点。该站点并非完全空闲,因为它还参与了地理镜像过程。但是该站点的节点不执行应用程序工作。
- 接管配置
在接管配置中,所有节点都在执行处理;不存在空闲节点。
配置包括:
- 站点内(本地)接管
- 远程单边接管
- 远程相互接管
- 并发配置
在并发访问配置中,一个站点的所有节点可以同时访问并发卷组,并拥有相同的磁盘资源。
另一个站点以相同的方式进行设置。
如果某个节点离开站点,资源的可用性不会受到影响,因为其他节点已启用并发卷组。
如果某个站点发生故障,另一个站点可以提供该站点上的节点所提供的并发访问。并发应用程序可由集群中的所有节点访问。
HACMP Cluster Lock Manager 必须在集群中的所有节点上运行。并非所有数据库都可用于涉及到跨地理位置的节点的并发访问。
HACMP/XD PPRC 集成功能
在两个站点都使用了 IBM Enterprise Storage Server? 并且对等远程复制(Peer to Peer Remote Copy,PPRC)功能提供了存储卷镜像的环境中,同时在 HACMP V4.5 PTF5 和 HACMP V5.1中引入的此功能可以提供自动化的站点故障转移和应用程序数据的远程副本激活。
在主站点发生故障的情况下,数据应该在辅助站点可供使用(通过 PPRC 进行复制)。必须激活辅助站点中的数据副本才能将其用于处理。
HACMP/XD PPRC 集成功能在主站点发生故障时提供自动化的副本拆分,在主站点变得可用时提供自动化的重新集成。
有关详细信息,请参见 High Availability Cluster Multi-Processing XD (Extended Distance) V5.1: Concepts and Facilities for HAGEO Technology, SA22-7955。
关于作者
Dino Quintero 是一个高级认证 IT 咨询师,在纽约的 ITSO 工作。在进入 ITSO 之前,他是 Enterprise Systems Group 的一名性能分析师,同时也是 IBM 全球服务部的一名灾难恢复架构师。他的专业覆盖灾难恢复和 p 系列主机的集群解决方案。目前,他正带领一个团队负责提供全球的 p 系列集群解决方案服务以及相关的授课工作。