Heartbeat 是一个基于Linux开源的,被广泛使用的高可用集群系统。主要包括心跳服务和资源接管两个高可用集群组件。其资源管理方式可以使用基于haresource文件方式进行管理,也可以通过基于CIB方式进行管理。基于CIB方式其集群资源采用了xml格式来保存其资源配置信息。可以把基于haresouce文件管理的资源转换为基于CIB方式管理。其最大的优势是通过CIB方式管理使得集群的管理更方便和易于监控。本文主要描述crm方式命令行管理heartbeat。
一、相关配置文件描述
###节点信息
# more /etc/hosts
127.0.0.1 localhost.localdomain localhost
#public ip
192.168.21.10 orasrv1.xlk.com orasrv1
192.168.21.13 orasrv2.xlk.com orasrv2
#private ip
192.168.144.128 orasrv1-priv.xlk.com orasrv1-priv
192.168.144.129 orasrv2-priv.xlk.com orasrv2-priv
###配置文件信息
# cat /etc/ha.d/ha.cf ###ha.cf文件
logfile /var/log/ha-log
keepalive 2
deadtime 15
warntime 30
initdead 60
udpport 694
bcast eth0
auto_failback off
node orasrv1.xlk.com
node orasrv2.xlk.com
ping 192.168.21.254
respawn hacluster /usr/lib64/heartbeat/ipfail
crm respawn ###此项用于定义开启crm方式,或者说是pacemaker(heartbeat V3后)
#CRM与Resources并不兼容,如果ha.cf中定义了CRM,HA服务不会去读取/etc/ha.d/haresources配置文件
#在日志文件中会看到这样的提示:This file is not used because crm is enabled
# cat /etc/ha.d/authkeys ###authkeys文件
auth 1
1 md5 74a6a503b5bec9373b22bb630608df41
# more /etc/ha.d/haresources ###资源文件
orasrv1.xlk.com IPaddr::192.168.21.1 httpd
###使用ha_propagate同步配置文件,注意,不包含haresource文件
###ha_propagate使用的基于等效ssh下scp命令方式,同时连接到节点上使用chkconfig开启heartbeat自启动
[root@orasrv1 heartbeat]# /usr/lib64/heartbeat/ha_propagate
二、启动heartbeat服务
# service heartbeat start ###节点1
# ssh orasrv2 'service heartbeat start' ###节点2
# netstat -nltp|grep 5560 ###查看mgmtd端口
tcp 0 0 0.0.0.0:5560 0.0.0.0:* LISTEN 4128/mgmtd
# ssh orasrv2 'netstat -nltp|grep 5560'
tcp 0 0 0.0.0.0:5560 0.0.0.0:* LISTEN 3434/mgmtd
###查看heartbeat相关进程
# ps -AHfww | grep heartbeat |grep -v grep
root 5564 1 0 Nov11 ? 00:00:40 heartbeat: master control process
nobody 5567 5564 0 Nov11 ? 00:00:04 heartbeat: FIFO reader
nobody 5568 5564 0 Nov11 ? 00:00:09 heartbeat: write: bcast eth0
nobody 5569 5564 0 Nov11 ? 00:00:03 heartbeat: read: bcast eth0
nobody 5570 5564 0 Nov11 ? 00:00:07 heartbeat: write: ping 192.168.21.254
nobody 5571 5564 0 Nov11 ? 00:00:02 heartbeat: read: ping 192.168.21.254
496 5575 5564 0 Nov11 ? 00:00:04 /usr/lib64/heartbeat/ccm
496 5576 5564 0 Nov11 ? 00:00:07 /usr/lib64/heartbeat/cib
nobody 5577 5564 0 Nov11 ? 00:00:03 /usr/lib64/heartbeat/lrmd -r
nobody 5578 5564 0 Nov11 ? 00:00:04 /usr/lib64/heartbeat/stonithd
496 5579 5564 0 Nov11 ? 00:00:02 /usr/lib64/heartbeat/attrd
496 5580 5564 0 Nov11 ? 00:00:03 /usr/lib64/heartbeat/crmd
496 8978 5580 0 08:55 ? 00:00:00 /usr/lib64/heartbeat/tengine
496 8979 5580 0 08:55 ? 00:00:00 /usr/lib64/heartbeat/pengine
root 5581 5564 0 Nov11 ? 00:00:03 /usr/lib64/heartbeat/mgmtd -v