LVS负载均衡之LVS-NAT与LVS-DR模式原理详解

栏目: 服务器 · 发布时间: 7年前

内容简介:LVS 由2部分程序组成,包括 ipvs 和 ipvsadm。LVS负载均衡常见的有三种工作模式,分别是地址转换(简称NAT模式)、IP隧道(简称TUN模式)和直接路由(简称DR模式),其实企业中最常用的是 DR 实现方式,而 NAT 配置上比较简单和方便,下面总结 DR 和 NAT 原理和特点:最常用的有四种;轮询(rr)、加权轮询(wrr)、最少连接(lc)和加权最少连接(wlc)。

一、负载均衡LVS基本介绍

  1. LVS是 Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtualserver.org

  2. LVS是Linux内核标准的一部分。LVS是一个实现负载均衡集群的开源软件项目,通过 LVS 的负载均衡技术和 Linux操作系统可以实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。
  3. LVS架构从逻辑上可分为调度层、Server集群层和共享存储。LVS实际上相当于基于IP地址的虚拟化应用。

二、LVS的组成

LVS 由2部分程序组成,包括 ipvs 和 ipvsadm。

  1. ipvs(ip virtual server):工作在内核空间,是真正生效实现调度的代码。
  2. ipvsadm:工作在用户空间,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server)

三、LVS相关术语

  1. DS:Director Server, 指的是前端负载均衡器节点。
  2. RS:Real Server, 后端真实的工作服务器。
  3. VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
  4. DIP:Director Server IP, 前端负载均衡器IP地址,主要用于和内部主机通信。
  5. RIP:Real Server IP, 后端服务器的IP地址。
  6. CIP:Client IP, 访问客户端的IP地址

四、LVS的工作模式介绍

LVS负载均衡常见的有三种工作模式,分别是地址转换(简称NAT模式)、IP隧道(简称TUN模式)和直接路由(简称DR模式),其实企业中最常用的是 DR 实现方式,而 NAT 配置上比较简单和方便,下面总结 DR 和 NAT 原理和特点:

1. LVS-NAT模式

(1) LVS-NAT原理

类似于防火墙的私有网络结构,Director Server作为所有服务器节点的网关,,即作为客户端的访问入口,也是各节点回应客户端的访问出口,其外网地址作为整个群集的VIP地址,其内网地址与后端服务器Real Server在同一个物理网络,Real Server必须使用私有IP地址。

LVS负载均衡之LVS-NAT与LVS-DR模式原理详解

数据包流向分析

  • 用户发送请求到Director Server,请求的数据报文(源IP是CIP,目标IP是VIP)到达内核空间。

  • 内核空间判断数据包的目标IP是本机,此时IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,重新封装数据包(源IP为CIP,目标IP为RIP),然后选路将数据包发送给Real Server。

  • Real Server比对发现目标IP是本机的IP,重新封装报文(源IP为RIP,目标IP为CIP)发回给Director Server。

  • Director Server重新封装数据包,将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP。

(2) LVS-NAT模型的特点

  • RS必须使用私有IP地址,网关指向DIP。

  • DIP与RIP必须在同一网段内。

  • DS作为所有服务器节点的网关,也就是说请求和响应报文都需要经过Director Server。

  • 支持端口映射

  • 高负载场景中,Director Server压力比较大,易成为性能瓶颈。

2. LVS-DR模式

(1) LVS-DR原理

Director Server作为群集的访问入口,但不作为网关使用,后端服务器池中的Real Server与Director Server在同一个物理网络中,发送给客户机的数据包不需要经过Director Server。为了响应对整个群集的访问,DS与RS都需要配置有VIP地址。

LVS负载均衡之LVS-NAT与LVS-DR模式原理详解

数据包流向分析

  • 用户发送请求到Director Server,请求的数据报文(源IP是CIP,目标IP是VIP)到达内核空间。

  • 由于DS和RS在同一个网络中,所以是通过二层数据链路层来传输。
  • 内核空间判断数据包的目标IP是本机IP,此时IPVS比对数据包请求的服务是否为集群服务,若是,重新封装数据包,修改源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址,源IP地址与目标IP地址没有改变,然后将数据包发送给Real Server.
  • RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文,重新封装报文(源IP地址为VIP,目标IP为CIP),将响应报文通过lo接口传送给eth0网卡然后向外发出。
  • RS直接将响应报文传送到客户端。

(2) LVS-DR模型的特点

  • RS和DS必须在同一个物理网络中。
  • RS可以使用私有地址,也可以使用公网地址,如果使用公网地址,可以通过互联网对RIP进行直接访问。
  • 所有的请求报文经由Director。 Server,但响应报文必须不能经过Director Server。
  • RS的网关绝不允许指向DIP(不允许数据包经过director)。
  • RS上的lo接口配置VIP的IP地址。

LVS-DR模式需要注意的是:
保证前端路由将目标地址为VIP报文统统发给Director Server,而不是RS。

解决方案是:修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。

  • arp_ignore=1表示系统只响应目的IP为本地IP的ARP请求。

  • arp_announce=2表示系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址。

五、LVS的负载调度算法

最常用的有四种;轮询(rr)、加权轮询(wrr)、最少连接(lc)和加权最少连接(wlc)。

  • 轮询(rr):将收到的访问请求按照顺序轮流调度到不同的服务器上,不管后端真实服务器的实际连接数和系统负载。
  • 加权轮询(wrr):给RS设置权重,权重越高,那么分发的请求数越多,权重的取值范围0–100。根据每台服务器的性能,给每台服务器添加权值,如果RS1的权值为1,RS2的权值为2,那么调度到RS2的请求会是RS1的2倍。权值越高的服务器,处理的请求越多。这种算法是对rr算法的一种优化和补充。
  • 最少连接(lc):根据后端RS的连接数来决定把请求分发给谁,比RS1连接数比RS2连接数少,那么请求就优先发给RS1。
  • 加权最少连接(wlc):根据后端RS的权重和连接数来决定把请求分发给谁,权重较高,连接数少的RS会优先处理请求。

六、LVS的共享存储服务器

为后端真实服务器提供稳定、一致的文件存取服务,在Linux/Unix环境中,共享存储可以使用NAS设备或者提供NFS(网络文件系统)共享服务的专用服务器。一般放在私有网络中。

LVS的NAT模式案例部署详细请看 LVS负载均衡之LVS-NAT搭建Web群集

LVS的DR模式案例部署详细请看 LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-11/155542.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java Message Service API Tutorial and Reference

Java Message Service API Tutorial and Reference

Hapner, Mark; Burridge, Rich; Sharma, Rahul / 2002-2 / $ 56.49

Java Message Service (JMS) represents a powerful solution for communicating between Java enterprise applications, software components, and legacy systems. In this authoritative tutorial and comprehens......一起来看看 《Java Message Service API Tutorial and Reference》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具