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

[经验分享] LVS总结

[复制链接]

尚未签到

发表于 2019-1-2 13:54:45 | 显示全部楼层 |阅读模式
  LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。
  

  LVS为了在不同场景中使用而提供了4种实现模型: 分别为
    NAT         -m  
    DR          -g  
    Tunnel      -i  
    FULLNAT     -b  
LVS的用到几个IP缩写
    CIP: 用户的IP
    VIP: LVS虚拟的IP,用于用户访问
    DIP: LVS Director调度器自已的IP
    RID: Real server 的IP
    LIP: LVS Director调度器指定的local address,FULLNAT模式下专用的
  

  NAT模型工作流程
    1、客户端请求VIP(Virtual IP Address)
    2、Director接受到请求, 根据连接调度算法从一组真实服务器中选出一台服务器, 将报文的目标地址VIP(Virtual IP Address)改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将修改后的报文发送给选出的服务器。
    3、调度器在连接Hash 表中记录这个连接,当这个连接的下一个报文到达时,从连接Hash表中可以得 到原选定服务器的地址和端口,进行同样的改写操作,并将报文传给原选定的服务 器。当来自真实服务器的响应报文经过调度器时,调度器将报文的源地址和源端口改为Virtual IP Address和相应的端口,再把报文发给用户
  不同的报文会使得连接处于不同的状态,不同的状态有不同的超时值。在TCP 连接中,根据标准的TCP有限状态机进行状态迁移;在UDP中,只设置一个UDP状态。
不同状态的超时值是可以设置的,在缺省情况下:
    SYN状态的超 时为1分钟
    ESTABLISHED状态的超时为15分钟
    FIN状态的超时为1分钟
    UDP状态的超时为5分钟
    当连接终止或超时,调度器将这个连接从 连接Hash表中删除。
  实现NAT模型有几点需要注意的:
    1、RS和Director可以不在同一IP网段中
    2、可以实现端口映射
    3、请求报文和响应报文都必须经过Director
    在一些网络服务中,它们将IP地址或者端口号在报文的数据中传送,若只对报文头的IP地址和端口号作转换,这样就会出现不一致性,服务会中断。 所以,针对这些服务,需要编写相应的应用模块来转换报文数据中的IP地址或者端口号。现已经知道有这个问题的网络服务有FTP、IRC、H.323、 CUSeeMe、Real Audio、Real Video、Vxtreme/Vosiac、VDOLive、VIVOActive、True Speech、RSTP、PPTP、StreamWorks、NTT AudioLink、NTT SoftwareVision、Yamaha MIDPlug、iChat Pager、Quake和Diablo。
  

  DR模型工作流程
    1、客户端请求VIP
    2、Director接收到请求报文,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出服务器的 MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。因为数据帧的MAC地址是选出的服务器,所以交换机会将数据帧发送给选出的服务器,服务器从中可以获得该IP报文。
    3、RIP接收到DIP发过来的报文后,发现报文的目标地址VIP是在本地的网络设备上,服务器处理这个报文,然后根据路由表将响应报文直接返回给客户。
  因为VIP分别存在于Director和RS,造成IP冲突,解决方法:
    1、网络设备中设置VIP地址和DIrector的MAC地址进行绑定
    2、Linux系统中有一个软件可以实现对ARP广播进行过滤, arptables
    3、可以修改内核参数来实现, arp_ignore, arp_announce
  实现DR模型需要注意的:
    1、RS和Director必须要在同一个二层网段中,中间没有隔有路由器(MAC地址无法穿越三层设备)
    2、请求报文必须经过Director, 但是响应报文一定不能通过Director
    3、不能实现端口映射
  
三种IP负载均衡技术的优缺点归纳在下表中:
                    VS/NAT          VS/TUN          VS/DR
Server              any             Tunneling       Non-arp device
server network      private         LAN/WAN         LAN
server number       low (10~20)     High (100)      High (100)
server gateway      load balancer   own router      Own router
  以上三种方法所能支持最大服务器数目的估计是假设调度器使用100M网卡,调度器的硬件配置与后端服务器的硬件配置相同,而且是对一般Web服 务。使用更高的硬件配置(如千兆网卡和更快的处理器)作为调度器,调度器所能调度的服务器数量会相应增加。当应用不同时,服务器的数目也会相应地改变。所 以,以上数据估计主要是为三种方法的伸缩性进行量化比较。

  FULLNAT工作流程
    1、引入LIP(local address),可以配置多个,也可以使用DIP
    2、客户端请求VIP
    3、Director接受到请求,根据调度算法得出转发的RS, 将CIP修改为LIP, VIP修改为对应RIP, 转发给RS
    4、RS接受到请求后, 响应请求给LIP, Director将响应报文RIP改为VIP, LIP改为CIP, 响应给用户
实现FULLNAT模型需要注意的:
    1、请求报文和响应报都要通过Director
    2、RIP接收到的请求报文的源地址为LIP,目标地址为RIP
    3、支持端口映射
    4、为了保证应用透明性,通过tcp option传递client ip给RealServer(TOA).要RS读取数据包中的tcp option来记录client ip
    5、和NAT比,正常转发性能下降

运维网声明 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-658701-1-1.html 上篇帖子: LVS+Mysql集群负载均衡--内网lvs配置 下篇帖子: 集群-LVS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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