LVS——DR模式下的健康检查(ldirectord)

对后端服务器健康检查:

如果一个后端服务器挂掉将这个服务器踢出集群,让用户无感知,否则会出现访问时好时坏的情况,当宕机的服务器恢复正常时自动将他加回集群,当服务器集群宕机的时候返回一个统一的错误页面,这个页面来自于调度器

注意:ldirectord的依赖性来自于高可用(HighAvailability)的包,这个包是rhel6.5镜像中自带的,不需要专门去下载,将这个包加入到yum仓库中就可以用

1.正常情况下,客户端访问后端服务器时是两个服务器交替被访问

[root@foundation22 westos]# curl 172.25.22.100
<h1>server2.example.com</h1>
[root@foundation22 westos]# curl 172.25.22.100
<h1>server3- www.westos.org</h1>
[root@foundation22 westos]# curl 172.25.22.100
<h1>server2.example.com</h1>
[root@foundation22 westos]# curl 172.25.22.100
<h1>server3- www.westos.org</h1>

在这里插入图片描述
2.但是当其中某一个服务器宕掉的时候会出现下面的情况,一会有结果,一会返回连接失败

关闭server3的httpd

[root@server3 ~]# /etc/init.d/httpd stop

在这里插入图片描述
物理机测试:

[root@foundation22 westos]# curl 172.25.22.100
<h1>server2.example.com</h1>
[root@foundation22 westos]# curl 172.25.22.100
curl: (7) Failed connect to 172.25.22.100:80; Connection refused
[root@foundation22 westos]# curl 172.25.22.100
<h1>server2.example.com</h1>
[root@foundation22 westos]# curl 172.25.22.100
curl: (7) Failed connect to 172.25.22.100:80; Connection refused

在这里插入图片描述
server1:
3.官网下载ldirectord的安装包,配置yum仓库,这个工具安装时的依赖性在镜像中的HighAvailability目录中
(1)获得安装包

[root@server1 ~]# cd /
[root@server1 /]# ls
bin   etc                              lib         media  proc  selinux  tmp
boot  home                             lib64       mnt    root  srv      usr
dev   ldirectord-3.9.5-3.1.x86_64.rpm  lost+found  opt    sbin  sys      var

在这里插入图片描述
(2)配置yum仓库

[root@server1 yum.repos.d]# ls
rhel-source.repo
[root@server1 yum.repos.d]# vim rhel-source.repo 
[root@server1 yum.repos.d]# yum clean all
[root@server1 yum.repos.d]# yum repolist

在这里插入图片描述
在这里插入图片描述
(3)安装工具

[root@server1 ~]# yum install -y ldirectord-3.9.5-3.1.x86_64.rpm

在这里插入图片描述
4.将ldirectord的配置文件复制到/etc/ha.d目录下
(1)查询他的配置文件和配置目录

[root@server1 /]# rpm -qpl ldirectord-3.9.5-3.1.x86_64.rpm

在这里插入图片描述
(2)复制配置文件到配置目录

[root@server1 /]# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d
[root@server1 /]# cd /etc/ha.d
[root@server1 ha.d]# ls
ldirectord.cf  resource.d  shellfuncs

在这里插入图片描述
5.编辑配置文件,开启服务
fallback :集群全部挂掉调度器返回的页面

[root@server1 ha.d]# vim ldirectord.cf
[root@server1 ha.d]# /etc/init.d/ldirectord start
Starting ldirectord... success

在这里插入图片描述
在这里插入图片描述
6.server1将/var/www/html下的东西删除,编写一个测试页(确保server1的httpd的端口是80),重启服务
在这里插入图片描述
将/var/www/html目录下的其他文件删除,编辑一个测试页index.html
在这里插入图片描述
更改httpd的端口为80
在这里插入图片描述
在这里插入图片描述
查看正在使用的端口
在这里插入图片描述
7.物理机测试:

(1)第一种情况:两个服务器都正常时,轮循调度
在这里插入图片描述

(2)第二种情况:某一个服务器挂掉,其他正常
挂掉的服务器被踢出集群,可以访问到的只有正常的服务器server2

在这里插入图片描述
在这里插入图片描述
(3)第三种情况:如果挂掉的服务器恢复,会被自动加入到集群中
开启server3的httpd服务,两台服务器都正常运行
在这里插入图片描述
物理机再次测试:
两台服务器交替被访问,恢复轮循调度,不用再次手动配置
在这里插入图片描述

(4)第四种情况:后端服务器集群全部宕机
两台服务器都挂掉,访问是返回的是调度器的页面
关闭server2和server3的httpd,物理机测试

[root@server2 ~]# /etc/init.d/httpd stop
Stopping httpd:                                           [  OK  ]
[root@server3 ~]# /etc/init.d/httpd stop
Stopping httpd:                                           [  OK  ]

在这里插入图片描述
在这里插入图片描述
返回的是调度器的页面

[root@foundation22 ~]# curl 172.25.22.100
是的,我挂了。。。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44224894/article/details/89313477