详细了解如何通过 IBM® System Director Virtual Availability Manager 实现 Xen 虚拟服务器的高可用性。Virtual Availability Manager 包含在 IBM System Director Virtualization Manager 包中,它是 IBM Director 的扩展。本文将向您介绍各个步骤,包括先决条件、设置和故障诊断等,使您开始实现快速交付虚拟高可用性功能。
本文介绍的步骤可以帮助您使用 IBM System Director Virtual Availability Manager 实现 Xen 虚拟服务器的高可用性。这些步骤建立在 IBM Blade Server HS21 和 IBM Storage DS4300 的基础之上。
先决条件
开始之前,您需要三个安装了 SUSE Linux 10 SP1 的 HS21 刀片服务器,并且应当对其中的两个刀片服务器 blade2 和 blade3 配置共享存储,并且共享存储区域应当大于 19GB。
为主机服务器配置环境
执行以下步骤为您的主机服务器配置环境:
- 从 SUSE 10 SP1 Install 映像文件安装必要的软件包:
- 至少 2.0.8 版本的 heartbeat
- 至少 1.2.2 版本的 ocfs2-tools
- 至少 2.5.5 版本的 evms-ha
- 至少 2.4.2 版本的 python-curses
- 安装 2.6.16.53 版本之后的 Xen 内核 — 该版本为 ocfs2 包提供了补丁。
- 配置防火墙:
- 为 Virtual Availability Manager 配置防火墙
- 允许为 NFS Server 和 SLP Daemon 提供服务
- 允许 TCP 端口 3268, 3269, 15988 15989 6988 和 UDP 端口 2407
- 在系统服务中禁用 Service Location Protocol (SLP)。
- 通过运行 ls /dev/mapper 命令检查共享存储。结果应当如下所示:
3600a0b800017939900003573484f4be0 3600a0b800017939900003573484f4be0-part1 3600a0b800017939900003573484f4be0-part4 3600a0b800017939900003573484f4be0-part5 control
如果得出不同的结果,那么可能是因为没有打开多个路径。运行 chkconfig boot.multipath 和 chkconfig multipathd 命令打开多个路径。 - 确保两台主机可以互相识别。如果使用 DNS 配置两个主机名,那么要为两台主机配置正确的 DNS 服务器。如果手动配置主机名,则需要编辑两台主机上的 /etc/hosts 文件,将另一台主机包含进来。这表示在两台主机上的这个文件都包含两条记录,一条是关于自身,一条关于另一台主机。
- blade2 和 blade3 主机上的时间/日期设置应当和服务器 blade1 一致;否则 IBM Director 服务器会认为它们处于脱机状态。
您已经成功配置了环境;现在让我们安装与 Virtual Availability Manager 有关的软件。
安装 Virtual Availability Manager 软件
要安装与 IBM Director Virtual Availability Manager 有关的软件,请执行以下步骤:
- 在服务器上安装相关软件,实现服务器 blade1 的高可用性(IBM Director Server 5.20.2 和 IBM Director Virtualization Manager 1.2 Server)。Director Virtualization Manager 附带了 Virtual Availability Manager Server。
- 在服务器 blade2 和 blade3 上安装相关软件(Director Agent Core server version 5.20.2 和 IBM Director Virtualization Manager 1.2 Agent,其中附带了 Virtual Availability Manager Agent)。当在主机服务器上安装 Virtualization Manager Agent 时,选择稍后创建主映像,并且不要将物理服务器克隆到虚拟服务器中。
创建高可用性(HA)集群
要创建高可用性集群,执行以下操作:
- 将主机添加到 IBM Director Server 并请求访问它们。然后检查主机的属性 — 对象应该保持联机状态,其代理级别应该为一级,支持的协议应为 SSH 和 CIM。
如果主机处于脱机状态,或者不支持 CIM 协议,那么确保使用 service cimserverd status 命令在主机上运行 cimserverd 服务。如果 cimserverd 处于停止状态,请启动它。
如果主机的代理级别为 0,请临时关闭防火墙并重新将主机添加到 IBM Director Server。
- 打开 IBM System Director Virtualization Manager Web 界面,并从 Director Console 中选择任务 Virtual Servers and Hosts。这将打开 IBM System Director Virtualization Manager Web 界面。
- 选择 Hardware and Software 节点下的 Create Virtual Farm 任务,然后执行以下操作:
- 输入虚拟集群名,如 HAFarm。
- 选择 High Availability with workload management 作为集群功能。
- 选择主机 blade2 作为初始主机。
- 输入存储 WWN 作为共享存储。
- 选择 Restart 作为集群策略。
- 您将得到一个超时错误;Virtual Availability Manager 无法在这个时间段内完成创建。
- 检查 blade2 主机上的日志文件 /opt/ibm/director/am/logs/aminfr.log,查看创建过程是否完成:
[07/08/08 13:49:23] startam [INFO]: Exiting startam().
[07/08/08 13:49:24] amm [INFO]: amm_add_node Exit"
这表示 HA 集群创建过程已经完成。 - 从 HA 集群中选择 Add Host... 任务,并在创建完集群后将主机 blade3 添加到集群中。应当能够成功创建;您应当看到类似前面所示的日志文件。
- 要确保成功创建 HA 集群,执行以下操作:
- 检查两台主机上的 /opt/ibm/director/am/mnt/keystore 文件夹;它们应该是相同的并且包含有四个文件。
- 检查两台主机上的 /opt/ibm/director/am/mnt/clusterdata 文件夹;它们应该是相同的并且包含有三个文件。
- 检查共享存储文件系统配置文件 /etc/ocfs2/cluster.conf;两台主机上的文件内容应该是相同的。
创建虚拟服务器
要创建虚拟服务器,执行以下操作:
- 将 SUSE 10 SP1 安装映像文件内容复制到一个文件夹(比如 /shared/tmp);这个文件应该是可写的。
- 在主机 blade2 上运行 /opt/ibm/director/vm/im/suse_inst.py --dest=/shared/vm_master.img --src=/shared/tmp --net=local 命令以创建主映像。
- 将主映像文件复制到文件夹 /opt/ibm/director/am/mnt/images/masters/。
- 进入 IBM Virtualization Manager 的 Web 界面,并打开 Templates and Deployment 节点下的 Create System template 任务;选择刚刚作为主映像创建的映像。
- 选择 Hardware and Software 节点下的 Create Virtual Server 任务,并在 blade2 主机上创建一个虚拟服务器;选择刚刚创建的主映像模板。
- 可以按照以上步骤创建多个虚拟服务器。
创建 HA 集群和虚拟服务器就是这么简单。现在让我们进行测试。
启动并测试高可用性
要启动并测试高可用性,请执行以下操作:
- 选择 Activate HA Capabilities 任务启动 HA 功能。在两台主机上运行 crm_mon 命令来检查监视器状态。
- 关掉主机 blade2。可以看到,我们创建的虚拟服务器被迁移到主机 blade3;这表示我们已经成功实现了虚拟服务器的高可用性功能。
重置环境
要重置环境,执行以下操作:
- 禁用 HA 集群 High Availability Capabilities 功能。
- 从 HA 集群中移除两台主机。
- 从 IBM System Director Virtualization Manager 中同时删除两台主机和 HA 集群。
- 同时在两台主机上运行 /opt/ibm/director/am/bin/amDoctor purify 命令。如果命令不能执行,重启主机并再次尝试命令。
- 从主机中删除挂载的存储。运行 evms_query volumes 命令来查询当前挂载的存储。结果应该如下所示:
/dev/evms/600a0b8000179399000035794872607e_FS_Volume /dev/evms/sda1 /dev/evms/sda2
- 运行 evms 命令,然后再运行 dr:/dev/evms/600a0b8000179399000035794872607e_FS_Volume 命令,从而删除卷。选择所有默认选项。
- 再次重启两台主机。
现在,您已经重置了环境。
故障诊断
如果 /opt/ibm/director/am/mnt/keystore 文件夹中的文件与两台主机上的 /opt/ibm/director/am/mnt/clusterdata 文件不相同,或者两台主机上的存储配置文件 /etc/ocfs2/cluster.conf 的内容不同,那么查看这两台主机是否知道另一台主机的主机名。如果不知道的话,将另一台主机的名字和 IP 地址添加到 /etc/hosts 文件中。
如果在创建 HA 集群、向集群添加主机或激活 HA 集群时发生错误,则使用 service cimserverd status 命令查看两台主机中的 cimserverd 服务的状态;如果 cimserverd 在当前的 director 代理中突然停止,请重复以上的操作。(责任编辑:A6)