服务器向外部提供服务,当一台服务器承受过多的压力,那么服务可能会产生服务不可用的情况,所以,我们应该让一台服务器承受的压力在合理范围内,如果一台服务器无法满足需求,那么可以横向扩展使用多台服务器分摊这些压力,这些服务器作为一个整体对外提供服务,并且分摊压力时,那么我们可以称这些服务器为"负载均衡集群"。
LVS 是 Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。现在 LVS 已经是 Linux 标准内核的一部分,从 Linux2.4 内核以后,已经完全内置了 LVS 的各个功能模块,无需给内核打任何补丁,可以直接使用 LVS 提供的各种功能。LVS在内核中名称是ipvs,作为netfilter的模块存在,管理ipvs的工具为ipvsadm。
LVS 是四层负载均衡,也就是说建立在 OSI 模型的第四层——传输层之上,传输层上有我们熟悉的 TCP/UDP,LVS 支持 TCP/UDP 的负载均衡。因为 LVS 是四层负载均衡,因此它相对于其它高层负载均衡的解决办法,比如 DNS 域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的。
为方便后续探讨,这里先说明下几个名词
VS: Virtual Server,调度器,负责调度
RS:Real Server,负责真正提供服务,后端服务器
VIP:LVS服务器上的公网IP,即Virtual IP
DIP:LVS服务器上的内网IP,即Director IP
RIP:Real Server上的内网IP
CIP:客户端的IP
工作原理:
VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS。
LVS 的工作模式:
NAT :
SNAT:修改源地址
DNAT:修改目标地址
DR:修改目标 MAC
TUN:在原请求IP报文之外新加一个IP首部
FULLNAT:修改请求报文的源和目标IP
LVS的工作位置
流入数据包