High Availability手冊(2): 架構

hxw2ljj發表於2015-11-18

image

最底層是通訊層corosync/openais

負責cluster中node之間的通訊

上一層是Resource Allocation Layer,包含下面的元件:

CRM Cluster Resouce Manager

是總管,對於resource做的任何操作都是透過它。每個機器上都有一個CRM。

CIB Cluster Information Base

CIB由CRM管理,是在記憶體中的XML資料庫,儲存了cluster的配置和狀態。我們查詢出來的configuration都是儲存在CIB裡面的。nodes, resources, constraints, relationship.

DC Designated Coordinator

每個node都有CRM,會有一個被選為DC,是整個Cluster的大腦,這個DC控制的CIB是master CIB,其他的CIB都是副本。

PE Policy Engine

當DC需要進行一些全域性配置的時候,首先由PE根據當前的狀態和配置,計算出將來的狀態,並生成一系列的action,使得cluster從初始狀態變為結果狀態。PE僅僅在DC上執行。

LRM Local Resource Manager

本地的resource管理,呼叫resource agent完成操作,啟停resource,將結果返回給CRM

再上一層是Resource Layer

包含多個resource agent。resource agent往往是一些shell script,用來啟動,停止,監控resource的狀態。

root@pacemaker01:~# ps aux | grep pace
root      3363  0.0  0.1  81812  3748 ?        Ss   Jul28   0:06 /usr/lib/pacemaker/lrmd
haclust+  3365  0.0  1.1 114428 23808 ?        Ss   Jul28   0:03 /usr/lib/pacemaker/pengine
root     20103  0.0  0.2 107496  4532 pts/2    S    10:06   0:00 pacemakerd
haclust+ 20105  0.0  0.6 110244 12560 ?        Ss   10:06   0:00 /usr/lib/pacemaker/cib
root     20106  0.0  0.3 107248  6680 ?        Ss   10:06   0:00 /usr/lib/pacemaker/stonithd
haclust+ 20107  0.0  0.2  96640  4148 ?        Ss   10:06   0:00 /usr/lib/pacemaker/attrd
haclust+ 20108  0.0  0.4 166536  9172 ?        Ss   10:06   0:00 /usr/lib/pacemaker/crmd

流程

比如要新增一個Cluster IP

  1. 命令列將Cluster IP加入CIB
  2. DC將CIB的修改同步到所有的crmd
  3. DC上的PE計算如何部署這個Cluster IP,在哪個node上,做什麼操作
  4. DC將操作列表同步到所有的crmd
  5. 每個crmd呼叫本地的lrmd做真正的部署
  6. lrmd呼叫resource agent來啟動或者停止一些操作
  7. lrmd操作完,將結果返回給DC

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18796236/viewspace-1840129/,如需轉載,請註明出處,否則將追究法律責任。

相關文章