高可用集群Heartbeat配置实践_html

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

高可用集群Heartbeat配置实践_html_02


下面介绍如何在CentOS6上配置Heartbeat高可用集群服务


高可用集群Heartbeat配置实践_服务器_03

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

高可用集群Heartbeat配置实践_html_04

同样节点node2上

ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa

ssh-copy-id  -i ./.ssh/id_rsa.pub root@192.168.31.6

高可用集群Heartbeat配置实践_html_05

修改本地地址解析文件

vi /etc/hosts加入如下两条记录

192.168.31.6 node1.walkingcloud.cn node1

192.168.31.7 Node2.walkingcloud.cn node2

高可用集群Heartbeat配置实践_服务器_06

2、下载heartbeat的rpm的安装包,并安装heartbeat

​​

高可用集群Heartbeat配置实践_服务器_07

以及libnet包

高可用集群Heartbeat配置实践_html_08高可用集群Heartbeat配置实践_高可用_09yum install cluster-glue高可用集群Heartbeat配置实践_html_10yum install PyXML resource-agents一步一步解决包依赖问题

高可用集群Heartbeat配置实践_高可用_11        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 就可以解决高可用集群Heartbeat配置实践_html_12同样在node2上也需要安装,先scp将rpm包全部拷贝过去,然后也进行安装,node2上的操作步骤略

高可用集群Heartbeat配置实践_html_133、两个节点安装httpd服务,并测试httpd服务能正常启动,浏览器登录测试

yum install -y httpdecho "<h1>node1.walkingcloud.cn</h1>" >> /var/www/html/index.htmlservice httpd start高可用集群Heartbeat配置实践_html_14高可用集群Heartbeat配置实践_高可用_15同样,node2上

高可用集群Heartbeat配置实践_服务器_16高可用集群Heartbeat配置实践_高可用_17测试OK后,service httpd stop,并chkconfig httpd stop高可用集群Heartbeat配置实践_html_184、配置Heartbeart的配置文件

cd /etc/ha.d/cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} ./chmod 600 authkeys 高可用集群Heartbeat配置实践_服务器_191)authkeys文件echo "www.walkingcloud.cn" | md5sum 生成的md5值配置授权文件

高可用集群Heartbeat配置实践_服务器_202)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

高可用集群Heartbeat配置实践_高可用_21

在node2上编辑完成后,scp拷贝到node1上scp -p ha.cf haresources authkeys node1:/etc/ha.d/高可用集群Heartbeat配置实践_服务器_22

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的地址

高可用集群Heartbeat配置实践_服务器_23

高可用集群Heartbeat配置实践_高可用_24

将node1的eth0网卡down掉,测试httpd业务是否自动迁移到node2上

node2上tail -f /var/log/messages可以看到node2已经自动接管过去了

ip addr也看到 192.168.31.200的地址

高可用集群Heartbeat配置实践_html_25

高可用集群Heartbeat配置实践_服务器_26