一,高可用原理node
系統可用性=平均無端障時間/(平均修復時間+平均無端障時間)服務器
提升系統可用性:框架
縮短平均修復時間(冗餘機制)ssh
延長平均平均無端障時間ide
提升系統可用性方法:ui
HA集羣:spa
手動切換命令行
自動切換orm
集羣切換:
接口
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爲例)
一、時間必須保持同步
使用ntp服務器
二、節點必須名稱互相通訊
解析節點名稱
編輯/etc/hosts 集羣中使用的主機名爲`uname -n`表示的主機名;
三、ping node
僅偶數節點才須要;
四、ssh密鑰認證進行通訊;