ITPub博客

首页 > 数据库 > 数据库开发技术 > 高可用集群Heartbeat配置实践

高可用集群Heartbeat配置实践

原创 数据库开发技术 作者:u_2ebce1c3a860 时间:2019-10-02 20:20:19 0 删除 编辑

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

https://mirrors.tuna.tsinghua.edu.cn/epel/6/x86_64/Packages/h/

以及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 httpd
echo "<h1>node1.walkingcloud.cn</h1>" >> /var/www/html/index.html
service 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 "" | md5sum 生成的md5值
配置授权文件
2)vi ha.cf 配置ha.cf文件
取消如下5项之前的#,修改为如下
keepalive 2
bcast   eth0 
node    node1.walkingcloud.cn
node    node2.walkingcloud.cn
ping 192.168.31.1
3)vi haresources
node1.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的地址


原文作者:WalkingCloud;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2018-05-05

  • 博文量
    441
  • 访问量
    209413