1.引言
如何在一个计算机网络中用有限的资源部署计算机,以及安装自由软件让计算机像一台服务器那样一起运行。前面讲了如何建立一个高可用、企业级的LVS-DR集群,本文说的是ldirectord是如何监视集群节点(真实服务器),并从集群中自动移除节点。我们需要使用ldirectord程序,这个程序在启动时自动建立IPVS表,然后监视集群节点的健康情况,在发现失效节点时将其自动从IPVS表中移除。
2.工作原理
ldirectord守护进程通过向每台真实服务器真实IP(RIP)上的集群资源发送访问请求来实现对真实服务器的监控,这对所有类型的LVS集群都是成立的:LVS-DR,LVS-NAT和LVS-TUN。ldirectord通过调度器来分发请求给不同的服务器,如果server1挂掉了,那么就把请求发给server2,依次类推,保证请求能被处理。如果所有服务器都出现问题,还可以使客户端访问自身的apache,向客户端展示网页走丢了等提示。
3.实验环境
在之前的LVS DR模式基础上,进行配置高可用的服务器
4.配置
server1:
(1)在yum源里添加高可用模块,用来解决安装ldirectord的软件依赖性
#vim /etc/yum.repos.d/rhel7.5.repo
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.254.20/rhel-7.5/addons/HighAvailability
gpgcheck=0
注:高可用模块的路径如下
(2)安装并配置ldirectord
yum install -y ldirectord-3.9.5-3.1.x86_64.rpm
cp /ust/share/doc/ldirectord-3.9.5/ldirectod.cf /etc/ha.d/
vim /etc/ha.d/ldirectord.cf
quiescent=yes
virtual=172.25.60.100:80 //vip
real=172.25.60.2:80 gate //server2
real=172.25.60.3:80 gate //server3
fallback=127.0.0.1:80 gate
service=http
scheduler=rr //轮询
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
request="index.html"
#receive="Test Page"
#virtualhost=www.x.y.z
/etc/init.d/ldirectord start //开启ldirectord
(3)在server1上安装apache,提供所有服务器故障出现的网页走丢了页面
yum install httpd -y
vim /var/www/html/index.html
糟糕,网页走丢了...
systemctl start httpd
(4)开启server2/3上的apache
测试:
a.当server2/3都正常时:可以正常轮询访问server2/3
b.当server2(部分故障时),只访问轮询正常的服务器(关闭server3上的apache)
c.当所有服务都故障,访问server1上的httpd(关闭所有的apache)
注: 之前的DR模式轮询时,如果有服务器挂掉,轮询到故障的服务器就会报错;而使用ldirectord可以很好的弥补这一问题,使服务器集群高可用。