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

[经验分享] LVS之NAT篇

[复制链接]

尚未签到

发表于 2019-1-4 06:42:54 | 显示全部楼层 |阅读模式
【前言】还记得CDN(内容分发网络)吗?在前面的Squid实现代理服务器时,曾经提到过这个名词。如果不记得了,我们来看张示图吧!


  在这种CDN架构下,为了实现服务器的负载均衡,会在real-server端采用LB群集技术,为了实现服务器的高可用性,会在服务器的前端设置筛选器(Director/Dispatcher),通过不同的调度算法实现对服务器的调度,使服务器性能和状态达到最佳状态.常用的Director分为硬件的F5,软件的LVS,当然Squid和Nginx也是可以的。虽然基于硬件的F5处理速度要优于软件,但是由于价格较为昂贵,所以及使用的性价比来说,我们国人开发的LVS还是很受亲睐的!下面我们来深入了解一下LVS.

【LVS常用调度算法】

静态调度:没有考虑服务器端负载、状态等因素,只考虑到算法本身.当服务器不在线或则已经达到负载上限时,则不会相应用户的请求.

RR(Round-robin)轮训调度算法:根据真实服务器的数目进行依次调度,然后进行循环的一种简单的算法.

②WRR(Weighted Round-robin)加权轮训调度算法:相比于RR调度算法,会在它的基础上给不同的服务器加上一个权值,权值的大小,根据实际情况而定,相比于RR算法使得服务器的效率有所提升.

③DH(Destination hashing)目标Hash:某些特定的服务,需要用该调度算法,来实现对于用户访问的目的的记忆,实现用户一段时间的访问同一个目的,不会出现数据的丢失和错乱.此算法应用于应用服务器为缓存服务器的场合,该算法尽可能的把相同的请求或同一用户的请求转发到同一缓存服务器上,可以提高命中率.

④SH(Source hashing)来源Hash:需要对访问的来源路径进行记忆,使得访问的来回走的是同一条路径.该算法类似于DH算法,但将请求的源地址作为基准,尽可能把关于同一用户请求转发相同的服务器.

动态调度:根据服务器的状态信息动态调度,实现服务器的高可用性,来动态的分配用户的请求,只有当所有的服务器都不在线或则都达到最大负载时,才会拒绝客户端的请求.

①LC(Least-connection)最少连接数算法:该算法会时刻洞察服务器状态信息.一般会关注两个参数值:active(当前活跃的连接数)、inactive(当前终止的连接数).通过算法计算active*256+inactive计算出给个服务器的overhead值,进行比较,选择值较小的进行链接,给次新的请求,都会计算服务器的overhead值,进行比较分析.

②WLC(Weighted Least-connection)加权的最少连接数算法:相比于普通的LC算法,就是给每个服务器根据它的性能的优劣分别给以权值,性能较好的增大权值.通过计算(active*256+inactive)/权值,然后进行比较,然后选取值较小的,将请求发给它.这种算法也是LVS的默认算法.

③SED(Shortest Expected delay)最少的期望延迟:同样也是根据连接数来计算,但是忽略了非活动的连接数.(active+1)*256/权值.

这种算法是为了避免应用服务器能力强而不会最先获得客户端的请求相应权.

④NQ(Nerver Queue)永不排队:判断标准与SED相同,但是在其基础上如果有空闲的应用服务器则优先分配.这种算法是为了在有限的客户端请求的情况下,权重小的应用服务器无法获得客户端请求的相应权,而过于空闲.

⑤LBLC(Locality-based Least-connection)本地的最少连接:和DH算法类似,根据请求的目标地址找出该地址最近使用的服务器,若该服务器是可用的且没有超载,则将请求发送给该服务器,若服务器不在线或则已经超载,则用最少连接数算法选出一个可用的服务器将请求发送,主要用于Cache群集系统.

⑥LBLCR(Locality-based Least-connection with Replication scheduler)带复制的基于局部的最少连接:和LBLC算法类似,但它维护的是一组服务器而不是一个服务器,该算法根据请求的目的地址找出该目标IP地址对应的服务器组,按照最少链接数的原则从整个集群系统中选出一台服务器将请求转发到该服务器,同时,当该服务器组中有段时间没有被修改,将最忙的服务器从该组中删除,以降低复制程度,主要用于Cache集群系统.

【LVS基本模型】

LVS-NAT(Net Address Translation):网络地址转换


特点:

①RealServer和Director必须处于同一IP段.

②这种模型最多支持的Real节点数目10个.

③由于要对数据包的4次处理,所以效率不是很好.

④由于Real节点与Client多数不在一个IP段,所以RealServer要有网关参数,网关指向Dip.

LVS-DR(Direct Routing):直接路由模型



特点:

①RealServer和Director必须处于同一IP段.

②这种模型最多支持的Real节点数目100个.

③由于要对数据包只经过了3次处理,所以效率很好.

④由于Real节点最后直接将请求返回给Client,所以RealServer没有必要网关参数.

LVS-TUN(IP Tunneling):ip隧道模型


特点:

①RealServer和Director没有必要处于同一IP段.

②这种模型使用专用隧道,可以穿越Internet网络,可以解决RealServer和Director的异地问题.

③由于使用的是专线,处理效率很高.

【LVS之NAT模型应用举例】

一:实验拓扑规划


二:详细配置

Node1:

Step1:地址参数配置


Step2:搭建Web环境

mkdir  /mnt/cdrom

mount  /dev/cdrom   /mnt/cdrom

配置本地yum源


yum安装Httpd,并启动服务

yum  install  httpd

service  httpd  start

Step3:编辑Web node1测试页面.

cd  /var/www/html

vim   index.html


Node2:

Step1:地址参数配置


Step2:搭建Web环境

mkdir  /mnt/cdrom

mount  /dev/cdrom   /mnt/cdrom

配置本地yum源


yum安装Httpd,并启动服务

yum  install  httpd

service  httpd  start

Step3:编辑Web node1测试页面.

cd  /var/www/html

vim   index.html


Director:

Step1:地址参数配置


Step2:搭建LVS环境

mkdir  /mnt/cdrom

mount  /dev/cdrom   /mnt/cdrom

配置本地yum源


yum安装ipvsadm.

yum  install  ipvsadm

Step3:编辑添加ipvadm的规则条目,采用RR轮训调度算法


Step4:打开系统的路由转发功能.



Step5:保存规则条目,并启动ipvsadm服务.

service  ipvsadm  save

service  ipvsadm  start


三:测试分析

客户端访问测试

1.http:192.168.10.2


2.http:192.168.10.3


3.http:192.168.1.1并刷新测试RR算法




四:总结

注意:

①在Director上要开启ipv4.ip_forward数据包转发功能.

②RealServer的网关一定要指向Dip.

③启动ipvsadm服务前,先执行service ipvsadm save.


  





运维网声明 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-659093-1-1.html 上篇帖子: LVS笔记 下篇帖子: LVS DR试验
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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