本文主要包括LVS三种模式的基本工作原理介绍和可能涉及的ARP问题原理。
1、LVS简介
1.1 LVS起源
LVS是Linux Virtual Server的简称,也叫Linux虚拟服务器, 也就是现在常说的四层负载均衡。 它是一个由章文嵩博士发起的自由软件项目
。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。
1.2 LVS常用名词概念
- loadbalance:
Load Balancer
,负载均衡器,运行LVS负责负载均衡的服务器 - DS:
Director Server
,指的是前端负载均衡器节点,也就是运行LVS的服务器; - RS:
Real Server
,后端真实的工作服务器; - VIP:
Virtual Server IP
,向外部直接面向用户请求,作为用户请求的目标的IP地址,一般也是DS的外部IP地址; - DIP:
Director Server IP
,主要用于和内部主机通讯的IP地址,一般也是DS的内部IP地址; - RIP:
Real Server IP
,后端服务器的IP地址; - CIP:
Client IP
,访问客户端的IP地址;
2、LVS基本原理
一般说的LVS集群指的是对于客户端来说的一个大型快速可靠高可用的服务器集群。LVS的核心是在LVS director上的Linux内核中的ip_vs内核模块
对于LVS集群中的Director Server(以下简称DS)来说:
- LVS属于四层负载均衡,DS属于四层交换,它在网络中显示为路由器,其规则与普通路由器略有不同;
- DS接受从客户端发送过来的请求,并且从后端(backend)的真实服务器RS中挑选一个用来处理请求;
- RS可以提供正常互联网服务中的任何服务,因为LVS是四层转发,兼容性很好,对业务无侵入性;
- RS可以在客户端无感知的情况下添加或删除到LVS集群中,因此允许后端的RS出现宕机、升级、弹性伸缩。
在调度器的实现技术中,IP负载均衡技术是效率最高的。在已有的IP负载均衡技术中有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation),在分析VS/NAT的缺点和网络服务的非对称性的基础上,LVS提出通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。所以,IPVS软件实现了这三种IP负载均衡技术,它们的大致原理如下