標籤:style io os 使用 ar 檔案 資料 art sp
HA(High Availability,高可用)叢集的主要目的是提高服務的線上率,也就是縮短平均無故障的時間。實際上就是當一個提供服務的服務節點不線上時,有另一個提供相同服務的節點可以繼續提供服務,避免出現單點故障。
HA叢集相關概念一、相關名詞解釋1、線上率
線上率是衡量HA叢集的一個重要指標,就算方式如下:
線上率=平均無故障時間/(平均修複時間 + 平均無故障時間)
所以提高系統的可用性:
1)、增加平均無故障時間
2)、縮短平均修複時間 (可以通過冗餘機制實現)
2、資源
這裡的資源指的是 HA 叢集提高服務時所需要的資源。例如:提供mysql服務時,需要的資源有ip地址(訪問資料庫的介面),mysql服務指令碼(提供資料庫服務),檔案系統(提供資料的儲存位置,可以是本地的檔案系統也可以是共用檔案系統,例如:nfs等)。
對於不同的 HA 叢集來說所需要的資源也是不同的。
3、資源類型
主資源:primitive/native,只能運行在某一節點
組資源:是多個資源的集合
clone:複製資源,一個資源可以運行於多個節點。包括複製的份數,每個節點最多啟動並執行複製份數都要指定
master/slave:主從資源,特殊的複製資源。(drbd)
4、資源切換
FailOver:容錯移轉,當節點出現故障時,需要實現資源的轉移。
FailBack:資源恢複,當出現故障的節點重新上線時,是否重新接管資源。
5、資源約束
定義資源與資源之間的粘性和約束。常見的約束有位置約束、排練約束、順序約束。
二、HA 叢集架構
這裡提到的架構是使用軟體的方式來實現高可用,能實現高可用叢集的軟體都應該實現以下幾個方面的內容。
1、Messaging Layer(訊息層)
此層的主要目的是為了傳遞“心跳”資訊。“心跳”資訊: (也稱為狀態資訊)是一定大小的廣播、組播或多播資料包。可為以每個節點配置其向其它節點通報“心跳”資訊的頻率,以及其它節點上的進程為了確認主節點出節點出現了運行等錯誤之前的等待時間。
能實現此功能的軟體有:
heartbeat v1
heartbeat v2
heartbeat v3
corosync
cman
2、CRM(Cluster Resource Manager叢集資源管理)
所在的HA叢集中的每個節點都啟動並執行,為高可用叢集提供核心組件,包括資源的定義,屬性。另外,在每個節點上都維護一個CIB(叢集資訊庫 XML文檔)和LRM(本地資源管理)組件。對於CIB只有工作在DC(主節點)上的文檔才是可以修改的。對於LRM,是執行CRM傳遞過來的本地執行某個資源和停止的具體執行人。當某個節點發生故障時,是由DC通過PE(策略引擎)和TE(實施引擎)來決定是否搶奪資源。
實現此層功能的軟體有:
1)、heartbeat v1: 內建資源管理員haresources,haresources:需要的是設定檔,檔案名稱為haresources
2)、heartbeat v2: 內建資源管理員crm,crm:需要在各節點運行crmd。配置介面:命令列:crmsh;GUI:ha-gui
3)、heartbeat v3 = heartbeat + pacemaker + cluster-glue
pacemaker:CLI: crm(SuSE),pcs;GUI介面:hawk,pacemaker-mgmt
4)、rgmanager(cman作為Message Layer):會使用到Failover Domial,Node priority這些機制來管理叢集。
配置介面:CLI: clustat,cman_tool;GUI: Conga(lici + ricci)
3、RA(Resource Agent資源代理)
能夠管理本節點上的屬於叢集的某一資源的啟動、停止和狀態資訊的指令碼。
常見的資源代理:
LSB:在/etc/init.d/目錄下的所有指令碼
OCF(Open Cluster Framework 開源叢集架構):相比LSB來說,更加通用。
hb legcy: /etc/ha.d/haresource.d/下的所有檔案
三、資源約束
資源啟動並執行傾向性:(資源轉移傾向性)
資源粘性:資源傾向於留在當前節點的值 (-oo +oo)
-oo的意思是:只有此節點提供服務時,才選擇。
+oo 優先選擇此節點。
資源約束:
位置約束:資源對某一節點啟動並執行傾向性
inf -inf
排列約束:定義資源之間的傾向性
inf:
-inf:
順序約束:多個資源運行於同一節點時,啟動和關閉的次序
未完待續......
Linux HA叢集