设为首页 收藏本站
查看: 1265|回复: 0

[经验分享] LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭...

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-1 15:51:18 | 显示全部楼层 |阅读模式
LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建
首先我们有三台主机:其中172.16.192.168作为前台主机;另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图。
wKioL1ixjF3SJADKAAA3rBZc7Cg084.jpg wKioL1ixcW_APoDQAAA2X9Fo2IY712.jpg

一、LVS NAT模型集群配置实验

1、首先在后端Real Server上设置默认网关,执行前端Virtual Server
wKiom1ixeIvBFuD-AACGfOjosDQ075.jpg

2、在前端Virtual Server上开启路由转发功能
wKioL1ixePjQdZH9AAAWKKF9zwk706.jpg

3、配置前端LVS集群
wKiom1ixeTfRuD_ZAABV9xDSfQk179.jpg

4、测试

wKiom1ixeb-AgkCvAABfSsSZ5n0428.jpg

总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同的调度效果。另外,需要注意客户端主机要与后端Real Server处于不同网段,否则返回报文不经过默认路由,则会出错。


二、LVS DR模型集群配置实验

首先重启3台服务器的网络服务,以恢复之前NAT实验的网络环境。

1、在两台后端Real Server 分别做如下配置:
1
2
3
4
5
6
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




2、在前端Virtual Server上做如下配置:

ifconfig eno16777728:0 172.16.192.169 netmask 255.255.255.255 broadcast 172.16.192.169 up
并配置对应的LVS,如下图
wKiom1ixi7fhIbX8AABVfxA5NjI126.jpg

3、测试


在浏览器中输入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进行安装,解决相关依赖关系
yum  install  -y  ldirectord-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
ifconfig  eno16777736:0  172.16.192.169  netmask  255.255.255.255  broadcast  172.16.192.169  up

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配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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、测试


经测试可看出后端主机调度正常,并可根据事先设定的权重进行调度。如果要修改为其他调度算法,可以修改"scheduler=wrr"的值。如果要修改为其他LVS模型,只需将"real=172.16.254.105:80 gate 2"中的调度模型gate改为其他值即可。

总结:ldirectord能够很好的实现LVS的管理,不再需要手动的进行集群添加及后端主机的添加,全部工作都可以一次性在配置文件中完成;并且ldirectord可基于http协议完成后端主机的健康状态检查,从而自动调整集群中的Real Server配置。但需要注意的是,无论是使用ipvsadm还是使用ldirectord进行LVS的管理,都需要事先完成网络环境的基础配置,如Virtual IP的配置及内核参数的配置等。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348893-1-1.html 上篇帖子: LVS负载均衡-NAT模式 下篇帖子: LVS(DR)模式所需了解协议ARP-四种 模型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表