LVS类型的介绍以及LVS的调度方法
LVS三种类型的比较:

类型
属性
LVS-NAT(最简单)
网络地址转换
LVS-DR(最常用)
直接路由
LVS-TUN
IP隧道
realserverdirector是否可在同一网络中
在同一子网中
在同一物理网络中(基于MAC地址转发)
可在不同的物理网络中,也可以在不同的地域
RIP是私有地址还是公网地址
一般来说是私有地址
公网地址
一定不是私有地址
director是否同时处理入站和出站数据
同时处理入站和出站数据
只处理入站请求
只处理入站请求
realserver的网关是否指向DIP
realserver的网关指向DIP
realserver的网关不能指向DIP
realserver的网关不能指向DIP
是否支持端口映射
支持端口映射
不支持端口映射
不支持端口映射
realserver是否可以是任意操作系统
可以是任意的OS
可以是大多数的操作系统(OS支持一个网卡配置多个IP,隔离realserver广播)
仅可是那些支持IP隧道协议的OS
其他方面
director很容易成为系统瓶颈
性能优于LVS-NAT

 
lvs调度方法总的分为两大类:
1.静态调度方法
2.动态调度方法
其中静态调度方法又分为:
(1).Round-Robin : 轮叫,简称RR轮叫调度就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。轮叫调度算法假设所有服务器处理性能均相同,不管服务器的当前连接数和响应速度。该算法相对简单,不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化比较大时,轮叫调度算法容易导致服务器间的负载不平衡。
(2).Weighted Round-Robin : 加权轮叫,简称WRR该算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。假设服务器A的权值为1B的权值为2,则表示服务器B的处理性能是A的两倍。加权轮叫调度算法是按权值的高低和轮叫方式分配请求到各服务器。权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。
(3).Destination Hashing : 目标地址散列,简称DH目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空,主要应用于缓存服务器。
(4).Source Hashing : 源地址散列,简称SH源地址散列调度算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。
动态调度方法又分为:
(1).Least Connections : 最少链接,简称LC该调度是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减1
计算当前realserver 的负载情况计算方法:active*256+inactive=overhead
(2).Weighted Least Connections : 加权最少链接,简称WLC加权最小连接调度是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。计算当前realserver 的负载情况计算方法:(active*256+inactive)/weight=overhead
 
(3).Shortest Expected Delay Scheduling : 最短的期望的延迟,简称SED分配一个接踵而来的请求以最短的期望的延迟方式到服务器。
计算当前realserver 的负载情况计算方法:(active+1)*256/weight=overhead
(4). Never Queue Scheduling :最小队列调度,简称NQ分配一个接踵而来的请求到一台空闲的服务器,此服务器不一定是最快的那台,如果所有服务器都是繁忙的,它采取最短的期望延迟分配请求。
(5). Locality-Based Least Connections :基于局部性的最少链接,简称LBLC"基于局部性的最少链接" 调度算法是针对目标IP 地址的负载均衡,目前主要用于Cache 集群系统。该算法根据请求的目标IP 地址找出该目标IP 地址最近使用的服务器,若该服务器是可用的
且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务器,将请求发送到该服务器。
(6). Locality-Based Least Connections with Replication : 带复制的基于局部性最少链接,简称LBLCR"带复制的基于局部性最少链接"调度算法也是针对目标IP 地址的负载均衡,目前主要用于Cache 集群系统。它与LBLC 算法的不同之处是它要维护从一个目标IP 地址到一组服务器的映射,而LBLC 算法维护从一个目标IP 地址到一台服务器的映射。该算法根据请求的目标IP 地址找出该目标IP 地址对应的服务器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。