0基础纯新手小白也能成大神 之 LVS负载均衡

LVS负载均衡集群理论

目录

LVS负载均衡集群理论

一、概述

1、集群概述

1.1、集群介绍

1.2、集群类型

1.3、负载均衡技术类型

1.4、负载均衡实现方式

2、LVS介绍

3、LVS和nginx区别

4、LVS相关术语

5、LVS负载均衡算法

5.1、静态负载均衡

5.2、动态负载均衡

二、三种LVS工作模式详解

1、基于NAT的LVS模式负载均衡

1.1、工作原理

1.2、LVS-NAT模型的特性

1.3、NAT的优点

1.4、NAT的缺点

2、基于TUN的LVS负载均衡

2.1、实现原理

2.2、TUN 模式的优点

2.3、TUN 模式的缺点

3、LVS(DR)负载均衡

3.1、DR 实现原理

3.2、DR 模式的优点

3.3、DR 模式的缺点

3.4、DR 模式的使用场景

三、IPVS模块概述

1、常见选项


一、概述

1、集群概述

1.1、集群介绍

集群是一组相互独立的、通过高速计算机网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。

计算机集群Cluster,可以把多台计算机 连接在一起使用,平分资源或互为保障。其好处不言而喻,群集中的每个计算机被称为一个节点,节点可添加可减少,在这些节点之上虚拟出一台计算机供用户使用;从使用用户的角度看始终是使用一台计算机,无所谓多少节点。

特点:

高性能、高性价比、可扩展性、高可用性负载均衡、错误恢复、透明性、可管理性、可编程性

1.2、集群类型

  • 负载均衡集群(Load Balance Cluster)

  • 高可用集群(High Availability Cluster)

  • 科学计算集群(High Performance Computing Cluster)

1.3、负载均衡技术类型

四层负载均衡器: 也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;

七层负载均衡器 :也称为 7 层交换机,位于 OSI 的最高层,即应用层,此负载均衡器支持多种协议,如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容,配合一定的负载均衡算法来选择后端服务器,即“内容交换器”。如常见的 HAProxy、Nginx。

1.4、负载均衡实现方式

硬件负载均衡产品:F5 、深信服 、Radware

软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)

2、LVS介绍

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。

3、LVS和nginx区别

  • LVS比nginx具有更强的抗负载能力,性能更高,对内存和cpu资源消耗低。

  • LVS工作在网络层,具体流量由操作系统内核进行处理,nginx工作在应用层,可针对http应用实施一些分流策略。

  • LVS安装配置比较复杂点,网络依赖性较大,稳定性高,lvs不支持正则表达式,不能实现动静分离操作。

  • LVS使用的协议范围广, Nginx 仅支持 HTTP、HTTPS、Email 协议,适用范围小。

4、LVS相关术语

  • DS:Director Server。指的是前端负载均衡器节点。

  • RS:Real Server。后端真实的工作服务器。

  • VIP:Virtual IP 向外部直接面向用户请求,作为用户请求的目标的IP地址。

  • DIP:Director Server IP,主要用于和内部主机通讯的IP地址。

  • RIP:Real Server IP,后端服务器的IP地址。

  • CIP:Client IP,访问客户端的IP地址。

5、LVS负载均衡算法

5.1、静态负载均衡

rr(round robin,轮询 )

轮询是最简单的负载均衡方法,按照预定的顺序,轮流将请求分配给后端服务器。

wrr(weight round robin,加权轮询)

类似于轮询,但是每个后端服务器可以设置一个权重,表示其处理能力。权重高的服务器将接收更多的请求。

sh(source hashing,源地址散列算法(HASH))

根据请求的源IP地址,通过散列函数计算出一个槽位,将请求分发到对应的服务器。

dh(destination hashing,目标地址 HASH)

与源地址散列算法相反,是根据请求的目标IP地址来进行散列分发的。

5.2、动态负载均衡

lc(leash-connection,最少连接 )

简单算法:active * 256 + inactive (谁的小选谁)

哪个服务器当前的活跃连接数最少,就将新的请求分配给它。

wlc(加权最少连接)

简单算法:(active * 256 + inactive) / weight(谁的小选谁)

谁的结果最小,就分配给谁。

二、三种LVS工作模式详解

1、基于NAT的LVS模式负载均衡

1.1、工作原理

  • 当用户的请求到达调度器时,请求报文会先到内核空间的PREROUTING链上。此时报文的源IP为CIP,目标IP为VIP

  • PREROUTING检查发现数据包的目标IP是本机,就将数据包送至INPUT链。

  • IPVS工作在INPUT链上,当数据包抵达INPUT链后,IPVS会检查数据包所请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器RIP,然后将数据包送往 POSTROUTING链。此时报文的源IP为CIP,目标IP为RIP。

  • POSTROUTING链通过选路,将数据包转发给Real Server

  • Real Server对比发现目标IP是自己,就会接受这个请求报文,开始构建响应报文发回给调度器。源IP为RIP,目标IP为CIP

  • 调度器在响应客户端前,会将报文的源IP地址修改为自己的VIP,然后响应给客户端。此时报文的源IP为VIP,目标IP为CIP

1.2、LVS-NAT模型的特性

  • RS应该使用私有地址,RS的网关必须指向DIP

  • DIP和RIP必须要在同一网段中

  • 请求报文和响应报文都需要经过调度器,高负载场景中,调度器容易成为性能瓶颈。

  • 支持端口映射

  • RS可以使用任意操作系统

1.3、NAT的优点

集群中的物理服务器可以使用任何支持TCP/IP操作系统它只需要一个 IP 地址配置在调度器上,服务器组可以用私有的 IP 地址。

1.4、NAT的缺点

伸缩能力有限,当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢。

2、基于TUN的LVS负载均衡

2.1、实现原理

  • 在原有的ip报文外在封装多一层的ip首部,内部ip首部(原地址为cip,目标ip为vip),外层ip首部原地址为dip,.目标地址为rip

  • 客户端发送数据包经过网络后到 LVS 网卡,数据包源 IP 为 CIP,目的 IP 为 VIP。

  • 进入 PREROUTING 链后,会根据目的 IP 去查找路由,确定是否为本机 IP,数据包将转发至 INPUT 链中,到 LVS,源 IP 和 目的 IP 不变。

  • 到 LVS 后,通过目的 IP 和目的 PORT 查找是否为 IPVS 服务,如是 IPVS 服务,将会选择一个 RS 后端服务器, 源 IP 为 DIP,目标 IP 为 RIP,数据包将会转发至 OUTPUT 链中。

  • 数据包根据路由信息到达 LVS 网卡,发送至路由器网关,最终到达后端服务器。

  • 后端服务器收到数据包后,会拆掉最外层的 IP 地址后,会发现还有一层 IP 首部,源 IP 为 CIP,目的 IP 为 VIP,TUNL0 上配置 VIP,查找路由后判断为本机 IP 地址,将会发给用户空间层的应用程序响应后 VIP 为源 IP,CIP 为目的 IP 数据包发送至网卡,最终返回至客户端用户。

2.2、TUN 模式的优点

  • 单臂模式,LVS 负载压力小。

  • 数据包修改小,信息完整性高。

  • 可跨机房。

2.3、TUN 模式的缺点

  • 不支持端口映射。

  • 需在 RS 后端服务器安装模块(ipip)及配置 VIP。

  • 隧道头部 IP 地址固定,RS 后端服务器网卡可能会不均匀。

  • 隧道头部的加入可能会导致分片,最终会影响服务器性能。

3、LVS(DR)负载均衡

直接路由:Direct Routing,简称 DR 模式,采用半开放式的网络结构,与 TUN 模式的结构类似,但各节点并不是分散在各个地方,而是与调度器位于同一个物理网络,负载调度器与各节点服务器通过本地网络连接,不需要建立专用的 IP 隧道。它是最常用的工作模式,因为它的功能性强大。

3.1、DR 实现原理

  • 当客户端用户发送请求给 www.baidu.com 网站时,首先经过 DNS 解析到 IP 后并向百度服务器发送请求,数据包经过网络到百度 LVS 负载均衡服务器。

  • 这时到达 LVS 网卡时的数据包包括:源 IP 地址(客户端地址)、目的 IP 地址(百度对外服务器 IP 地址,也就是 VIP)、源 MAC 地址(CMAC / LVS 连接路由器的 MAC 地址)、目标 MAC 地址(VMAC / VIP 对应的 MAC 地址)。

  • 数据包到达网卡后,经过链路层到达 PREROUTING 链,进行查找路由,发现目的 IP 是 LVS 的 VIP,这时就会发送至 INPUT 链中并且数据包的 IP 地址、MAC 地址、Port 都未经过修改。

  • 数据包到达 INPUT 链中,LVS 会根据目的 IP 和 Port(端口)确认是否为 LVS 定义的服务。

  • 如是定义过的 VIP 服务,会根据配置的服务信息,从 RealServer 中选择一个后端服务器 RS1,然后 RS1 作为目标出方向的路由,确定下一跳信息及数据包通过具体的哪个网卡发出,最好将数据包通过 INET_HOOK 到 OUTPUT 链中。

  • 数据包通过 POSTROUTING 链后,目的 MAC 地址将会修改为 RealServer 服务器 MAC 地址(RMAC)源 MAC 地址修改为 LVS 与 RS 同网段的 IP 地址的 MAC 地址(DMAC)此时,数据包将会发至 RealServer 服务器。

  • 数据包到达 RealServer 服务器后,发现请求报文的 MAC 地址是自己的网卡 MAC 地址,将会接受此报文,待处理完成之后,将响应报文通过 lo 接口传送给 eth0 网卡然后向外发出。

  • 此时的源 IP 地址为 VIP,目标 IP 为 CIP,源 MAC 地址为 RS1 的 RMAC,目的 MAC 地址为下一跳路由器的 MAC 地址(CMAC),最终数据包通过 RS 相连的路由器转发给客户端。

3.2、DR 模式的优点

  • 响应数据不经过 LVS,性能高。

  • 对数据包修改小,信息完整性好。

3.3、DR 模式的缺点

  • LVS 与 RS 必须在同一个物理网络。

  • RS 上必须配置 lo 和其他内核参数。

  • 不支持端口映射。

3.4、DR 模式的使用场景

对性能要求高的,可首选 DR 模式,还可透传客户端源 IP 地址。

三、IPVS模块概述

IPVS是LVS的关键,因为LVS的IP负载平衡技术就是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件

1、常见选项

选项作用
-A添加虚拟服务节点
-D删除虚拟服务节点
-L查看虚拟服务节点列表
-n以数字形式显示查看内容
-a添加真实服务节点
-d删除真实服务节点
-l查看真实服务节点列表
-t指定虚拟服务器IP地址
-s指定调度算法
-r指定真实服务器节点IP地址
-w指定权重值
-g直接路由模式(默认)
-mNAT模式
-i隧道模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值