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

[经验分享] LVS_NAT实现过程...

[复制链接]

尚未签到

发表于 2019-1-3 10:03:34 | 显示全部楼层 |阅读模式
  LVS-NAT
  是通过改变数据包中的目的IP地址,来实现调度的.
  

  拓扑图:

  说明:
  Director是调度服务器、Real N为真实服务器(这里用四台).实验用vmware虚拟机和小凡模拟器来完成,为了保证物理上确实是隔离开的,需要不同的vmnet网卡相连.
lClient与路由器之间用vmnet1连接;
l路由器与Director之间用vmnet2连接;
lDirectoreth1Real Nvmnet5
  所有服务器均为:Centos6.5_X86_64 内核版本为2.6.32-431.el6.x86_64
  

  步骤:
一、Install software:
  1.安装ipvsadm(用户空间工具)
  配置好本地yum,使用本地yum源来安装此工具
  [root@Director ~]# yum install -yipvsadm
  

  二、配置各主机的IP
主机

IP

网关

  Client
  172.16.41.2
  F0/0
  Route
  F0/0:172.16.41.1---vm1
  F0/1:192.168.2.1---vm2

  Director
  eth0:192.168.2.2(VIP)---vm2
  eth1:192.168.3.1(DIP)---vm5
  F0/1
  Real server 1
  eth0:192.168.3.10
  192.168.3.1(DIP)
  Real server 2
  eth0:192.168.3.20
  192.168.3.1(DIP)
  Real server 3
  eth0:192.168.3.30
  192.168.3.1(DIP)
  Real server 4
  eth0:192.168.3.40
  192.168.3.1(DIP)
  Real server N
  eth0:192.168.3.N
  192.168.3.1(DIP)
  由于是用NAT方式做负载均衡,所以Realserver N 都要指向Director作为网关.
  

三、配置Realserver N的主页服务
  给每台Real server 服务器安装好Web服务,并在每台服务器的/var/www/html/下建立index.html文件,为了看出效果,最好每台服务器上的index.html文件不一样,例如在Real server 1 上的index.html内容如下:

  其他几台Real server 服务器的index.html内容,只需要把上面的红色框的部分对应更改一下即可,然后开启httpd服务.
  

  四、配置Director
  Director上面也建立个apache服务,写个与真实服务器不一样的index.html,例如:

  建立这个index.html的目的是为验证集群效果.当没有配置集群时,看到的是Director上的index.html,如果配置了集群,再访问VIP,就能看到其他Real server服务器上的index.html.
  

1.开启路由转发:
  [root@Director ~]# vim/etc/sysctl.conf

  [root@Director ~]# sysctl -p
  此步非常重要!!!
  

  2.增加虚拟服务
  [root@Director ~]# ipvsadm -A -t 192.168.2.2:80 -s rr
  增加一个指向192.168.2.2:80 tcp虚拟服务,用轮叫(rr)算法
  

3.增加真实服务器
  ipvsadm -a -t192.168.2.2:80 -r 192.168.3.10 -m
  ipvsadm -a -t192.168.2.2:80 -r 192.168.3.20 -m
  ipvsadm -a -t 192.168.2.2:80-r 192.168.3.30 -m
  ipvsadm -a -t192.168.2.2:80 -r 192.168.3.40 -m
  NAT的方式,增加指向各真实服务器条目.
  

五、测试
  Client上用浏览器打开http://192.168.2.2地址,这时能看到真实服务的主页内容.反复按F5刷新,能看到不同的真实服务器的内容.说明集群已经建立成功.
  

  我们也可以到Director服务器上,通过执行ipvsadm -L-n 来查看调度的状态,如下:
  

  

  可以看出,4Realserver,被调用的频率是均等的,因为用了rr算法.
  并且用的是NAT方式实现调度.(Masq代表NAT方式)
  

六、wrr算法的应用
上面用的是轮叫(rr)算法,每个Realserver被调用的机会是均等的,假设Real server1Realserver2的处理性能远比Real server3Real server4都强,rr算法就不是很合理了.因为rr算法不会考虑权重(Weight),也就是优先级,所以需要换成wrr(加权轮叫)算法,此算法会考虑管理员设置的权重,权重高的Realserver,会被优先选中,而被选中的频率也会多一些.
由于是接着上面的实验继续研究,所以可以有2种方法:①删除以前的内容重新开始②替换以前的内容.如果要删除,可以用ipvsadm -C来清除所有配置,再按上面的步骤23做就可以了.下面采用替换的方法:
1.改变算法:

2.改变Real server1Realserver2的权重高一些

  权重值范围从0-65535之间,默认值为1,值越高,优先级就越高.如果值是0表示永远不被选中(在处理真是服务器故障和维护时很有用),如果只是65535表示永远只选中.
  

  改完后在Client 的浏览器里按F5刷新,director上可以看到Realserver1Real server2被选中的频率是其他Real server5.倍值可以根据你工作的环境来合理设置.
  

  

  注意:
  当用rr算法时,即使设置了权重值,也不会起作用.只有用到wrr算法时,权重值才会发挥作用.
  可见ipvsadm -a 命令加入真实条目的先后顺序,并不能决定Real server 的优先级,而是靠权重来决定的.
  

  七、lcwlc算法的应用
Lc是最少链接算法,此算法会检查哪台Realserver 的链接请求最少,就优先选择它.所以当你的服务器硬件配置相同时,lc是个不错的选择,(个人感觉如果链接的起始数量一样的时候,rr算法没有区别)wlc是加权最少链接算法,此算法跟lc类似,只是增加了权重的考虑条件.能让管理员在指定的Realserver,优先应用最少链接算法.rrwrr之间的关系是一种感觉.我们来实验一下:
  1.改变算法:

  2.改变Realserver1Real server 2的权重高一些

  改完后在Client 的浏览器里按F5刷新,director上可以看到Realserver1Real server2被选中的频率是其他Real server5.倍值可以根据你工作的环境来合理设置.(好像跟wrr的效果差不多-_-!)

  

  注意:
  Lvs默认的算法是wlc
  当用lc算法时,即便设置了权重值,也不会起作用.只用用到wlc算法时,权重才会发挥作用.
  

  NAT方式小结:
  原理比较好理解,配置相对简单些
  如果Real server 5-10台以上时,Director将会是瓶颈....
  

  

  

  





运维网声明 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-658877-1-1.html 上篇帖子: LVS工作原理介绍 下篇帖子: LVS的工作模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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