什么是LVS?

  LVS是四层负载均衡器,Linux2.4内核以后天然支持(内核的一部分),其网络架构如下所示:
负载均衡之LVS
备注:LVS对外暴露的公网IP叫做“VIP”。

LVS工作模式

NAT模式

  NAT(Network Address Translation)网络地址转换,即将一个IP地址转换为另一个IP地址的技术,如下图所示:
负载均衡之LVS

  1. LVS接收到请求,根据调度算法得到实际服务器,假设其地址为RIP;
  2. LVS将数据包的目标地址从VIP改为RIP,并转发到实际服务器;
  3. 实际服务器处理完成后返回响应数据包,其源地址为RIP,目标地址为CIP;
  4. LVS收到响应数据包后,将其源地址改为VIP,然后发送到公网;

缺点: NAT模式下所有的请求和响应都会经过LVS,LVS容易成为系统的性能瓶颈。

DR模式

  DR(Direct Routing)直接路由,LVS只负责请求的调度,响应由真实服务器直接返回给客户端,以此提高吞吐量(依据是大多数网络请求都是请求报文短而响应报文长),如下图所示:
负载均衡之LVS

  1. LVS接收到请求,根据调度算法得到实际服务器RS;
  2. LVS将数据包的MAC地址改为际服务器RS的MAC地址,并转发给RS;
  3. 实际服务器处理完成后直接给客户端返回响应数据包;

TUN模式

  IP隧道技术是将一个IP数据封装成另一个IP数据包的技术。
负载均衡之LVS

  1. LVS接收到请求,根据调度算法得到实际服务器RS;
  2. LVS将数据包封装成新的数据包,其目标地址为RS的地址,源地址为VIP,并转发给RS;
  3. 实际服务器处理完成后直接给客户端返回响应数据包;
    备注:TUN模式需要操作系统支持IP隧道技术。

LVS调度算法

轮询(Round Robin, rr)

  LVS将外部请求按顺序依次分配到集群中的每台机器上,均等对待每一台机器,不管服务器上实际的连接数和系统负载。

加权轮询(Weighted Round Robin, wrr)

  LVS根据服务器的不同处理能力来调度访问请求,这样可以保证处理能力强的服务器处理更多的访问流量。

最少连接(Least Connections, lc)

  LVS动态地将网络请求调度到已建立连接最少的服务器上。

加权最少连接(Weighted Least Connections, wlc)

  权重高的服务器承受更多的连接,适用于服务器配置差异较大的场景。

源地址散列(Source Hashing, sh)

  将请求的源IP地址作为key进行hash,从静态分配的散列表中找出对应服务器。

目标地址散列(Destination Hashing, dh)

  将请求的目标IP地址作为key进行hash,从静态分配的散列表中找出对应服务器。

LVS配置

目前主要使用ipvsadm命令配置LVS

参考:https://www.cnblogs.com/liwei0526vip/p/6370103.html

相关文章:

  • 2022-01-27
  • 2021-05-30
猜你喜欢
  • 2021-11-21
  • 2021-10-30
  • 2021-11-18
  • 2022-01-01
相关资源
相似解决方案