红帽企业 Linux 集群套件

作者:Khurram Shiraz

当关键任务应用程序发生故障时,您的业务也会随之失败。这在当今环境中通常是真实的写照,大多数组织花费数百万美元使其服务能够全年 365 天、每周 7 天、每天 24 小时可用。无论是服务外部客户还是内部客户,组织都在部署高可用性解决方案,以使其应用程序高度可用。

鉴于这种日益增长的需求,几乎每个 IT 供应商目前都在为其特定平台提供高可用性解决方案。著名商业高可用性解决方案包括 IBM 的 HACMP、Veritas 的 Cluster Server 和 HP 的 Serviceguard。

如果您正在红帽企业 Linux 上寻找商业高可用性解决方案,那么最佳选择可能是红帽集群套件。

2002 年初,红帽推出了其红帽企业 Linux 产品系列的首个成员,红帽企业 Linux AS(最初称为红帽 Linux 高级服务器)。从那时起,产品系列稳步增长,现在包括红帽企业 Linux ES(适用于入门级和中端服务器)和红帽企业 Linux WS(适用于桌面/工作站)。这些产品专为企业环境中的使用而设计,旨在提供卓越的应用程序支持、性能、可用性和可扩展性。

红帽企业 Linux AS 2.1 版本的原始版本包含高可用性集群功能,作为基本产品的一部分。较小的红帽企业 Linux ES 产品中未包含此功能。然而,随着红帽企业 Linux 产品系列的成功,很明显,高可用性集群是一项应该为 AS 和 ES 服务器产品提供的功能。因此,随着 2003 年 10 月红帽企业 Linux 版本 3 的发布,高可用性集群功能被打包到一个名为红帽集群套件的可选分层产品中,并经过认证可在企业 Linux AS 和企业 Linux ES 产品上使用。

RHEL 集群套件是单独许可的产品,可以从红帽购买,作为红帽基本 ES Linux 许可证的补充。

红帽集群套件概述

红帽集群套件具有两个主要功能。一个是提供高可用性的集群管理器,另一个功能称为 IP 负载均衡(最初称为 Piranha)。集群管理器和 IP 负载均衡是互补的高可用性技术,可以单独或组合使用,具体取决于应用程序需求。这两种技术都集成在红帽的集群套件中。在本文中,我将重点介绍集群管理器。

表 1 显示了 RHEL 集群管理器的主要组件。

表 1. RHEL 集群管理器组件

软件子系统组件用途
Fence(隔离)fenced为特定硬件平台提供隔离基础设施。
DLMlibdlm, dlm-kernel包含分布式锁管理 (DLM) 库。
CMANcman包含集群管理器 (CMAN),用于管理集群成员资格、消息传递和通知。
GFS 和相关锁Lock_NoLock包含共享文件系统支持,该文件系统可以同时挂载在多个节点上。
GULMgulm包含 GULM 锁管理用户空间工具和库(替代使用 CMAN 和 DLM)。
Rgmanagerclurgmgrd, clustat管理集群服务和资源。
CCSccsd, ccs_test 和 ccs_tool包含集群配置服务守护进程 (ccsd) 和关联文件。
集群配置工具System-config-cluster包含集群配置工具,用于配置集群并以图形方式显示节点、资源、隔离代理和集群服务的当前状态。
Magmamagma 和 magma-plugins包含集群锁管理和所需插件的接口库。
IDDEViddev包含用于识别设备格式化的文件系统(或卷管理器)的库。
共享存储和数据完整性

锁管理是一项常见的集群基础设施服务,它为其他集群基础设施组件提供了一种机制,以同步它们对共享资源的访问。在红帽集群中,DLM(分布式锁管理器)或 GULM(Grand Unified Lock Manager)是可能的锁管理器选择。GULM 是 GFS、GNBD 和 CLVM 的基于服务器的统一集群/锁管理器。它可以代替 CMAN 和 DLM 使用。单个 GULM 服务器可以在独立模式下运行,但会为 GFS 引入单点故障。也可以一起运行三个或五个 GULM 服务器,在这种情况下,可以分别容忍一个或两个服务器的故障。GULM 服务器通常在专用机器上运行,尽管这不是严格要求。

在我的集群实现中,我使用了 DLM,它在每个集群节点中运行。DLM 是小型集群(最多两个节点)的理想选择,因为它消除了 GULM 机制施加的仲裁要求)。

基于 DLM 或 GLM 锁定功能,RHEL 集群可以使用两种基本技术来确保并发访问环境中的数据完整性。传统方法是使用 CLVM,它在大多数基于 LVM 的逻辑卷的 RHEL 集群实现中运行良好。

另一种技术是 GFS。GFS 是一种集群文件系统,允许节点集群同时访问在节点之间共享的块设备。它采用分布式元数据和多个日志来优化集群中的操作。为了维护文件系统完整性,GFS 使用锁管理器(DLM 或 GULM)来协调 I/O。当一个节点更改 GFS 文件系统上的数据时,使用该文件系统的其他集群节点会立即看到该更改。

因此,当您实现具有并发数据访问要求的 RHEL 集群时(例如,在 Oracle RAC 实现的情况下),您可以使用 GFS 或 CLVM。在大多数红帽集群实现中,GFS 与直接访问配置一起使用,以从所有集群节点访问共享 SAN。但是,出于相同的目的,您也可以在连接到 LAN 的集群中部署 GFS,该 LAN 具有使用 GNBD(全局网络块设备)或两个 iSCSI(互联网小型计算机系统接口)设备的服务器。

GFS 和 CLVM 都使用来自锁管理器的锁。但是,GFS 使用来自锁管理器的锁来同步对文件系统元数据(在共享存储上)的访问,而 CLVM 使用来自锁管理器的锁来同步对 LVM 卷和卷组(也在共享存储上)的更新。

对于非并发 RHEL 集群实现,您可以依赖 CLVM,也可以使用基于原生 RHEL 日志记录的技术(例如 ext2 和 ext3)。对于非并发访问集群,数据完整性问题是最小的;我尝试通过使用原生 RHEL 操作系统技术来保持我的集群实现简单。

隔离基础设施

隔离也是每个基于 RHEL 的集群实现的重要组成部分。隔离实现的主要目的是确保集群环境中的数据完整性。

事实上,为了确保数据完整性,一次只能有一个节点运行集群服务并访问集群服务数据。在集群硬件配置中使用电源开关使节点能够在故障转移过程中重新启动该节点的集群服务之前,对另一个节点进行电源循环。这可以防止任何两个系统同时访问相同的数据并损坏数据。强烈建议使用隔离设备(远程供电、关闭和重启集群节点的硬件或软件解决方案)来保证所有故障条件下的数据完整性。基于软件的看门狗定时器是用于确保集群服务故障转移正确操作的替代方案;但是,在大多数 RHEL 集群实现中,都使用硬件隔离设备,例如 HP ILO、APC 电源开关、IBM BladeCenter 设备和 Bull NovaScale Platform Administration Processor (PAP) 接口。

请注意,对于具有共享存储的 RHEL 集群解决方案,隔离基础设施的实现是强制性要求。

RHEL 集群的分步实施

RHEL 集群的实施始于选择合适的硬件和连接。在大多数实现中(没有 IP 负载均衡),共享存储与两台或多于两台运行 RHEL 操作系统和 RHEL 集群套件的服务器一起使用。

一个经过适当设计的集群,无论您是构建基于 RHEL 的集群还是基于 IBM HACMP 的集群,都不应包含任何单点故障。牢记这一点,您必须从集群设计中消除任何单点故障。为此,您可以将服务器物理放置在两个单独的机架中,并配备冗余电源。您还必须从用于集群的网络基础设施中消除任何单点故障。理想情况下,您应该在每个集群节点上至少有两个网卡,并且应该使用两个网络交换机来构建集群实现的网络基础设施。

软件安装

构建 RHEL 集群始于在两个集群节点上安装 RHEL。我的设置有两台 HP Proliant 服务器 (DL740),带有共享光纤存储 (HP MSA1000 存储)。我从在两个节点上安装 RHEL v4 开始。最好安装最新的可用操作系统版本及其更新。我选择了 v4 update 4(这是我构建该集群时的最新 RHEL 版本)。如果您拥有红帽的有效软件订阅,则可以登录到红帽网络,然后转到软件频道以下载最新的可用更新。稍后,一旦您下载了 ISO 映像,就可以使用任何合适的软件将其刻录到 CD 中。在 RHEL 操作系统安装期间,您将经历各种配置选择,其中最重要的是日期和时区配置、root 用户密码设置、防火墙设置和操作系统安全级别选择。另一个重要的配置选项是网络设置。这些设置的配置可以留到稍后阶段,尤其是在构建具有 Ether-channel(或以太网绑定配置)的高可用性解决方案时。

安装操作系统后,您可能需要安装其他驱动程序。在我的例子中,我下载了 DL740 服务器的 RHEL 支持包(HP Proliant 支持包,可从 h18004.www1.hp.com/products/servers/linux/dl740-drivers-cert.html 获取)。

下一步是安装集群软件包本身。此软件包同样可从 RHEL 网络获得,您绝对必须选择最新的可用集群软件包。我为我的设置选择了 rhel-cluster-2.4.0.1,这是当时最新的可用集群套件。

下载后,软件包将采用 tar 格式。解压缩它,然后至少安装以下 RPM,以便可以安装和配置带有 DLM 的 RHEL 集群

  • Magma 和 magma-plugins

  • Perl-net-telnet

  • Rgmanager

  • System-config-cluster

  • DLM 和 dlm-kernel

  • DLM-kernel-hugemem 和 SMP 支持 DLM

  • Iddev 和 ipvsadm

  • Cman、cman-smp、cman-hugemem 和 cman-kernelheaders

  • Ccs

安装供应商相关的硬件支持驱动程序和 RHEL 集群套件后,重新启动两个 RHEL 集群节点。

网络配置

对于网络配置,最好的方法是使用网络配置 GUI。但是,如果您计划使用以太网通道绑定,则配置步骤略有不同。

以太网通道绑定通过将两个以太网设备组合成一个虚拟设备来实现容错网络连接。生成的通道绑定接口确保如果一个以太网设备发生故障,另一个设备将变为活动状态。理想情况下,来自这些以太网设备的连接应连接到单独的以太网交换机或集线器,以便即使在以太网交换机和集线器级别也消除单点故障。

要为通道绑定配置两个网络设备,请在节点 1 上执行以下操作

1) 在 /etc/modules.conf 中创建绑定设备。例如,我在每个集群节点上使用了以下命令

alias bond0 bonding
options bonding miimon=100 mode=1

这样做会加载具有 bond0 接口名称的绑定设备,并将选项传递给绑定驱动程序,以将其配置为从属网络接口的活动-备份主设备。

2) 编辑 eth0 的 /etc/sysconfig/network-scripts/ifcfg-eth0 配置文件和 eth1 接口的 /etc/sysconfig/network-scripts/ifcfg-eth1 文件,以便这些文件显示相同的内容,如下所示

DEVICE=ethx
USERCTL= no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

这会将 ethX(将 X 替换为以太网设备的分配编号)从属到 bond0 主设备。

3) 为绑定设备创建一个网络脚本(例如,/etc/sysconfig/network-scripts/ifcfg-bond0),它将如下例所示

DEVICE=bond0
USERCTL=no
ONBOOT=yes
BROADCAST=172.16.2.255
NETWORK=172.16.2.0
NETMASK=255.255.255.0
GATEWAY=172.16.2.1
IPADDR=172.16.2.182

4) 重新启动系统以使更改生效。

5) 类似地,在节点 2 上,重复相同的步骤,唯一的区别是文件 /etc/sysconfig/network-scripts/ifcfg-bond0 应包含 IPADDR 条目,其值为 172.16.2.183。

由于这些配置步骤,您将最终得到两个 RHEL 集群节点,其 IP 地址分别为 172.16.2.182 和 172.16.2.183,这些 IP 地址已分配给虚拟以太网通道(每个以太网通道的两个底层物理以太网适配器)。

现在,您可以轻松地在集群节点上使用网络配置 GUI 来设置其他网络配置详细信息,例如主机名和主/辅助 DNS 服务器配置。我将 Commsvr1 和 Commsvr2 设置为集群节点的主机名,并确保从 DNS 服务器和 /etc/hosts 文件中,长名称和短名称的名称解析都能正常工作。

默认情况下,RHEL 集群使用 /etc/hosts 进行节点名称解析。集群节点名称需要与以下命令的输出匹配uname -n或 /etc/sysconfig/network 中 HOSTNAME 的值。

列表 1. 每个服务器上 /etc/hosts 文件的内容

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain   localhost
172.16.2.182    Commsvr1        Commsvr1.kmefic.com.kw
172.16.2.183    Commsvr2
172.16.1.186    Commilo1        Commilo1.kmefic.com.kw
172.16.1.187    Commilo2        Commilo2.kmefic.com.kw
172.16.2.188    Commserver
192.168.10.1    node1
192.168.10.2    node2
172.16.2.4      KMETSM

如果每个集群节点中都有一个额外的以太网接口,那么始终建议配置一个单独的 IP 网络作为集群节点之间心跳信号的附加网络。重要的是,默认情况下,RHEL 集群在集群节点上使用 eth0 进行心跳信号。但是,仍然可以使用其他接口进行额外的心跳信号交换。

对于这种类型的配置,您可以简单地使用网络配置 GUI 在 eth2 上分配 IP 地址,例如 192.168.10.1 和 192.168.10.2,并从 /etc/hosts 文件中解析它。

隔离设备的设置

由于我使用的是 HP 硬件,因此我依赖 HP ILO 设备的配置作为集群的隔离设备。但是,您可以考虑配置其他隔离设备,具体取决于用于集群配置的硬件类型。

要配置 HP ILO,您必须重新启动服务器并按 F8 键进入 ILO 配置菜单。基本配置相对简单;您必须为 ILO 设备分配 IP 地址以及 ILO 设备的名称。我为节点 1 上的 ILO 设备分配了 172.16.1.100 和 Commilo1 作为 ILO 设备名称,为节点 2 上的 ILO 设备分配了 172.16.1.101 和 Commilo2 作为 ILO 设备名称。但是,请务必将以太网电缆连接到 ILO 适配器,这些适配器通常在 HP 服务器的背面清楚地标记。

重新启动后,您可以使用 Linux 服务器上的浏览器访问 ILO 设备。默认用户名是 Administrator,密码通常在与 HP 服务器关联的硬拷贝标签上提供。稍后,您可以使用相同的基于 Web 的 ILO 管理界面将 Administrator 密码更改为您选择的密码。

共享存储驱动器和仲裁分区的设置

在我的集群设置环境中,我使用了基于 HP 光纤的共享存储 MSA1000。我使用 HP smart array 实用程序配置了 73.5GB 的 RAID-1,然后使用选择性主机呈现功能将其分配给我的两个集群节点。

重新启动两个节点后,我使用了 HP 光纤实用程序,例如 hp_scan,以便两个服务器都应该能够物理地看到此阵列。

要验证共享存储对两个集群节点的物理可用性,请在 /dev/proc/proc 文件中查找类似于 /dev/sda 或 /dev/sdb 的条目,具体取决于您的环境。

一旦您在操作系统级别找到您的共享存储,请根据您的集群存储要求对其进行分区。我在我的一个集群节点上使用了 parted 工具来对共享存储进行分区。我创建了两个小的主分区来保存原始设备,并创建了第三个主分区来保存共享数据文件系统

Parted> select /dev/sda

Parted > mklabel /dev/sda msdos

Parted > mkpart primary ext3 0 20

Parted > mkpart primary ext3 20 40

Parted > mkpart primary ext3 40 40000

我重新启动了两个集群节点,并使用以下内容创建了 /etc/sysconfig/rawdevices 文件

/dev/raw/raw1           /dev/sda1
/dev/raw/raw2           /dev/sda2

重新启动两个节点上的 rawdevices 服务会将原始设备配置为仲裁分区

/home/root> services rawdevices restart

然后,我使用以下命令在第三个主分区上创建了 JFS2 文件系统mke2jfs命令;但是,其相关条目不应放在任一集群节点上的 /etc/fstab 文件中,因为此共享文件系统将受集群套件的 Rgmanager 控制

/home/root> mke2jfs -j -b 4096 /dev/sda3 

现在,您可以在两个节点上创建一个名为 /shared/data 的目录结构,并通过在每个集群节点上逐个挂载该文件系统来验证从两个集群节点访问共享文件系统的可访问性(mount /dev/sda3 /shared/data)。但是,切勿尝试同时在两个集群节点上挂载此文件系统,因为它可能会损坏文件系统本身。

集群配置

几乎所有集群基础设施所需的东西都已完成,因此下一步是配置集群本身。

RHEL 集群可以通过多种方式配置。但是,配置 RHEL 集群的最简单方法是使用 RHEL GUI 并转到系统管理→集群管理→创建集群。

我创建了一个集群,集群名称为 Commcluster,节点名称为 Commsvr1 和 Commsvr2。我为两个节点添加了隔离——隔离设备分别为 Commilo1 和 Commilo2——以便每个节点都将具有一个隔离级别和一个隔离设备。如果您的环境中有多个隔离设备,则可以为每个节点添加另一个隔离级别和更多隔离设备。

我还添加了一个共享 IP 地址 172.16.2.188,它将用作此集群的服务 IP 地址。此 IP 地址也应被用作应用程序或数据库的服务 IP 地址(例如,如果您打算在集群中使用 Oracle 数据库,则用于监听器配置)。

我添加了一个故障转移域,即 Kmeficfailover,优先级按以下顺序给出

Commsvr1 
Commsvr2

我添加了一个名为 CommSvc 的服务,然后将该服务放入上述定义的故障转移域中。下一步是向该服务添加资源。我添加了一个文件系统类型的私有资源,其特征为 device=/dev/sd3,挂载点为 /shared/data,挂载类型为 ext3。

我还向 CommSvc 服务添加了一个脚本类型的私有资源 (/root/CommS.sh)。此脚本将启动我的基于 C 的应用程序,因此,它必须存在于两个集群节点上的 /root 目录中。拥有正确的 root 所有权和安全性非常重要;否则,您可能会在集群启动和关闭期间遇到不可预测的行为。

应用程序或数据库启动和关闭脚本对于基于 RHEL 的集群正常运行非常重要。RHEL 集群使用相同的脚本来提供应用程序/数据库监控和高可用性,因此 RHEL 集群中使用的每个应用程序脚本都应具有特定格式。

所有此类脚本至少应具有启动和停止子部分,以及状态子部分。当应用程序或数据库可用且正在运行时,脚本的状态子部分应返回值 0,而当应用程序未运行或不可用时,它应返回值 1。脚本还应包含一个重新启动子部分,如果发现应用程序已死,该子部分会尝试重新启动服务。

RHEL 集群始终尝试在之前是应用程序所有者的同一节点上重新启动应用程序,然后再尝试将该应用程序移动到另一个集群节点。列表 2 中显示了一个示例应用程序脚本,该脚本用于我的 RHEL 集群实现中(为遗留的基于 C 的应用程序提供高可用性)。

列表 2. 示例应用程序脚本

#Script Name: CommS.sh
#Script Purpose: To provide application 
#start/stop/status under Cluster
#Script Author: Khurram Shiraz

#!/bin/sh
basedir=/home/kmefic/KMEFIC/CommunicationServer
case $1 in
'start')
cd $basedir
su kmefic -c "./CommunicationServer -f Dev-CommunicationServer.conf"
exit 0
;;
'stop')
z=`ps -ef | grep Dev-CommunicationServer | grep -v "grep"| 
 ↪awk ' { print $2 } '
`
if [[ $? -eq 0 ]]
then
kill -9 $z
fuser -mk /home/kmefic
exit 0
fi
;;
'restart')
   /root/CommunicationS.sh stop
   sleep 2
  echo Now starting...... 
  /root/CommunicationS.sh start 
    echo "restarted"
    ;;

'status')
ps -U kmefic | grep CommunicationSe 1>/dev/null
if [[ $? = 0 ]]
then
exit 0
else
exit 1
fi
;;
esac

最后,您必须将共享 IP 地址 (172.16.2.188) 添加到故障转移域中的服务,以便该服务应包含三个资源:两个私有资源(一个文件系统和一个脚本)和一个共享资源,即集群的服务 IP 地址。

最后一步是在集群节点之间同步集群配置。RHEL 集群管理和配置工具提供了一个“将配置保存到集群”选项,该选项将在您启动集群服务后出现。因此,对于首次同步,最好手动将集群配置文件发送到所有集群节点。您可以轻松地使用 scp 命令在集群节点之间同步 /etc/cluster/cluster.conf 文件

/home/root> scp /etc/cluster/cluster.conf Commsvr2:/etc/cluster/cluster.conf

同步后,您可以在两个集群节点上启动集群服务。您应该按顺序启动和停止 RHEL 相关的集群服务。

启动

service ccsd start
service cman start
service fenced start
service rgmanager start

停止

service rgmanager stop
service fenced stop
service cman stop
service ccsd stop

如果您使用 GFS,则 gfs 和 clvmd 服务的启动/关闭必须包含在此序列中。

附加注意事项

在我的环境中,我决定不在 RHEL 启动时启动集群服务,也不在关闭 RHEL 框时自动关闭这些服务。但是,如果您的业务需要 24/7 服务可用性,则可以使用 chkconfig 命令轻松完成此操作。

另一个考虑因素是将集群消息记录在不同的日志文件中。默认情况下,所有集群消息都进入 RHEL 日志消息文件 (/var/log/messages),这使得在某些情况下集群故障排除有些困难。为此,我编辑了 /etc/syslog.conf 文件以使集群能够将事件记录到与默认日志文件不同的文件中,并添加了以下行

daemon.* /var/log/cluster

要应用此更改,我使用 service syslog restart 命令重新启动了 syslogd。另一个重要步骤是在 /etc/logrotate.conf 文件中指定集群日志文件的轮换时间段(默认设置为每周轮换)

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler
/var/log/boot.log /var/log/cron /var/log/cluster {
    sharedscripts postrotate
          /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2>
          /dev/null || true
    endscript
}

您还必须特别注意保持 UIDs 和 GIDs 在集群节点之间同步。这对于确保维护正确的权限非常重要,尤其是在参考共享数据文件系统时。

GRUB 也需要符合套件环境的特定需求。例如,在 RHEL 集群环境中,许多系统管理员会将 GRUB 选择超时减少到较低的值,例如两秒,以加快系统重新启动时间。

数据库与 RHEL 集群的集成

相同的 RHEL 集群基础设施可用于为数据库(例如 Oracle、MySQL 和 IBM DB2)提供高可用性。

要记住的最重要的事情是将与数据库相关的服务基于共享 IP 地址——例如,您必须基于共享服务 IP 地址配置 Oracle 监听器。

接下来,我将用简单的步骤解释如何使用已配置的 RHEL 集群为 MySQL 数据库服务器提供高可用性,MySQL 数据库服务器无疑是 RHEL 上最常用的数据库之一。

我假设与 MySQL 相关的 RPM 已安装在两个集群节点上,并且 RHEL 集群已配置了服务 IP 地址 172.16.2.188。

现在,您只需使用集群配置工具定义一个故障转移域(选择您选择的集群节点具有更高的优先级)。此故障转移域将具有 MySQL 服务,该服务又将具有两个私有资源和一个共享资源(服务 IP 地址)。

其中一个私有资源应为文件系统类型(在我的配置中,它的挂载点为 /shared/mysqld),另一个私有资源应为脚本类型,指向 /etc/init.d/mysql.server 脚本。此脚本的内容应在两个集群节点上都可用,如 LJ FTP 站点 ftp.linuxjournal.com/pub/lj/listings/issue163/9759.tgz 上的列表 3 所示。

此脚本将数据目录设置为 /shared/mysqld/data,该目录在我们的共享 RAID 阵列上可用,并且应可从两个集群节点访问。

可以使用任何 MySQL 客户端轻松完成 MySQL 数据库高可用性的测试。我使用了 SQLyog,这是一个基于 Windows 的 MySQL 客户端。我连接到 Commsvr1 上的 MySQL 数据库,然后使用 halt 命令使此集群节点崩溃。由于此系统崩溃,RHEL 集群事件被触发,MySQL 数据库在 Commsvr2 上自动重新启动。整个故障转移过程花费了一到两分钟,并且发生得非常无缝。

总结

RHEL 集群技术提供了一种可靠的高可用性基础设施,可用于满足数据库以及遗留应用程序的 24/7 业务需求。要记住的最重要的事情是,最好在实际实施之前仔细计划,并在 RHEL 集群上线之前彻底测试您的集群和所有可能的故障转移场景。一份文档完善的集群测试计划在这方面也很有帮助。

Khurram Shiraz 是科威特 KMEFIC 的高级系统管理员。在他八年的 IT 经验中,他主要从事 IBM 技术和产品方面的工作,尤其是 AIX、HACMP 集群、Tivoli 和 IBM SAN/NAS 存储。他还曾在 IBM 集成技术服务集团工作。他的专业领域包括基于 pSeries、Linux 和 Windows 基础设施的高可用性和灾难恢复解决方案的设计和实施。可以通过 aix_tiger@yahoo.com 与他联系。

加载 Disqus 评论