LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建
首先我们有三台主机:其中172.16.192.168作为前台主机;另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图。https://s2.运维网.com/wyfs02/M00/8D/F8/wKioL1ixcW_APoDQAAA2X9Fo2IY712.jpghttps://s2.运维网.com/wyfs02/M01/8D/F8/wKioL1ixcW-R8okUAAA0H7OIz5U177.jpg
一、LVS NAT模型集群配置实验
1、首先在后端Real Server上设置默认网关,执行前端Virtual Server
https://s1.运维网.com/wyfs02/M00/8D/FA/wKiom1ixeIvBFuD-AACGfOjosDQ075.jpg
2、在前端Virtual Server上开启路由转发功能
https://s4.运维网.com/wyfs02/M00/8D/F8/wKioL1ixePjQdZH9AAAWKKF9zwk706.jpg
3、配置前端LVS集群
https://s4.运维网.com/wyfs02/M01/8D/FA/wKiom1ixeTfRuD_ZAABV9xDSfQk179.jpg
4、测试
https://s1.运维网.com/wyfs02/M01/8D/FA/wKiom1ixeb-AgkCvAABfSsSZ5n0428.jpg
总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同的调度效果。另外,需要注意客户端主机要与后端Real Server处于不同网段,否则返回报文不经过默认路由,则会出错。
二、LVS DR模型集群配置实验
首先重启3台服务器的网络服务,以恢复之前NAT实验的网络环境。
1、在两台后端Real Server 分别做如下配置:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo:0172.16.192.169 netmask 255.255.255.255 broadcast 172.16.192.169 up
route add -host 172.16.192.169 dev lo:0
2、在前端Virtual Server上做如下配置:
ifconfig eno16777728:0 172.16.192.169 netmask 255.255.255.255 broadcast 172.16.192.169 up
并配置对应的LVS,如下图
https://s5.运维网.com/wyfs02/M00/8D/FA/wKiom1ixi7fhIbX8AABVfxA5NjI126.jpg
3、测试
https://s3.运维网.com/wyfs02/M00/8D/F8/wKioL1ixjF3SJADKAAA3rBZc7Cg084.jpghttps://s3.运维网.com/wyfs02/M01/8D/FA/wKiom1ixjF3Bpr_SAAA11jYYTLg702.jpg
在浏览器中输入172.16.192.169进行访问,可以看出后端主机可以实现正常调度,并且多次刷新能够发现Server1的调度次数大致是Server2的两倍,由此说明完整实现LVS的DR模型负载均衡调度
总结:在DR模型中Real Server的默认网关不应设置为DIP,并且Real Server应能够通过其网关直接访问Client,从而实现将返回报文直接发送至客户端。另外,DR模型的配置相对较为复杂,可以将相关操作写成脚本,能够降低操作复杂度,同时减少出错概率。
三、使用ldirectord配置LVS集群
默认在官方yum仓库及epel仓库没有ldirectord软件包,因此我们需要事先从网络获取安装包。
下载路径:http://pan.baidu.com/s/1i4DAcgX#list/path=%2FOpenSource
将软件包下载至本地,使用yum进行安装,解决相关依赖关系
yuminstall-yldirectord-3.9.6-0rc1.1.1.x86_64.rpm
复制示例配置文件到/etc/ha.d目录下(或在/etc/ha.d/目录下创建ldirectord.cf文件)
cp /usr/share/doc/ldirectord-3.9.6/ldirectord.cf /etc/ha.d
DR模型配置
a、在Virtual Server上配置VIP
ifconfigeno16777736:0172.16.192.169netmask255.255.255.255broadcast172.16.192.169up
b、在Real Server上配置内核参数,在lo回环网络上配置VIP
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo:0 172.16.192.169 netmask 255.255.255.255 broadcast 172.16.192.169 up
route add -host 172.16.192.169 dev lo:0
c、编辑ldirectord配置文件:
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=no
virtual=172.16.192.169:80
real=172.16.254.105:80 gate 2
real=172.16.254.18:80 gate 1
fallback=127.0.0.1:80 gate//故障提示主机,当所有服务均不可用时启用
service=http//表明后端服务为http服务
protocol=tcp
scheduler=wrr
checktype=negotiate //对后端主机进行健康状态检查
checkport=80
request="index.html" //健康状态检查的资源页面
receive="Server" //需要在检查页面检测到"Server"关键字才表明访问正常
配置完成后,启动ldirectord服务
d、在Virtual Server上配置并启动web服务作为服务不可用时的提示信息
e、测试
https://s3.运维网.com/wyfs02/M00/8D/F8/wKioL1ixjF3SJADKAAA3rBZc7Cg084.jpghttps://s3.运维网.com/wyfs02/M01/8D/FA/wKiom1ixjF3Bpr_SAAA11jYYTLg702.jpg
经测试可看出后端主机调度正常,并可根据事先设定的权重进行调度。如果要修改为其他调度算法,可以修改"scheduler=wrr"的值。如果要修改为其他LVS模型,只需将"real=172.16.254.105:80 gate 2"中的调度模型gate改为其他值即可。
总结:ldirectord能够很好的实现LVS的管理,不再需要手动的进行集群添加及后端主机的添加,全部工作都可以一次性在配置文件中完成;并且ldirectord可基于http协议完成后端主机的健康状态检查,从而自动调整集群中的Real Server配置。但需要注意的是,无论是使用ipvsadm还是使用ldirectord进行LVS的管理,都需要事先完成网络环境的基础配置,如Virtual IP的配置及内核参数的配置等。
页:
[1]