RHCS:red hat cluster suite 紅帽集羣套件,RHCS是一個能夠提供高可用性、高可靠性、負載均衡、存儲共享且經濟廉價的集羣工具集合,它將集羣系統中三大集羣架構融合一體,可以給web應用、數據庫應用等提供安全、穩定的運行環境。
RHCS提供三個核心功能:
高可用集羣:當應用程序出現故障,或系統硬件、網絡出現故障時,可以收高可用性管理組件自動、快速從一個節點切換到另一個節點,節點故障轉移功能對客戶端來說是透明的。
負載均衡集羣:RHCS通過LVS提供負載均衡,可以將客戶端請求按照一定的算法把請求分配到各個服務節點。同時lvs還提供健康檢查。
存儲集羣功能:RHCS通過GFS文件系統提供存儲集羣功能。GFS(Global File System)允許多個服務同時去一個單一的共享文件系統,存儲集羣通過將共享數據放到一個共享文件系統中,從而消除了同步數據的麻煩。GFS通過鎖管理機制,來協調和管理多個服務節點對同一個文件系統的讀寫操作。
RHCS的集羣組成:
集羣構架管理器:這是RHCS集羣的一個基礎套件,提供一個集羣的基本功能,包含分佈式集羣管理器(CMAN)、成員關係管理、鎖管理(DLM)、配置文件管理(CCSD)、柵設備(FENCE)。注:這是rhel5集羣管理套件組成,rhel6中ccsd由cman提供配置文件管理。
高可用服務管理器:提供服務監控和服務故障轉移功能(rgmanager或pacemaker)
集羣配置管理器:RHCS最新版是通過Conga來配置和管理RHCS集羣,Conga由兩部份組成,LUCI和RICCI。LUCI是基於web的集羣配置方式,LUCI安裝在一臺獨立的計算機上,用於配置和管理集羣,RICCI安裝在每個集羣的服務節點,LUCI通過RICCI和每個集羣中的節點進行通信。在RHCL5還提供了一生中GUI的管理工具system-config-cluster,但在RHEL6上已經不提供這種管理方式了。
LVS: 負載均衡軟件,根據各種算法來實現把負載動態分配到各位集羣節點上去。
RHCS集羣的拓撲結構:
RHCS組件
實驗環境:
系統全部是 centos6.5
LUCI安裝在一臺機器10.204.80.71,這臺機器做爲模擬ISCSI設備的磁盤提供。
另外3臺機器做爲集羣服務器節點,ip地址分別爲:
10.204.80.75 rs3
10.204.80.76 rs4
10.204.80.77 rs5
在71控制服務器上安裝luci
這裏加上參數—disablerepo=epel是因爲有個python模塊在epel源中比basic模塊中要新,但在安裝過程中會有問題,luci裝不上,所以要禁掉epel源。
安裝完成後就可以啓動Luci
提示不是受信任的站點
點擊已經充分了解風險,
就可以看到luci的登陸界面,用71這臺機器的root帳號密碼登陸就可以看到操作界面
就可以添加節點了,不過集羣節點需要安裝ricci。
在/etc/hosts文件中入host名稱解析
在ansiable的hosts文件中新加一個羣組
安裝完成後,給ricci帳號添加密碼爲”mypass”
顯示密碼添加成功,把ricci服務啓動
就可以到luci的控制web頁面上添加集羣節點了
在https://10.204.80.71:8084頁面登陸,然後創建一個cluster
節點添加完成以後就可以看到集羣的狀態了,三個節點rs3,rs4,rs5都已經正常在線了
集羣搭建完成以後就可以在Resource裏面添加資源,要啓動資源則要把資源加入到資源組裏面才能啓動資源。
還可以把節點加入的Failover Domains(故障轉移域),在做高可用集羣時就,當一個節點故障時,資源轉移的優先級比較高的節點上去,而且只能在某些在故障轉移域中的節點轉移。因爲沒有fence設備,所以也就沒有再做過多的設置。
集羣文件系統的創建:
IP SAN的模擬
GFS文件系統配置需要一臺機器模擬IP SAN,這個裏用71這臺服務器模擬IP SAN
SAN: 塊級別共享存儲,分爲光纖存儲區域網絡(FC SAN)和以太網存儲區域網絡(IP SAN)。
IP SAN:以太網存儲區域網絡,是以iSCSI標準在TCP/IP上進行數據塊傳輸,能夠在高速以太網上進行快速存取備份操作。
要虛擬一個IP SAN設備,首先是虛擬一個target,在target上再連接一個LUN,然後定義target的訪問控制列表。
在71這臺服務器上安裝iSCSI模塊
#yum install –y scsi-target-utils
啓動tgtd服務,設爲開機自動啓動,查看tgtd的端口,確定tgtd已在監聽狀態
因爲target創建一個磁盤做爲共享磁盤會用到域名,所以,把71的hostname改爲m.mylinux.com,在hosts文件中也改爲相對應的名稱
tgtadm創建一個target的語法:
tgtadm:
[-L --lld <driver>] [-o --op <operation>] [-m --mode <mode>] [-t --tid <id>] [-T --targetname <targetname>]
創建一個tid 爲1的target
#tgtadm -L iscsi -m target -o new -t 1 -T iqn.2014-10.com.mylinux.tgt1:websan.disk1
# tgtadm -L iscsi -m target -o show 顯示target信息
創建一個邏輯單元語法:
tgtadm
--lld [driver] --op new --mode=logicalunit –tid [id] –lun [lun] --backing-store [path]
創建一個LUN號爲1的邏輯設備
#tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/mapper/VolGroup-lv02
添加這個teget的訪問控制列表
target的用戶認證方式啓用的是CHAP(挑戰式握手認證協議),也可以做單方向的認證。
<IncomingUser> 服務器端自己提供的用戶密碼,客戶端拿這個帳號來登錄服務器的。
<OutgoingUser> 在服務器創建客戶端驗證帳號來驗證服務器的
我這裏啓用的是服務器自己提供用戶密碼,客戶端登陸服務器,添加訪問這個target的訪問帳號,
IPSAN服務端配置完成,客戶端可以用發現命令發現這個設備
客戶端設置:
用ansiable安裝gfs組中的iscsi-initiator-utils
#ansiable gfs -m yum –a “name=iscsi-initiator-utils state=installed”
客戶端安裝完成,首先要定義initiator的獨有名稱,然後再發現設備,登陸
啓用CHAP認證,在rs3,rs4,rs5的三個集羣節點的配置文件/etc/iscsi/iscsid.conf中啓用CHAP認證,
node.leading_login = Yes
node.session.auth.authmethod = CHAP
node.session.auth.username = mygfs
node.session.auth.password = mypass123
啓動iscsi服務,設備iscsi 服務開機啓動
各集羣節點發現、登陸target
#iscsiadm –m descovery –t sendtargets –p 10.204.80.71 #發現target,用ansiable在各節點上同時運行
登陸target
登陸成功
在rs3中用fdisk –l命令顯示所有磁盤信息,就可以看到有一個新硬盤設備/dev/sdb
在rs4,rs5集羣節點上同樣可以看到這個設備
安裝gfs2-utils和lvm2-cluster
在集羣節點上啓用lvm集羣功能 ,啓動clvmd服務
創建一個gfs文件系統需要提供的信息:
1. 鎖類型:
lock_nolock
lock_dlm
2. 鎖文件的名字,通常即文件系統名
3. 日誌的個數,通過一個節點對應一個日誌文件,但建議提供比節點數更多的日誌數目,以提供冗餘
4. 日誌文件的大小
5. 文件系統的大小
裝載gfs2的模塊,查看gfs2模塊
在rs3節點上把設備/dev/sdb 添加爲PV,創建VG,然後創建LV
創建容量爲20G的lv
把lv-gfs格式化爲gfs文件系統
格式化時mkfs.gfs2 –p lock_dlm 要放在-j num 參數前面,不然無法格式化
同樣,在節點rs4,rs5上都掛載到/data目錄下
在rs3節點的/data目錄下touch一個aa.txt文件,有echo即時寫入字符,在rs4,rs5節點上用tail –f 命令查看aa.txt,就會看到,當rs3節點上寫入一段字符,在rs4.rs5節點上都會馬上出現,集羣文件系統搭建完成
把 /data 和gfs 文件寫入到/etc/fstab文件中然後把service gfs2開機啓動,這樣,當節點重新啓動時就會自動掛載gfs2文件系統。
注意:上面的實驗過程中,71這臺服務器虛擬的一個target沒有寫入配置文件,只是用命令啓動,當這個主luci管理端重新啓動後就不會再啓動了,所以需要把這個target寫入到/etc/tgt/targets.conf配置 文件中,這樣,開機纔會自動模擬這個IP SAN設備。而在rs3,rs4,rs5這個集羣中並沒有定義fence設備,一旦有節點down掉,而集羣沒有及時fence掉這個節點,那麼這個集羣文件系統有可能會產生分裂。在真實應用場景中fence設備是一定要有的。