含義及理解:
RHCS是Red Hat Cluster Suite的縮寫,也就是紅帽子集群套件,RHCS是一個能夠提供高可用性、高可靠性、負載均衡、存儲共享且經濟廉價的集群工具集合,,它將集群系統中三大集群架構(高可用性集群、負載均衡集群、存儲集群)融合一體,可以給web應用、數據庫應用等提供安全、穩定的運行環境。
主要功能:
1 . 高可用集群是RHCS的核心功能。當正使用的節點出現故障時,RHCS提供的高可用管理組件自動、快速的將應用使用的當前服務節點切換到另一個節點,保證應用的正常進行,而且節點轉移功能對客戶來說是透明的,所以也能實現應用持續、不間斷的對外提供服務!
2 . 負載均衡集群是RHCS通過使用LVS(Linux Virtual Server)實現的。LVS是 一個開源的且功能強大的基于IP的負載均衡技術,LVS 由調度器和服務器節點組成,通過LVS的負載調度功能,可以將客戶端請求平均的分配到各服務器節點上,當然,還可以自定義多種負載均衡策略,當客戶請求進來時,調度器根據負載均衡策略來判斷應該將請求分配到哪個服務器節點上,然后由分配的服務器節點去響應客戶請求。不僅如此,LVS 還提供了服務節點故障轉移功能,簡單來說就是當某個服務節點出故障后,LVS 會自動屏蔽這個節點,并將它從集群踢除,同時將新來此節點的請求平滑的轉移到其它正常節點上,當故障節點恢復正常后,LVS 又會自動將此節點加入集群中。這所有操作對客戶而言都是透明的,從而保證了服務的不間斷,穩定運行!
3 . 儲存集群功能是由GFS文件系統實現的。GFS(Global File System)是一個分布式文件系統,通過鎖管理機制,來協調和管理多個服務節點對同一文件系統的讀寫操作,允許多個服務同時去讀寫一個單一的共享文件系統;儲存集群通過將共享數據放到一個共享文件系統中,從而消除了在應用程序間同步的麻煩。
集群套件的作用:
1 . 集群中luci的作用:luci是用來配置和管理集群,監聽在8084上。
2 . 集群中ricci的作用:ricci是安裝在每個后端的每個節點上的,luci管理集群上的各個節點就是通過和節點上的ricci進行通信,ricci監聽在11111上。
3 . 集群中fence的作用:當意外原因導致主機異常或者宕機時,備機會首先調用FENCE設備,然后通過FENCE設備將異常主機重啟或者從網絡隔離,當FENCE操作成功執行后,返回信息給備機,備機在接到FENCE成功的信息后,開始接管主機的服務和資源。
實驗搭建:
準備三臺虛擬機6.5版本的,關火墻,selinux狀態為disabled
server1 :管理節點和HA節點 :172.25.11.1
server2 :HA節點 :172.25.11.2
server3 :作為iscsi共享磁盤 :172.25.11.3
給三臺虛擬機配置高可用yum源,
[rhel6.5]
name=rhel6.5
baseurl=http://172.25.11.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[HighAvailability]
name=HighAvailability
baseurl=http://172.25.11.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.11.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.11.250/rhel6.5/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.11.250/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
配好之后yum repolist 查看一下
scp 拷給server2和server3
在server1上安裝ricci、luci:
yum install ricci luci -y 下載軟件
id ricci 會生成這個用戶
passwd ricci 給個密碼/etc/init.d/ricci start 開啟服務
/etc/init.d/luci start
chkconfig ricci on 開機自啟
chkconfig luci on
在server2上安裝ricci:
yum install ricci -y
id ricci
passwd ricci/etc/init.d/ricci start
chkconfig ricci on
測試:
真機打開瀏覽器輸入https://172.25.11.1:8084
注意要添加安全證書

再將server1, server2添加到集群

查看是否添加成功和集群狀態
cat /etc/cluster/cluster.conf
clustat
為RHCS高可用添加fence(柵)
首先配置好fence
yum install -y fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64
Interface [virbr0]: br0 ##設備選擇br0,其他用默認
mkdir /etc/cluster
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
scp fence_xvm.key root@server1:/etc/cluster/
scp fence_xvm.key root@server2:/etc/cluster/
systemctl start fence_virtd.service
在web里添加fence
Fence Devices---->Add---->submit

分別為server1和server2添加fence,Domain為虛擬機的MAC地址,可在虛擬機管理器查看

測試:
在server1上使用fence關掉server2
發現server2被重啟
fence_node server2
netstat -antulp | grep 1229 ##udp 1229端口
添加httpd資源
添加失敗回切和優先級:
Failover --> Add --> webfail --> Prioritized --> Restricted --> No Failback(此選項選中,failover的主機在再次正常時會按優先級大小回切,否則不會)
server2優先級為1,server5優先級為10,數字越小,優先級越高。

添加vip資源:
Resources --> Add --> IP Address
172.25.11.100
24
Monitor Link(選中)
Number of … 5

再添加服務
Resources --> Add --> Script
Name : httpd
Full Path to Script File : /etc/init.d/httpd
兩個節點都安裝并啟動httpd,寫默認發布頁面

添加服務組到集群:
Service Groups --> Add
Service Name : apache
Automatically Start This Service : 選中
Run Exclusive : 運行獨占(先選中)
Failover Domain : webfail

然后添加資源
Add Resource --> 172.25.0.100/24 --> Script —>submit ##添加IP和啟動腳本
添加好以后
測試:
勾選apache并點擊上方start
在真機crul 172.25.11.100
發現默認訪問到server2
使server2腦裂,測試fence:
echo c > /proc/sysrq-trigger
ip link set dowm eth0 (使網絡掛掉)
發現服務器由于server被重啟暫時回到server1上

在web頁面點擊左邊第一個按鈕即start

添加iscsi網絡共享磁盤
給server3在添加一塊虛擬磁盤
fdisk -l
fdisk /dev/vda
p 1 回車 回車 wqyum install -y scsi-*
配置server3的存儲:
vim /etc/tgt/targets.conf
38 <target iqn.2019-06.com.example:server.target1>
39 backing-store /dev/vda1 initiator-address 172.25.11.1initiator-address 172.25.11.2
40 </target>/etc/init.d/tgtd starttgt-admin -s ##查看存儲信息
ps ax ##看到有2個tgtd進程(如果有4個,就是錯誤的)
在server1和server2兩個ha節點上:
安裝客戶端
yum install iscsi-* -y
在HA節點上發現并登陸共享存儲:
iscsiadm -m discovery -t st -p 172.25.11.3
iscsiadm -m node -l
fdisk -l
fdisk -cu /dev/sdb ##只分一個區,方便在分區表被破壞的時候恢復
pratprobe
fdisk /dev/sdb
同步過后在server2查看進程
partprobe
cat /proc/partitions
該文件格式在把分區改一下
mkfs.ext4 /dev/sdb1
fdisk /dev/sdb
t 8e wq
partprobe
在server1創建邏輯卷
pvcreate /dev/sdb1
vgcreate vg /dev/sdb1
lvcreate -L 4G -n lv vg
partprobe
在server2同步并查看
partprobe
lvs
pvs
vgs
mkfs.ext4 /dev/vg/lv
在web添加webdata(文件系統)
現在server1server2關閉apache
clusvcadm -d apache
點擊Service Groups,刪除原來的添加,重新配置,這次的添加順序是IP
Address —-> Filesystem —-> Script(因為服務開啟的順序就是先分配VIP,然后開啟存儲,然后再是服務)
測試:
啟動集群服務,發現server2自動掛載
