一、啟動RHCS叢集
RHCS叢集的核心程式有cman和rgmanager,要啟動叢集,依次在叢集的每個節點執行如下命令即可:
service cman start
service rgmanager start
需要注意的是,執行這兩個命令是有先後順序的,需要首先啟動cman,然後在啟動rgmanager。在叢集所有節點成功啟動cman服務後,然後繼續依次在每個節點啟動rgmanager服務。
二、關閉RHCS叢集
與啟動叢集服務剛好相反,關閉RHCS叢集的命令為:
service rgmanager stop
service cman stop
首先在叢集的每個節點依次關閉rgmanager服務,等待所有節點的rgmanager服務成功關閉後,再依次關閉每個節點的cman服務即可完成真個叢集服務的關閉。
有時在關閉cman服務時,可能會提示關閉失敗,此時可以檢查本機的共享儲存GFS2檔案系統是否已經解除安裝,還可以檢查其它節點的rgmanager服務是否都已經正常關閉。
三、管理應用服務
叢集系統啟動後,預設是自動啟動應用服務的,但是如果某個應用服務沒有自動啟動,就需要通過手工方式來啟動。管理應用服務的命令是clusvcadm,通過這個命令可以啟動、關閉、重啟、切換叢集中的應用服務。
1. 啟動某個應用服務
可以通過如下方式啟動某個節點的應用服務:
clusvcadm -e <Service> -m <Node>
其中:
Service:表示叢集中建立的應用服務名稱。
Node:表示叢集節點名稱。
例如,要啟動節點web1上的webserver服務,操作如下:
[root@web1 ~]# clusvcadm -e webserver -m web1
Member web1 trying to enable service:webserver…Success
service:webserver is now running on web1
可以通過/var/log/messages檔案檢視啟動應用服務的詳細資訊。當webserver啟動後,與服務相關的叢集資源:如虛擬IP、應用程式服務指令碼也隨之啟動,可以通過如下命令檢視叢集資源是否已經正常載入:
2. 關閉某個應用服務
可以通過如下方式關閉某個節點的應用服務:
clusvcadm -s <Service> -m <Node>
例如,要關閉節點Mysql1上的mysqlserver服務,操作如下:
[root@Mysql1 ~]# clusvcadm -s mysqlserver -m Mysql1
Member Mysql1 stopping service:mysqlserver…Success
可以通過/var/log/messages檔案檢視關閉應用服務的詳細資訊。當mysqlserver關閉後,與服務相關的叢集資源:如虛擬IP、應用程式服務指令碼也隨之釋放。
3. 重啟某個應用服務
可以通過如下方式重啟某個節點的應用服務:
clusvcadm -R <Service> -m <Node>
例如,要重啟節點web1上的webserver服務,操作如下:
[root@web2 ~]# clusvcadm -R webserver -m web1
Member web1 trying to restart service:webserver…Success
這個命令是在web2節點上執行的,但是也能成功將web1節點上的webserver進行重啟,由此可知,clusvcadm命令在叢集任意節點執行都是可以的。
4. 切換某個服務
可以通過如下方式將一個應用服務從一個節點切換到另一個節點:
clusvcadm -r <Service> -m <Node>
例如,要將節點web1的服務切換到節點web2上,操作如下:
[root@web1 ~]# clusvcadm -r webserver -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的使用方法。
1. cman_tool命令
cman_tool的引數比較多,但是用法比較簡單,基本用法格式為:
cman_tool <join|leave|kill|expected|votes|version|wait|status|nodes|services|debug> [options]
下面列舉幾個簡單的使用例子:
[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地址
2. 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”節點。瞭解叢集節點順序有助於對叢集日誌的解讀。
3. 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.
五、管理和維護GFS2檔案系統
GFS2檔案系統提供了很多管理和維護工具,常用的有gfs2_fsck、gfs2_tool、gfs2_jadd、gfs2_quota、gfs2_convert等,這裡重點介紹前三個命令的用法。
1. gfs2_fsck命令
類似與ext3檔案系統下的fsck.ext3命令,主要用於檢測和修復檔案系統錯誤。其實GFS2還有一個fsck.gfs2命令,此命令與gfs2_fsck命令完全一致。
gfs2_fsck的用法如下:
gfs2_fsck [-afhnpqvVy] <device>
下面列舉幾個使用例子:
[root@Mysql1 ~]# gfs2_fsck -y /dev/sdb5
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Starting pass1
Starting pass1c
Pass1c complete
…………
Pass5 complete
gfs2_fsck complete
2. gfs2_tool命令
gfs2_tool命令引數較多,但使用並不複雜,它主要用來檢視、修改GFS2檔案系統的相關引數資訊。
下面列舉幾個使用例子:
1)檢視GFS2檔案系統掛載資訊
[root@web1 ~]# gfs2_tool df /gfs2
/gfs2:
SB lock proto = “lock_dlm”
SB lock table = “mycluster:my-gfs2”
SB ondisk format = 1801
SB multihost format = 1900
Block size = 4096
Journals = 4
Resource Groups = 19
Mounted lock proto = “lock_dlm”
Mounted lock table = “mycluster:my-gfs2”
Mounted host data = “jid=2:id=65539:first=0”
Journal number = 2
Lock module flags = 0
Local flocks = FALSE
Local caching = FALSE
Type Total Blocks Used Blocks Free Blocks use%
————— —————– ————- —————- ———–
data 1220724 136578 1084146 11%
inodes 1084263 117 1084146 0%
(2)gfs2_tool命令
2)鎖定與解鎖GFS2檔案系統:
[root@node1 gfs2]# gfs2_tool freeze /gfs2
[root@node1 gfs2]# gfs2_tool unfreeze /gfs2
GFS2檔案系統被鎖定後,無法進行讀寫操作,直到被解鎖。
3)查詢GFS2可掛載的接點數
[root@web1 ~]# gfs2_tool journals /gfs2
journal2 – 128MB
journal3 – 128MB
journal1 – 128MB
journal0 – 128MB
4 journal(s) found.
這裡顯示了可掛載節點數為4,並且每個journal的大小為128M。
4)顯示GFS2的版本資訊:
[root@web1 ~]# gfs2_tool version
gfs2_tool 0.1.62 (built Mar 31 2010 07:34:25)
Copyright (C) Red Hat, Inc. 2004-2006 All rights reserved
(3)gfs2-jadd命令
gfs2-jadd主要用來配置GFS2的Journals數量和大小,用法非常簡單:
gfs2_jadd [-cDhJjqV] /path/to/filesystem
下面列舉幾個用例:
設定Journals的大小為64M
[root@Mysql1 ~]# gfs2_jadd -J 64M
將GFS2可同時掛載的節點數目增加到5個
[root@Mysql1 ~]# gfs2_jadd -j 5 /gfs2
另外,另外gfs2_quota用於GFS2檔案系統磁碟配額管理,gfs2_convert是一個資料轉換應用程式,它可以對GFS檔案系統的後設資料進行更新,把它轉換為一個GFS2檔案系統。要深入瞭解它們的使用,請參考幫助資訊,這裡不在進行講述。
(完)