创建高可用Apache服务

2.1 问题

沿用练习一,使用集群中的节点创建高可用Apache服务,实现以下目标:

  • 在任意节点将练习一挂载的iSCSI磁盘分区并格式化

  • 为集群添加有效的Fence设备

  • 创建名为prefer_node1的故障转移域

  • Apache服务优先运行于node1节点

  • Apache服务提供的VIP地址为192.168.4.100

  • 客户端通过访问VIP地址访问Web页面

2.2 方案

沿用练习一的拓扑架构,依次完成如下操作:

  1. 部署httpd服务

  2. 创建Fence设备

  3. 创建故障转移域

  4. 创建VIP资源

  5. 创建存储资源

  6. 创建Apache服务资源

  7. 创建服务组

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:准备存储资源,并在所有节点安装httpd软件

1)在任一集群节点将iSCSI磁盘分区并格式化

  1. [root@node1 ~]# parted /dev/sdb mklabel msdos

  2. [root@node1 ~]# parted /dev/sdb mkpart primary 1 1000

  3. [root@node1 ~]# partprobe

  4. [root@node1 ~]# mkfs.ext4  /dev/sdb1

2)安装httpd软件

  1. [root@node1 ~]# yum –y install httpd

  2. [root@node2 ~]# yum –y install httpd

  3. [root@node2 ~]# yum –y install httpd

3)挂载共享存储并生成测试web页面

  1. [root@node1 ~]# mount /dev/sdb1  /var/www/html

  2. [root@node1 ~]# echo “test page for rhcs”  > /var/www/html/index.html

步骤二:创建Fence设备

1)安装软件包,生成共享秘钥。

  1. [root@desktop1 ~]# yum -y install \

  2. >fence-virtd fence-virtd-libvirt fence-virtd-multicast

  3. [root@desktop1 ~]# mkdir /etc/cluster

  4. [root@desktop1 ~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=4k count=1

  5. [root@desktop1 ~]# chkconfig fence_virtd on

2)拷贝秘钥

  1. [root@desktop1 ~]# for i in {1..3};do scp /etc/cluster/fence_xvm.key \

  2. > 192.168.4.$i:/etc/cluster/; done

3)配置Fence

注意:Interface项填写网络接口,Backend module项填写libvirt。

  1. [root@desktop1 ~]# fence_virtd –c

  2. [root@desktop1 ~]# service fence_virtd start

4)登录luci为集群节点添加Fence

在任一使用浏览器访问https://luci.example.com:8084,配置Fence。首先选择“Fence Devices”菜单后,选择Add添加按钮,效果如图-5所示。

图-5

在弹出的回话框中选择Fence设备的类型为Fence virt(Multicast Mode),并给fence设备设置名称,效果如图-6所示。

图-6

创建完Fence设备后,接下来还需要给每个节点添加该Fence设备,首先在集群中点击“Nodes”菜单,依次选择所有节点,给每个节点添加Fence 设备。如图-7所示,选择node1准备给该节点添加Fence设备。

图-7

在节点列表中选择了某个节点后,通过点击“Add Fence Method”添加Fence设备,效果如图-8所示。

图-8

选择“Add Fence Method”后在弹出的回话框中输入名称,如图-9所示。

图-9

接下来,执行最后的操作,为Fence设备添加实例,选择“Add Fence Instance”,效果如图-10所示。

图-10

在弹出的回话框中,选择之前创建的Fence实例“fence_xvm”,并为每个节点填写对应的虚拟机域名称,注意名称必须与虚拟机名称一致,如图-11所说。

图-11

步骤三:创建高可用Apache服务

1)创建故障转移域

在任一节点使用浏览器访问https://luci.example.com:8084,点击“Failover Domains”菜单,通过下面的Add按钮创建故障转移域,如图-12所示。

图-12

在弹出的回话框中为故障转移域填写名称:prefer_node1,依次勾选“Prioritized”、“Restricted”、“No Failback”,并为每个节点设置优先级,为了确保服务优先运行在node1上,我们将node1的优先级设置为1,如图-13所示。

图-13

2)创建资源(VIP、共享存储、Apache服务)

创建资源,可以通过点击“Resources”菜单,使用“Add”按钮创建,如图-14所示。

图-14

在弹出的回话框中,我们选择IP Address这个资源,并为该资源设置具体的参数,VIP地址为192.168.4.100,效果如图-15所示。

图-15

使用相同的方法,创建共享存储,在资源列表中选择Filesystem,并设置具体的参数将共享iSCSI磁盘挂载到/var/www/html中,为了确保挂载点的唯一性,这里我们使用的是设备的UUID(请各位同学根据自己的实际情况填写具体的值),查看UUID的方法是blkid /dev/sdb1,最终的设置效果如图-16所示。

图-16

最后创建Apache服务资源,在资源列表中选择Apache,设置名称为web_service,如图-17所示。

图-17

3)创建服务组

在任意节点使用浏览器访问https://luci.example.com:8084,点击“Service Groups”菜单,通过下面的Add按钮创建服务组,如图-18所示。

图-18

在弹出的回话框中,输入具体的参数,设置服务名称为web_clu,选择故障域为prefre_node1,恢复策略为Relocate,并通过Add Resource给该服务组添加服务资源,将上一步中创建的3个资源添加到该服务组中,效果如图-19所示。

图-19

步骤四:验证测试

在任意集群节点中,输入clustat查看集群及高可用服务运行状态,如图-20所示。