[原]使用hb_gui 配置heartbeat

    前面几天用了不少的篇幅来讲解heartbeat v1和v2的配置,其中也提到,v2 style格式是基于CRM(集群资源管理)程序的,并提供了GUI(图形化)管理工具,可以用于配置和监控HA集群的状态。不过,由于官方关于这部分的说明不是很多,而且该工具也的确比较难用。主要缺少提示性描述和对输入内容的监控。经过几天的摸索,可以实现一些基本的配置,下面就以一个具体例子来说明。

一、架构
由于也是刚开始摸索这块的内容,暂时只能提供基础的功能实现方式,如果其中有描述错误的地方,请谅解,并告知我解决方法,谢谢!
这个架构是沿用我们之前的测试机器:

引用
hatest3 192.168.228.233
hatest4 192.168.228.234

该集群用于实现httpd服务的高可用:

引用
httpd 192.168.228.235

二、功能与限制
从实际的测试来看,heartbeat除能实现高可用的功能外,与红旗HA软件也是有些差异的。

引用
1、这里模拟的是由两台服务器构建的集群,但heartbeat v2实际可以支持多于2个节点;
2、集群可以是对称或非对称模式,使用不同的模式,应用在集群中启动的顺序、位置都是不相同的;
3、hearbeat集群似乎没有严格区分内网和外网心跳,只要心跳是通的,应用就不会发生切换;
4、为此,似乎没有对网卡监控的必要,只有当DC无法与某个节点取得联系时,才会发生切换;
5、当应用出现问题时,会从本地重启,而不会切换到其他机器上。

当然,heartbeat v2还可以构建更复杂的应用集群,实现更复杂的功能,但这次的演示暂时没有提及这方面的内容。

三、基本配置
这部分的内容,在之前的日子中已经提到,这里就不详细说明了,有需要的朋友可以往前看看。
1、配置主机名和IP
首先,给每个节点的机器都设定好相关的主机名和IP地址,并使用uname -n验证。

引用
# uname -n
hatest3

然后,设定heartbeat的基础配置文件。
以下操作在其中一台服务器上进行,以hatest3为例。
2、配置authkeys
内容如下:

引用
# cd /etc/ha.d/
# cat authkeys
auth 2
1 crc
2 sha1 HI!
3 md5 Hello!
# chmod 600 authkeys

3、配置ha.cf

引用
# more /etc/ha.d/ha.cf
keepalive 2
deadtime 30
initdead 30
udpport 694
bcast   eth0               # 不区分内网和外网IP,若需要建立冗余网络心跳,建议使用bond0设备
auto_failback off
node    hatest3
node    hatest4
ping 192.168.228.153 # 用于测试网络连通性,一般设置为网关
use_logd yes
crm respawn
compression     bz2
compression_threshold 2

4、赋值配置文件

引用
# /usr/lib/heartbeat/ha_propagate
Propagating HA configuration files to node hatest4.
ha.cf                                                                                      100%   11KB  10.7KB/s   00:00
authkeys                                                                                   100%  682     0.7KB/s   00:00
Setting HA startup configuration on node hatest4.

※ 与前面日志不一样的地方是,我们这里不用复制cib.xml文件。(实际上该文件还未创建)
因为,后续当我们配置CIB的时候,CRM会帮我们自动同步该文件的。

5、修改heartbeat启动脚本
这步还是不能缺少,详细请见:这里。

6、给hacluster用户创建密码
使用hb_gui访问CRM管理界面前,还需要给hacluster用户创建一下密码:

# passwd hacluster

※ 这个用户仅在当前的节点有效,如果您需要从在其他节点上查看HA集群信息的话,需要分别操作。

7、启动heartbeat服务
当上面的工作都完成后,即可分别在各节点上,启动集群服务:

# service heartbeat start

在正式使用配置工具前,请务必确认您的应用已经在各节点上独立的运行。
请手动激活或停止浮动IP,启动或停止需要托管的应用程序。我这里已经默认您已经进行了类似的测试工作。如果您对这方面的内容不了解,建议您看看之前的日子:安装及配置红旗高可用服务器 HA 5.0 [2] – 配置应用环境

四、使用图形配置工具
1、启动和登录
当您首次启动heartbeat v2服务的时候,会打开5560端口,并自动创建默认的cib.xml文件。
接下来,即可使用hb_gui进行配置,在已经给hacluster用户设定了密码的机器上运行:

# hb_gui

输入正确的用户名和密码后,开始登陆:
点击在新窗口中浏览此图片默认策略是,资源的执行顺序是,同一个资源组中的资源会从上往下执行的。所以,当我们在创建资源的时候,最好可以按该顺序创建。(当然,以后可以修改)
所以,首先是通过邮件点击“资源”,然后选择“添加新元素”:
点击在新窗口中浏览此图片

引用
service httpd status

而heartbeat对返回的结果有默认的动作,例如返回0为成功,返回5为失败等。监控的动作就依赖于脚本返回的结果来判断了。
我们可以在对应资源的“操作”界面上,选择“添加操作”:
点击在新窗口中浏览此图片

引用
用于决定不同资源组的执行优先级;
如果是symmetric_cluster(对称集群,可在“节点”-“配置”部分设定)的,资源(组)可以在任意节点上运行,并可以通过指定某个节点的权重为-INFINITY,表示该资源(组)不可能运行在指定的节点上;
如果不是symmetric_cluster的,资源(组)不能在任意节点上运行,除非您给该资源(组)设置权重为INFINITY,或正值的权重。
为正值的权重,根据其大小,决定其执行的优先级,也就是先后顺序。

添加的表达式:

引用
可以支持#uname,对应节点uname -n的值;
#id,对应每个节点唯一的ID值;
#is_dc,也就是集群唯一的DC节点;
然后通过,运算符eq(等于)、ne(不等于)等对输入的值进行匹配。

更多的条件,可通过界面上的布尔运算得出多个条件的最终结果。
※ 限制条件中的顺序、协同是同于控制不同资源组的执行顺序和组合多个资源组的一系列动作的,以后再详细说明。

8、启动资源组
配置完成后,即可启动特定的资源组:
点击在新窗口中浏览此图片a、停止httpd应用
在hatest3上运行:

# service httpd stop

不用多久,GUI上即会显示资源出错:
点击在新窗口中浏览此图片

引用
crmd[6987]:info: process_lrm_event: LRM operation resource_httpd_app_monitor_15000 (call=6, rc=7) complete
crmd[6987]:info: do_lrm_rsc_op: Performing op=resource_httpd_app_stop_0 key=2:14:0018a200-ca97-4816-98c8-09b0444bdd40)
crmd[6987]:info: process_lrm_event: LRM operation resource_httpd_app_monitor_15000 (call=6, rc=-2) Cancelled
lrmd[6984]:info: rsc:resource_httpd_app: stop
lrmd[7329]:WARN: For LSB init script, no additional parameters are needed.
lrmd[6984]:info: RA output: (resource_httpd_app:stop:stdout) Stopping httpd:
lrmd[6984]:info: RA output: (resource_httpd_app:stop:stdout) [
lrmd[6984]:info: RA output: (resource_httpd_app:stop:stdout) FAILED
lrmd[6984]:info: RA output: (resource_httpd_app:stop:stdout) ]
lrmd[6984]:info: RA output: (resource_httpd_app:stop:stdout)
          
crmd[6987]:ERROR: process_lrm_event: LRM operation resource_httpd_app_stop_0 (call=7, rc=1) Error unknown error
crmd[6987]:info: do_lrm_rsc_op: Performing op=resource_httpd_ip_start_0 key=6:15:0018a200-ca97-4816-98c8-09b0444bdd40)
lrmd[6984]:info: rsc:resource_httpd_ip: start

也就是监控到报错后,在当前节点上会自动重启该应用:

引用
lrmd[6984]: info: rsc:resource_httpd_ip: start
IPaddr[7337][7367]: INFO: Using calculated nic for 192.168.228.235: eth0
IPaddr[7337][7372]: INFO: Using calculated netmask for 192.168.228.235: 255.255.255.0
crmd[6987]: info: process_lrm_event: LRM operation resource_httpd_ip_start_0 (call=8, rc=0) complete
crmd[6987]: info: do_lrm_rsc_op: Performing op=resource_httpd_app_start_0 key=7:15:0018a200-ca97-4816-98c8-09b0444bdd40)
lrmd[6984]: info: rsc:resource_httpd_app: start
lrmd[7388]: WARN: For LSB init script, no additional parameters are needed.
lrmd[6984]: info: RA output: (resource_httpd_app:start:stdout) Starting httpd:
lrmd[6984]: info: RA output: (resource_httpd_app:start:stdout) httpd: Could not determine the server’s fully qualified domain name, using 192.168.228.233 for ServerName

lrmd[6984]: info: RA output: (resource_httpd_app:start:stdout) [
lrmd[6984]: info: RA output: (resource_httpd_app:start:stdout) OK
lrmd[6984]: info: RA output: (resource_httpd_app:start:stdout)   ]
lrmd[6984]: info: RA output: (resource_httpd_app:start:stdout)
lrmd[6984]: info: RA output: (resource_httpd_app:start:stdout)

crmd[6987]: info: process_lrm_event: LRM operation resource_httpd_app_start_0 (call=9, rc=0) complete

可见,重启是对整个资源组进行操作的,并且包括监控的动作。
最后运行结果如下:
点击在新窗口中浏览此图片b、关闭hatest3
我们可以尝试关闭hatest3,看看资源会否切换到另一个节点hatest4上:

引用
# uname -n
hatest3
# shutdown -h 0

从hatest4上的日子可看到如下的信息:

引用
tengine[6591]: info: te_crm_command: Executing crm-event (16): do_shutdown on hatest3
tengine[6591]: info: te_pseudo_action: Pseudo action 11 fired and confirmed
lrmd[6582]: info: rsc:resource_httpd_ip: start
……
crmd[6585]: info: ccm_event_detail:         CURRENT: hatest4 [nodeid=1, born=3]
crmd[6585]: info: ccm_event_detail:         LOST:    hatest3 [nodeid=0, born=2]
heartbeat[6568]: WARN: node hatest3: is dead
heartbeat[6568]: info: Link hatest3:eth0 dead.

crmd[6585]: notice: crmd_ha_status_callback: Status update: Node hatest3 now has status [dead]
heartbeat[6568]: info: Link hatest3:eth1 dead.

GUI界面如下:
点击在新窗口中浏览此图片

[原]使用hb_gui 配置heartbeat下载文件
点击这里下载文件

※ 注意,hb_gui 不单可以用于监控,还可以用于修改集群的配置,所以,请做好安全限定工作。

使用SNMP监控Heartbeat状态
搭建Master-Master Mysql Replication 集群
在Windows下使用红旗HA Cluster  配置工具
构建Heartbeat 3.0.3 GUI+DRBD+Oracle 10g 双机互备集群
Heartbeat 3.0.3 介绍及rpm

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/105875.html

(0)
上一篇 2021年8月25日
下一篇 2021年8月25日

相关推荐

发表回复

登录后才能评论