heartbeat(三) heartbeat v2 crm 配置高可用集群

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

猜你喜欢

转载自blog.csdn.net/shangyuanlang/article/details/80696551
今日推荐