1、LVS简介 LVS是简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以再unix/linux平台下实现负载均衡集群功能。

IPVS发展史

  • 早在2.2内核时,IPVS就已经以内核补丁的形式出现。
  • 从2.4.23版本开始ipvs软件就是合并到linux内核的常用版本的内核补丁的集合。
  • 从2.4.24以后IPVS已经成为linux官方标准内核的一部分

PS:IPVS是工作在内核层,我们不能够直接操作ipvs,而需要使用ipvs的管理工具ipvsadm进行管理。

2、LVS的基本工作过程: 客户请发送向负载均衡服务器发送请求。负载均衡器接受客户的请求,然后先是根据LVS的调度算法(8种)来决定要将这个请求发送给哪个节点服务器。然后依据自己的工作模式(3种)来看应该如何把这些客户的请求如何发送给节点服务器,节点服务器又应该如何来把响应数据包发回给客户端。

3、LVS的三种工作模式: 1)VS/NAT模式(Network address translation) 2)VS/TUN模式(tunneling) 3)DR模式(Direct routing)

4、LVS的八种调度算法 LVS的调度算法决定了如何在集群节点之间分布工作负荷。 1)固定调度算法:rr,wrr,dh,sh 2) 动态调度算法:wlc,lc,lblc,lblcr

PS:算法说明

  • rr:轮询算法,它将请求依次分配给不同的rs节点,也就是RS节点中均摊分配。这种算法简单,但只适合于RS节点处理性能差不多的情况
  • wrr:加权轮训调度,它将依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
  • wlc:加权最小连接数调度,假设各台RS的全职依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS
  • dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得需要的RS
  • sh:源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS
  • lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS.
  • lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。