heartbeat安装后启动前需要配置三个文件:ha.cf ,haresources,authkeys这三个配置需要在/etc/ha.d目录下面,默认是不存在这三个文件的,可以在源码包doc目录中找,也可以直接编写。
1.ha.cf文件
debugfile /var/log/ha-debug :记录heartbeat调试信息的日志文件,一般不开启
logfile /var/log/ha-log :heartbeat的日志存放位置
logfacility local0 :如果未定义上面的日志文件,那么日志信息将写在local0文件,(/var/log/messages),如果这三个日志文件都未定
义,那么heartbeat默认在/var/log下创建ha-debug 和ha-log日志文件。
keepalive 2 :发送心跳报文的间隔,单位为秒
deadtime 30 :指定备用节点在30秒内没有收到主节点的心跳信号,则立即接管主节点的服务资源。
warntime 10 :心跳延迟时间为10秒,当10秒内备份节点不能接收到主节点的心跳信号时就会往日志文件中写入一个警告日志信息,但
此时不会切换服务。
initdead 120 :系统启动或重启要经过一段时间网络才能正常,该选项用于设置这段时间的间隔,取值至少为deadtime的两倍
udpport 694 :设置广播或单播通信使用的端口,默认为694
baud 19200 :串行通信的的波频率。不需要了不启用
serial /dev/ttyS0 :选择串行通信设备,如果双机使用以太网连接,则不适用该项
ucast eth0 192.168.70.135 :采用网卡eth0的udp单播来组织心跳,后面的ip地址的双机对方的ip地址
mcast eth0 225.0.0.1 694 1 0 :采用网卡eth0的udp组织心跳,如果采用组播通讯,这里设置组播通讯所使用的接口,绑定组播ip地址
(224.0.0.0-239.255.255.255间,)
bcast eth0 :指定心跳使用以太网广播方式,并且是在eth0接口上进行广播
auto_failback on :定义主节点恢复后,是否将服务切回,如果不启用设置为off ,默认为on,heartbeat的两台主机分别为主节点和
备节点,主节点正常情况下占用资源并运行所有的服务,遇到故障时把资源交给备节点运行服务,在该选项设为on
的情况下,一旦主节点恢复运行,则自动获取资源并取代备份节点;如果该选项设置为off,那么当主节点恢复后,
将变为备份节点,而原来的备份节点成为主节点
stonith baytech /etc/ha.d/conf/stonith.baytech :使出现问题的节点从集群中脱离,进而释放集群资源,避免两个节点争一个资源,
保证共享数据的安全性和完整性
node node1 :主节点名,可用uname -n 查看得到的主机名
node node2 :备节点名
ping 192.168.60.1 :选择ping的节点,ping节点选择的越好,HA集群就越强壮,可以选择固定的路由器作为ping节点,或者应用
服务器但是最好不要选择集群中的成员作为ping节点,ping节点仅仅用来测试网络连接。如果指定了多个
ping节点如
respawn hacluster /usr/lib/heartbeat/ipfail :以hacluster这个用户身份运行/usr/lib/heart/ipfail 这个插件respawn列出与heartbeat
一起启动和关闭的进程,该进程一般是和heartbeat集成的插件。这些进程遇到故障可以
自动重新启动,常用的进程是ipfail,此进程用于检测和处理网络故障,需要配合ping
或ping_group语句。
apiauth ipfail gid=haclient uid=hacluster :指定对客户端api的访问控制,默认为不可访问,这里指定了有权访问ipfail的用户和组
常用的配置选项
debugfile /var/log/ha-debug logfile /var/log/ha-log logfacility local0 keepalive 8 deadtime 60 warntime 60 initdead 120 udpport 694 baud 19200 ucast eth0 192.168.70.135 auto_failback on node zhu3 node zhu1 respawn hacluster /usr/lib/heartbeat/ipfail apiauth ipfail gid=haclient uid=hacluster
2.haresources文件
该文件用于指定双机系统的主节点,集群ip,子网掩码,一级启动的服务等资源,文件每一行可以包含一个活多个资源脚本名,资源之间用空格隔开,参数之间使用两个冒号隔开,在两个HA节点上该文件的内容必须完全一致,
此文件的一般格式为:
node-name network <resource-group>
node-name:表示主机的节点名,必须与ha.cf文件中指定的节点名一致。
network :设置集群的ip地址,子网掩码,网络设备,这里设定的ip地址就是集群对外服务的ip地
址,也就是vip。
resource-group:指定需要heartbeat托管的服务,也就是这些服务可以有heartbeat来启动和关闭
这些服务必须写成可以通过start/stop来启动和关闭的脚本,然后放
到/etc/init.d或者/etc/ha.d/resource.d目录下,heartbeat会根据脚本的名称
自动去找到相应的脚本进行启动或关闭操作。
zhu3 IPaddr::192.168.70.70/24/eth0 ldirectord
具体的配置语法:
zhu3 :就是集群中节点的主机名
IPaddr:为heartbeat自带的一个执行脚本,heartbeat会先执行/etc/ha.d/reaource.d/IPaddr
192.168.70.70/24 start 的操作,也就是虚拟住一个子网掩码为255.255.255.0的虚拟
ip地址192.168.70.70 此ip地址对外提供网络服务,同时指定此ip使用的网络接口为eth0
接着将执行ldirectord脚本。
3./etc/ha.d/authkeys 认证文件
authkeys 文件用于设定heartbeat的认证方式,共有三种认证方式:crc ,sha1,md5
auth 1 #1 crc #2 sha1 HI! #3 md5 Hello!
一般使用crc认证:
auth 1 1 crc
无论auth后面指定的数字是什么,在下一行必须作为关键字再次出现,若指定为6,则下一行也应是6
auth 6 6 crc
一定要确保这个文件的权限是600
[root@zhu1 ~]# chmod 600 /etc/ha.d/authkeys
*******************************************
配置备节点上的heartbeat文件。
安装完毕后直接从主节点上复制
scp -r /etc/ha.d/* root@ip:/etc/ha.d
2.设置主备节点时间同步