负载均衡实现原理
调度算法:源地址散列(Source Hashing)
2 1 4
Internet
5 1 4 3 6
2
5 3 6
源地址散列算法实现:
根据新连接的源IP地址进行散列(HASH)的结果来决定将该新连接发文哪个实服
务器。 一般来说,来自相同客户端的新连接会被散列到相同的实服务器。
负载均衡产品中的关键指标:健康性检 查算法
解决方法——Load Balance(1)
解决方案:服务器负载均衡
Internet
多台服务器组成一个群组,它们通过网络设备相连接。这些服务器提 供相同或相似的网络服务。服务器群组前布局一个负载均衡设备,负责根据 已配置均衡策略将用户请求在服务器群组中的分发,为用户提供服务,并对 服务器可用性的维护。
加权最少连接算法实现:
将加权与最少连接算法配合,根据连接数与加权比例后计算出当前新连接应该发往 哪个服务器。
调度算法:随机(Random)
5 1 4
Internet
2 1
2
5 3 6
4 6
3
随机算法实现:
将新连接随机分发给具体的实服务器。
加权随机算法实现:
将加权与随机算法配合,根据随机数与加权比例后计算出当前新连接应该发往哪个 服务器。
实服务选择流程
前提:命中虚服务
First step 持续性
Second step
调度算法
• 一次业务交互可能包括多个连接,有些存在隐含的关联关系,将多个 连接持续重定向到同一个服务器的策略,就是成一次业务应用,但所有该业务的请 求应发给同一服务器, 否则可能造成无法完成所请求的功能,可采用 基于源地址的持续性功能完成。
Application
192.168.1.11
Application
192.168.1.12
调度算法
根据配置规则,将客户端请求智能地分发到后端应用服务器
健康性检查算法
实时监控服务器运行状态
负载均衡产品中的关键指标:调度 目前常用的调度算法:算法
轮询(Round Robin)
加权轮询(Weighted Round Robin)
Server Farms
Application
192.168.1.10
Client IP: 4.3.2.1
Load Blance to Client: Source IP = VIP - 6.6.6.100 Destination = 4.3.2.1
Load Balancer
Server to Client:: Source IP = 192.168.1.10 Destination = 4.3.2.1 VIP: 6.6.6.100
Load Blance培训胶片
课程目标
学习完本课程,您应该能够:
Load Blance的基本原理
Load Blance服务器负载均衡原理 Load Blance典型组网
目录
负载均衡基本原理 Load Blance服务器负载均衡原理 Load Blance典型组网及应用
为什么需要负载均衡 ?
服务器型负载均衡转发方式
服务器负载均衡是数据中心最常见的组网模型。依据转发方式,分为NAT方 式、DR方式。
•
NAT方式(Network Address Translation ):利用NAT 技术将Clinet 请求报文目的地址转换为真实服务器地址,发给真实服务器,并将 Server应答报文源地址转换为虚服务IP地址,发给客户端;
相对均衡的情况。
调度算法:加权轮询(Weighted Round Robin)
1 1 4
Internet
2 3 5 6
4
2
5 3 6
加权轮询算法实现:
根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权
值数的服务请求。假设3台服务器加权分别为2:5:3,这样6条流过来,第1台服务器分 担1条流,第2台服务器分担3条流,第3台服务器分担2条流。 加权轮询算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载
调度算法:轮询(Round Robin)
1 1 4
Internet
4 2 5 3 6
2
5 3 6
轮询算法实现:
新的连接被依次轮询分发到各个实服务器上,比如第1个连接分发到第1台服务器, 第2个连接就被分配到第2台服务器上,依次轮询。
轮询算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求
防火墙方式工作流程
Cluster Firewall A
Host A
LB Device A
LB Device B
Host B
IP network
IP network
Firewall B
实现原理:
防火墙是基于会话开展业务的,即一个会话的请求和应答报文必须通过同 一个防火墙。为了既能保证防火墙业务正常进行,内部组网不受影响,需要采用双 侧防火墙,即防火墙三明治。在这种组网环境中,对于流入流量,外侧Load Blance 设备做防火墙负载均衡,内侧Load Blance设备保证从哪个防火墙进来的流量,还要 从这个防火墙返回。流出流量正好相反。
– 从宏观角度,由于各核分发均衡总体效果是均衡的。微观角度,并不能保 证每一个时刻各个服务器上的连接数都是均衡的,会有一个偏差,偏差最 大值:多核中用于转发的Core数,当前系统为27。
TIP:Load Blance设备即解决业务访问量压力过大的问题。故应以大量连 接情况下的均衡 效果作为评判标准。
–如果虚服务未配置协议任意/端口任意,则Ping回应由 Load Blance应答。(命中虚地址,未命中虚服务)
应用背景
访问流量快速增长 业务量不断提高
Internet Server Too Busy
用户需求
希望获得7×24的不 间断可用性及较快的 系统反应时间
Server Too Busy
应用背景 访问流量快速增长 业务量不断提高
Internet
Client
Link Too Busy
用户需求 希望获得7×24的不 间断可用性及较快的 系统反应时间
1.虚服务:负载均衡设备对外提供
的服务称为虚服务。虚服务由VPN实 例、虚拟服务IP地址、服务协议、服 务端口号唯一标识,配置在负载均衡 设备上。客户访问请求通过公共或私 有网络到达负载均衡设备,匹配到虚 服务后,由负载均衡设备按照既定策 略分发给真实服务。
虚服务a a 实服务组 实服务a 实服务b 实服务c 实服务d 虚服务b
其他算法也均建议如此察看测试效果。
注意事项——地址散列算法(1)
• 算法思想 – 通过一个散列(Hash)函数将来自同一个源IP的请求映射到一台服 务器。 • 适用场景: – 需要保证来自同一个用户的请求分发到同一个服务器情况下。 实现:
实服务组中的实服务存放在一个散列表(这个散列表是一 个数组)中。存在一 个散列函数y=f(x),x为散列键,f为散列函数, y是得出的散列表中的某个位置。当一个请求到达并选择实服务的时候, 将请求报文的源IP作为散列键得出一个散列表中的位置标号,从而找 到要调度的实服务。
解决方法——Load Balance(2)
解决方案:链路负载均衡
China Tet Internet CNC
•通过带宽或就近性等算法,在多条链路中进行负载均衡,选择最优的链路, 提高访问速度。
负载均衡基本原理
Clients
Client’s Request: Source IP = 4.3.2.1 Destination = VIP - 6.6.6.100 Load Blance to Server: Source IP = 4.3.2.1 Destination = 192.168.1.10
Ping(ICMP) TCP HTTP FTP
FTP GET FTP GET HTTP GET
HTTP GET
DNS(inbound 链路负载均衡)
目录
负载均衡基本原理 Load Blance服务器负载均衡原理
Load Blance典型组网及应用
服务器负载均衡基本原理——基本概念
地址范围1 地址范围2 地址范围3
实服务1
实服务2
实服务3
实服务2故障
实服务2恢复
地址范围1
地址范围2-a 地址范围2-b
地址范围3
实服务1
空位
实服务3
注意事项——虚地址 Ping
• 为什么要Ping虚地址?调试手段
• 对Nat, DR, 防火墙模式:
–如果虚服务配置协议任意/端口任意,则Ping回应由实服 务应答。(命中虚服务)
实现原理:
客户端将请求发送给服务器群前端的负载均衡设备,负载均衡设备上的虚服务接收 客户端请求,通过调度算法,选择真实服务器,再通过网络地址转换,用真实服务器地址 重写请求报文的目标地址后,将请求发送给选定的真实服务器;真实服务器的响应报文通 过负载均衡设备时,报文的源地址被还原为虚服务的VSIP,再返回给客户,完成整个负载 调度过程。
注意事项——轮转算法 • 注意:少量连接效果不均衡,大量连接效果均衡!
• 原因:
1. 2. Load Blance设备是多核CPU,算法设计实现也基于该基础。 多核中的实现:
– 为了避免多核中同时对一个资源实体进行调度出现资源竞争问题,算法处 理过程中将多核看作多个设备,每个核独立运行算法,独立保存算法所需 上下文环境。
过重。
调度算法:最少连接(Least Connections)
1 4 4
Internet
1