RHCS原理及操作_PHP教程

來源:互聯網
上載者:User

RHCS原理及操作


RHCS組件介紹:
1.1 分布式叢集管理器(CMAN)
Cluster Manager,簡稱CMAN,是一個分布式叢集管理工具,它運行在叢集的各個節點上,為RHCS提供叢集管理工作。CMAN用於管理叢集成員、訊息和通 知。它通過監控每個節點的運行狀態來瞭解節點成員之間的關係,當叢集中某個節點出現故障,節點成員關係將發生改變,CMAN及時將這種改變通知底層,進而做出相應的調整。
1.2 鎖管理(DLM)
Distributed Lock Manager,簡稱DLM,表示一個分布式鎖管理器,它是RHCS的一個底層基礎構件,同時也為叢集提供了一個公用的鎖運行機制,在RHCS叢集系統中,DLM運行在叢集的每個節點上,GFS通過鎖管理器的鎖機制來同步訪問檔案系統中繼資料。CLVM通過鎖管理器來同步更新資料到LVM卷和卷組。DLM不需要設定鎖管理伺服器,它採用對等的鎖管理方式,大大的提高了處理效能。同時,DLM避免了當單個節點失敗需要整體恢複的效能瓶頸,另 外,DLM的請求都是本地的,不需要網路請求,因而請求會立即生效。最後,DLM通過分層機制,可以實現多個鎖空間的並行鎖模式。
1.3 設定檔管理(CCS)
Cluster Configuration System,簡稱CCS,主要用於叢集設定檔管理和設定檔在節點之間的同步。CCS運行在叢集的每個節點上,監控每個叢集節點上的單一設定檔 /etc/cluster/cluster.conf的狀態,當這個檔案發生任何變化時,都將此變化更新到叢集中的每個節點,時刻保持每個節點的設定檔 同步。例如,管理員在節點A上更新了叢集設定檔,CCS發現A節點的設定檔發生變化後,馬上將此變化傳播到其它節點上去。RHCS的設定檔是 cluster.conf,它是一個xml檔案,具體包含叢集名稱、叢集節點資訊、叢集資源和服務資訊、fence裝置等。
1.4 柵裝置(FENCE)
FENCE裝置是RHCS叢集中必不可少的一個組成部分,通過FENCE裝置可以避免因出現不可預知的情況而造成的“腦裂”現象,FENCE裝置的出 現,就是為瞭解決類似這些問題,Fence裝置主要就是通過伺服器或儲存本身的硬體管理介面,或者外部電源管理裝置,來對伺服器或儲存直接發出硬體管理指 令,將伺服器重啟或關機,或者與網路中斷連線。FENCE的工作原理是:當意外原因導致主機異常或者宕機時,備機會首先調用FENCE裝置,然後通過 FENCE裝置將異常主機重啟或者從網路隔離,當FENCE操作成功執行後,返回資訊給備機,備機在接到FENCE成功的資訊後,開始接管主機的服務和資 源。這樣通過FENCE裝置,將異常節點佔據的資源進行了釋放,保證了資源和服務始終運行在一個節點上。RHCS的FENCE裝置可以分為兩種:內部 FENCE和外部FENCE,常用的內部FENCE有IBM RSAII卡,HP的iLO卡,還有IPMI的裝置等,外部fence裝置有UPS、SAN SWITCH、NETWORK SWITCH等
RHCS操作:
一、啟動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 -m
其中:
? 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 -m
例如,要關閉節點Mysql1上的mysqlserver服務,操作如下:
[root@Mysql1 ~]# clusvcadm -s mysqlserver -m Mysql1
Member Mysql1 stopping service:mysqlserver...Success
可以通過/var/log/messages檔案查看關閉應用服務的詳細資料。當mysqlserver關閉後,與服務相關的叢集資源:如虛擬IP、應用程式服務指令碼也隨之釋放。
3. 重啟某個應用服務
可以通過如下方式重啟某個節點的應用服務:
clusvcadm -R -m
例如,要重啟節點web1上的webserver服務,操作如下:
[root@web2 ~]# clusvcadm -R webserver -m web1
Member web1 trying to restart service:webserver...Success
這個命令是在web2節點上執行的,但是也能成功將web1節點上的webserver進行重啟,由此可知,clusvcadm命令在叢集任意節點執行都是可以的。
4. 切換某個服務
可以通過如下方式將一個應用服務從一個節點切換到另一個節點:
clusvcadm -r -m

例如,要將節點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 [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]
下面列舉幾個使用例子:
[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檔案系統。要深入瞭解它們的使用,請參考說明資訊,這裡不在進行講述。

http://www.bkjia.com/PHPjc/1068091.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1068091.htmlTechArticleRHCS原理及操作 RHCS組件介紹: 1.1 分布式叢集管理器(CMAN) Cluster Manager,簡稱CMAN,是一個分布式叢集管理工具,它運行在叢集的各個節點...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.