天天看点

Heatbeat的配置

准备工作:两台虚拟机

172.24.254.1  server1.example.com

172.25/254.2  server2.example.com

selinux关闭,iptables关闭

在/etc/hosts下写入解析

172.24.254.1  server1.example.com

172.25/254.2  server2.example.com

注意:两个虚拟机的yum源首先得正确

eg:[source]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=http://172.25.254.25/yumsource6

gpgcheck=0

[HighAvailability]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=http://172.25.254.25/yumsource6/HighAvailability

gpgcheck=0

[LoadBalancer]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=http://172.25.254.25/yumsource6/LoadBalancer

gpgcheck=0

[ResilientStorage]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=http://172.25.254.25/yumsource6/ResilientStorage

gpgcheck=0

[ScalableFileSystem]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=http://172.25.254.25/yumsource6/ScalableFileSystem

gpgcheck=0

1.需要安装几个软件包(这些包可以在http://linux-ha.org上下载最新版本)

  heartbeat-3.0.4-2.el6.x86_64.rpm        heartbeat-libs-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

  yum install -y *.rpm

  cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} /etc/ha.d/

  Vim /etc/ha.d/ha.cf //打开下面这些注释项

keepalive 2 //发送心跳报文的间隔,默认单位为秒,如果以毫秒为单位, 那么需要在后面跟 ms 单位,如 1500ms 即代表 1.5s 

deadtime 30 //指定若备用节点在30秒内没有收到主节点的心跳信 号,则立即接管主节点的服务资源。  

warntime 10 //指定心跳延迟的时间为10秒。当10秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务。发出最后的心跳警告信息的间隔。

initdead 60

udpport 694 //两台主机的这个端口号必须相同,设置广播/单播通信使用的端口,694为默认使用的端口号 

bcast   eth0 

node    server1.example.com //第212行更改,写在前面的节点为主节点

node    server2.example.com //server1.example.com和server2为两台主机的主机名

ping 172.25.254.25 //以真机IP作为中间判断标准,ping节点选择的越好,HA集群就越强壮,最好不要选择集群中的成员作为ping 节点

respawn hacluster /usr/lib64/heartbeat/ipfail //lib64得注意添加,此选项是可选配置,意思是以 hacluster这个用户身份运行/usr/lib/heartbeat/ipfail 这个插件 

apiauth ipfail gid=haclient uid=hacluster //指定对客户端 api 的访问控制,缺省为不可访问,这里指定了有权限访问ipfail用户和组。

  Vim /etc/ha.d/authkeys //认证文件,打开下面这些注释项

auth  1

1 crc

authkeys文件用于设定Heartbeat的认证方式,共有3种可用的认证方 式,即crc、md5和sha1。3种认证方式的安全性依次提高,但是占用的系统资源也依次增加。如果Heartbeat集群运行在安全的网络上,可以使 用crc方式;如果HA每个节点的硬件配置很高,建议使用sha1,这种认证方式安全级别最高;如果是处于网络安全和系统资源之间,可以使用md5认证方式。

  chmod 600 authkeys //需要更改这个文件权限

  vim /etc/ha.d/haresources  //在最后一行写上

server1.example.com IPaddr::172.25.254.254/24/eth0 httpd //server2里面更改为server2 //254为浮动IP

  然后把这3个文件复制到server2上相应的位置

yum install httpd -y //两台主机上都要装,不用打开,heatbeat会打开它

/etc/init.d/heartbeat start //两个都打开

注意:

当打开上面的服务时出现:ERROR: Configuration error

这时需要检查配置文件的正确性

测试:由于调用的是http服务 ,在两台主机的/var/www/html/下写上测试页,访问浮动IP;然后停止正在工作的server1上的heatbeat,看测试页的变化

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。

原理:

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