一,高可用原理

系统可用性=平均无故障时间/(平均修复时间+平均无故障时间)

提高系统可用性:

缩短平均修复时间(冗余机制)

延长平均平均无故障时间

提高系统可用性方法:

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密钥认证进行通信;