Linux LVS 负载均衡

1、LVS 简单介绍#

LVS (Linux Virtual Server, 即 Linux 虚拟服务器) 是一个由章文嵩发起的开源软件项目。它主要用于多服务器的负载均衡 , 工作在网络层 , 可以实现高可用、高性能的服务器集群技术。

2、LVS 体系结构#

通常将 LVS 分为三部分,分别是负载调度器 (Load Balancer),服务器池 (Server Array / Real Server),共享存储 (Shared Storage),如下图所示:

Linux LVS 负载均衡

1). Load Balancer 层:这是 LVS 负载均衡的核心部分,由一台或多台负载调度器 (Director Server) 组成, 位于整个集群的最前端 (相当于 MVC 模型中的 Controller 层),负责将客户的请求按照一定的算法分发到下层服务器进行处理,其本身不做任何的业务处理。另外,还可以监听下层服务器的状态,当其中某台服务器出现故障时,自动将其踢出,恢复可用后,又将其加入。

2). Server Array 层:由一组实际运行应用服务的服务器组成,Real Server 可以是 Web 服务器、Mail 服务器、FTP 服务器、文件服务器、视频服务器中的一个或多个。在实际应用中,我们也可以将上层的 Director Server 作为 Real Server 使用。

3). Shared Storage 层:是为所有 Real Server 提供共享存储空间和数据一致性的存储区域。主要是为上一层提供数据,并保持数据一致性。

3、LVS 的三大负载均衡机制#

由于 LVS 工作在网络层, 所以相对于其它负载均衡的解决办法,比如 DNS 域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的。

LVS 的通过控制 IP 来实现负载均衡,IPVS 是其具体的实现模块,安装在 Director Server 上面,在 Director Server 虚拟一个对外访问的 IP(VIP)。用户访问 VIP,到达 Director Server,Director Server 根据一定的规则选择一个 Real Server,处理完成后然后返回给客户端数据。

这些步骤产生了一些具体的问题,比如如何选择具体的 Real Server,Real Server 如何返回给客户端数据等等。由此而衍生出了 IPVS 的三种机制:

关于 IPVS 的三种机制,将分别用三篇文章介绍,链接地址如下:

3.1 VS/NAT 技术#

3.2 VS/TUN 技术#

3.3 VS/DR 技术#

4、LVS 负载均衡的高可用#

所用技术:keepalived + lvs(主、备)

本作品采用《CC 协议》,转载必须注明作者和本文链接