文档章节

1 项目经验之Heartbeat

yagujj
 yagujj
发布于 2015/07/10 17:51
字数 1285
阅读 18
收藏 0

     声明:以下仅为个人的一些总结和随写,如有不对之处,还请看到的网友指出,以免误导。三克油!!!!!!!!!!!!!!!!!

    前言:   

                首先我们得知道集群(Cluster)是啥东东:用N台服务器构成一个松耦合的多处理器系统(对外来说,他们就是一个服务器),它们之间通过网络实现通信。让N台服务器之间相互协作,共同承载一个网站的请求压力。在集群服务器架构中,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。   

             heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持 冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。

************************干货来啦*******************************************

环境:红帽企业6.5系统,关闭iptables和selinux

Node1:172.25.28.1(vm1.example.com) 

Node2:172.25.28.4(vm4.example.com)

首先,请分别在node1和node2上面修改/etc/hosts解析文件

                172.25.28.4 vm4.example.com

                172.25.28.1 vm1.example.com

下载实验所需的rpm包: heartbeat-3.0.4-2.el6.x86_64.rpm   heartbeat-devel-3.0.4-2.el6.x86_64.rpm  ldirectord-3.9.5-3.1.x86_64.rpm     heartbeat-libs-3.0.4-2.el6.x86_64.rpm

接着在两个node节点上面安装软件包:yum localinstall *.rpm (在rpm包所在的目录下执行此操作)

具体配置过程如下:

[root@vm1 ha.d]# cd /etc/ha.d

[root@vm1 ha.d]# less README.config  查看主配文件下的README文件  

        ha.cf           Main configuration file  ( 主配置文件 )       haresources     Resource configuration file ( 资源配置文件)         authkeys        Authentication information  (  验证信息 )   rpm -q heartbeat -d           ( 查找配置文件的具体路径 )[root@vm1 ha.d]# rpm -q heartbeat -d      

           /usr/share/doc/heartbeat-3.0.4/authkeys   /usr/share/doc/heartbeat-3.0.4/ha.cf   /usr/share/doc/heartbeat-3.0.4/haresources

[root@vm1 ha.d]# cp /usr/share/doc/heartbeat-3.0.4/authkeys /usr/share/doc/heartbeat-3.0.4/ha.cf /usr/share/doc/heartbeat-3.0.4/haresources  ./    将配置文件复制到主配置目录下

[root@vm1 ha.d]# vim ha.cf

    34         logfacility     local0       
     48         keepalive 2
 56             deadtime 30
61             warntime 10
71             initdead 60
76             udpport 694
91             bcast   eth0            # Linux
157           auto_failback on
211         node    vm1.example.com
212         node    vm4.example.com
220        ping 172.25.28.42
253     respawn hacluster /usr/lib64/heartbeat/ipfail  此处一定要将lib64路径写对,由于此前忽略了,导致痛苦好长时间,无法启动heatbeat服务

[root@vm1 ha.d]# grep -v ^# ha.cf  logfacility 

  local0 keepalive 2      心跳频率,自己设定。1:表示 1 秒;200ms:表示 200 毫秒

deadtime 30     节点死亡时间阀值,就是从节点在过了 30 后还没有收到心跳就认为主节点死亡,自己设定

warntime 10     发出警告时间,自己设定

initdead 60      守护进程首次启动后应该等待 60 秒后再启动主服务器上的资源

udpport    694    心跳信息传递的 udp 端口,使用端口 694 进行 bcast 和 ucast 通信,取默认值不要和别人冲突

bcast    eth0        # Linux         采用 udp 广播播来通知心跳

auto_failback on                  当主节点恢复后,是否自动切回

node    vm1.example.com             主节点名称,与 uname –n 保持一致。排在第一的默认为主节点,所以不要搞措顺序

node    vm2.example.com                   副节点名称,与 uname –n 保持一致

ping 172.25.28.250                     加载ping模块

respawn hacluster /usr/lib64/heartbeat/ipfail   此处一定要将lib64路径写对,由于此前忽略了,导致痛苦好长时间,无法启动heatbeat服务

apiauth ipfail gid=haclient uid=hacluster          默认 heartbeat 并不检测除本身之外的其他任何服务,也不检测网络状况。 所以当网络中断时,并不会进行 Load Balancer 和 Backup 之间的切换。 可以通过 ipfail 插件,设置'ping nodes'来解决这一问题,但不能使用一个集群节点作为 ping 的节点。

[root@vm1 ha.d]# vim haresources   修改资源文件

vm1.example.com IPaddr::172.25.28.100/24/eth0 mysqld

[root@vm1 ha.d]# vim authkeys    修改验证信息

#

auth 1

1 crc

#2 sha1 HI!

#3 md5 Hello!

安装mysqld服务,不开启,心跳服务自动开启 修改认证文件的权限:[root@vm1 ha.d]# chmod 600 authkeys

将配置文件拷贝给另一个node2节点:

[root@vm1 ha.d]# scp haresources authkeys ha.cf 172.25.28.4:/etc/ha.d/ 

开启heartbeat 服务:

[root@vm1 ha.d]# /etc/init.d/heartbeat start

Starting High-Availability services: INFO:  Resource is stopped Done. 

如果出现问题,就差看日志  tail -f /var/log/message  tail -f /var/log/ha-log  现在服务在主节点上运行着,如果主节点上的heartbeat当掉,服务自动切换到辅助节点上,如果主节点恢复正常,服务被接回。 开启heartbeat后,mysql服务就会跟着自启动,关掉heartbeat后,mysql服务就会跟着关掉。

使用ip addr 查看是否开启虚拟ip 172.25.28.100

完毕!!!!!!!!!

















© 著作权归作者所有

yagujj
粉丝 3
博文 36
码字总数 29825
作品 0
西安
私信 提问
HA集群之Heartbeat浅析及heartbeat+haresource

一、Heartbeat Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了...

hoo_5
2014/05/08
0
0
linux heartbeat 的原理及配置过程

Linux-HA的全称是High-Availability Linux,它是一个开源项目。这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强Linux可靠性(reliability)、可用性(availability)和可服务...

上一段旅程
2014/04/21
0
0
monkeyk7/HeartBeat

#HeartBeat 心跳检测各类应用服务器(如Tomcat,Jetty),WEB服务器(如 Apache,Nginx) 的JAVA WEB应用程序. 如何实现? 使用HttpClient对指定的服务器(application-instance) URL 按频率(10秒,20...

monkeyk7
2015/03/14
0
0
Linux 高可用(HA)集群之Heartbeat安装

大纲 一、Heartbeat 的定义 二、Heartbeat 的版本与组件 三、Heartbeat 的各版本之间的区别 四、Heartbeat 集群的一般拓扑图 五、安装heartbeat 六、配置heartbeat 七、使用集群的其他几个相...

风过_无痕
2017/09/08
0
0
Heartbeat实现集群高可用热备

公司最近需要针对服务器实现热可用热备,这几天也一直在琢磨这个方面的东西,今天做了一些Heartbeat方面的工作,在此记录下来,给需要的人以参考。 Heartbeat 项目是 Linux-HA 工程的一个组成...

tidezyc
2013/06/19
0
8

没有更多内容

加载失败,请刷新页面

加载更多

宜信开源|一个实例解析PaaS平台LAIN的9大杀手级功能

一、基于Docker的PaaS平台LAIN 在金融的场景下,LAIN 是为解放各个团队和业务线的生产力而设计的一个云平台。LAIN 正式上线已经大约两年,基本已经成熟,为宜信大数据创新中心各个团队提供了...

宜信技术学院
16分钟前
2
0
DBeaver调整编辑窗口字体大小

窗口-->首选项: 点击“编辑”之后,字体大小设为11的大小即比较合适。

BG2KNT
23分钟前
1
0
【Kubernetes社区之路】Slack沟通工具简介

什么是Slack Slack(https://slack.com) 是一款沟通工具,它与国内常见的微信、微博、QQ、钉钉有很大的不同,Slack主要用于工作讨论,可以让讨论更加高效。 Slack的口号便是让工作变得简单、...

恋恋美食
35分钟前
1
0
Visual Paradigm 教程[UML]:如何在SoaML中建模多方服务?

下载Visual Paradigm最新试用版 编写本教程是为了解释多方服务在SoaML方面的含义以及如何使用各种SoaML图表指定此类服务Visual Paradigm。 本教程中将使用的示例是通过在线银行账户纳税。您将...

xiaochuachua
36分钟前
0
0
SpringMVC 的Controller方法声明为private 或者 public 有什么区别

平常没有区别,都能正常处理请求。只有在使用AOP时会有问题: Controller方法声明为private时会出现获取到的注入service属性为null的问题,public方法才能正常获取注入的service。 原因如下:...

为了美好的明天
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部