一,高可用原理
系統可用性=平均無故障時間/(平均修複時間+平均無故障時間)
提高系統可用性:
縮短平均修複時間(備援機制)
延長平均平均無故障時間
提高系統可用性方法:
HA叢集:
手動切換
自動切換
叢集切換:
failover: 故障切換
failback: 修複轉會
叢集資源:
vip: float ip
ipvs規則
限制類型:
位置限制(location)
排列限制(colocation)
順序限制(order)
解決方案:
vrrp+script: keepalived
ais:
heartbeat
corosync
cman(openais)
服務的類型:
no ha-aware
ha-aware
HA的架構:
HA分層
Messaging Layer: 基礎事務層,傳遞叢集事務及心跳資訊
提供程式:heartbeat v1, v2, v3 corosync(openAIS) cman(openAIS)
CRM: Cluster Resource Manager
提供程式:heartbeat v1: 自帶資料總管haresources(配置接口:配置檔案,檔案名也叫haresources)
heartbeat v2: 自帶資料總管crm (各節點運作crmd程序,配置接口:指令行用戶端crmsh,GUI用戶端hb-gui)
heartbeat v3 = heartbeat + pacemaker + cluster-glue
packmaker:
CLI: crm(SuSE), pcs
GUI: hawk, LCMC, pacemaker-mgmt
cman + rgmanager:
resource group manager:Failover Domain, node priority
配置接口:
clustat, cman_tool
Conga: luci+ricci
LRM: Local Resource Manager
由CRM提供
RA:Resource Agent
heartbeat legacy: heartbeat和傳統類型,通常是/etc/ha.d/haresources.d/目錄下的腳本;
LSB: /etc/init.d/*
OCF(Open Cluster Framework):
provider:
STONITH:
quorum: 法定票數(大于總票數的一半)
用來判定叢集分裂的場景中,某些節點是否可以繼續以叢集方式運作;
with quorum 擁有法定票數,叢集正常
with out quorum 沒有法定票數,叢集發生腦裂
仲裁裝置:
ping node
ping node group
quorum disk: qdisk
資源隔離機制:
節點級别:STONITH
電源交換機
服務硬體管理子產品
資源級别:
stopped
ignore
freeze
suicide
二,CentOS或RHEL系統高可用叢集的工作模型:
CentOS 5:
RHCS:cman+rgmanager
選用第三方方案:corosync+pacemaker, heartbeat(v1或v2), keepalived
CentOS 6:
RHCS: cman+rgmanager
corosync + rgmanager
cman + pacemaker
heartbeat v3 + pacemaker
keepalived
三,配置高可用叢集的前提:(以兩節點的heartbeat為例)
1、時間必須保持同步
使用ntp伺服器
2、節點必須名稱互相通信
解析節點名稱
編輯/etc/hosts 叢集中使用的主機名為`uname -n`表示的主機名;
3、ping node
僅偶數節點才需要;
4、ssh密鑰認證進行通信;