1、建立RHCS集羣環境html
目標:node
準備四臺KVM虛擬機,其三臺做爲集羣節點,一臺安裝luci並配置iSCSI存儲服務,實現以下功能:linux
方案: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服務,實現如下目標:
方案:
沿用練習一的拓撲架構,依次完成以下操做:
步驟:
步驟一:準備存儲資源,並在全部節點安裝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查看集羣及高可用服務運行狀態,以下圖所示。