基於RHCS的web雙機熱備叢集搭建

來源:互聯網
上載者:User

標籤:sso   init.d   集合   center   dsa   int   enter   inno   使用方法   

基於RHCS的web雙機熱備叢集搭建RHCS叢集執行原理及功能介紹

1、 分布式叢集管理器(CMAN)
 Cluster Manager。簡稱CMAN。是一個分布式叢集管理工具。它執行在叢集的各個節點上,為RHCS提供叢集管理工作。

CMAN用於管理叢集成員、訊息和通知。它通過監控每一個節點的執行狀態來瞭解節點成員之間的關係。當叢集中某個節點出現問題。節點成員關係將發生改變,CMAN及時將這樣的改變通知底層,進而做出對應的調整。

2、鎖管理(DLM)
 Distributed Lock Manager,簡稱DLM。表示一個分布式鎖管理器,它是RHCS的一個底層基礎構件。同一時候也為叢集提供了一個公用的鎖執行機制。在RHCS叢集系統中,DLM執行在叢集的每一個節點上,GFS通過鎖管理器的鎖機制來同步訪問檔案系統中繼資料。

CLVM通過鎖管理器來同步更新資料到LVM卷和卷組。 DLM不須要設定鎖管理server,它採用對等的鎖管理方式,大大的提高了處理效能。

同一時候。DLM避免了當單個節點失敗須要總體恢複的效能瓶頸,另外,DLM的請求都是本地的。不須要網路請求。因而請求會馬上生效。

最後,DLM通過分層機制,能夠實現多個鎖空間的並行鎖模式。

3、設定檔管理(CCS)
 Cluster Configuration System,簡稱CCS,主要用於叢集設定檔管理和設定檔在節點之間的同步。

CCS執行在叢集的每一個節點上,監控每一個叢集節點上的單一設定檔/etc/cluster/cluster.conf的狀態,當這個檔案發生不論什麼變化時,都將此變化更新到叢集中的每一個節點。時刻保持每一個節點的設定檔同步。

比如,管理員在節點A上更新了叢集設定檔,CCS發現A節點的設定檔發生變化後。立即將此變化傳播到其他節點上去。 RHCS的設定檔是cluster.conf,它是一個xml檔案。詳細包括叢集名稱、叢集節點資訊、叢集資源和服務資訊、fence裝置等。


4、柵裝置(FENCE)
 FENCE裝置是RHCS叢集中不可缺少的一個組成部分,通過FENCE裝置能夠避免因出現不可預知的情況而造成的“腦裂”現象,FENCE裝置的出現,就是為瞭解決類似這些問題。Fence裝置主要就是通過server或儲存本身的硬體管理介面。或者外部電源管理裝置。來對server或儲存直接發出硬體管理指令。將server重新啟動或關機,或者與網路中斷連線。 FENCE的工作原理是:當意外原因導致主機異常或者宕機時,備機會首先調用FENCE裝置,然後通過FENCE裝置將異常主機重新啟動或者從網路隔離,當FENCE操作成功執行後,返回資訊給備機。備機在接到FENCE成功的資訊後,開始接管主機的服務和資源。

這樣通過FENCE裝置,將異常節點佔領的資源進行了釋放,保證了資源和服務始終執行在一個節點上。

RHCS的FENCE裝置能夠分為兩種:內部FENCE和外部FENCE,經常使用的內部FENCE有IBM RSAII卡。HP的iLO卡,還有IPMI的裝置等,外部fence裝置有UPS、SAN SWITCH、NETWORK SWITCH等

5、高可用服務管理員
 高顯示狀態服務管理主要用來監督、啟動和停止叢集的應用、服務和資源。它提供了一種對叢集服務的管理能力,當一個節點的服務失敗時,高可用性設定組群服務管理進程能夠將服務從這個失敗節點轉移到其他健康節點上來,並且這樣的服務轉移能力是自己主動、透明的。RHCS通過rgmanager來管理叢集服務,rgmanager執行在每一個叢集節點上。在server上相應的進程為clurgmgrd。在一個RHCS叢集中,高顯示狀態服務包括叢集服務和叢集資源兩個方面。叢集服務事實上就是應用服務。比如apache、mysql等,叢集資源有非常多種,比如一個IP地址、一個執行指令碼、ext3/GFS檔案系統等。在RHCS叢集中,高顯示狀態服務是和一個失敗轉移域結合在一起的,所謂失敗轉移域是一個執行特定服務的叢集節點的集合。在失敗轉移域中,能夠給每一個節點設定相應的優先順序,通過優先順序的高低來決定節點失敗時服務轉移的先後順序,假設沒有給節點指定優先順序,那麼叢集高可用服務將在隨意節點間轉移。因此,通過建立失敗轉移域不但能夠設定服務在節點間轉移的順序,並且能夠限制某個服務僅在失敗轉移域指定的節點內進行切換。

6、叢集組態管理工具
 RHCS提供了多種叢集配置和管理工具,經常使用的有基於GUI的system-config-cluster、Conga等,也提供了基於命令列的管理工具。
 system-config-cluster是一個用於建立叢集和配置叢集節點的圖形化管理工具,它有叢集節點配置和叢集管理兩個部分組成。分別用於建立叢集節點設定檔和維護節點執行狀態。一般用在RHCS早期的版本號碼中。Conga是一種新的基於網路的叢集組態工具,與system-config-cluster不同的是,Conga是通過web方式來配置和管理叢集節點的。Conga有兩部分組成,各自是luci和ricci,luci安裝在一台獨立的電腦上。用於配置和管理叢集,ricci安裝在每一個叢集節點上。Luci通過ricci和叢集中的每一個節點進行通訊。

RHCS也提供了一些功能強大的叢集命令列管理工具。經常使用的有clustat、cman_tool、ccs_tool、fence_tool、clusvcadm等。這些命令的使用方法將在以下講述。

7、 Redhat GFS
     GFS是RHCS為叢集系統提供的一個儲存解決方式。它同意叢集多個節點在塊層級上共用儲存,每一個節點通過共用一個儲存空間。保證了訪問資料的一致性,更切實的說,GFS是RHCS提供的一個叢集檔案系統,多個節點同一時候掛載一個檔案系統分區,而檔案系統資料不受破壞,這是單一的檔案系統,比如EXT3、EXT2所不能做到的。


 為了實現多個節點對於一個檔案系統同一時候讀寫操作。GFS使用鎖管理器來管理I/O操作。當一個寫進程操作一個檔案時。這個檔案就被鎖定。此時不同意其他進程進行讀寫操作。直到這個寫進程正常完畢才釋放鎖。僅僅有當鎖被釋放後,其他讀寫進程才幹對這個檔案進行操作,另外。當一個節點在GFS檔案系統上改動資料後。這樣的改動操作會通過RHCS底層通訊機制馬上在其他節點上可見。在搭建RHCS叢集時,GFS一般作為共用儲存,執行在每一個節點上。而且能夠通過RHCS管理工具對GFS進行配置和管理。這些須要說明的是RHCS和GFS之間的關係。一般剛開始學習的人非常easy混淆這個概念:執行RHCS。GFS不是必須的,僅僅有在須要共用儲存時,才須要GFS支援,而搭建GFS叢集檔案系統,必須要有RHCS的底層支援,所以安裝GFS檔案系統的節點,必須安裝RHCS組件。

叢集環境介紹

主節點。RealServer1: 192.168.10.121

備節點,RealServer2: 192.168.10.122

儲存節點,Node1:       192.168.10.130

叢集的浮動 IP:           192.168.10.254

配置主機之間的ssh互信

① 在每台主機上運行一下代碼

/usr/bin/ssh-keygen -t rsa/usr/bin/ssh-keygen -t dsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


② 建立 RealServer1和RealServer2之間的ssh互信

在RealServer1上運行:

ssh server2 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys ssh server2 cat /root/.ssh/id_dsa.pub >> /root/.ssh/authorized_keys

在RealServer2上運行:

ssh server1 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys ssh server1 cat /root/.ssh/id_dsa.pub >> /root/.ssh/authorized_keys


配置target 儲存
yum install iscsi-target-utils -y
service tgtd restartchkconfig tgtd onHOSTNAME="iqp.2014-08-25.edu.nuist.com:storage.disk"tgtadm --lld iscsi --mode target --op  new --tid 1 --targetname $HOSTNAMEtgtadm --lld iscsi --op new --mode logicalunit --lun 1 --tid 1 -b /dev/sdbtgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL#tgtadm --lld iscsi --op show --mode target |grep Targettgt-admin -s
配置全部節點的initiator
yum install iscsi-initiator* -yservice iscsi startservice iscsid startchkconfig iscsidiscsiadm -m discovery -p 192.168.10.130:3260 -t sendtargetsiscsiadm -m node --targetname iqp.2014-08-25.edu.nuist.com:storage.disk -p 192.168.10.130:3260 --login


建立一個GFS2檔案系統(僅僅在當中一個節點)(在192.168.10.121上建立)(建立一個lvm)

pvreate /dev/sdbvgcreate webvg /dev/sdb lvcreate -L 2G -n webvg_lv1 webvg


在每一個節點上安裝叢集軟體

yum -y install cman* yum -y install rgmanager*yum -y install gfs2-utilsyum -y install system-config-cluster*yum -y install lvm2-cluster


格式檔案系統(格式化一次就可以)

mkfs.gfs2 -p lock_dlm -t httpd_cluster:webvg_lv1 -j 2 /dev/webvg/webvg_lv1

使用 system-config-cluster 圖形工具產生 cluster.conf設定檔

① 啟動system-config-cluster,建立httpd_cluster

    

   

   

② 加入新節點

   

③ 加入fence

   

④ 將fence和節點綁定

   

⑤ 加入資源:加入 IP 資源

   

⑥ 加入資源:加入GFS資源

   

⑦ 加入資源:加入Script資源

   

⑧ 建立失效域

   

⑨ 建立叢集服務

   

配置完畢後的檔案內容例如以下

<?xml version="1.0" ?><cluster config_version="2" name="httpd_cluster"><fence_daemon post_fail_delay="0" post_join_delay="3"/><clusternodes><clusternode name="RealServer1" nodeid="1" votes="1"><fence><method name="1"><device name="fence1" nodename="RealServer1"/></method></fence></clusternode><clusternode name="RealServer2" nodeid="2" votes="1"><fence><method name="1"><device name="fence2" nodename="RealServer2"/></method></fence></clusternode></clusternodes><cman expected_votes="1" two_node="1"/><fencedevices><fencedevice agent="fence_manual" name="fence1"/><fencedevice agent="fence_manual" name="fence2"/></fencedevices><rm><failoverdomains><failoverdomain name="httpd_fail" ordered="0" restricted="1"><failoverdomainnode name="RealServer1" priority="1"/><failoverdomainnode name="RealServer2" priority="1"/></failoverdomain></failoverdomains><resources><ip address="192.168.10.254" monitor_link="1"/><script file="/etc/init.d/httpd" name="httpd"/><clusterfs device="/dev/webvg/webvg_lv1" force_unmount="1" fsid="8669" fstype="gfs2" mountpoint="/var/www/html" name="docroot" options=""/></resources><service autostart="1" domain="httpd_fail" name="httpd_srv" recovery="relocate"><ip ref="192.168.10.254"/><script ref="httpd"/><clusterfs ref="docroot"/></service></rm></cluster>

將產生後的cluster.conf通過scp拷貝到其它節點上。

(第一次須要手動複製。叢集服務啟動後能夠通過system-config-cluster向全部節點分發設定檔。)


在RealServer1 和RealServer2 上安裝apache

yum install httpd

配置RealServer1(RealServer2類似)

NameVirtualHost 192.168.10.121:80ServerName   www.example.com<VirtualHost 192.168.10.121:80>DocumentRoot /var/www/htmlServerName   www.example.com</VirtualHost>

設定apache開機不啟動

chkconfig httpd off


啟動叢集服務

service cman startservice rgmanager startlvmconf --enable-clusterservice clvmd start

叢集啟動後,開啟system-config-cluster後。例如以。能夠對叢集的設定檔進行改動,改動完畢後能夠通過Send to  Cluster向全部節點分發設定檔。該工具內建版本號碼控制的功能,每次改動設定檔後,會自己主動產生一個新版本號碼。叢集服務啟動後,“Cluster Manager”才會出現,其內容如右圖。分別顯示叢集中的節點,叢集服務的狀態,和叢集中的主節點。

   

測試

至此叢集搭建完成

查看叢集狀態: clustat

查看掛載狀態: mount

手動切換主被節點:clusvcadm -r httpd_srv 備用主機名稱

查看浮點ip附著在那台主機上: ip addr

通過瀏覽器訪問apache: http://192.168.10.254


參考

1. 51CTO朱偉宏老師的視頻教程。地址:http://edu.51cto.com/course/course_id-2.html

2. 百度文庫:紅帽叢集套件RHCS四部曲



??????

基於RHCS的web雙機熱備叢集搭建

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.