HACMP 认证学习系列,第 2 部分:计划与设计

来源:互联网 发布:python socket模块 编辑:程序博客网 时间:2024/05/17 04:04
 

了解应用程序在故障情况下的行为,对于控制集群在此类情况下应当如何反应是非常重要的。

规划和实现集群所必需的信息应该涵盖应用程序、环境、硬件、网络、存储,同时还要涵盖支持和变更过程。

本章将介绍以下 HACMP 集群主题:

  • 节点规模调整注意事项
  • 集群硬件规划
  • 软件规划
  • 存储规划
  • 灾难恢复规划

注意:规划是成功的实现的一半,但是就 HACMP 而言,如何强调正确规划的重要性都不为过。如果规划不当,您可能会在以后某个时候发现自己陷入种种限制之中,而要摆脱这些限制可能是非常痛苦的经历。因此,请保持镇定从容,并使用产品附带的规划工作表;这些工作表对于任何迁移或问题确定情形或者对于规划的文档记录都是非常有价值的。

规划注意事项

在规划高可用性集群时,您应该考虑节点、存储、网络等方面的规模调整,以便即使是在接管情况下,也能够提供应用程序正确运行所必需的资源。

规模调整:选择集群中的节点

在开始集群的实现之前,您应该了解需要多少个节点,以及应该使用什么节点类型。就应用程序所需要的资源而言,将要使用的节点类型是非常重要的。

节点的规模调整应该涵盖以下方面:

  • CPU(CPU 的数量和速度)
  • 每个节点中的随机访问存储器 (RAM) 容量
  • 磁盘存储(内部)
  • 每个节点中的通信和磁盘适配器数量
  • 节点可靠性

集群中的节点数量取决于要实现高可用性的应用程序的数量,同时还取决于所需的可用性程度。在集群中为每个应用程序准备多个备用节点可以提高应用程序的总体可用性。

注意:HACMP V5.1 集群中的最大节点数量是 32。

HACMP V5.1 支持各种各样的节点,涵盖从桌面系统到高端服务器的范围。SP 节点和逻辑分区(Logical Partition,LPAR)也受支持。有关进一步的信息,请参阅红皮书《HACMP for AIX 5L V5.1 Planning and Installation Guide》(SC23-4861-02)。

集群资源的共享基于应用程序的需求。有些节点执行的任务与要实现高可用性的应用程序并不直接相关,并且不需要与应用程序节点共享资源,应该将此类节点配置在单独的集群中以简化实现和管理。

所有的节点都应该提供足够的资源(CPU、内存和适配器),以维持所有指定的应用程序在故障转移(接管故障节点中的资源)情况下的执行。

如果可能,应该在集群中包括附加的节点,以提高集群的可用性;这还可以在执行节点故障转移、重新集成和维护操作时提供更大的灵活性。

建议使用具有相似硬件配置的集群节点,

在实现具有相互接管(mutual takeover)或并发配置的应用程序的集群时尤其是如此。这样使得分发资源和执行管理操作(软件维护等等)变得更加容易。

规模调整:存储注意事项

在最常用的配置中,要实现高可用性的应用程序需要一个共享存储空间来存储应用程序数据。该共享存储空间或者用于并发访问,或者用于使数据对接管节点上的应用程序可用(在 fail-over 情况下)。

要在集群中使用的存储应该允许每个应用程序从所有的指定节点进行共享访问。当前支持的 HACMP 共享存储技术包括 SCSI、SSA 和光纤通道(Fibre Channel.)。

根据应用程序的需求,应该将存储配置定义为非共享(“私有”)或共享存储。私有存储可以保留在内部磁盘上,并且不参与任何接管活动。

考虑到以下原因,共享存储应该提供访问控制机制:

  • 放在共享存储中的数据必须能够从可能在某个时间点运行应用程序的任何一个节点进行访问。在某些情况下,应用程序一次仅在一个节点上运行(非并发),但是在另一些情况下,必须提供对数据的并发访问。
  • 在非并发环境中,如果共享数据被错误的节点更新,这可能会导致数据破坏。
  • 在并发环境中,应用程序应该提供自己的数据访问机制,因为平台并发软件 (AIX/HACMP) 会绕过由存储控制的访问机制。

网络注意事项

在规划 HACMP 集群时,应该考虑以下方面:

  • IP 网络拓扑(路由、交换机等等)
  • IP 网络性能(速度/带宽、延迟和冗余)
  • ATM 和/或 X.25 网络配置

IP 网络用于使客户端访问运行在集群中的节点上的应用程序,以及用于在集群节点之间交换心跳信号消息。在 HACMP 集群中,心跳信号消息是通过 IP 网络和点对点(非 IP)网络进行交换的。

HACMP 旨在通过基于 TCP/IP 的网络、X.25 和 ATM 网络提供客户端的访问。

HACMP 集群规划

集群规划也许是实现成功的配置过程中最重要的步骤。HACMP 规划应该包括以下方面:

  • 硬件规划
    • 节点
    • 网络
    • 存储
  • 软件规划
    • 操作系统版本
    • HACMP 版本
    • 应用程序兼容性
  • 测试和维护规划
    • 测试过程
    • 变更管理
    • 管理操作

硬件规划

实现高可用性配置的目标是通过消除单点故障(硬件、软件和网络),以及通过屏蔽服务中断(无论是计划内还是计划外的中断),从而提供高度可用的服务。

节点规划的决策因素包括:

  • 支持的节点:计算机类型、功能、支持的适配器、电源(AC、DC、双电源与单电源等等)。
  • 连接和电缆:电缆类型、长度、接头、型号、导线管布线、电缆槽容量需求,以及可用性。

节点配置

HACMP V5.1 支持在一个集群中使用 IBM Eserver pSeries(独立和 LPAR 模式)、IBM SP 节点以及现有的 RS/6000 服务器的任何节点组合。节点必须满足内部内存、内部磁盘、可用 I/O 插槽数量和操作系统兼容性(AIX 版本)的最低要求。

要考虑的项包括:

  • 内部磁盘(磁盘数量、容量以及是否使用 LVM 镜像)
  • 共享磁盘容量和存储数据保护方法(RAID 和 LVM 镜像)
  • I/O 插槽限制及其对导致单点故障 (SPOF) 的影响
  • 对集群的客户端访问(网络适配器)
  • 其他 LAN 设备(交换机、路由器和网桥)
  • I/O 适配器和子系统冗余
  • 电源冗余

网络配置

规划群集网络时的主要目标是评估所需的冗余程度,以消除网络组件成为单点故障的可能性。应该考虑以下方面:

  • 网络:连接到多个物理网络的节点
  • 对于 TCP/IP 子系统故障:使用非 IP 网络以帮助决策过程
  • 网络接口:每个网络上的冗余网络适配器(以防止在单个网络接口发生故障情况下的资源组故障转移)

在规划集群网络配置时,必须为节点连接选择正确的组合:

  • 集群网络拓扑(交换机、路由器等等)。
  • 连接集群节点的 IP 和非 IP(点到点)网络组合和每个节点到所有网络的连接数量。

用于提供高可用性服务 IP 地址的方法:

  • 通过 IP 别名的 IP 地址接管(IP address takeover,IPAT)
  • 通过 IP 替换的 IPAT。

有关 HACMP 配置中支持的节点和适配器的完整列表,请参阅红皮书《HACMP for AIX 5L V5.1 Planning and Installation Guide》(SC23-4861-02);另请访问位于以下地址的 IBM 支持网站:

http://www-1.ibm.com/servers/eserver/pseries/ha/

HACMP 网络术语

从 HACMP V5.1 开始,用于描述 HACMP 配置和操作的术语已发生了很大的变化。做出此更改是为了简化 HACMP 的总体使用和维护,同时也是为了使术语与 IBM 产品系列保持一致。

例如,在早期的 HACMP 版本中,取决于上下文,术语“适配器”可以具有不同的含义,从而使配置变得非常令人混淆和困难。

IP 标签 (IP label)

术语“IP 标签”表示与特定 IP 地址相关联的名称,此名称是在集群节点上使用的名称解析方法(DNS 或静态 - /etc/hosts)中定义的。此术语取代“主机名称”(host name),后者可能与 hostname 命令的输出产生混淆,并且可能没有与任何 IP 地址相关联。

在 HACMP V5.1 中,术语“适配器”(Adapter) 已替换如下:

  • 服务 IP 标签/地址 (Service IP Label / Address):通过其提供服务的 IP 标签/地址。此 IP 标签/地址可能与单个节点绑定,也可能由多个节点共享,并且 HACMP 保持其高度可用。
  • 通信接口 (Communication Interface):支持 TCP/IP 协议并由其基本 IP 地址表示的物理接口。
  • 通信设备 (Communication Device):表示点到点非 IP 网络连接的一端的物理设备,例如 /dev/tty1、/dev/tmssa1、/dev/tmscsi1 和 /dev/hdisk1。
  • 通信适配器 (Communication Adapter):用于提供高度可用的通信链路的 X.25 适配器。

服务 IP 地址/标签 (Service IP address/label)

服务 IP 地址是用于客户端访问的 IP 地址。此 IP 地址(及其关联的标签)由 HACMP 监视,并且是资源组的一部分。

存在两种类型的服务 IP 地址(标签):

  • 共享服务 IP 地址(标签):可以配置在多个节点上的 IP 地址,并且是一次只能在一个节点上处于活动状态的资源组的一部分。
  • 与节点绑定的服务 IP 地址(标签):只能配置在一个节点上(不由多个节点共享)的 IP 地址。通常,此类服务 IP 地址与并发资源组相关联。

服务 IP 地址在 HACMP 已启动并且关联的资源组处于在线状态时变得可用。

HACMP 通信接口 (HACMP communication interface)

HACMP 中的通信接口定义是以下内容的逻辑分组:

  • 逻辑网络接口一个名称,AIX 将某个物理网络适配器端口(例如,en0)解析为此名称。
  • 服务 IP 地址是一个 IP 地址,将通过该 IP 地址提供诸如应用程序等服务,并且客户端节点将通过该 IP 地址进行通信。
  • 服务 IP 标签是映射到服务 IP 地址的标签。

通信接口指的是基于 IP 的网络和网络适配器。

连接到公共物理网络的网络适配器组合为 HACMP 所使用的逻辑网络。

每个网络适配器能够承载多个 TCP/IP 地址。在配置集群时,您要定义 HACMP 将监视的 IP 地址(基本或启动 IP 地址)和 HACMP 将保持其对 HACMP 高度可用的 IP 地址(服务 IP 地址)。

HACMP 中的心跳信号通过通信接口进行传递。HACMP 使用 RSCT 子系统的心跳检测功能(通过 UDP)来监视其网络接口和 IP 地址。每当 HACMP 服务在该节点上启动,HACMP 就将 ODM 中定义和存储的网络拓扑传递给 RSCT,并且 RSCT 将向 HACMP 提供故障通知。

HACMP 通信设备 (HACMP communication device)

HACMP 还提供点对点非 IP 网络的监视。点对点网络的两端都是 AIX 设备(在 /dev 目录中定义)。这些设备是通信设备,并包括串行 RS232 连接、目标模式 SCSI、目标模式 SSA 和磁盘检测信号连接。

点对点网络也由 RSCT 监视,并且 HACMP 使用它们的状态来区分节点故障和 IP 网络故障。

例如,通过磁盘的心跳检测使用磁盘设备名称(例如,/dev/hdisk2)作为在连接的每一端配置到 HACMP 的设备。

建议此类网络至少要在集群中的任何两个节点之间配置一个非 IP 网络。

在磁盘心跳检测的情况下,建议使用一个点对点网络,此网络由每个物理机箱的每个节点对的一个磁盘组成。不能将一个物理磁盘用于两个点对点网络。

通信适配器和链路 (Communication adapter and link)

可以将以下通信链路定义为 HACMP 中的资源:

  • LAN 网络适配器 (ent*) 上配置的 SNA
  • X.25 适配器上配置的 SNA
  • 本机 X.25 链路

HACMP 将这些链路作为资源组的一部分进行管理,从而确保高可用性通信链路。在物理网络接口故障、X.25 链路故障或节点故障的情况下,高度可用的通信链路(连同相同资源组中的所有资源一起)将被迁移到同一个节点或接管节点上的另一个可用的适配器。

IP 别名

IP 别名是通信(网络)接口上配置的除基本 IP 地址以外的 IP 地址。IP 别名是受 HACMP 支持的一个 AIX 功能。AIX 支持在每个通信接口上使用多个 IP 别名。适配器上的每个 IP 别名可以在单独的子网上。

AIX 还允许为接口配置具有不同子网掩码的 IP 别名;HACMP 尚不支持此功能。

IP 别名在 HACMP 中同时用作用于 IP 地址接管的服务和非服务地址,以及用于心跳配置。

网络接口功能 (Network interface function)

对于 IP 网络,建议您在每个节点上为每个网络配置多个通信接口。那些通信接口将分别具有特定的作用,具体取决于 HACMP 集群的状态。

  • 服务接口 (Service Interface)

服务接口是配置了一个或多个服务 IP 地址(标签)的通信接口。取决于为每个网络定义的 IP 地址接管 (IPAT) 方法,将在基本 IP 地址之外添加服务 IP 地址(通过别名的 IPAT),或者服务 IP 地址将取代通信接口的基本(启动)IP 地址。此接口用于提供对运行在该节点上的应用程序的访问。服务 IP 地址由 HACMP 通过 RSCT 心跳信号进行监视。

  • 启动接口 (Boot Interface)

这是由在 AIX 配置中定义的基本(启动)IP 地址表示的通信接口。如果使用了通过 IP 别名进行的心跳检测,则 HACMP 将不监视此 IP 地址,而是通过 HACMP 在启动时分配的 IP 别名来监视通信接口。

启动接口不传输任何客户端流量;然而,如果服务接口失败,HACMP 将把服务 IP 地址转移到非服务接口上。如果某个节点发生故障,接管节点上的另一个接口将在执行资源组故障转移时配置服务 IP 地址。

注意:对于每个网络,一个节点可以具有零到七个非服务接口。在同一个网络上使用多个非服务接口可以消除通信接口的单点故障。

  • 持久节点 IP 标签 (Persistent Node IP Label)

持久节点 IP 标签是一个 IP 别名,可以将其分配给集群网络上的某个特定节点。持久节点 IP 标签:

    • 与节点绑定(始终保持在同一个节点上)。
    • 能够在已经定义了某个服务或非服务 IP 标签的网络适配器上共存。
    • 具有不需要在该节点上安装附加物理网络适配器的优点。
    • 不属于任何资源组。

分配持久节点 IP 标签可以提供一个与节点绑定的 IP 地址,并且对于管理目的来说非常有用,因为到持久节点 IP 标签的连接始终会确定该特定的集群节点,即使 HACMP 服务没有在该节点上启动时也是如此。

注意:可以在每个节点上为每个网络配置一个持久节点 IP 标签(地址)。例如,如果有一个连接到 HACMP 中定义的两个网络的节点,可以通过两个分别用于每个网络的持久 IP 标签(地址)来确定该节点。

持久 IP 标签是在 HACMP 配置中定义的,并在 HACMP 第一次在每个节点上启动时变得可用。一经配置,持久 IP 标签(地址)将在配置它们的适配器上保持可用,即使 HACMP 已在节点上停止或节点已重新启动时也是如此。

可以在以下类型的基于 IP 的网络上创建持久节点 IP 标签:

    • 以太网
    • 令牌环网
    • FDDI 网
    • ATM 局域网模拟器

限制:不能在 SP 交换机、ATM 传统 IP 或非 IP 网络上配置持久节点 IP 标签。

持久 IP 标签的行为如下:

    • 如果某个配置了服务 IP 标签的网络适配器发生故障,并且该网络适配器上还定义了一个持久标签,则会将持久 IP 标签(地址)连同服务 IP 标签(地址)一起转移到同一个非服务接口上。
    • 如果指定节点上用于集群网络的所有网络适配器均发生故障,则持久节点 IP 标签将变得不可用。持久节点 IP 标签始终保持在同一个网络上,并保持在同一个节点上;它不会在集群中的节点之间移动。

用于心跳检测的 IP 别名 (IP aliases used for heartbeat)

这些 IP 地址是从专用的不可路由地址池中分配的,并用于监视通信接口,而不需要更改通信接口的基本(启动)IP 地址。

这在某些情况下是非常有用的,例如,当更改每个节点上的网络适配器的基本 IP 地址不适宜(因为它们是在 AIX 中定义的),并且那些地址不符合 HACMP 要求(它们在同一个子网中,因此不能监视网络适配器)的时候。

为此目的,HACMP 提供了通过 IP 别名的进行心跳检测的方法。

网络类型

在 HACMP 中,“网络”这个术语用于定义一个逻辑实体,此逻辑实体将用于集群中的节点间通信和用于客户端访问的通信接口和设备分组在一起。可以将 HACMP 中的网络定义为 IP 网络和非 IP 网络。

IP 网络和非 IP 网络均用于在节点之间交换心跳信号(“Keep Alive”)消息。通过这种方式,HACMP 维护有关集群节点及其各自的通信接口和设备状态的信息。

HACMP V5.1 中支持的 IP 网络类型包括:

  • 以太网 (ether)
  • 令牌环网 (token)
  • FDDI 网 (fddi)
  • SP Switch 和 SP Switch2 网 (hps)
  • ATM 网 (atm)

下列 IP 网络类型不受支持:

  • 串行光纤通道转换器网 (SOCC)
  • 串行线路 IP 网 (SLIP)
  • 光纤通道交换网 (FCS)
  • 802.3
  • IBM 高性能交换网 (HPS)

非 IP 网络是两个集群节点之间的点对点连接,HACMP 将其用于控制消息和心跳信号。在 IP 网络(或节点上的 TCP/IP 子系统)发生故障的情况下,这些网络可以为 HACMP 提供附加级别的保护。

HACMP 中的非 IP(基于设备)网络支持下列设备:

  • 目标模式 SCSI (tmscsi)
  • 目标模式 SSA (tmssa)
  • 磁盘心跳信号 (diskhb)
  • 串行 RS232

注意:在 AIX 5L V5.1 和 AIX 5L V5.2 中,HACMP 现在还支持将以太网聚合 (Etherchannel) 通信接口用于 IP 地址接管。不支持将 Etherchannel 用于:

  • 硬件地址接管
  • PCI 热插拔

此外,在当前版本中,HACMP 不支持 AIX 虚拟 IP 功能 (VIPA) 和 IPV6。

选择 IP 地址接管 (IPAT) 方法

在实现集群时要做出的关键决策之一是资源组和与之关联的服务 IP 地址的行为。

由于 HACMP 在大多数时间都用于保护独立的非并发应用程序,因此必须选择将要用于提供高度可用的服务 IP 地址的方法。

在启动应用程序或将其连同关联的资源组一起移动到另一个节点时,可以通过两种方式配置服务 IP 地址:

  • 通过替换通信接口的基本(启动时)IP 地址;

此方法称为“通过 IP 替换的 IP 地址接管 (IPAT)”。

  • 通过为通信接口配置一个除现有 IP 地址之外的附加 IP 地址;此方法称为“通过 IP 别名的 IP 地址接管”。

HACMP V5.1 中的缺省 IPAT 方法是通过别名(通过别名的 IPAT)。要更改此缺省行为,必须使用 HACMP 扩展配置菜单来更改网络属性。

IP 地址接管

IP 地址接管是一种恢复 IP 地址标签的机制,其方法是在初始物理网络适配器发生故障时,将服务 IP 标签转移到另一个节点上的另一个物理网络适配器。IPAT 确保用于向客户端节点提供服务的 IP 地址(标签)保持可用。

IPAT 和服务 IP 标签

可以将两种 IPAT 方法和这些方法控制服务 IP 标签的方式作如下解释:

  • 通过 IP 别名的 IP 地址接管

将服务 IP 地址/标签用作某个现有通信接口的别名,而不更改(替换)该接口的基本地址。

HACMP 使用 ifconfig 命令来执行此操作。

注意:在此配置中,节点上定义的所有基本(启动)IP 地址/标签必须配置在不同的子网上,并且还要与服务 IP 地址(标签)不同。此方法还可以节省硬件,但是需要额外的子网。图 1。


图 1 通过 IP 别名的 IPAT

HACMP 使用 AIX 的 IP 别名网络功能来支持不同类型的网络上的 IP 地址接管。通过 IP 别名的 IPAT 可以在某些类型的网络上使用无故 ARP (gratuitous ARP) 功能。

通过 IP 别名的 IPAT 使单个网络适配器可以支持多个服务 IP 地址(标签)。因此,同一个节点可以同时承载多个资源组,而不会将资源组的数量限制为可用的通信接口的数量。

相对于通过 IP 替换的 IPAT,通过别名的 IPAT 提供了以下优点:

    • 通过 IP 别名的 IP 地址接管比通过 IP 替换的 IPAT 速度更快,因为与在同一个接口上添加一个 IP 别名相比,替换 IP 地址要花显著更长的时间。
    • IP 别名允许多个服务标签在同一个网络接口上共存,因此可以在集群中使用更少的物理网络接口卡。

注意:在 HACMP V5.1 中,通过 IP 别名的 IPAT 是用于保持服务 IP 标签高度可用的缺省机制。

  • 通过 IP 替换的 IP 地址接管

服务 IP 地址替换网络接口上的现有(启动/基本)IP 地址。

使用此方法,同一网络接口上一次仅配置有一个 IP 地址/标签。

注意:在此配置中,服务 IP 地址必须与其中一个节点的通信接口启动地址在同一个子网上,而备用通信接口的基本 IP 地址必须在一个不同的子网上。此方法还可以节省子网,但是需要额外的硬件。


图 2 通过 IP 替换的 IPAT

如果包含服务 IP 地址的通信接口发生故障,在使用通过 IP 替换的 IPAT 时,HACMP 将把服务 IP 地址转移到在同一个节点并在同一网络上的另一个可用接口;在此情况下,关联的资源组不受影响。

如果同一个节点上没有可用的接口,则将资源组连同服务 IP 标签一起转移到另一个具有可用通信接口的节点上。

在使用通过 IP 替换的 IPAT(也称为“传统 IPAT”)时,还可以配置硬件地址接管 (HWAT)。硬件地址接管的实现方式是使用本地管理地址(locally administered address,LAA)来屏蔽通信接口的本机 MAC 地址,从而确保客户端上的 ARP 缓存中的映射保持不变。

网络安全规划

规划网络安全性对于避免集群节点上未经授权的访问也是非常重要的。

从 HACMP V5.1 开始,通过为节点之间所有与 HACMP 配置相关的通信提供公共通信基础设施(守护进程),从而引入了一种新的安全机制。

新的集群通信守护进程 (clcomdES) 的引入在 HACMP 集群中提供了增强的安全性,同时还加快了与配置相关的操作速度。

存在三个级别的通信安全性:

  • 标准级别
    • 缺省安全级别。
    • 直接由集群通信守护进程 (clcomdES) 实现。
    • 使用 HACMP ODM 类别和 /usr/es/sbin/cluster/rhosts 文件来确定合法伙伴。
  • 增强级别
    • 在 SP 集群中使用。
    • 利用基于 Kerberos 提供的第三方身份验证方法的增强身份验证方法。
  • 虚拟专用网(Virtual Private Network,VPN)
    • VPN 是在 AIX 中配置的。
    • 然后将 HACMP 配置为使用 VPN 来进行所有与节点间配置相关的通信操作。

通过使用集群安全通信子系统,HACMP 消除了对每个集群节点上的 /.rhosts 文件或 Kerberos 配置的需要。

但是,可能仍然需要 /.rhosts 来支持需要这种远程通信机制的应用程序的操作。

注意:并非所有集群通信都通过 clcomdES 进行保护;其他守护进程具有自己的通信机制(不是基于“r”命令)。

  • 集群管理器 (clstrmgrES)
  • 集群锁守护进程 (cllockdES)
  • 集群多对等扩展通信守护进程 (clsmuxpdES)

clcomdES 用于集群配置操作,例如集群同步、集群管理 (C-SPOC) 和动态重新配置 (DARE) 操作。

通过使用“最低权限”原则,集群通信守护进程 clcomdES 提供安全的远程命令执行和 HACMP ODM 配置文件更新。

因而,只有存在于 /usr/es/sbin/cluster/ 中的程序才以 root 身份运行;其他所有程序都以“nobody”用户身份运行。除了 clcomdES 以外,还使用了以下程序:

  • cl_rsh 是集群远程 Shell 执行程序。
  • clrexec 用于以 root 身份运行特定的危险命令,例如修改 /etc 目录中的文件。
  • cl_rcp 用于复制 AIX 配置文件。

这些命令硬编码在 clcomdES 中,不支持由用户运行。

集群通信守护进程 (clcomdES) 具有以下特征:

  • 由于集群通信不需要标准 AIX“r”命令,因此可以消除对 /.rhosts 文件的依赖性。因而,即使在“标准”安全模式下,集群安全性也得到了增强。
  • 为其他节点在本地节点(从中执行配置变更和同步的节点)上的 ODM 副本提供可靠的缓存机制。
  • 限制可在远程节点上作为 root 身份执行的命令(只有 /usr/es/sbin/cluster 中的命令才以 root 身份运行)。
  • clcomdES 从 /etc/inittab 启动,并由系统资源控制器(system resource controller,SRC)子系统进行管理。
  • 提供自己的心跳检测机制,并发现活动的集群节点(即使是在集群管理器或 RSCT 未运行的情况下)。

注意:ClcomdES 为诸如 clverify、godm、rsh 和 rexec 等各种 HACMP 服务提供了传输机制。

针对传入连接的 clcomdES 身份验证过程的基础是对照以下文件检查节点的身份:

  • HACMPadapter ODM 类别(此类别中定义的 IP 标签)
  • HACMPnode ODM(用作集群中节点的通信路径的 IP 地址/标签)
  • /usr/sbin/cluster/etc/rhosts 文件

如果 /usr/sbin/cluster/etc/rhosts 文件丢失,或者未包含针对远程发起节点的条目(IP 地址或可解析的 IP 标签),则不允许进入的连接。

如果 HACMPnode、HACMPadapter ODM 类别和 /usr/sbin/cluster/etc/rhosts 文件为空,则 clcomdES 假设集群正在进行配置,并接受传入的连接,然后在初始配置完成后,将对等节点的 IP 标签(地址)添加到 /usr/sbin/cluster/etc/rhosts 文件。

如果请求连接的 IP 地址与上述位置(HACMPadapter、HACMPnode 和 /usr/es/sbin/cluster/etc/rhosts)中的某个标签匹配,则 clcomdES 将反过来连接到请求节点,并要求提供 IP 标签(主机名称);如果返回的 IP 标签(主机名称)与请求 IP 地址匹配,则身份验证成功完成。

注意:如果 /usr/es/sbin/cluster/etc/rhosts 文件中存在不可解析的标签,则拒绝所有自远程节点的 clcomdES 连接。

HACMP 心跳检测

与在许多其他类型的集群中一样,心跳检测用于监视网络接口、通信设备和 IP 标签(服务、非服务和持久 IP 标签)的可用性,从而监视节点的可用性。

从 HACMP V5.1 开始,心跳检测完全基于 RSCT 拓扑服务(因而 HACMP V5.1 只是“Enhanced Scalability”版本;使用直接由集群管理器守护进程监视的传统网络接口模块 (NIM) 的心跳检测已不再使用)。

执行心跳检测的方法是通过每个通信接口或设备在集群中的节点之间交换消息(Keep Alive 数据包)。

每个集群节点以特定间隔向其他集群节点发送心跳信号消息,并预期以特定间隔接收来自对应节点的心跳信号消息。如果消息接收停止,则 RSCT 将此情况视为故障,并告诉 HACMP,后者将采取适当的恢复操作。

心跳信号消息可通过以下网络发送:

  • TCP/IP 网络
  • 点对点非 IP 网络

为了防止集群分割(split brain),HACMP 必须能够区分节点故障和 TCP/IP 网络故障。TCP/IP 网络故障可能由有故障的网络元素(交换机、集线器和电缆)导致;在这种情况下,集群中的节点不能通过 IP 发送和接收检测信号消息(Keep Alive,KA),因此每个节点认为对等节点发生了故障,并尝试获取资源。这具有潜在的数据破坏风险,在使用并发资源时尤其是如此。

非 IP 网络是节点之间的直接连接(点对点),并且不使用 IP 来进行检测信号消息交换,因此不太容易受到 IP 网络元素故障的影响。如果使用了这些网络类型,则在 IP 网络发生故障的情况下,节点仍然能够交换消息,因此得出的判断是网络故障,从而不执行任何资源组活动。

为了避免 HACMP 中发生分割,我们建议:

  • 配置冗余网络(IP 和非 IP)
  • 同时使用 IP 和非 IP 网络。

若要了解一个建议的两节点集群配置,图 3。


图 3 HACMP 集群中的信号检测

通过磁盘的信号检测

通过磁盘的心跳检测 (diskhb) 是 HACMP V5.1 中引入的新功能,旨在提供预防集群分割的附加保护和简化的非 IP 网络配置,尤其是用于太难或无法实现 RS232、目标模式 SSA 或目标模式 SCSI 连接的环境。

此类网络可以使用任何类型的共享磁盘存储(光纤通道、SCSI 或 SSA),只要用于交换 KA 消息的磁盘是 AIX 增强并发卷组的一部分。用于信号检测网络的磁盘并不专门用于此目的;可以将它们用于存储应用程序共享数据(有关更多信息,请参见图 3)。

客户提出了使用目标模式的光纤通道连接请求,但是由于异构(非标准发起设备和目标功能)的 FC 环境(适配器、存储子系统、SAN 交换机和集线器),此方法很难实现和支持。

通过使用共享磁盘来交换消息,非 IP 网络的实现更加可靠,并且不依赖所使用的硬件类型。

此外,在 SAN 环境中,当使用光纤来连接设备时,这种非 IP 连接的长度具有与 SAN 相同的距离限制,

因而允许实现超长的点对点网络。

通过将某个磁盘定义为增强的并发卷组的一部分,该磁盘的一部分(扇区)将不用于任何 LVM 操作,此磁盘部分将用于在两个节点之间交换消息。

使用通过磁盘的信号检测的规范如下:

  • 一个磁盘可用于两个节点之间的一个网络。同时在两个节点上使用 LVM 分配的物理卷 ID(physical volume ID,PVID)来标识要使用的磁盘。
  • 用于磁盘信号检测网络的建议配置是在每个存储机箱中将一个磁盘用于一对节点。
  • 要求将要使用的磁盘是某个增强并发卷组的一部分,虽然该卷组不一定要是活动的或者是某个资源组(并发或非并发)的一部分。唯一的限制在于,必须同时在两个节点上定义该卷组(volume group,VG)。

注意:增强并发卷组的集群锁机制不使用保留磁盘空间来进行通信(“传统”版本的 clvmd 要使用保留磁盘空间);它改为使用 RSCT 组服务。

通过 IP 别名的心跳检测

对于 IP 网络,现在引入了一个新的心跳检测功能:通过 IP 别名的信号检测。此功能是为不能或不适宜更改通信接口的基本 IP 地址的集群而提供的。

用于信号检测的 IP 别名是在 HACMP 服务启动时在现有 IP 地址之外配置的。用于此目的的 IP 地址必须与现有的 IP 地址在完全不同的子网中,并且不应该定义用于任何名称解析(/etc/hosts、BIND 等等)。此配置不需要任何附加的可路由子网。

与使用基本/启动 IP 地址来交换心跳信号消息不同,RSCT 使用 HACMP 定义的 IP 别名来为每个通信接口建立通信组(检测信号环)。

注意:在使用通过 IP 别名的心跳检测时,通信接口的基本/启动 IP 地址由不由RSCT 拓扑服务(从而由 HACMP)进行监视。通信接口将通过所分配的 IP 别名接受监视。

即使使用此技术,HACMP 仍然要求网络上的所有接口(所有节点中的接口)能够彼此通信(能够彼此看到对方的 MAC 地址)。

用于 IP 别名的子网掩码与用于服务 IP 地址的子网掩码相同。在定义用于信号检测的 IP 地址时,必须指定要用于信号检测的起始地址,并且必须确保有足够多与网络上使用的现有子网不发生冲突的子网可用(节点中的每个物理通信接口对应一个子网)。

例如,在一个三节点的集群中,所有节点都有三个定义在同一网络上的通信接口,则需要三个不可路由的子网。

假设所有节点都有三个以太网适配器(en0、en1 和 en2),子网掩码属于 C 类,并且要用于通过 IP 别名的信号检测的起始 IP 地址为 172.16.100.1,则为每个以太网适配器(通信接口)分配的别名将如表 1 所示。另请参见图 4 和图 5。

表 1 用于信号检测的 IP 别名

适配器/节点 节点 1 节点 2 节点 3 en0 172.16.100.1 172.16.100.2 172.16.100.3 en1 172.16.101.1 172.16.101.2 172.16.101.3 en2 172.16.102.1 172.16.102.2 172.16.102.3

用于通过 IP 别名的心跳检测的地址在集群同步过程中存储在 HACMPadapter ODM 类中。


图 4 信号检测别名地址分配

在 HACMP V5.1 中,可以配置通过 IP 别名的心跳检测,以便为使用任一种类型的 IPAT(通过 IP 别名或通过 IP 替换)的网络建立基于 IP 的检测信号环。所配置的 IPAT 类型将决定 HACMP 处理服务 IP 地址(标签)的方式:

  • 对于通过 IP 替换的 IPAT,服务标签将替换通信接口的基本(启动)地址,而不是替换心跳检测别名。
  • 对于通过 IP 别名的 IPAT,服务标签将用作通信接口以及基本 IP 地址的别名以及心跳检测别名。

通过 IP 别名的信号检测被定义为一个网络 (HACMP) 特征,并且是 HACMP 拓扑定义的组成部分。要启用此功能,用户必须在 HACMP 网络定义中指定起始地址。

要设置此特征,必须使用扩展 SMIT 菜单(针对集群拓扑)。可以在定义网络时定义此特征,或者可以在以后更改。


图 5 IP 别名管理

有关此主题的更多信息,请参阅红皮书《HACMP for AIX 5L V5.1 Planning and Installation Guide,》(SC23-4861-02) 中的第 3 章“Planning Cluster Network Connectivity”。

共享存储配置

大多数 HACMP 配置都需要共享存储。支持从多个主机进行访问的 IBM 磁盘子系统包括 SCSI、SSA、ESS 和 FAST。

还可以使用第三方 (OEM) 的存储设备和子系统,尽管其中大多数都没有直接经过 IBM 的 HACMP 使用认证。

有关这些设备的信息,请访问制造商各自的网站。

表 2 列出了可在 HACMP 集群用于共享访问的部分 IBM 存储设备(最常用的)。

表 2 外部存储子系统(此处列出的一些型号已经过时或者改变,请在正式设计时在 IBM 网站上进行查询或者咨询相关的技术支持)

IBM 7133 SSA 磁盘子系统,型号 D40 和 T40(支持最大 72.8 GB 的磁盘模块,每个 SSA 环中最多包括八个节点)。IBM Enterprise Storage Server (ESS),型号 E10、E20、F10 和 F20(通过 IBM FC/FICON 使用 SCSI 和光纤通道接口最多可以支持八个节点,功能代码:3021、3022 和 3023)IBM 2105-800 (ESS) Total Storage Enterprise Storage Server(FS 和 SCSI)IBM 7133 SSA 磁盘子系统,型号 D40 和 T40(支持最大72.8 GB 的磁盘模块,每个 SSA 环最多可包括八个节点)。IBM Total Storage FAStT,型号 200、500、600、700 和 900。

HACMP 还支持共享磁带驱动器(SCSI 或 FC)。共享磁带可通过 SCSI 或 FC 进行连接。不支持并发模式的磁带访问。

有关部分受支持的磁带子系统,请参见表 3。

表 3 磁带驱动器支持

IBM 3583 Ultrium 可伸缩磁带库,型号 L18、L32 和 L72 IBM 3584 Ultra™ 可伸缩磁带库,型号 L32 和 D32 IBM Total Storage Enterprise 3590 磁带驱动器,型号 H11 IBM Magstar® 3590 磁带驱动器,型号 E11 和 B11 IBM 3581 Ultrium Tape Autoloader,型号 H17 和 L17 IBM 3580 Ultrium 磁带驱动器,型号 H11 和 L11

有关受支持的存储和磁带驱动器的更新列表,请访问 IBM 网站,地址为:http://www-1.ibm.com/servers/eserver/pseries/ha/

还可以为 HACMP 配置非 IBM 共享存储子系统(磁盘和磁带子系统)。有关非 IBM 存储的列表,请参见各制造商的网站,以及 Availant 网站:http://www.availant.com/

共享 LVM 要求

HACMP 集群的共享 LVM 规划取决于共享磁盘访问方法和共享磁盘设备的类型。应该为共享 LVM 考虑的元素包括:

  • 数据保护方法
  • 存储访问方法
  • 存储硬件冗余

注意:HACMP 本身不提供存储保护。存储保护是通过以下途径提供的:

  • AIX(LVM 镜像)
  • 硬件 RAID

在本部分中,我们将提供有关存储级别的数据保护方法的信息,同时还将讨论 LVM 共享磁盘访问模式。

  • 非并发
  • “传统”并发(HACMP 并发逻辑卷管理器 – clvm)
  • 增强并发模式 (ECM),AIX 5L V5.1 及更高版本中的一个新选项

非并发、增强并发和并发

在非并发访问配置中,一次仅有一个集群节点可以访问共享数据。如果包含共享磁盘空间的资源组移动到另一个节点,则新节点将激活磁盘,并检查卷组、逻辑卷和文件系统的当前状态。

在非并发配置中,磁盘可共享为:

  • 原始物理卷
  • 原始逻辑卷
  • 文件系统

在并发访问配置中,磁盘上的数据并发地对所有节点可用。此模式不支持文件系统(JFS 或 JFS2)。

快速磁盘接管

HACMP V5.1 利用了新的 AIX 增强并发 LVM。在 AIX 5L V5.2 中,必须以增强并发模式创建任何新的并发卷组。

只有在 AIX 5L V5.2 中,增强并发卷组还可以用于文件系统(共享或非共享)。在故障转移情况下,快速磁盘接管选项利用此功能来加速接管共享文件系统的过程。

增强的并发卷组在资源组中的所有节点上启用,数据访问由 HACMP 进行协调。只有资源组在其上处于活动状态的节点才会以“并发主动”(concurrent active) 模式启用该卷组;

其他节点将以“被动”(passive) 模式启用该卷组。在“被动”模式下,不允许对该卷组执行高级操作。

注意:在将资源组用于快速磁盘接管选项时,拥有冗余网络和非 IP 网络是极其重要的。这将避免在“split brain”情况下发生数据破坏(毕竟,卷组处于并发模式)。

RAID 和 SSA 并发模式

RAID 并发模式卷组在功能上已过时,但是由于增强的并发模式提供了附加的功能,RAID 并发 VG 将在一段时间内继续受支持。RAID 和 SSA 并发模式卷组均受 HACMP V5.1 的支持,但是具有一些重要的限制:

  • 如果并发资源组包括运行 64 位内核的节点,则要求所有卷组都处于增强并发模式。
  • SSA 并发模式在 64 位内核上不受支持。
  • 带有 32 位内核的 SSA 磁盘仍然使用 SSA 并发模式。
  • 不能将 C-SPOC 实用程序用于 RAID 并发卷组。必须将这些卷组转换为增强并发模式(否则,AIX 将它们视为非并发的)。
  • 在 AIX 5L V5.1 中,仍然可以创建 SSA 并发 VG(使用 32 位内核),但是在 AIX 5L V5.2 中,不能创建新的 HACMP 并发 VG;必须以增强并发模式创建所有的新 VG。

LVM 需求

AIX 的逻辑卷管理器(Logical Volume Manager,LVM)组件通过协调物理和逻辑存储之间的数据映射来管理存储。逻辑存储可以扩展和复制,并且可以跨越多个物理磁盘和机箱。

主要的 LVM 组件包括:

  • 物理卷

一个物理卷(physical volume,PV)表示 AIX 所看到的单个物理磁盘 (hdisk*)。物理卷划分为物理分区(physical partition,PP),后者表示 LVM 使用的物理分配单元。

  • 卷组

卷组(volume group,VG)是一组物理卷,AIX 将其视为一个连续的可寻址磁盘区域。在 HACMP 中,卷组及其所有逻辑卷可以属于某个共享资源组。一个卷组不能属于多个资源组(resource group,RG)。

  • 物理分区

物理分区 (PP) 是 VG 中的分配单元。PV 划分为 PP(在将 PV 添加到 VG 时),并且 PP 用于 LV(每个逻辑分区 (LP) 分配一个、两个或三个 PP)。

  • 卷组描述符区域(Volume Group Descriptor Area,VGDA)

VGDA 是磁盘上的一个区域,其中包含有关该卷组中的存储分配的信息。

对于单磁盘卷组,存在两个 VGDA 副本。对于双磁盘 VG,存在三个 VGDA 副本:一个磁盘上有两个 VGDA,另一个磁盘上有一个 VGDA。对于由三个或更多 PV 组成的 VG,卷组中的每个磁盘上存在一个 VGDA。

  • 定额(Quorum)

要使某个活动的 VG 维持活动状态,必须有一个 VGDA“定额”(50% + 1) 可用。此外,如果某个 VG 将定额选项设置为“off”,当一个 VGDA 副本丢失时,则无法将其激活(无“force”选项)。如果关闭了定额,系统管理员必须知道该 VG 的映射,以确保数据完整性。

  • 逻辑卷

逻辑卷(logical volume,LV)是一组逻辑分区,AIX 使其可作为单个存储实体来使用。逻辑卷可以用作原始存储空间,或用作文件系统的存储。在 HACMP 中,属于某个 VG 的逻辑卷已经属于某个资源组,并且不能属于另外一个资源组。

  • 逻辑分区

逻辑分区(logical partition,LP)是逻辑卷的空间分配单元,并且是物理分区的逻辑视图。使用 AIX LVM,可以将逻辑分区映射到一个、两个或三个物理分区,以实现 LV 镜像。

注意:虽然可以将 LVM 镜像用于任何类型的磁盘,但是在使用 IBM 2105 Enterprise Storage Servers 或 FAStT 存储服务器时,您可以忽略此选项。这些存储子系统(以及某些非 IBM 存储子系统)通过使用各种级别的 RAID 来提供自己的数据冗余机制。

  • 文件系统

文件系统(file system,FS)实际上是用于存储文件和目录的简单数据库。

AIX 中的文件系统存储在单个逻辑卷上。文件系统(JFS 或 JFS2)的主要组件是包含数据、文件系统日志和文件系统设备驱动程序的逻辑卷。HACMP 同时支持使用 JFS 和 JFS2 作为共享文件系统,不过要注意,日志必须在一个单独的逻辑卷上(JFS2 可能还有内联日志,但这在 HACMP 中不受支持)。

卷组的强制启用

HACMP V5.1 提供了一个新功能,即在节点上强制启用某个卷组的选项。在接管过程中,如果正常启用命令在该卷组上失败(缺乏定额),则在接管节点上启用该卷组之前,HACMP 将确保该 VG 中每个逻辑卷的每个逻辑分区至少有一个有效副本可用。

只要存在一个有效的数据副本可用,强制启用某个卷组使您可以将卷组置于在线并保持在线(作为资源组的一部分)。应该仅对具有镜像逻辑卷的卷组使用强制启用选项,并慎用此功能以避免创建分割的集群。

注意:对于卷组中用于强制启用选项的逻辑卷,应该指定非常严格的分配策略。这样,LVM 将确保逻辑卷的副本始终在单独的磁盘上,并提高强制启用操作一个或多个磁盘发生故障后的成功机会。

在属于资源组的 VG 失去一个或多个磁盘 (VGDA) 情况下的接管中,此选项非常有用。如果不使用此选项,资源组将不会在接管节点上激活,从而使应用程序不可用。

当在接管情况下使用卷组的强制启用选项时,HACMP 首先尝试正常的 varyonvg 命令。如果此尝试由于缺乏定额而失败,则在尝试强制将卷置于在线之前,HACMP 将检查数据的完整性,以确保卷组中所有的数据至少存在一个可用的副本。如存在,则运行 varyonvg –f 命令;如不存在,该卷组保持离线,并且资源组将处于错误状态。

注意:用户仍然可以使用打破定额 (quorum buster) 的磁盘或自定义脚本来强制启用某个卷组,但是 HACMP 中新的强制启用属性将自动化此操作,客户实施的过程现在可以变得轻松了。

有关更多信息,请参见《HACMP for AIX 5L V5.1 Planning and Installation Guide》SC23-4861-02 中的第 5 章“Planning Shared LVM Components”。