LVS 所提供的 IP 负载均衡的三种技术

Posted 小鸟云计算

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS 所提供的 IP 负载均衡的三种技术相关的知识,希望对你有一定的参考价值。

1.LVS和负载均衡简介:

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。

LVS 所提供的 IP 负载均衡的三种技术

负载均衡就是有两台或者以上的服务器或者站点为我们提供服务,我们将来自客户端的请求靠某种算法尽量平均分摊到这些集群中,从而避免一台服务器因为负载太高而出现故障。简而言之便是将所有的负载均分到多台服务器中,即使其中某个出现故障,用户也能正常访问,得到服务。

广泛使用的是用软件的方式来实现负载均衡,实现效果不错,并且不需要成本是很多企业选择的方式。

以软件实现的负载均衡有两种方式:

  • 基于应用层负载均衡

  • 基于IP层负载均衡

文章主要就是介绍基于IP层负载均衡;

2.基于 IP 层负载均衡:

而 IP 的负载技术有以下三种模式:

  • 通过NAT实现虚拟服务器(VS/NAT)

  • 通过IP隧道实现虚拟服务器(VS/TUN)

  • 通过直接路由实现虚拟服务器(VS/DR)

3.VS/NAT 实现虚拟服务器

VS/NAT(Virtual Server via Network Address Translation)实现的虚拟服务器是这样的一个结构,主要经过这样的一些步骤:

LVS 所提供的 IP 负载均衡的三种技术

LVS-NAT

  • Real Server 接收到报文之后,做出了响应的处理,然后将响应的报文发送给 Load Balancer;

这样,客户所看到的只是在 Virtual IP Address 上提供的服务,而服务器集群的结构对用户是透明的。

下面,举个例子来进一步说明VS/NAT,如图所示:

LVS 所提供的 IP 负载均衡的三种技术

NAT-eg

Protocol

Virtual IP Address

Port

Real IP Address

Port

TCP

205.100.106.2

80

172.16.1.3

80

172.16.1.4

8080




TCP

205.100.106.2

21

172.16.1.3

21

SOURCE

DEST

203.100.106.1:3456

205.100.106.2:80

SOURCE

DEST

203.100.106.1:3456

172.16.1.4:8080

Real Server 收到修改后的报文之后,做出响应,然后将响应报文返回到调度器,报文如下:

SOURCE

DEST

172.16.1.4:8080

203.100.106.1:3456

SOURCE

DEST

205.100.106.2:80

203.100.106.1:3456

这样,客户认为是从202.103.106.5:80服务得到正确的响应,而不会知道该请求是 Real Server1 还是 Real Server2 处理的。

这便是 VS/NAT 的处理数据包的整个过程,它有这样的一些特点:

  • 集群节点,也就是 Real Server 与 Load Balacer 必须在同一个 IP 网络中

  • Load Balancer 位于 Real Server 与客户端之间,处理进出的所有通信

  • Real Server 的网关必须指向 Load Balancer

  • 支持端口映射:也就是Real Server 的端口可以自己设定,没有必须是与 Load Balancer 一样

VS/NAT 的优势在于可以做到端口映射,但是 Load Balancer 将可能成为集群的瓶颈。因为所有的出入报文都需要 Load Balancer 处理,请求报文较小不是问题,但是响应报文往往较大,都需要 NAT 转换的话,大流量的时候,Load Balancer 将会处理不过来。一般使用 VS/NAT 的话,处理 Real Server 数量达到 10~20 台左右将是极限,并且效率往往不高。

4.VS/DR 实现虚拟服务器

在VS/NAT 的集群系统中,请求和响应的数据报文都需要通过负载调度器,当真实服务器的数目在10台和20台之间时,负载调度器将成为整个集群系统的新瓶颈。大多数 Internet服务都有这样的特点:请求报文较短而响应报文往往包含大量的数据。

既然同时处理进出报文会大大的影响效率,增加机器的负载,那么若是仅仅处理进来的报文,即在负载调度器中只负责调度请求,而出去的报文由 Real Server 直接发给客户端这样岂不是高效许多。

VS/DR(Virtual Server via Direct Routing)利用大多数Internet服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群 系统的吞吐量。

VS/DR 实现的虚拟服务器是这样的一个结构,主要经过这样的一些步骤:

LVS 所提供的 IP 负载均衡的三种技术

DR-sturct

LVS 所提供的 IP 负载均衡的三种技术

change-MAC

这便是 VS/DR 的处理数据包的整个过程,它有这样的一些特点:

  • 集群节点,也就是 Real Server 与 Load Balacer 必须在同一个物理网络中(若是不同网段的话结构将变得复杂)

  • Load Balancer 仅仅负责处理入站的请求,Real Server 将直接响应客户端

  • Real Server 的网关不能指向 Load Balancer

  • 不支持端口映射:也就是Real Server 的端口必须是与 Load Balancer 对外服务的一样

5.VS/TUN 实现虚拟服务器

VS/DR 限制 Real Server 与 Load Balancer 必须在同一个物理网络中,那若是分散在各地岂不是无法使用?所以有了 VS/TUN(Virtual Server via IP Tunneling)的诞生。

LVS 所提供的 IP 负载均衡的三种技术

Tunnel-sturct

这便是 VS/TUN 的处理数据包的整个过程,它有这样的一些特点:

  • 集群节点,也就是 Real Server 与 Load Balacer 可以跨越公网

  • Load Balancer 仅仅负责处理入站的请求,Real Server 将直接响应客户端

  • Real Server 的网关不能指向 Load Balancer

  • 不支持端口映射:也就是Real Server 的端口必须是与 Load Balancer 对外服务的一样

这便是 LVS 所提供的 IP 负载均衡的三种技术,我们可以根据自己的情况做出不同的选择。

点击下方参与小鸟云【血战11.11】活动 。

以上是关于LVS 所提供的 IP 负载均衡的三种技术的主要内容,如果未能解决你的问题,请参考以下文章

大名鼎鼎的LVS:常见的三种负载均衡方式比较!

LVS的三种负载均衡技术,八大负载调度算法

大型网站架构系列:负载均衡详解

LVS基本概念和三种模式

亿级PV请求的三种负载均衡技术(转)

使用LVS实现web服务的负载均衡