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查看集羣及高可用服務運行狀態,以下圖所示。

    

相關文章
相關標籤/搜索