LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。
LVS工作在TCP/IP协议的四层,其转发是依赖于四层协议的特征进行转发的,由 于其转发要依赖于协议的特征进行转发,因此需要在内核的TCP/IP协议栈进行过滤筛 选,而这样的过滤转发规则可由管理员对内核进行定义。 LVS在内核空间中工作的是“ipvs” ,而在用户空间中工作的,用来定义集群服 务规则的是“ipvsadm”。
三种负载均衡转发的机制
1:NAT(Network Address Translation)网络地址翻译技术。 当用户请求到达调度器时,调度器将改写请求的地址为真实Server地址。在服 务器端处理后,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和 相应端口,然后把数据发送给用户,完成整个负载调度过程。
2:TUN(IP Tunneling)IP隧道技术 调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过调度器。
3:DR(Direct Routing)直接路由技术 DR通过改写请求报文的MAC地址,将请求发送到真实Server,而真实Server将响应直 接返回给客户,比TUN少了IP隧道开销。这种方式是三种负载调度机制中性能最高最好的, 但是要求调度器与真实服务器在同一物理网段上
负载调度的算法
1:rr(Round Robin )轮循,这种算法平等地对待每一台真实服务器,而不管服务器上实际 的负载状况和连接状态
2:wrr(Weighted Round Robin )加权轮循,根据真实服务器的不同处理能力来调度请求
3:lc(Least Connections )最少连接,动态地将请求调度到已建立的链接数最少的服务器
4:wlc(Weighted Least Connections )加权最少连接,每个服务节点可以用相应的权值表 示其处理能力,较高权值的服务器将承受较大比例的活动连接负载
5:dh(Destination hashing )目标地址Hash,根据请求的目标IP,作为散列键从静态分配 的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否 则返回空
6:SH(Source hashing)源地址hash,根据请求的源IP,作为散列键从静态分配的散列表找 出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空
7:SED(Shortest Expected Delay)最短期望的延迟,基于wlc算法,计算每个真实服务器的 请求延迟,把请求转发给最短延迟的服务器
8:NQ(Never Queue)最少排队,某台真实服务器没有连接时,就直接转发过去
9:LBLC(Locality-Based Least-Connection)基于局部的最少连接,根据请求的目标IP,找 出该地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器; 若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接” 的原则选出一个可用的服务器,将请求发送到该服务器
10:LBLCR(Locality-Based Least-Connection with replication Scheduling)带复制的基 于局部最少连接,它与LBLC算法的不同之处是它要维护从一个目标 IP到一组服务器的映 射,而LBLC是维护从一个目标IP到一台服务器的映射。根据请求的目标IP,找出该目标IP 对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超 载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中另外选 出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器