1)Heartbeat高可用介绍
Heartbeat,心跳的意思,这里是Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。
2)heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务
keepalived主要控制IP飘移,配置应用简单,而且分层,layer3、4、5各自配置极为简单
heartbeat不但可以控制IP飘移,更擅长对资源服务的控制,配置,应用比较复杂
3)Heartbeat工作原理
通过修改Heartbeat的配置文件,可以指定哪台Heartbeat服务器作为主服务器,则另一台服务器自动成为热备服务器,然后在热备服务器上配置Heartbeat守护程序来监听来自主服务器的心跳消息。如果热备服务器在指定的时间内未监听到来自主服务器的心跳,就会启动故障转移程序,并取得主服务器上的相关资源服务的所有权,接替主服务器继续不间断的提供服务,从而达到资源及服务高可用性的目的。
另外,和keepalived高可用软件一样,heartbeat高可用是操作系统级别的,不是服务(软件)级别的,可以通过简单的脚本控制,实现服务级别的高可用
以上概念转载于https://www.cnblogs.com/miaoxg
官方网站:http://www.linux-ha.org/wiki/Download
下面介绍如何在CentOS6上配置Heartbeat高可用集群服务
1、先配置双机互信,SSH密钥登录
ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa
ssh-copy-id -i ./.ssh/id_rsa.pub root@192.168.31.7
同样节点node2上
ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa
ssh-copy-id -i ./.ssh/id_rsa.pub root@192.168.31.6
修改本地地址解析文件
vi /etc/hosts加入如下两条记录
192.168.31.6 node1.walkingcloud.cn node1
192.168.31.7 Node2.walkingcloud.cn node2
2、下载heartbeat的rpm的安装包,并安装heartbeat
以及libnet包
yum install cluster-glue
yum install PyXML resource-agents一步一步解决包依赖问题
libapphb.so.2()(64bit) is needed by heartbeat-3.0.4-2.el6.x86_64 libhbclient.so.1()(64bit) is needed by heartbeat-3.0.4-2.el6.x86_64这时同时安装 rpm -ivh heartbeat-3.0.4-2.el6.x86_64.rpm heartbeat-libs-3.0.4-2.el6.x86_64.rpm 就可以解决
同样在node2上也需要安装,先scp将rpm包全部拷贝过去,然后也进行安装,node2上的操作步骤略
3、两个节点安装httpd服务,并测试httpd服务能正常启动,浏览器登录测试
yum install -y httpdecho "<h1>node1.walkingcloud.cn</h1>" >> /var/www/html/index.htmlservice httpd start同样,node2上
测试OK后,service httpd stop,并chkconfig httpd stop
4、配置Heartbeart的配置文件
cd /etc/ha.d/cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} ./chmod 600 authkeys 1)authkeys文件echo "www.walkingcloud.cn" | md5sum 生成的md5值配置授权文件
2)vi ha.cf 配置ha.cf文件取消如下5项之前的#,修改为如下
keepalive 2bcast eth0 node node1.walkingcloud.cnnode node2.walkingcloud.cnping 192.168.31.13)vi haresourcesnode1.walkingcloud.cn IPaddr::192.168.31.200/24/eth0 httpd
在node2上编辑完成后,scp拷贝到node1上scp -p ha.cf haresources authkeys node1:/etc/ha.d/
5、测试HA
1)启动node1上的heartbeat
service heartbeat start
2)远程启动node2上的heartbeat
ssh node2 "service heartbeat start"
3)查看HA服务启动日志
tail -f /var/log/messages
4)ip addr可以看到VIP 192.168.31.200的地址
将node1的eth0网卡down掉,测试httpd业务是否自动迁移到node2上
node2上tail -f /var/log/messages可以看到node2已经自动接管过去了
ip addr也看到 192.168.31.200的地址