目录
- 一、LVS简介
- 二、LVS的特点
- 三、LVS常见术语
- 四、LVS的组成
- 五、LVS的工作原理
一、LVS简介
- LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。这是一个开源项目,它的官方网站是 http://www.linuxvirtualserver.org ,现在LVS已经是linux内核标准的一部分。
- LVS的宗旨是:使用集群技术和Linux操作系统实现一个高性能、高可用 linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性,从而以低廉的成本实现好的性能。
二、LVS的特点
LVS的主要特点有以下几个方面:
优点:
- 高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发连接。
- 稳定性强:LVS工作在网络4层上,仅作分发之用。这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。
- 成本低廉:硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器就能免费部署使用,性价比极高。
- 配置简单:LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。
- 支持多种算法:支持多种论调算法,可根据业务场景灵活调配进行使用。
- 支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。
- 应用范围广:由于LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等。
缺点:
工作在第4层,不支持7层规则修改,机制过于庞大,不适合小规模应用。
三、LVS常见术语
LVS中有一些常见的术语:
名称 | 含义 |
ipvsad | 用户空间的命令行工具,用于管理集群服务及集群服务上的RS等 |
IPVS | 工作于内核上的 netfilter INPUT HOOK 之上的程序,可根据用户定义的集群实现请求转发 |
VS(Virtual Server) | 虚拟服务 |
Director, Balancer | 负载均衡器、分发器 |
DS(Director Server) | 指前端负载均衡器节点 |
RS(Real Server) | 后端请求处理服务器 |
CIP(Client IP) | 客户端IP |
VIP(Director Virtual IP) | 负载均衡器虚拟IP |
DIP(Director IP) | 负载均衡器IP |
RIP(Real Server IP) | 后端请求处理服务器IP |
四、LVS的组成
LVS由2部分程序组成—— ipvs和ipvsadm:
- ipvs(ip virtual server):一段工作在内核空间的代码,叫ipvs,是真正生效来实现调度的代码。
- ipvsadm:一段工作在用户空间的代码,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,谁是后端真实的服务器(Real Server)
五、LVS的工作原理
工作过程:
- 当客户端的请求到达负载均衡器的内核空间时,首先会到达PREROUTING链。
- 当内核发现请求数据包的目的地址是本机时,将数据包送往INPUT链。
- LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作。IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这个数据包将经过INPUT链送至用户空间,交给用户空间的进程来处理。
- 如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链。
- 最后经由POSTROUTING链发往后端服务器。