lvs整理

LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统。通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。

4种模型概要总结:

1、NAT的特性:

    1)RS应该使用私有地址;
    2)RS的网关的必须指向DIP;
    3)RIP和DIP必须在同一网段内;
    4)请求和响应的报文都得经过Director;在高负载场景中,Director很可能成为系统性能瓶颈;
    5)支持端口映射;
    6)RS可以使用任意支持集群服务的OS;

## 2、DR类型的特性:

    1)RS可以使用私有地址;但也可以使用公网地址,此时可以直接通过互联网连入RS以实现配置、监控等;
    2)RS的网关一定不能指向DIP;
    3)RS跟DR要在同一物理网络内(不能由路由器分隔);
    4)请求报文经过DR,但响应报文一定不经过DR
    5)不支持端口映射;
    6)RS可以使用大多数的操作系统;

3、 TUN类型:IP隧道

    1)RIP、DIP、VIP都得是公网地址;
    2)RS的网关不会指向也不可能指向DIP;
    3)请求报文经过DR,但响应报文一定不经过DR;
    4)不支持端口映射;
    5)RS的OS必须得支持隧道功能;

4、 FullNat:

    1)DR,RS可以不在同一网络内,但它与TUN不同,所有IP报文头部信息变更都在DR上进行,所以性能方面比LVS_NAT更差一些;
    2)需要注意配置路由,保证能正常通信;

常用调度算法

静态调度算法:基于算法本身

1)RR 轮询

    Round Robin :新的连接请求被轮流分配至各RealServer,优点是该算法无需记录当前所有连接的状态,效率高;但缺点是在RealServer当中如果有性能不均等的情况下,性能差的主机将负载比较大。该算法容易倒致服务器之间负载不均衡;

2)WRR 加权轮询

    Weighted RR :优点与RR一样,无需记录所有连接状态;通过设定一定的权重值来分配连接请求;

3)SH 源地址哈希

    Source Hashing :通过一个散列函数将去往同一个目的IP的请求映射到一台服务器或链路上。   

4)DH 目标地址哈希

    Destination Hashing : 通过一个散列函数将来自同一个源IP的请求映射到一台服务器或链路上

动态调度算法:基于算法本身与RS本身的负载情况:

1)LC 最少连接数

    Least Connection :根据当前各服务器的连接数来估计服务器的负载情况,把新的连接分配给连接数最小的服务器;负载率=active*256+inactive,值小的优先分配请求;

2)WLC 加权最少连接数

    Weighted LC :与LC类似,根据当前各服务器的连接数来估计服务器的负载情况,把新的连接分配给连接数最小的服务器;负载率=(active*256+inactive)/weight,值小的优先分配请求;  

3)SED 最短期望延迟

    Shortest Expect Delay : 这个算法主要是优化LC的,在服务均在请求少的时候避免负载到一台服务器上做的优化;负载率=(active+1)*256/weight,值小的优先分配请求;

4)NQ 永不排队

    Nerver Queue :在负载低时,请求直接分配到空闲服务器上,不会产生请求等待;当服务器都很忙时,将轮询;

5)LBLC 基于本地最少连接

    Locality-Based Least Connection :根据请求的目标IP地址找出该目标IP地址最近使用的RealServer,若该Real Server是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。6)LBLCR 带复制的基于本地最少连接
    Replicated and Locality-Based Least Connection :该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。
原文地址:https://www.cnblogs.com/ExMan/p/11831841.html