jialiguo 发表于 2019-1-6 06:42:11

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]
查看完整版本: LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建