网络安全规划

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

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

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

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

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

 

通过使用集群安全通信子系统,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节点 3en0172.16.100.1172.16.100.2172.16.100.3en1172.16.101.1172.16.101.2172.16.101.3en2172.16.102.1172.16.102.2172.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 和 L72IBM 3584 Ultra™ 可伸缩磁带库,型号 L32 和 D32IBM Total Storage Enterprise 3590 磁带驱动器,型号 H11IBM Magstar® 3590 磁带驱动器,型号 E11 和 B11IBM 3581 Ultrium Tape Autoloader,型号 H17 和 L17IBM 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”。

选择磁盘技术

HACMP V5.1 支持下列存储技术:SCSI、SSA 和光纤通道(例如 FAStT 和 ESS 磁盘子系统)。受支持的外部存储子系统(IBM 制造)的完整列表可以在以下 IBM 网站上找到: