ha_aware:通過底層傳遞的信息調用API完成集羣事務的決策
非ha_aware:作爲一個框架,能夠自動完成集羣事務的決策。
HA集羣架構
1.負責實現各層次功能的軟件:
Messaging Layer:
heartbeat:有三個版本 V1、V2、V3
corosync/OpenAIS
cman:Cluster Manager(RedHat 提供)
Resourc Allocation:
heartbeat V1:
haresources (配置文件和配置接口:haresources)
heartbeat V2:
crm(各節點都運行crmd進程,客戶端:crmsh、heartbeat-GUI,服務端:crmd
heartbeat V3:heartbeat+pacemaker+cluster-glue(集羣粘結器)
pacemaker:
配置接口:
CLI:crm,pcs
GUI:hawk,LCMC,pacemaker-mgmt
cman+rgmanager:
rgmanager:Resources Group Manager:提供故障轉移域:Failover Domain
配置接口:Conga(完全生命週期配置接口)
Resource:
Resource Agent類型:4種
heartbeat legacy:heartbeat傳統類型:
LSB:/etc/rc.d/init.d/*
O:Open Cluster Framework (Provider:pacemaker,linbit等)
STONITH:實現節點隔離
2.資源隔離:避免集羣分裂導致的非集羣節點的資源爭用
節點級別:STONITH、clone
資源級別:
3.集羣的工作模型:
A/P:工作與主備模型:兩個節點
N-M:N>M N個節點,M個服務,活動節點爲N,備用節點爲N-M
N-N:N個節點,N個服務
A/A:雙主模型
4.資源的轉移方式:
rgmanager:Failover Domain,根據故障轉移域中各節點的優先級轉移故障節點中的資源
pacemaker:通過資源約束完成資源轉移(3種類型)
位置約束:資源更傾向運行於哪一個節點(值越大傾向性越大)
inf:正無窮
n
-n
-inf:負無窮大
排列約束:資源運行在同一節點的傾向性
inf:必須在一起
-inf:儘可能不會運行在一起
順序約束:資源啓動以及關閉順序
5.資源類型:
primitive,native:主資源,只能運行於集羣中的一個節點上
group:組資源
clone:克隆資源
master/slave:主從資源,主的能執行讀寫操作,從節點只能同步主的數據,不能讀寫。
總結:
1.一般情況集羣的節點數大於2且爲奇數。
若集羣節點爲2或者爲偶數時,則需要仲裁設備(ping node、ping group node和仲裁盤等)。
2.當集羣出現故障發生腦裂,羣節點和非集羣節點發生資源爭用,會造成共享儲存的文件系統崩潰,因此需要對資源進行隔離。
3.定義多個資源運行於同一個節點的實現方式:A.排列約束 B.定義組資源
4.如果節點不是集羣節點時,對當前運行節點的資源處理方式:A.stoped B.ignore(繼續運行,完成後不再分配資源) C.freeze D.suicide
如有不正確的地方,請給予指正會在第一時間進行修改。