目录
1. lvs的定义
LVS(Linux Virtual Server)即Linux虚拟服务器。它是一个虚拟的服务器集群系统,可以实现负载均衡集群功能【UNIX/LINUX平台】
lvs基本工作原理:
lvs ——> kernel space ——> IP ——> INPUT(ipvs) ——> change ——> POSTROUTING ——> rs
该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器
比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,
最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。
最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式
LVSLin | ux 虚拟服务 | 工作在四层的负载调度器,用于四层转发数据 |
---|---|---|
组件 | ipvs | 内核态,工作在内核空间,LVS 核心代码 |
ipvsadm | 用户态 | 工作在用户空间,是用户管理LVS的唯一手段 |
命名约定表
名称 简写 说明
虚拟IP VIP LB用于向客户端计算机提供服务的IP地址
真实IP RIP 在集群下面节点上使用的IP地址,真实提供服务的IP地址
Dirctor的IP DIP 连接内外网络的IP地址,负载均衡器上的IP
客户端IP CIP 客户端请求集群服务器的IP地址,源IP
LVS集群的工作模式
NAT (Network Address Translation)
TUN (Tunneling)
DR (Direct Routing)
FULLNAT (Full Network Address Translation)
2. LVS的优缺点
LVS的优点
1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的,对内存和cpu资源消耗比较低。
2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率。
3、工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案,如LVS+Keepalived,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived。
4、无流量,LVS只分发请求,而流量并不从它本身出去,这点保证了均衡器IO的性能不会受到大流量的影响。
5、应用范围比较广,因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、在线聊天室等等。
LVS的缺点
1、软件本身不支持正则表达式处理,不能做动静分离;而现在许多网站在这方面都有较强的需求,这个是Nginx/HAProxy+Keepalived的优势所在。
2、如果是网站应用比较庞大的话,LVS/DR+Keepalived实施起来就比较复杂了,特别后面有Windows
Server的机器的话,如果实施及配置还有维护过程就比较复杂了,相对而言,Nginx/HAProxy+Keepalived就简单多了。
3. lvs三种工作模式的原理与区别
3.1 基于NAT的LVS负载均衡(lvs的NAT模式)
N