Cluster基础(四):建立RHCS集群环境、建立高可用Apache服务

1、建立RHCS集群环境html

目标:node

准备四台KVM虚拟机,其三台做为集群节点,一台安装luci并配置iSCSI存储服务,实现以下功能:linux

  •     使用RHCS建立一个名为tarena的集群
  •     集群中全部节点均须要挂载iSCSI共享存储
  •     使用集群中任意节点对iSCSI设置进行分区格式化
  •     安装luci的虚拟主机要求额外添加一块20G硬盘
  •     物理主机IP地址为192.168.4.1,主机名称为desktop1.example.com

方案:web

使用4台虚拟机,1台做为luci和iSCSI服务器、3台做为节点服务器,拓扑结构以下图所示。vim

      

全部主机的主机名及对应的IP地址以下表所示。浏览器

       

步骤:服务器

步骤一:安装前准备网络

1)为全部节点配置yum源,注意全部的虚拟主机均须要挂载安装光盘。架构

  [root@node1 ~]# mount /dev/cdrom /media
  [root@node1 ~]# rm -rf /etc/yum.repos.d/*
  [root@node1 ~]# vim /etc/yum.repos.d/dvd.repo
  [dvd]
  name=red hat
  baseurl=file:///media/
  enabled=1
  gpgcheck=0
  [HighAvailability]
  name=HighAvailability
  baseurl=file:///media/HighAvailability
  enabled=1
  gpgcheck=0
  [LoadBalancer]
  name=LoadBalancer
  baseurl=file:///media/LoadBalancer
  enabled=1
  gpgcheck=0
  [ResilientStorage]
  name=ResilientStorage
  baseurl=file:///media/ResilientStorage
  enabled=1
  gpgcheck=0
  [ScalableFileSystem]
  name=ScalableFileSystem
  baseurl=file:///media/ScalableFileSystem
  enabled=1
  gpgcheck=0
  [root@node1 ~]# yum clean all
  [root@node2 ~]# mount /dev/cdrom /media
  [root@node2 ~]# rm –rf /etc/yum.repos.d/*
  [root@node2 ~]# vim /etc/yum.repos.d/dvd.repo
  [dvd]
  name=red hat
  baseurl=file:///media/
  enabled=1
  gpgcheck=0
  [HighAvailability]
  name=HighAvailability
  baseurl=file:///media/HighAvailability
  enabled=1
  gpgcheck=0
  [LoadBalancer]
  name=LoadBalancer
  baseurl=file:///media/LoadBalancer
  enabled=1
  gpgcheck=0
  [ResilientStorage]
  name=ResilientStorage
  baseurl=file:///media/ResilientStorage
  enabled=1
  gpgcheck=0
  [ScalableFileSystem]
  name=ScalableFileSystem
  baseurl=file:///media/ScalableFileSystem
  enabled=1
  gpgcheck=0
  [root@node2 ~]# yum clean all
  [root@node3 ~]# mount /dev/cdrom /media
  [root@node3 ~]# rm -rf /etc/yum.repos.d/*
  [root@node3 ~]# vim /etc/yum.repos.d/dvd.repo
  [dvd]
  name=red hat
  baseurl=file:///media/
  enabled=1
  gpgcheck=0
  [HighAvailability]
  name=HighAvailability
  baseurl=file:///media/HighAvailability
  enabled=1
  gpgcheck=0
  [LoadBalancer]
  name=LoadBalancer
  baseurl=file:///media/LoadBalancer
  enabled=1
  gpgcheck=0
  [ResilientStorage]
  name=ResilientStorage
  baseurl=file:///media/ResilientStorage
  enabled=1
  gpgcheck=0
  [ScalableFileSystem]
  name=ScalableFileSystem
  baseurl=file:///media/ScalableFileSystem
  enabled=1
  gpgcheck=0
  [root@node3 ~]# yum clean all
  [root@luci ~]# mount /dev/cdrom /media
  [root@luci ~]# rm -rf /etc/yum.repos.d/*
  [root@luci ~]# vim /etc/yum.repos.d/dvd.repo
  [dvd]
  name=red hat
  baseurl=file:///media/
  enabled=1
  gpgcheck=0
  [HighAvailability]
  name=HighAvailability
  baseurl=file:///media/HighAvailability
  enabled=1
  gpgcheck=0
  [LoadBalancer]
  name=LoadBalancer
  baseurl=file:///media/LoadBalancer
  enabled=1
  gpgcheck=0
  [ResilientStorage]
  name=ResilientStorage
  baseurl=file:///media/ResilientStorage
  enabled=1
  gpgcheck=0
  [ScalableFileSystem]
  name=ScalableFileSystem
  baseurl=file:///media/ScalableFileSystem
  enabled=1
  gpgcheck=0
  [root@luci ~]# yum clean alldom

2)修改/etc/hosts并同步到全部主机。

  [root@luci ~]# vim /etc/hosts
  192.168.4.1        node1.example.com
  192.168.4.2        node2.example.com
  192.168.4.3        node3.example.com
  192.168.4.4        luci.example.com
  [root@luci ~]# for i in {1..3};do scp /etc/hosts 192.168.4.$i:/etc/;done

3)全部节点关闭NetworkManager、SELinux服务。

  [root@luci ~]# service NetworkManager stop
  [root@luci ~]# chkconfig NetworkManager off
  [root@luci ~]# sed -i '/SELINUX=/s/enforcing/permissive/' /etc/sysconfig/selinux
  [root@luci ~]# setenforce 0
  [root@luci ~]# iptables -F; service iptables save
  [root@node1 ~]# service NetworkManager stop
  [root@node1 ~]# chkconfig NetworkManager off
  [root@node1 ~]# sed -i '/SELINUX=/s/enforcing/permissive/' /etc/sysconfig/selinux
  [root@node1 ~]# setenforce 0
  [root@node1 ~]# iptables -F; service iptables save
  [root@node2 ~]# service NetworkManager stop
  [root@node2 ~]# chkconfig NetworkManager off
  [root@node2 ~]# sed -i '/SELINUX=/s/enforcing/permissive/' /etc/sysconfig/selinux
  [root@node2 ~]# setenforce 0
  [root@node2 ~]# iptables -F; service iptables save
  [root@node3 ~]# service NetworkManager stop
  [root@node3 ~]# chkconfig NetworkManager off
  [root@node3 ~]# sed -i '/SELINUX=/s/enforcing/permissive/' /etc/sysconfig/selinux
  [root@node3 ~]# setenforce 0
  [root@node3 ~]# iptables -F; service iptables save

步骤二:部署iSCSI服务

1)在luci主机上部署iSCSI服务器,将/dev/sdb使用iSCSI服务共享。

提示:服务器IQN名称为: iqn.2015-06.com.example.luci:cluster。

  [root@luci ~]# yum  -y  install  scsi-target-utils        //安装软件
  .. ..
  [root@luci ~]# rpm  -q  scsi-target-utils
  scsi-target-utils-1.0.24-10.el6.x86_64
  [root@luci ~]# vim /etc/tgt/targets.conf
  <target iqn.2015-06.com.example.luci:cluster>
       # List of files to export as LUNs
       backing-store /dev/sdb                            //定义存储设备
       initiator-address 192.168.4.0/24                    //定义ACL
  </target>
  [root@luci ~]# service  tgtd  start                     //启动服务
  Starting SCSI target daemon:                               [  OK  ]
  [root@luci ~]# chkconfig  tgtd  on

2)全部节点服务器挂载该iSCSI共享。

  [root@node1 ~]# yum -y install iscsi-initiator-utils    //安装软件
  [root@node1 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.4.4:3260
  [root@node1 ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 -l                                //挂载iSCSI共享
  [root@node1 ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 -l
  [root@node2 ~]# yum -y install iscsi-initiator-utils    //安装软件
  [root@node2 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.4.4:3260
  [root@node2 ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 –l                                //挂载iSCSI共享
  [root@node2 ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 -l
  [root@node3 ~]# yum -y install iscsi-initiator-utils    //安装软件
  [root@node3 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.4.4:3260
  [root@node3 ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 -l                                //挂载iSCSI共享
  [root@node3 ~]# iscsiadm -m node -T \
  >iqn.2015-06.com.example.luci:cluster \
  >-p 192.168.4.4:3260 –l

步骤三:安装集群软件

1)在luci.example.com主机上安装luci,并启动服务。

  [root@luci ~]# yum –y install luci
  [root@luci ~]# service luci start;chkconfig luci on

2)在全部的集群节点中安装ricci,并启动服务。

  [root@node1 ~]# yum -y install ricci
  [root@node1 ~]# echo "11111" |passwd --stdin ricci
  [root@node1 ~]# service ricci start;chkconfig ricci on
  [root@node2 ~]# yum -y install ricci
  [root@node2 ~]# echo "11111" |passwd --stdin ricci
  [root@node2 ~]# service ricci start;chkconfig ricci on
  [root@node3 ~]# yum -y install ricci
  [root@node3 ~]# echo "11111" |passwd --stdin ricci
  [root@node3 ~]# service ricci start;chkconfig ricci on

步骤四:配置集群

1)浏览器访问luci,任意主机使用浏览器访问便可。

  [root@luci ~]# firefox https://luci.example.com:8084

2)建立集群。

使用浏览器访问luici页面后,点击“Manage Clusters“页面,点击”Create“按钮建立一个新的集群,以下图所示。

      

接下来,在弹出的回话框中,输入集群的名称“tarena“,勾选”Download Packages“、“Reboot Nodes Befor Joining Cluster”、“Enable Shared Storage Support”,效果以下图所示。

     

等待全部的节点重启以后,在luci页面将显示如图-4所示的页面,表明全部节点以及加入到了tarena集群中。

     

提示:若是节点重启后,有部分节点没法自动加入集群中,能够将正常的节点系统中/etc/cluster/cluster.conf文件同步到其余失败的节点中,并确保失败节点的cman和rgmanager服务为启动状态便可。

2、建立高可用Apache服务

目标:

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

  •     在任意节点将练习一挂载的iSCSI磁盘分区并格式化
  •     为集群添加有效的Fence设备
  •     建立名为prefer_node1的故障转移域
  •     Apache服务优先运行于node1节点
  •     Apache服务提供的VIP地址为192.168.4.100
  •     客户端经过访问VIP地址访问Web页面

方案:

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

  1.     部署httpd服务
  2.     建立Fence设备
  3.     建立故障转移域
  4.     建立VIP资源
  5.     建立存储资源
  6.     建立Apache服务资源
  7.     建立服务组

步骤:

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

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

  [root@node1 ~]# parted /dev/sdb mklabel msdos
  [root@node1 ~]# parted /dev/sdb mkpart primary 1 1000
  [root@node1 ~]# partprobe
  [root@node1 ~]# mkfs.ext4  /dev/sdb1

2)安装httpd软件

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

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

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

步骤二:建立Fence设备

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

  [root@desktop1 ~]# yum -y install \
  >fence-virtd fence-virtd-libvirt fence-virtd-multicast
  [root@desktop1 ~]# mkdir /etc/cluster
  [root@desktop1 ~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=4k count=1
  [root@desktop1 ~]# systemctl enable fence_virtd

2)拷贝秘钥

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

3)配置Fence

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

  [root@desktop1 ~]# fence_virtd –c
  [root@desktop1 ~]# systemctl start fence_virtd

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

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

     

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

     

建立完Fence设备后,接下来还须要给每一个节点添加该Fence设备,首先在集群中点击“Nodes”菜单,依次选择全部节点,给每一个节点添加Fence 设备。以下图所示,选择node1准备给该节点添加Fence设备。

     

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

        

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

       

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

     

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

       

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

1)建立故障转移域

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

      

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

       

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

建立资源,能够经过点击“Resources”菜单,使用“Add”按钮建立,以下图所示。

       

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

       

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

     

最后建立Apache服务资源,在资源列表中选择Apache,设置名称为web_service,以下图所示。

     

3)建立服务组

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

     

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

     

步骤四:验证测试

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

    

相关文章
相关标签/搜索