HA集群的开源实现方案
Message层:
1、hearbeat:主要有3个版本,v1和v2版与CRM集成在一起,v3版中CRM从heartbeat中独立出去,叫做pacemaker
2、corosync:
3、cman:RedHat研发,属于早期在corosync诞生之前RedHat在自己的企业版Linux系统上提供的解决方案
4、keepalived:上述三者实现方法是基于OpenAIS框架标准,而keepalived自己是基于VRRP协议实现心跳功能,专用于LVS集群
CRM层:
1、haresources:heartbeat v1自带,配置接口:配置文件,文件名为haresources
2、crm:heartbeat v2自带,在各节点运行一个crmd守护进程,监听在TCP 5560端口;配置接口,CLI接口:crmsh,或者GUI接口:hb_gui
3、rgmanager:RedHat研发,早期和cman配合使用,配置接口,配置文件:cluster.conf(xml文件),CLI接口:clustat、cman_tool等;GUI接口:conga(luci+ricci)、system-config-cluster
4、pacemaker:在heartbeat v3版后作为独立项目,可以单独运行或者以插件运行;配置接口,CLI接口:crmsh(Suse研发)、pcs(RedHat研发),CentOS 6.4后默认只提供pcs;GUI接口:hawk(Suse研发)、LCMC、pacemaker-gui;功能比rgmanager强大得多
RA:reosurce agent,有多种类型
1、heartbeat legacy:heartbeat早期的传统型RA,通常位于/etc/ha.d/haresources.d/目录下
2、LSB:Linux Standard Base,位于/etc/init.d/下的脚本,至少接受4个参数,{start|stop|restart|status}
3、OCF:Open Cluster Framework,这是一个开放框架,有很多不同的脚本提供者
4、systemd:通过systemctl命令实现资源管理
5、STONITH:专用于实现调用STONITH设备功能的资源,通常为clone类型
组合方式:
heartbeat v1+haresources
heartbeat v2+crm(如果你是喜欢老古董,恋旧,可以用v1和v2)
hearbeat v3+pacemaker
cman+rgmanager
corosync+pacemaker(目前最常用)
RHCS:Red Hat Cluster Suite红帽集群套件
在RHEL5/6:组合方式为cman+rgmanager+conga(luci+ricci)
RHEL6还提供corosync v1+pacemaker,该场景下pacemaker是作为插件运行;而corosync v1版没有投票系统,所以有人就把cman拿来作为corosync的插件来使用,即corosync v1+cman+pacemaker(马哥评价该方案:诡异而复杂)
RHEL7:corosync v2+pacemaker,corosync在v2版中增加了投票系统,功能也更强大,所以cman从此退出江湖
配置集群的前提条件:
1、各节点时间必须同步,使用ntp协议
2、节点之间需要通过主机名互相通信,必须实现主机名解析,hosts文件中配置的主机名必须和hostname命令显示的保持一致
3、考虑是否会用到仲裁设备
4、建议各节点的root用户可以通过基于秘钥认证
注意:定义称为集群服务中的资源,一定不能开机自启动,因为它们将由CRM管理