heartbeat 是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.简单的来说,通过heartbeat,可以将资源、服务等从一台已故障的服务器,快速转移到另外一台正常运转的服务器上面.
heartbeat跟另一款轻量级高可用开源软件keepalived有很多共同之处,在实际应用中我们应该对比两款软件的差异根据自己的需求选定最合适的软件.
keepalived通过VRRP协议进行通信和选举
heartbeat通过心跳进行通信和选举
keepalived配置、使用简单,相对来说功能也比较简单
heartbeat配置使用相对复杂但是功能强大,配套各种工具,适合做大型集群管理
这里通过配置heartbeat实现对httpd的简单高可用
环境:centos 6.4
heartbeat3.0.4
ha1 192.168.1.209
ha2 192.168.1.208
vip 192.168.1.253
首先配置ha1
修改主机名
hostname ha1
vi /etc/sysconfig/network2.时间同步
yum -y install ntp
service ntpd start
netpdate 192.168.1.208建立双机互信
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.209安装heartbeat
yum -y install heartbeat*
5. 给heartbeat提供配置文件
cp -p /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} /etc/ha.d/
vi authkeys
最后一行添加
auth 1
a md5 ff49e8aba5208b0130ade78042877661(随便一个文件的md5值)
vi/etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
bcast eth0
auto_failback on
node ha1
node ha2
ping 192.168.1.1
vi /etc/ha.d/haresources
ha1 IPaddr::192.168.1.253/24/eth0 httpd
6.安装httpd
yum -y install httpd
给httpd提供一个有标示的默认文档
echo "hello h1" >> /var/www/html/index.html
关掉httpd的自启动
配置ha2的的步骤同ha1
配置完成启动heartbeat
service heartbeat start
ssh ha2 "service heartbeat start"
查看vip是否在主节点ha1上面
测试集群能否正常被访问
把ha1关机到ha2查看集群ip是否被接管
测试网站能否正常访问
heartbeat配置选项解析
/debugfile /var/log/ha-debug heartbeat的调试日志存放位置
logfile /var/log/ha-log heartbeat的日志存放位置
logfacility locall 在syslog服务中配置通过locall设备接受日志
keepalive 2 指定心跳时间为2秒
deadtime 30 指定若备用节点在30秒内没收到主节点的心跳信号,则接管主节点的资源
warntime 10 指定心跳延迟的时间为10秒.当10秒内备份节点不能接收主节点的心跳信号时,就写入警告日志
initdead 120 指定在heartbeat首次运行后,需要在12秒之后才启动主服务器的任何资源.该选项用于解决这种情况产生的时间间隔.取值至少为deadtime的两倍,单机启动时会遇到vip绑定很慢
#bacat eth1 指明心跳私用以太网广播方式在eth1接口上进行广播,如使用两个世纪网络来传送心跳则#bcast eth0 eth1
auto_failback on 定义当主节点恢复后,是否将服务自动切回
node ha1 节点名
node ha2
crm no 是否开启Cluster Resouree Manager(集群资源管理)功能
转载于:https://blog.51cto.com/mofeihu/1710501