管理和維護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在其它節點成功啟動後,開始啟動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文件系統是否已經卸載,也可以檢查其它節點的rgmanager服務是否全部已經正常關閉。
管理應用服務
集群系統啟動後,默認自動啟動應用服務,但是,如果某個應用服務沒有自動啟動,就需要手動來啟動。管理應用服務的命令是clusvcadm,通過這些命令可以啟動、關閉、重啟、切換集群服務中德爾應用服務。
啟動某個應用程序
可以通過以下方式啟動某個節點上的應用服務,以啟動wrbserver為例:
[root@web1 ~]#clusvcadm -e webserver -m web1 Member web1 trying to enable service:webserver...Success service:webserver is now running on web1
關閉某個應用程序
可以通過以下方式關閉某個節點上的應用服務,以啟動mysqlserver為例:
[root@mysql1 ~]#clusvcadm -s mysqlserver -m web1 Member mysql1 stopping service:mysqlserver...Success
重啟某個應用程序
可以通過以下方式重啟某個節點上的應用服務,以啟動wrbserver為例:
[root@web2 ~]#clusvcadm -R wrbserver -m web1 Member web1 trying to restart service:wrbserver...Success
這個命令是在web2節點上執行的,也能將web1節點上的wrbserver進行重啟,由此可知,clusvcadm命令可以在集群任意節點上執行都是可以的。
切換某個應用程序
可以通過以下方式切換某個節點上的應用服務,以在節點web1的服務切換到節點web2上為例:
[root@web1 ~]# clusvcadm -r wrbserver -m web2 Trying to relocate service:webserver to web2...Success service:webserver is now running on web2
監控RHCS集群狀態
通過對RHCS的監控,有助於了解集群每個節點的健康狀態,發現問題並及時解決問題。RHCS集群提供了豐富的狀態查看命令,這裡主要介紹cman_tool、clustat、ccs_tool的使用方法。
cman_tool命令
cman_tool參數比較多,但使用方法比較簡單,這兒介紹兩個參數的使用方法:
[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
此命令顯示了節點名稱,以及對應的節點IP地址和加入集群的時間。
如果要了解更多集群節點信息,可以通過如下命令:
[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 #集群節點數 Expected votes: 6 #期望的投票數 Quorum device votes: 2 #表決磁盤投票值 Total votes: 6 #集群中所有投票值大小 Quorum: 4 #集群法定投票值,低於這個值,集群將停止服務 Active subsystems: 9 Flags: Dirty Ports Bound: 0 177 Node name: web1 Node ID: 4 #本節點在集群中的ID號 Multicast addresses: 239.192.221.146 #集群廣播地址 Node addresses: 192.168.12.230 #本節點對應的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
對輸出內容含義如下:
clustat的“-i”參數可以實時的顯示集群系統中每個節點以及服務的運行狀態,“-i 3”表示每三秒刷新一次集群狀態。
在這個輸出中,可以看到每個節點都處於“Online”狀態,表明每個節點都運行正常,如果某個節點退出了集群,對應的狀態應該是“Offline”,同時還可以看到,集群的兩個服務也處於“started”狀態,分別運行在Mysql1節點和web1節點。
另外,通過“ID”一列可以知道集群節點的對應關系,例如,web2在此集群中對應的就是“Node 1”節點,同理,web1對應的是“Node 4”節點。了解集群節點順序有助於對集群日志的解讀。
ccs_tool命令
ccs_tool主要用來管理集群配置文件cluster.conf,通過ccs_tool可以在集群中增加/刪除節點、增加/刪除fence設備、更新集群配置文件等操作。
下面是ccs_tool的幾個應用實例:
當在一個節點修改完配置文件後,可以執行“ccs_tool update”指令將配置文件在所有節點進行更新,例如:
[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是根據cluster.conf中的“config_version”值來決定是否進行更新的,因此在修改完cluster.conf文件後,一定要將cluster.conf的config_version值進行更新,這樣執行ccs_tool時才能更新配置文件。
[root@web1 cluster]# ccs_tool update /etc/cluster/cluster.conf Config file updated from version 35 to 36 Update complete.