LVS服务DR模式 + 自动检测后端服务器心跳(ldirectord)
- 独立的lvs并不具备对后端服务器执行健康检查的机制,这时通常需要配合第三方的工具一起来使用。而ldirectord的作用就是用来检测Real Server,当Real Server失效时,把它从虚拟服务器列表中删除,恢复时重新添加到列表中。
- 当后端服务器down后,自动将此服务器移除,且同时设定代理服务器为后备服务器,当所有后端服务器down后,由代理服务器提供服务,但这个后备服务器不能支撑太久,需要重新打开其他后端服务器。此软件ldirectord为动态的,一旦后端服务器重新启动,就会自动恢复,不需要重新启动该软件所提供的服务。
ldirectord软件: 健康检查–>自动调用ipvsadm策略—>更新
一.配置
(1)实验环境:
本次实验所有主机均为rhel7.3,并且selinux为disabled、防火墙为关闭状态;
主机名 角色 IP
server1 LB(调度器) 172.25.40.1
server2 RS(真实后端服务器) 172.25.40.2
server3 RS(真实后端服务器) 172.25.40.3
LB 调度器配置:
修改yum源:
安装ldirectord,使用的基础yum源,无法安装该软件,所以对调度器上yum源进行升级。将server1所使用的镜像源(在真机上)的addons文件下的HighAvailability取出,做一个单独的升级,重新yum repolist。
vim /etc/yum.repos.d/yum.repo
#仓库名称
[westos]
name=rhel7.3 source
baseurl=http://172.25.254.61/westos
gpgcheck=0
enabled=1
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.254.61/westos/addons/HighAvailability
gpgcheck=0
enabled=1
yum clean all
yum repolist
yum install ipvsadm #安装ipvsadm调度器
ipvsadm -l #查看ipvsadm策略
ipvsadm -C #清除ipvsadm策略
ipvsadm -A -t 172.25.40.100:80 -s rr
#添加VIP以及端口80,-t 协议为tcp,rr算法轮询模式的策略。
ipvsadm -a -t 172.25.40.100:80 -r 172.25.40.2:80 -g
#给真实服务机添加VIP,-g 指定DR模式
ipvsadm -a -t 172.25.40.100:80 -r 172.25.40.3:80 -g
ipvsadm -l #查看添加的策略
ip addr add 172.25.40.100/24 dev eth0
#将VIP加入本机server1。
ip addr show
yum install ldirectord-3.9.5-3.1.x86_64.rpm -y ##在升级yum源下安装ldirectord
rpm -ql ldirectord #查看配置文件路径
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
##复制ldirectord配置文件到其配置目录下
cd /etc/ha.d/
vim ldirectord.cf ##修改主配置文件
systemctl start ldirectord ##重启ldirectotd服务
yum install httpd ##安装apache
cd /var/www/html/
vim index.html ##编写初始界面
systemctl restart httpd ##重启apache服务
/etc/ha.d/ldirectord.cf 配置文件修改内容部分:
virtual=172.25.30.100:80 ##设置VIP以及端口
real=172.25.30.2:80 gate ##设置后端服务器ip以及端口
real=172.25.30.3:80 gate
fallback=127.0.0.1:80 gate ##将本机设置为备用机
service=http ##服务为apache
scheduler=rr ##算法为rr模式(轮询)
#persistent=600
#netmask=255.255.255.255
protocol=tcp ##协议为tcp
checktype=negotiate
checkport=80
request="index.html"
#receive="Test Page"
#virtualhost=www.x.y.z
Real Server:
yum install httpd #安装apache
vim /var/www/html/index.html #编写初始化网页
systemctl restart httpd #重启apache
ip addr add 172.25.40.100/24 dev eth0 #将VIP加入本机
ip addr show
测试:
将server2 http服务关闭
将真实服务器 server2 server3 http服务关闭
将真实服务器 server2 server3 http服务打开
可以看到,当后端服务器down后,自动将此服务器移除,且同时设定代理服务器为后备服务器,当所有后端服务器down后,由代理服务器提供服务,但应该注意这个后备服务器不能支撑太久,需要重新打开其他后端服务器。此软件ldirectord为动态的,一旦后端服务器重新启动,就会自动恢复,不需要重新启动该软件所提供的服务。