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