负载均衡:LVS 负载调理原理

金歌  金牌会员 | 2024-6-13 21:59:20 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 580|帖子 580|积分 1740

LVS 官方中文站点参考资料:
  http://www.linuxvirtualserver.org/zh/index.html
  LVS 二层负载均衡机制



  • 只有LVS实现了二层负载均衡
  • 通过LVS的DR模式来实现的

数据包走向原理说明:

  • 客户端哀求数据包报文源地址和目标地址:CIP、VIP
  • 负载均衡将客户端哀求数据包报文的源 MAC 地址改为本身 DIP 的 MAC 地址,现在 MAC 地址改为 RIP 的 MAC 地址,并将这个数据包发送给后端服务器
    后端服务器和负载均衡服务器只能在一个局域网内,不能跨 VLAN
  • 后端服务器直接获取的是客户端的源IP地址
  • 后端服务器发现哀求的数据包报文中的目标地址的 MAC 是本身,就吸收了这个数据包,由于数据包的 MAC 地址被修改,因今后端服务器必要在 lo 网口绑定 VIP,处置惩罚完报文后,将响应报文通过 lo 接口送给eth0网卡直接发给客户端,因为数据包由后端直接返回给客户端,所以后端服务器必须绑定公网 IP 地址
LVS 三层负载均衡机制



  • 只有LVS实现了三层负载均衡
  • 是通过LVS的【IP-TUN】模式完成的

数据包走向原理说明:

  • 客户端哀求数据包报文源地址和目标地址:CIP、VIP
  • 负载均衡将客户都哀求的数据包报文首部再封装一层 IP 报文,将源地址改为 DIP,目标地址改为 RIP,并将这个数据包发送给后端服务器,这个模式是可以跨 VLAN 的,三层负载会导致在后端服务器中不能直接获取到客户端的源 IP 地址
  • 后端服务器吸收到报文哀求后,首先拆开第一层封装,然后发现内里另有一层 IP 首部的目标地址,是本身 lo 接口上的 VIP 地址,所以会处置惩罚哀求报文,并将响应报文通过 lo 接口发送给 eth0 网卡直接发送给客户端
LVS 四层负载均衡机制




  • LVS通过【NAT】模式实现的
数据包走向原理说明:

  • 客户端哀求数据包报文源地址和目标地址:CIP、VIP
  • 负载均衡将客户端哀求数据包中的报文的目标地址改成 RIP 地址,并将数据包发给后端服务器,同样要求所有的后端服务器和负载均衡服务器只能在一个 VLAN 中
  • 报文送到后端服务器后,目标服务器就会响应哀求,并将响应数据包返回给负载均衡服务器
  • 负载均衡将响应数据包的源地址 IP 改成 VIP 地址后发送给客户端
  • 负载均衡服务器会存在性能瓶颈
LVS 调理算法

   IPVS 在内核中的负载均衡调理是以连接为粒度的。在 HTTP 协议(非持久)中,每个对象从 WEB 服务器上获取都必要建立一个 TCP 连接,同一用户的不同哀求会被调理到不同的服务器上,所以这种细粒度的调理在肯定水平上可以避免单个用户访问的突发性引起服务器间的负载不平衡。
  在内核中的连接调理算法上,IPVS 已实现了以下八种调理算法
轮叫调理(RR)

   轮叫调理(Round Robin Scheduling)算法就是以轮叫的方式依次将哀求调理不同的服务器,即每次调理执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调理。
  

  • 适合后端服务器组处置惩罚性能划一(配置相同)
  • 哀求间隙较大时,容易导致分配不均衡
加权轮叫调理(WRR)

   加权轮叫调理(Weighted Round-Robin Scheduling)算法可以解决服务器间性能不一的环境,它用相应的权值表现服务器的处置惩罚性能,服务器的缺省权值为1。假设服务器A的权值为1,B的 权值为2,则表现服务器B的处置惩罚性能是A的两倍。加权轮叫调理算法是按权值的高低和轮叫方式分配哀求到各服务器。权值高的服务器先收到的连接,权值高的服 务器比权值低的服务器处置惩罚更多的连接,相同权值的服务器处置惩罚相同数量标连接数。
  

  • 有三个服务器A、B和C分别有权值4、3和2,则在一个调理周期内(mod sum(W(Si)))调理序列为AABABCABC。加权轮叫调理算法还是比力简单和高效
  • 哀求间隙较大时,容易导致分配不均衡
最小连接调理(LC)

   最小连接调理(Least-Connection Scheduling)算法是把新的连接哀求分配到当前连接数最小的服务器。最小连接调理是一种动态调理算法,它通过服务器当前所活跃的连接数来估计服务器的负载环境。调理器必要记录各个服务器已建立连接的数量,当一个哀求被调理到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。
  

  • 在系统实现时,我们也引入当服务器的权值为零时,表现该服务器不可用而不被调理
  • 当各个服务器有相同的处置惩罚性能时,最小连接调理算法能把负载变化大的哀求分布平滑到各个服务器上,所有处置惩罚时间比力长的哀求不大概被发送到同一台服务器上。但是,当各个服务器的处置惩罚本领不同时,该算法并不理想,因为TCP连接处置惩罚哀求后会进入TIME_WAIT状态,TCP的TIME_WAIT一样平常为2分钟,此时连接还占用服务器的资源,所以会出现如许情形,性能高的服务器已处置惩罚所收到的连接,连接处于TIME_WAIT状态,而性能低的服务器已经忙于处置惩罚所收到的连接,还不停地收到新的连接哀求
加权最小连接调理(WLC)

   加权最小连接调理(Weighted Least-Connection Scheduling)算法是最小连接调理的超集,各个服务器用相应的权值表现其处置惩罚性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权 值。加权最小连接调理在调理新连接时尽大概使服务器的已建立连接数和其权值成比例。
  基于局部性的最少链接调理(LBLC)

   基于局部性的最少链接调理(Locality-Based Least Connections Scheduling,以下简称为LBLC)算法是针对哀求报文的目标IP地址的负载均衡调理,现在主要用于Cache集群系统,因为在Cache集群中客户哀求报文的目标IP地址是变化的。这里假设任何后端服务器都可以处置惩罚任一哀求,算法的设计目标是在服务器的负载基本平衡环境下,将相同目标IP地址的哀求调理到同一台服务器,来提高各台服务器的访问局部性和主存Cache命中率,从而整个集群系统的处置惩罚本领。
  

  • LBLC调理算法先根据哀求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将哀求发送到该服务器;若服务器不 存在,或者该服务器超载且有服务器处于其一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将哀求发送到该服务器
带复制的基于局部性最少链接调理(LBLCR)

   带复制的基于局部性最少链接调理(Locality-Based Least Connections with Replication Scheduling,以下简称为LBLCR)算法也是针对目标IP地址的负载均衡,现在主要用于Cache集群系统。它与LBLC算法的不同之处是它要 维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。对于一个“热门”站点的服务哀求,一台Cache 服务器大概会忙不外来处置惩罚这些哀求。这时,LBLC调理算法会从所有的Cache服务器中按“最小连接”原则选出一台Cache服务器,映射该“热门”站 点到这台Cache服务器,很快这台Cache服务器也会超载,就会重复上述过程选出新的Cache服务器。如许,大概会导致该“热门”站点的映像会出现 在所有的Cache服务器上,降低了Cache服务器的使用效率。LBLCR调理算法将“热门”站点映射到一组Cache服务器(服务器集合),当该“热 门”站点的哀求负载增加时,会增加集合里的Cache服务器,来处置惩罚不停增长的负载;当该“热门”站点的哀求负载降低时,会淘汰集合里的Cache服务器 数量。如许,该“热门”站点的映像不太大概出现在所有的Cache服务器上,从而提供Cache集群系统的使用效率。
  

  • LBLCR算法先根据哀求的目标IP地址找出该目标IP地址对应的服务器组;按“最小连接”原则从该服务器组中选出一台服务器,若服务器没有超载, 将哀求发送到该服务器;若服务器超载;则按“最小连接”原则从整个集群中选出一台服务器,将该服务器参加到服务器组中,将哀求发送到该服务器。同时,当该 服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的水平
目标地址散列调理(DH)

   目标地址散列调理(Destination Hashing Scheduling)算法也是针对目标IP地址的负载均衡,但它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。
  目标地址散列调理算法先根据哀求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将哀求发送到该服务器,否则返回空。
  源地址散列调理(SH)

   源地址散列调理(Source Hashing Scheduling)算法恰好与目标地址散列调理算法相反,它根据哀求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将哀求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调理算法 的相同。
  

  • 源地址散列调理和目标地址散列调理可以结合使用在防火墙集群中,它们可以保证整个系统的唯一出入口

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

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