heartbeat(三)
heartbeat v2 crm 配置高可用集群
前面《LINUX集群—高可用 高可用集群》认识高可用集群的一些基本概念,在《LINUX集群—高可用heartbeat v2 haresource配置高可用集群》认识heartbeat v2 haresource配置高可用集群,还在《heartbeat v2 haresource 配置NFS共享存储高可用集群》进行NFS共享WEB存储的高可用集群应用配置,下面将会在前面的基础上用heartbeat v2及版本中的crm配置NFS共享存储WEB高可用集群。
1、heartbeat v2 crm
从前面几篇文章可以知道,heartbeat v2提供了完整的高可用方案,既包含了Messaging Layer,又包含CRM,其中CRM有haresource(默认)和crm,两者不兼容只能二选一,本文基于crm配置。
1-1、heartbeat v2 crm与heartbeat v2 haresource
与haresource只提供文本配置(haresource文件)不同,crm提供了开放的配置API,所以有CLI(crm_sh)和GUI(hb_gui)更加强大、便捷的配置方式。
不过heartbeat v2在/usr/lib64/heartbeat/下提供了很多自动化的管理脚本,其中有一个haresources2cib.py可以指定将/etc/ha.d/haresources配置文件转换为xml格式的CIB,再存放到/var/lib64/heartbeat/crm下,就可以为crm所用了。
1-2、CIB(Cluster Information Base,集群信息库)
CIB(Cluster Information Base)在《LINUX集群—高可用 高可用集群》提到,在每一个节点上都包含一个CRM,且每个CRM都维护这一个CIB,只有在主节点上的CIB是可以修改的,其他节点上的CIB都是从主节点那里复制而来的,所以我们需要连接主节点在主节点上来配置。
CIB文件是xml格式的,通过CLI(crm_sh)和GUI(hb_gui)配置生成在/var/lib64/heartbeat/crm目录下。
1-3、自动化管理脚本
heartbeat在/usr/lib64/heartbeat/目录下提供有很多自动化管理脚本:
除了前面用到的hb_standy使主节点成为备节点,haresources2cib.py转换haresource为cib,外还有许多:ha_propagate使得配置文件远程复制到其他节点,send_arp:VIP转移后自己发出arp,crmd、lrmd、pengine、tengine都是前面说到的一些重要进程的脚本等。
1-4、crm管理命令
crm相关命令行工具,通常位于/usr/sbin,所有的命令均可以通过<command> --help 方式来获取帮助:
crm_verify --校验集群配置文件
crm_uuid --查看节点的uuid
crm_standby --操作节点的备用属性以确定资源是否可在此节点上运行
crm_resource --资源管理工具
crm_mon --集群健康状态监控
crm_master --管理主/从属资源的自选设置,以在给定节点上提升
crm_failcount --管理记录每个资源的故障计数的计数器。
crm_diff --识别对群集配置所做的更改,并将增补程序应用到配置文件
crm_attribute --允许查询、修改和删除节点属性和群集选项。
crmadmin --控制群集资源管理器
crm_sh --crm命令提示符下的工具集
cibadmin --提供对群集配置的直接访问
2、高可用集群架构设计
这里还是沿用上篇《heartbeat v2 haresource 配置NFS共享存储高可用集群》的架构,用crm进行NFS共享WEB存储的高可用集群应用配置,具体架构资源如下:
1、节点主机系统:RHEL 5.8 64bit
2、高可用集群软件:Heartbeat v2 crm
3、两台节点主机node1,node2:
Node1: IP:192.168.18.241 host name:node1.tjiyu,com;
Node2: IP:192.168.18.242 host name:node2.tjiyu.com;
VIP: 192.168.18.240
4、一台NFS服务主机:
IP:192.168.18.243 共享目录:/web/hahtml
5、所提供服务:WEB(httpd)
3、heartbeat v2 crm相关准备配置
本文是在前面的配置基础上进行的,前面说到的heartbeat配置前所需要的准备:
1、配置IP、安装WEB服务、关闭防火墙;
2、配置各节点名称;
3、建立各节点间的SSH互信通信;
4、各节点间的时间同步;
5、heartbeat v2下载安装;
6、NFS服务配置;
这里就不再详细给出了,下面将直接用hb_gui图形界面的方式来配置。
3-1、配置使用crm
因为heartbeat v2 默认使用haresouce,所以先要在ha.cf文件中配置启用crm的方式,在文件最后加上crm respawn即可:
再用前面说到的ha_propagage脚本使得配置文件远程复制到其他节点(node2)上,可以看到ha.cf和authkeys文件复制到node2了:
在node1上先启动自己的heartbeat服务,再SSH远程启动node2的,使用crm_mon查看监控状态;
[root@node1 ha.d]# service heartbeat start
[root@node1 ha.d]# ssh node2 'service heartbeat start'
[root@node1 ~]# crm_mont'
3-2、配置使用hb_gui图形界面
发现主节点DC是运行在node2上,所以需要到node2上运行hb_gui进行相关配置;xshell属性需要在SSH隧道中勾选使用xmanager,xmanager需要先下载安装,之后运行hb_gui弹出配置图形界面,需要一个登录用户,heartbeat已经自动创建一个hacluster的用户,passwd修改密码即可使用其登录,连接上后可以看到当前集群的一些信息和配置选项:
4、配置集群资源组
先尝试比较简单的方式,把VIP、NFS存储和httpd三个资源配置到资源组group_haweb里,按顺序启动,注意配置的参数,配置过程如下:
5、启动资源组测试
1、启用资源组,查看VIP配置在node2的eth0的别名上,再通过浏览器访问VIP,返回的是NFS服务器上的测试页面:
2、使活动节点node2成为备节点,可以看到node1成为主节点,查看VIP配置在node1的eth0的别名上,再通过浏览器访问VIP,返回的还是NFS服务器上的测试页面:
3、使活动节点node1成为备节点,node2重新成为主节点;查看VIP配置在node2的eth0的别名上,再通过浏览器访问VIP,返回的还是NFS服务器上的测试页面:
以上测试说明hb_gui配置的heartbeat crm提供了高可用功能,同时使用了NFS共享的WEB存储文件。
6、配置单个集群资源及资源约束
这次先上面资源组删除,把VIP、NFS存储和httpd分别配置成三个单个资源,如果没有资源约束的话,存在三个资源可能会运行在不同节点,或者它们的启动、停止顺序不明确等问题,这就需要通过配置资源约束来解决,资源约束在《LINUX集群—高可用 高可用集群》有说明。
6-1、配置位置约束
为INFINITY来让VIP资源倾向于在node1,就算在node2配置其资源粘性为100,还是会倾向node1,配置如下:
6-2、配置顺序约束
httpd服务在启动nfs共享存储后启动,而nfs共享存储在VIP之后配置,配置下面有描述,配置如下:
6-3、配置协同约束
httpd服务依赖于nfs共享存储,而nfs共享存储依赖于VIP配置,配置下面有描述,配置如下:
7、启动测试
先停用node2,资源全部转移到node1,再启用node2,但资源还是在node1,而且服务能正常访问:
以上测试说明hb_gui配置资源约束使得heartbeat crm提供正常的高可用功能。
经过写这篇文章,对heartbeat v2 crm配置高可用集群有了一个比较全面的认识,下面还将在进行利用heartbeat v2 crm 及NFS共享存储的高可用mysql集群应用配置……
【参考资料】
1、Pacemaker:http://clusterlabs.org/wiki/Pacemaker
2、High-availability cluster:https://en.wikipedia.org/wiki/High-availability_cluster#Node_configurations|
3、高可用集群:http://blog.csdn.net/tjiyu/article/details/52643096
4、heartbeat v2 haresource配置高可用集群:http://blog.csdn.net/tjiyu/article/details/52663927
5、heartbeat v2 haresource 配置NFS共享存储高可用集群:http://blog.csdn.net/tjiyu/article/details/52669394
6、使用CRM方式管理heartbeat:http://blog.csdn.net/leshami/article/details/49820367
7、Linux 高可用(HA)集群之heartbeat基于crm进行资源管理详解:http://www.linuxidc.com/Linux/2013-08/89167.htm