Heartbeat+lvs+ldirectord

Heartbeat+lvs+ldirectord

    Heartbeat可实现高可用、lvs可实现负载均衡但对负载无健康检查,实现高可用集群与lvs的整合需要使用软件ldirectord,该软件对lvs后端负载有健康检查。

一、集群结点端进行软件安装及配置

   如选择server1、server3作为集群结点,均做如下操作,部分不同操作会分别讲述:

<1>软件安装

1.yum install ldirectord-3.9.5-3.1.x86_64.rpm      -y

2.可使用rpm  -q  ldirectord  -d查看配置文件存放位置

 [root@server3 ~]# rpm  -q  ldirectord  -d

 /usr/share/doc/ldirectord-3.9.5/COPYING

 /usr/share/doc/ldirectord-3.9.5/ldirectord.cf

 /usr/share/man/man8/ldirectord.8.gz

3.cd /usr/share/doc/ldirectord-3.9.5

 cp  ldirectord.cf  /etc/ha.d            

  ##必须将配置文件放至heartbeat的安装目录才能起到相应作用

<2>ldirectory与lvs整合

1.cd /etc/ha.d

 vim  ldirectord.cf

部分内容设置及解释如下:

       checktimeout=3                    ##检测服务的频率

       virtual=172.25.13.113:80      ##定义vip=172.25.13.113及端口      

               real=172.25.13.2:80 gate           ##后端负载serer2

              real=172.25.13.4:80  gate           ##后端负载server3

              fallback=127.0.0.1:80  gate 

##当后端负载均故障时(80端口),服务器将响应请求:给客户返回信息,实现健康检查

              service=http                  ##选择服务http,默认发布目录:/var/www/html

              scheduler=rr                 ##选择轮询算法

              #persistent=600             ##开启时表示持续连接,相当于ip_hash

              #netmask=255.255.255.255

              protocol=tcp                 ##Tcp协议

              checktype=negotiate

              checkport=80

              request="index.html"     ##请求响应为/var/www/html/index.html

              :wq

2.vim  /var/www/html/index.html      

  ##http默认发布首页,当后端负载均故障时,客户响应结果为该文件内容

3.测试配置是否正确:

/etc/init.d/httpd  start

/etc/init.d/ldirectord  start    ##仅在server1端开启即可。server3的配置是与server1相同的,这里不再测试

(1)浏览器访问172.25.13.113或curl  172.25.13.113,查看后端负载(server2、server4)是否轮询:

Heartbeat+lvs+ldirectord_第1张图片

(2)检测是否有健康检查:

先关闭某负载的httpd服务:当服务器连接不到该后端负载时,将其从负载池中移除。

Heartbeat+lvs+ldirectord_第2张图片

再关闭另一负载的httpd服务,此时后端负载均故障,访问结果应为server1:

Heartbeat+lvs+ldirectord_第3张图片

4.测试之后应关闭集群结点的httpd、ldirectord服务

 /etc/init.d/httpd  stop           ##关闭httpd服务

 /etc/init.d/ldirectord  stop        ##关闭ldirectord服务

<3>ldirectord与Heartbeat整合

1.ip del  172.25.13.113  dev eth0   ##若有之前因做lvs实验时添加的vip,先将其删除 

2.cd /etc/ha.d 

(1)vim ha.cf ##主配置文件

主要参数设定:

       node    server1           ##定义主结点,注意必须使用主机名,非ip

       node    server3           ##定义"热备"结点

       :wq

(2)vim authkeys

部分内容设置及解释如下:

       auth1            ##选择第1种认证方式      

       1crc                   ##本次操作是在本地,为方便选择crc认证方式,该方式安全性能低

       #2sha1 HI!    ##安全性能最高

       #3md5 Hello!      

       :wq

 chmod  +x  authkeys      ##加执行权限,否则认证文件不起作用

提示:(ha.cf与authkeys文件的配置可参考博客,此处不再赘述)

(3)vim haresources

编辑内容:

       server1  IPaddr::172.25.13.113/24/eth0  httpd ldirectord

       :wq

提示:选择server1为主结点将ldirectord服务加入集群管理,注意加入集群管理的服务不可手动开启,这也是为什么在<2>的测试后选择关闭服务的原因。

3.测试:server1与server3的heartbeat服务

   /etc/init.d/heartbeat  start

   ip  addr        ##查看vip是否在主结点生效

   ipvsadm  -l     ##查看集群结点与负载的连接次数,ipvsadm配置见博客

(1)如图:客户端访问三次vip,服务器server1调度后端负载响应客户端,其中调度server4两次,server2一次;server3未调度负载

Heartbeat+lvs+ldirectord_第4张图片

(2)server1停止心跳服务,server3将接管vip并当客户端访问时调度负载,如图:

Heartbeat+lvs+ldirectord_第5张图片

(3)回切检测:server1恢复心跳,v将接管vip,进行调度负载

Heartbeat+lvs+ldirectord_第6张图片

(4)后端负载健康检查:

  如先关闭server2的httpd服务,客户端访问vip时,主结点server1将一直调度server4,结果如图:

Heartbeat+lvs+ldirectord_第7张图片

  再关闭server4的httpd服务,客户端再访问vip时,因为之前的配置,主结点server1将响应请求,结果如图:

Heartbeat+lvs+ldirectord_第8张图片

你可能感兴趣的:(高可用集群)