主要三个重要的文件:ha.cf, authkey, haresource
1)ha.cf的重要参数的说明:
参数 | 说明 |
debugfile /var/log/ha-debug |
heartbeat的调试日志存放的位置 |
logfile /var/log/ha-log |
heartbeat的日志存放位置 |
logfacility local1 | 在syslog服务中配置通过local1设备接收日志 |
keepalive 2 | 指定心跳的间隔时间为2秒(即每两秒在eth1上发送一次广播) |
deadtime 30 | 指定若备用节点在30秒内没有收到主节点的心跳信号,则立即接管主节点的服务资源 |
warntime 10 |
指定心跳延迟的时间为10 秒。当十秒盅内备份节点不能收到主节点的心跳信号的时候, 就会往日志中写入一个警告日志,但是此时不会切换服务。 |
initdead 120 |
指定在heartbeat首次运行后,需要等待120秒才启动主服务器的任何资源, 该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的两倍, 单机启动时会遇到VIP绑定很慢,为正常现想,改制设置的长的原因 |
bcast eth1 |
指明心跳使用以太旺广播的方式在eth1接口上进行广播, 如果使用两个世纪的网络来传送心跳则 bcast eth0 eth1 |
mcast eth2 225.0.0.1 694 10 | 设置广播通信使用的端口,694为默认的使用端口号 |
auto_failback on | 用来定义当主节点恢复后,是否将服务自动的切回 |
node data-1-1 | 主节点的主机名 |
node data-2-2 | 备节点的主机名 |
crm no | 是否开启cluster resource Manager(集群资源管理)功能 |
配置authkey文件:
软件提供的authkey默认文件并不是很复杂
/et/ha.d/authkeys
#
# Authentication file. Must be mode 600
#
#
# Must have exactly one auth directive at the front.
# auth send authentication using this method-id
#
# Then, list the method and key that go with that method-id
#
# Available methods: crc sha1, md5. Crc doesn't need/want a key.
#
# You normally only have one authentication method-id listed in this file
#
# Put more than one to make a smooth transition when changing auth
# methods and/or keys.
#
#
# sha1 is believed to be the "best", md5 next best. --->sha1是被认为是最好的 咱们用这个就是最好
#
# crc adds no security, except from packet corruption.
# Use only on physically secure networks.
#
#auth
# crc
# sha1 HI!
# md5 Hello!
默认的配置使用的是crc的方法,这是不加密的,不够安全,下面介绍一下authkey的一个生产配置,其实呢,就是两行:
auth
sha1 47e9333ewqe67y8ewrew78u9ewrew04
简单吧,两行搞定,authkeys需要600,否则heartbeat服务会报错无法开启服务
注意:两台机器都是需要配置的
配置haresource文件:
编辑配置heartbeat资源文件 /etc/ha.d/haresources
生产环境的配置如下:
cat /etc/ha.d/haresources data-- IPaddr::10.0.0.17//eth0 ----》这后面还是可以加好多的参数的相当于执行 /etc/ha.d/resource.d/IPaddr 10.0.0.17/24/eth0/ stop/start
data-- IPaddr::10.0.0.18//eth0
配置haresource说明:
data-1-1 为主机名,表示初始状态会在data-1-1 丙丁IP 10.0.0.10
IPaddr为heartbeat配置IP的默认脚本,其后的IP等都是脚本的参数
10.0.0.10/24/eth0表示的是集群对外服务的VIP,初始启动在data-1-1上,24为子网掩码,eth0为ip绑定的物理网卡,为heartbeat提供对外服务的通信接口
heartbeat和keepalived的应用场景的区别:
1)对于一般的web,db,负载均衡(nginx,haproxpy)等等,heartbeat和keepalived都可以实现
2)lvs负载均衡最好和keepalived结合,虽然heartbeat也可以调用带有ipvsadm命令的脚本来启动和停止lvs负载均衡,但是heartbeart本身并没有对下面节
点rs的健康检查功能,heartbeat的这个缺陷可以通过ldiretord的插件来进行弥补。
3)需要数据同步(配合drbd)的高可用业务最好用heartbeat,例如:mysql双主多从,NFS/MFS存储,他们的特点是需要数据同步,这样的业务最好用
heartbeat,因为heartbeat自带了drbd的脚本,可以利用强大的drbd同步软件配合实现同步。如果你解决了数据同步可以不用drbd,例如:共享存储或
者是inotify+rsync,那就考虑keepalived