目录

  • 一、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的工作原理

lvs 并发量为_均衡器


工作过程:

  • 当客户端的请求到达负载均衡器的内核空间时,首先会到达PREROUTING链。
  • 当内核发现请求数据包的目的地址是本机时,将数据包送往INPUT链。
  • LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作。IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这个数据包将经过INPUT链送至用户空间,交给用户空间的进程来处理。
  • 如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链。
  • 最后经由POSTROUTING链发往后端服务器。