编辑
2021-11-30
lvs
00

目录

LVS:Linux Virtual Server
一、工作原理
二、LVS的工作模式和调度算法
1、工作模式
2、调度算法

LVS:Linux Virtual Server

LVS是全球最流行的四层负载均衡开源软件,由章文嵩博士(当前阿里云产品技术负责人)在1998年5月创立,可以实现LINUX平台下的负载均衡。

一、工作原理

VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS。LVS是内核级功能,工作在INPUT链的位置,将发往INPUT的流量进行“处理,由于LVS是工作在内核中,所有LVS的性能比其他代理软件都强。

注意:

LVS在2.4以后的内核版本中才开始内置了LVS的各个功能模块,之前的内部版本都需要重新编译

二、LVS的工作模式和调度算法

1、工作模式

LVS工作模型:lvs-nat、lvs-dr、lvs-tun、lvs-fullnat,常用模型为lvs-nat和lvs-dr模型

  • lvs-nat:本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发
    (1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP
    (2)请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈
    (3)支持端口映射,可修改请求报文的目标PORT
    (4)VS必须是Linux系统,RS可以是任意OS系统
  • lvs-dr:Direct Routing,直接路由,LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变

2、调度算法

LVS调度算法又分为静态调度算法和动态调度算法
根据算法策略调度方法:
静态方法:

  1. RR:roundrobin,轮询,较常用,你一次我一次他一次
  2. WRR:Weighted RR,加权重轮询,较常用。A机器性能好往他调度三次,B机器性能不好,只调度一次。最后结果就是访问A机器三次,访问B机器一次
  3. SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
  4. DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如: Web缓存

动态方法:根据每RS当前的负载状态及调度算法进行调度Overhead=value 较小的RS将被调度

  1. LC:least connections 适用于长连接应用
  2. WLC:Weighted LC,默认调度方法,较常用
  3. SED:Shortest Expection Delay,初始连接高权重优先,只检查活动连接,而不考虑非活动连接
  4. NQ:Never Queue,第一轮均匀分配,后续SED
  5. LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理,实现WebCache等
  6. LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制到负载轻的RS,,实现Web Cache等
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:笑一个吧~

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 本文为博主「笑一个吧~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 许可协议。转载请注明出处!