一、概述
LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案。
LVS的IPVS模块在Linux内核2.4之后以上都被默认支持了,只需要安装ipvsadm管理配置软件即可。
二、优点
- 工作在网络层,可以实现高性能,高可用的服务器集群技术。
- 廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。
- 易用,配置非常简单,且有多种负载均衡的方法。
- 稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。
- 可扩展性非常好。
三、工作方式
常用:①NAT(地址转换)
②DR(直接路由)
四、调度算法
Fixed Scheduling Method 静态调度方法
1.RR 轮询
调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。
2.WRR 加权轮询
调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。 这样可以保证处理能力强的服务器处理更多的访问流量。调度器 可以自动问询真实服务器的负载情况,并动态地调整其权值。
3.DH 目标地址hash
算法也是针对目标IP地址的负载均衡,但它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
4.SH 源地址hash
算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是 可用的且未超载,将请求发送到该服务器,否则返回空。
它采用的散列函数与目标地址散列调度算法的相同。除了将请求的目标IP地址换成请求的源IP地址外,它的算法流程与目标地址散列调度算法的基本相似。在实际应用中,源地址散列调度和目标地址散列调度可以结合使用在防火墙集群中,它们可以保证整个系统的唯一出入口。
Dynamic Scheduling Method 动态调度方法
1.LC 最少连接
调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。 如果集群系统的真实服务器具有相近的系统