1. 主機概述
主機名 | 主機IP | 備注 |
---|---|---|
node1 | 192.168.1.101 | 模擬fence設備 |
node2 | 192.168.1.102 | rhcs雙機節點 |
node3 | 192.168.1.103 | rhcs雙機節點 |
修改三台主機的hosts文件,內容如下
[root@node1 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
2. 配置ntp
(1) 修改ntp.conf文件vim /etc/ntp.conf
增加如下配置
#Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#Use public servers from the pool.ntp.org project.
#Please consider joining the pool (http://www.pool.ntp.org/join.html).(ntp服務器可自行選擇合適的,這里我用的是1.cn.pool.ntp.org)
server 1.cn.pool.ntp.org prefer
(2)啟動ntpd服務
service ntpd start
3. 安裝luci
(1) 登陸node1服務器,配置yum源,安裝luci服務yum install luci
(2) 啟動luci服務service luci start
(3) 瀏覽器訪問https://192.168.1.101:8084/
(4) 輸入用戶和密碼(用戶名root,密碼是root的口令),登陸到主頁
4. 配置RHCS
4.1 在node2和node3主機上,安裝ricci、cman和rgmanager
yum install ricci cman rgmanager -y
4.2 修改ricci用戶密碼,否則創建集群時會出現節點認證失敗的錯誤
passwd ricci
啟動ricci服務service ricci start
4.3 創建集群
點擊Create
配置集群參數
1). 在Cluster Name 文本框中輸入集群名稱,不能超過15個字符
2). 如果集群中每個節點都有相同的ricci密碼,則選擇"Use the same password for all nodes",以便在添加節點中自動填寫ricci用戶口令
3). 在Node Name欄中輸入集群中各節點的主機名,並填入ricci用戶口令
4). 點擊Add Another Node添加集群節點
5). 如果不想在創建集群的時候升級已經在節點中安裝的集群軟件包,則必須選擇"Download Packages",特別的,如果缺少任意基本集群組件(cman,rgmanager及其所依賴軟件包),無論是否選擇哪個,都會安裝他們,否則節點創建失敗
6). 如果需要集群的存儲,則選擇"Enable share storage support"來啟動共享存儲支持
參數配置完成后,點擊"Create Cluster"創建集群。
集群創建完成后,如果出現下面的情形,節點Status為"Not a cluster member"
原因是cman和rgmanager服務未啟動,啟動這兩個服務即可,注意啟動順序,先啟動cman,然后再啟動rgmanager。
另外啟動cman時,要關閉NetworkManager服務(service NetworkManager stop
),同時關閉該服務的開啟啟動chkconfig NetworkManager off
。
cman和rgmanager服務開啟后,點擊"Nodes"
可以看到,node2和node3節點已經加入集群
4.4 添加Fence Devices設備
點擊"Fence Devices",添加Fence Devices設備
點擊add,選擇IPMI Lan
1). Name:填入對應主機fene設備的名字
2). IP address or hostname:fence設備主機IP或主機名
3). Login:管理端口用戶名
4). Password:管理端口口令
參數配置完成后,點擊"Submit"
4.5 為集群成員配置fence
給節點配置對應的fence設備,點擊常規選項欄的"Nodes"
選擇node2節點,點擊進入配置界面
點擊Add Fence Method,設置方法名
接下來點擊Add Fence Instance
選擇fence_ha
接下來為node3節點添加fence設備,過程同node2相似
4.6 配置Failover Domains
點擊常規選擇中的"Failover Domains"
設置"Failover Domains"的參數配置
1). 輸入故障切換域的名字
2). Prioritized:是否啟用故障切換域成員間設置故障切換優先權,如果啟用了,則可以為每個節點配置優先級
3). Restricted:是否在失敗轉移域成員中啟用服務故障切換限制
4). No Failback:當最高優先級恢復時,不自動回切服務到最高優先級節點
5). Member: 勾選,則表示節點屬於本故障切換域
6). Priority:指定優先級,priority值越小,表示優先級越高,為了以后添加節點方便,建議節點間優先級最好相差5左右
配置完Failover Domains相關參數后,點擊create創建
4.7 配置Resource
點擊常規選擇中的"Resources"
點擊Add,創建IP Address資源
IP address:浮動IP地址
Netmask Bits:輸入掩碼設置
配置完成后,點擊"Submit"
繼續點擊Add,創建Filesystem資源
Name:指定filesystem資源名稱
Filesystem Type:指定文件系統類型
Mount Point:指定文件系統掛載點
Device, FS Label, or UUID:指定邏輯卷設備路徑
配置完成后,點擊"Submit"
4.8 創建集群服務
點擊常規選擇中的"Service Group"
點擊Add,添加服務組
Service Name:指定服務組名
Automatically Start This Service:指定是否在啟動集群時自動啟動集群服務
Run Exclusive:指定是否選擇只在沒有服務運行的節點中運行
Failover Domain:指定服務組的故障切換域
Recovery Policy:指定恢復策略,RHCS提供的始終恢復策略:Relocate(表示服務失敗時切換到別的節點)、Restart(表示重新定位該服務前嘗試重啟失敗的服務)、Restart-Disable(表示系統應在服務失敗的位置嘗試重啟該服務,但如果重啟失敗,則禁用該服務而不是移動到集群中的其它幾點)、Disable(表示服務失敗時關閉此服務)
配置完成后,點擊"Submit"創建服務組
4.9 為已創建的集群服務添加資源
點擊剛才創建的服務組ha_service
服務組中的資源不用配置依賴關系,直接點擊Add Resource添加相應資源
首先添加我們剛才創建的IP address資源
繼續添加Filesystem資源
最后點擊"Submit",提交服務
4.10 查看集群狀態
在node2和node3上,執行clustat
命令查看集群狀態
[root@node2 ~]# clustat
Cluster Status for test @ Mon May 28 20:52:19 2018
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
node2 1 Online, Local, rgmanager
node3 2 Online, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:ha_service node2 started
[root@node3 ~]# clustat
Cluster Status for test @ Mon May 28 20:52:44 2018
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
node2 1 Online, rgmanager
node3 2 Online, Local, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:ha_service node2 started
因為服務運行在node2節點上,所以ip和filesystem資源都在node2上
[root@node2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:d0:a4:dd brd ff:ff:ff:ff:ff:ff
inet 192.168.1.102/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.100/24 scope global secondary eth0
inet6 fe80::20c:29ff:fed0:a4dd/64 scope link
valid_lft forever preferred_lft forever
[root@node2 ~]# df -h /ha
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_ha-lvha 981M 18M 915M 2% /ha
5 RHCS集群管理
5.1 啟動RHCS集群
RHCS集群的核心進程有cman、rgmanager,依次在集群的每個節點執行如下命令
service cman start
service rgmanager start
注意:cman和rgmanager的啟動是有順序的,先啟動cman,再啟動rgmanager
5.2 停止RHCS集群
和啟動命令相反,先停止rgmanager、再停cman服務
service rgmanager stop
service cman stop
注意:RHCS雙機打印日志默認在/var/log/message中,可通過/var/log/message查看進程的啟動和停止信息
5.3 設置集群服務開機自啟
為了方便集群的運行,建議設置luci、ricci、cman和rgmanager服務開機自啟
chkconfig luci on
chkconfig ricci on
chkconfig cman on
chkconfig rgmanager on
5.4 管理RHCS集群
使用clusvcadm命令可以disable、enable、切換(relocate)、重啟(restart)RHCS服務。
(1) disable的命令格式clusvcadm –d <group>
(比如clusvcadm -d ha_service
)
(2) enable的命令格式clusvcadm –e <group> -m <member>
(比如clusvcadm -e ha_service -m node2
),如果未指定member,將會在當前節點啟動服務
(3) relocate的命令格式clusvcadm –r <group> -m <member>
(比如clusvcadm –r ha_service -m node3>
)
(4) restart的命令格式clusvcadm –R <group> -m <member>
(比如clusvcadm –R ha_service -m node3>
)
6. RHCS測試
我們關機node2節點,等待幾分鍾,觀察服務是否轉移到node3上
[root@node3 ~]# clustat
Cluster Status for test @ Mon May 28 21:39:30 2018
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
node2 1 Online
node3 2 Online, Local, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:ha_service node3 started
[root@node3 ~]#
[root@node3 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:34:be:b3 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.103/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.100/24 scope global secondary eth0
inet6 fe80::20c:29ff:fe34:beb3/64 scope link
valid_lft forever preferred_lft forever
[root@node3 ~]#
[root@node3 ~]# df -h /ha
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_ha-lvha 981M 18M 915M 2% /ha
可以看到資源已經成功轉移到node3節點上。
重啟node2節點,查看集群狀態。