管理和維護(hù)RHCS集群是一個(gè)非常復(fù)雜和繁瑣的工作,要維護(hù)好一個(gè)RHCS集群,必須熟悉RHCS的基本運(yùn)行原理,在集群管理方面,RHCS提供了兩種方式:即Luci圖形界面方式和命令行方式,這兒重點(diǎn)講述在命令行下如何管理RHCS集群。
啟動(dòng)RHCS集群
RHCS集群的核心進(jìn)程有cman和rgmanager。要啟動(dòng)集群,依次啟動(dòng)cman,然后再啟動(dòng)rgmanager,操作如下:
在主機(jī)web1上啟動(dòng)集群服務(wù):
[root@web1 ~]# service cman start
Starting cluster:
Loading modules... done
Mounting configs... done
Starting ccsd... done
Starting cman... done
Starting qdiskd...done
Starting daemons...done
Starting fencing... done
[ OK ]
等cman在其它節(jié)點(diǎn)成功啟動(dòng)后,開(kāi)始啟動(dòng)rgmanager服務(wù),具體操作如下:
[root@web1 ~]# service rgmanager start
Starting Cluster Service Manager: [ OK ]
關(guān)閉RHCS集群
與啟動(dòng)集群服務(wù)器剛好相反,關(guān)閉RHCS集群的命令如下:
[root@web1 ~]# service rgmanager stop
[root@web1 ~]# service cman stop
有時(shí)在關(guān)閉cman服務(wù)時(shí),可能會(huì)提示失敗,此時(shí)可以檢查本機(jī)的共享存儲(chǔ)GFS2文件系統(tǒng)是否已經(jīng)卸載,也可以檢查其它節(jié)點(diǎn)的rgmanager服務(wù)是否全部已經(jīng)正常關(guān)閉。
管理應(yīng)用服務(wù)
集群系統(tǒng)啟動(dòng)后,默認(rèn)自動(dòng)啟動(dòng)應(yīng)用服務(wù),但是,如果某個(gè)應(yīng)用服務(wù)沒(méi)有自動(dòng)啟動(dòng),就需要手動(dòng)來(lái)啟動(dòng)。管理應(yīng)用服務(wù)的命令是clusvcadm,通過(guò)這些命令可以啟動(dòng)、關(guān)閉、重啟、切換集群服務(wù)中德?tīng)枒?yīng)用服務(wù)。
啟動(dòng)某個(gè)應(yīng)用程序
可以通過(guò)以下方式啟動(dòng)某個(gè)節(jié)點(diǎn)上的應(yīng)用服務(wù),以啟動(dòng)wrbserver為例:
[root@web1 ~]#clusvcadm -e webserver -m web1
Member web1 trying to enable service:webserver...Success
service:webserver is now running on web1
關(guān)閉某個(gè)應(yīng)用程序
可以通過(guò)以下方式關(guān)閉某個(gè)節(jié)點(diǎn)上的應(yīng)用服務(wù),以啟動(dòng)mysqlserver為例:
[root@mysql1 ~]#clusvcadm -s mysqlserver -m web1
Member mysql1 stopping service:mysqlserver...Success
重啟某個(gè)應(yīng)用程序
可以通過(guò)以下方式重啟某個(gè)節(jié)點(diǎn)上的應(yīng)用服務(wù),以啟動(dòng)wrbserver為例:
[root@web2 ~]#clusvcadm -R wrbserver -m web1
Member web1 trying to restart service:wrbserver...Success
這個(gè)命令是在web2節(jié)點(diǎn)上執(zhí)行的,也能將web1節(jié)點(diǎn)上的wrbserver進(jìn)行重啟,由此可知,clusvcadm命令可以在集群任意節(jié)點(diǎn)上執(zhí)行都是可以的。
切換某個(gè)應(yīng)用程序
可以通過(guò)以下方式切換某個(gè)節(jié)點(diǎn)上的應(yīng)用服務(wù),以在節(jié)點(diǎn)web1的服務(wù)切換到節(jié)點(diǎn)web2上為例:
[root@web1 ~]# clusvcadm -r wrbserver -m web2
Trying to relocate service:webserver to web2...Success
service:webserver is now running on web2
監(jiān)控RHCS集群狀態(tài)
通過(guò)對(duì)RHCS的監(jiān)控,有助于了解集群每個(gè)節(jié)點(diǎn)的健康狀態(tài),發(fā)現(xiàn)問(wèn)題并及時(shí)解決問(wèn)題。RHCS集群提供了豐富的狀態(tài)查看命令,這里主要介紹cman_tool、clustat、ccs_tool的使用方法。
cman_tool命令
cman_tool參數(shù)比較多,但使用方法比較簡(jiǎn)單,這兒介紹兩個(gè)參數(shù)的使用方法:
[root@web1 ~]# cman_tool nodes -a
Node Sts Inc Joined Name
0 M 0 2010-08-23 01:24:00 /dev/sdb7
1 M 2492 2010-08-23 01:22:43 web2
Addresses: 192.168.12.240
2 M 2492 2010-08-23 01:22:43 Mysql1
Addresses: 192.168.12.231
3 M 2492 2010-08-23 01:22:43 Mysql2
Addresses: 192.168.12.232
4 M 2488 2010-08-23 01:22:43 web1
Addresses: 192.168.12.230
此命令顯示了節(jié)點(diǎn)名稱,以及對(duì)應(yīng)的節(jié)點(diǎn)IP地址和加入集群的時(shí)間。
如果要了解更多集群節(jié)點(diǎn)信息,可以通過(guò)如下命令:
[root@web1 ~]# cman_tool status
Version: 6.2.0
Config Version: 35 #集群配置文件版本號(hào)
Cluster Name: mycluster #集群名稱
Cluster Id: 56756
Cluster Member: Yes
Cluster Generation: 2764
Membership state: Cluster-Member
Nodes: 4 #集群節(jié)點(diǎn)數(shù)
Expected votes: 6 #期望的投票數(shù)
Quorum device votes: 2 #表決磁盤(pán)投票值
Total votes: 6 #集群中所有投票值大小
Quorum: 4 #集群法定投票值,低于這個(gè)值,集群將停止服務(wù)
Active subsystems: 9
Flags: Dirty
Ports Bound: 0 177
Node name: web1
Node ID: 4 #本節(jié)點(diǎn)在集群中的ID號(hào)
Multicast addresses: 239.192.221.146 #集群廣播地址
Node addresses: 192.168.12.230 #本節(jié)點(diǎn)對(duì)應(yīng)的IP地址
clustat命令
clustat命令使用非常簡(jiǎn)單,詳細(xì)的使用方法可以通過(guò)“clustat -h”獲取幫助信息,這里僅僅列舉幾個(gè)例子。
[root@web1 ~]#clustat -i 3
Cluster Status for mycluster @ Mon Aug 23 18:54:15 2010
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
web2 1 Online, rgmanager
Mysql1 2 Online, rgmanager
Mysql2 3 Online, rgmanager
web1 4 Online, Local, rgmanager
/dev/sdb7 0 Online, Quorum Disk
Service Name Owner (Last) State
------- ---- ----- ------ --------
service:mysqlserver Mysql1 started
service:webserver web1 started
對(duì)輸出內(nèi)容含義如下:
clustat的“-i”參數(shù)可以實(shí)時(shí)的顯示集群系統(tǒng)中每個(gè)節(jié)點(diǎn)以及服務(wù)的運(yùn)行狀態(tài),“-i 3”表示每三秒刷新一次集群狀態(tài)。
在這個(gè)輸出中,可以看到每個(gè)節(jié)點(diǎn)都處于“Online”狀態(tài),表明每個(gè)節(jié)點(diǎn)都運(yùn)行正常,如果某個(gè)節(jié)點(diǎn)退出了集群,對(duì)應(yīng)的狀態(tài)應(yīng)該是“Offline”,同時(shí)還可以看到,集群的兩個(gè)服務(wù)也處于“started”狀態(tài),分別運(yùn)行在Mysql1節(jié)點(diǎn)和web1節(jié)點(diǎn)。
另外,通過(guò)“ID”一列可以知道集群節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,例如,web2在此集群中對(duì)應(yīng)的就是“Node 1”節(jié)點(diǎn),同理,web1對(duì)應(yīng)的是“Node 4”節(jié)點(diǎn)。了解集群節(jié)點(diǎn)順序有助于對(duì)集群日志的解讀。
ccs_tool命令
ccs_tool主要用來(lái)管理集群配置文件cluster.conf,通過(guò)ccs_tool可以在集群中增加/刪除節(jié)點(diǎn)、增加/刪除fence設(shè)備、更新集群配置文件等操作。
下面是ccs_tool的幾個(gè)應(yīng)用實(shí)例:
當(dāng)在一個(gè)節(jié)點(diǎn)修改完配置文件后,可以執(zhí)行“ccs_tool update”指令將配置文件在所有節(jié)點(diǎn)進(jìn)行更新,例如:
[root@web1 cluster]# ccs_tool update /etc/cluster/cluster.conf
Proposed updated config file does not have greater version number.
Current config_version :: 35
Proposed config_version:: 35
Failed to update config file.
ccs_tool是根據(jù)cluster.conf中的“config_version”值來(lái)決定是否進(jìn)行更新的,因此在修改完cluster.conf文件后,一定要將cluster.conf的config_version值進(jìn)行更新,這樣執(zhí)行ccs_tool時(shí)才能更新配置文件。
[root@web1 cluster]# ccs_tool update /etc/cluster/cluster.conf
Config file updated from version 35 to 36
Update complete.