美文网首页
LVS 简介

LVS 简介

作者: Alexander_Zz | 来源:发表于2019-03-19 20:58 被阅读0次

集群类型

lvs-nat
    修改请求报文的目标 IP,多目标 IP 的 DNAT
lvs-dr
    操纵封装新的 MAC 地址
lvs-tun
    在请求 IP 报文之外新加一个 IP 首部
lvs-fullnat
    修改请求报文的源和目标 IP    
  • 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 均保持不便
  (1) Director 和各 RS 都配置有 VIP
  (2) 确保前端路由器将目标 IP 为 VIP 的请求报文发往 Director
    * 在前端网关做静态绑定 VIP 和 Director 的 MAC 地址
    * 在 RS 上使用 arptables 工具
      arptables -A IN -d $VIP -j DROP
      arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP
    * 在 RS 上修改内核参数以限制 arp 通告以及应答级别  # 最常用的 dr 模式方式,修改内核参数
      /proc/sys/net/ipv4/conf/all/arp_ignore
      /proc/sys/net/ipv4/conf/all/arp_announce
  (3) RS 的 RIP 可以使用私网地址,也可以是公网地址;RIP 的网关不能指向 DIP,以确保相应报文不会经由 Director
  (4) RS 和 Director 要在同一个物理网络
  (5) 请求报文要经由 DIrector,但相应报文不经由 Director,而由 RS 直接发往 Client
  (6) 不支持端口映射 (端口不能修改)
  (7) RS 可使用大多数 OS 系统 (需要修改内核参数) 
  • lvs-tun 模式
转发方式:不修改请求报文的 IP 首部(源 IP 为 CIP,目标 IP 为 VIP),而在原 IP 报文之外再 封装一个IP首部(源 IP 是 DIP,目标 IP 是 
 RIP),将报文发往挑选出的目标 RS;RS 直接响应给客户端(源 IP 是 VIP,目标 IP 是 CIP) 
  (1) DIP, VIP, RIP都应该是公网地址 
  (2) RS 的网关一般不能指向 DIP 
  (3) 请求报文要经由 Director,但响应不经由 Director 
  (4) 不支持端口映射 
  (5) RS 的 OS 须支持隧道功能
  • lvs-fullnat 模式
lvs-fullnat:通过同时修改请求报文的源 IP 地址和目标 IP 地址进行转发 
  CIP --> DIP #源地址 
  VIP --> RIP #目标地址
    (1) VIP 是公网地址,RIP 和 DIP 是私网地址,且通常不在同一 IP 网络;因此, RIP 的网关一般不会指向 DIP 
    (2) RS 收到的请求报文源地址是 DIP,因此,只需响应给 DIP;但 Director 还 要将其发往 Client 
    (3) 请求和响应报文都经由 Director 
    (4) 支持端口映射 
注意:此类型kernel默认不支持,需要重新编译支持fullnat模式

LVS 工作模式总结

  • lvs-nat 与 lvs-fullnat
请求和响应报文都经由 Director
lvs-nat:RIP 的网关要指向 DIP 
lvs-fullnat:RIP 和 DIP 未必在同一 IP 网络,但要能通信 
  • lvs-dr 与 lvs-tun
请求报文要经由 Director,但响应报文由 RS 直接发往Client 
lvs-dr:通过封装新的 MAC 首部实现,通过 MAC 网络转发 
lvs-tun:通过在原 IP 报文外封装新 IP 头实现转发,支持远距离(跨互联网)通信

ipvs scheduler

根据其调度时是否考虑各 RS 当前的负载状态
  两种:静态方法和动态方法
  • 静态方法:仅根据算法本身进行调度
1、RR:roundrobin,轮询
2、WRR:Weighted RR,加权轮询
3、SH:Source Hashing,实现 session sticky,源 IP 地址 hash;将来自于同一个 IP 地址的请 求始终发往第一次挑中的 RS,从而实现会话绑定
4、DH:Destination Hashing;目标地址哈希,第一次轮询调度至 RS,后续将发往同一个 目标地址的请求始终转发至第一次挑中的 RS,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商
  • 动态方法:主要根据每RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度
1、LC:least connections 适用于长连接场景应用 
  Overhead=activeconns(活动连接)*256+inactiveconns(非活动连接) #1个活动等于256非活动 
2、WLC:Weighted LC,加权轮询,默认调度方法 
  Overhead=(activeconns*256+inactiveconns)/weight 
3、SED:Shortest Expection Delay,初始连接高权重优先,权重越高的服务器Overhead值会越小 
  Overhead=(activeconns+1)*256/weight 
4、NQ:Never Queue,第一轮均匀分配,后续SED 
5、LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理 
6、LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制到 负载轻的RS

相关文章

网友评论

      本文标题:LVS 简介

      本文链接:https://www.haomeiwen.com/subject/omfvmqtx.html