应用交换技术的负载均衡算法

应用交换技术的负载均衡算法
 
应用交换技术里主要包括四项关键的技术:
 
l  截获和检查流量
l  服务器监控健康检查
l  负载均衡算法
l  会话保持
截获和检查流量保证只有合适的数据包才能通过;
服务器监控和健康检查随时了解服务器群的可用性状态
负载均衡和应用交换功能通过各种策略导向到合适的服务器
会话的保持以实现与应用系统完美结合;
 
F5 在应用交换技术中的优势:
 
A 截获和检查流量
�C  BIG-IP 有最强的数据包截获和检查引擎去检查任何数据流量包中的任何部分,可以检测 16384bytes 包的深度, 理论上可以检测 64Kbytes 的包长度
�C  这使得 BIG-IP 明显有别于其他的厂商的产品
B 用于定制控制的 iRules 工具
�C  可用来定义如何根据报头和 / TCP 有效负载信息来引导、保存和过滤流量。
�C  iRules 增强了企业或服务提供商定根据业务需求定制应用流量的能力。
�C  通用检查引擎和 iRules 分别是应用智能和业务决策来进行应用流量管理的方法和工具。
C 服务器监控和健康检查
�C  服务器 (Node)-Ping(ICMP)
�C  服务 (Port)-Connect
�C  扩展的应用验证 (EAV)
�C  扩展的内容验证 (ECV)
�C  针对 VOD 服务器的专用健康检查机制
�C  针对节点的检查频率和超时频度 ,e.g.10seconds 响应 ,e.g.5seconds
D 负载均衡和应用交换功能
�C  Global Load Balancer 提供 17 种负载均衡算法
�C  F5 提供最优质的负载均衡和应用交换功能
静态算法
动态算法
智能算法
I �C control
UIE + Irules
�C  Local Load Balancer 提供 12 种负载均衡算法
E 持续功能
�C  连续性与负载平衡是相互对立的,但它对于负载平衡又是必不可少的 !
�C  简单的连续性 基于源地址
�C  HTTP Cookie 连续性
�C  SSL Session ID 连续性
�C  目的地址的亲合作用 --caches
�C  standby BIG-IP 实现对连续性记录的镜像
�C  智能与第七层的内容交换组合
 
F5 做为应用交换领域的领导厂商,一直保持着技术上的领先地位, F5 已经有 40 多项技术申请了专利, 其它的竞争合作伙伴都在购买 F5 的这些专利技术。接下来我们讨论一下负载均衡算法。
 
负载均衡算法,做为应用交换的四个主要技术之一,它相对其它三个技术来说,更为重要些,在应用交换领域里,主要的技术是负载均衡的算法,完整的、完善的、可控的、灵活的负载均衡算法无疑决定着负载均衡厂商在应用交换领域的地位。负载均衡算法是非常重要的功能指标。一般来说,我们将负载均衡方法归纳为两种类型:静态的负载均衡算法,动态负载均衡算法。
 
本地流量管理技术主要有一下几种负责均衡算法:
 
静态负载均衡算法包括:轮询,比率,优先权
动态负载均衡算法包括: 最少连接数,最快响应速度,观察方法,预测法,动态性能分配,动态服务器补充,服务质量,服务类型,规则模式。
   
静态负载均衡算法
 
・轮询(Round Robin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。
Clients
Router
BIG-IP Controller
Servers
客户请求被均匀的分发
1
2
3
4
5
6
7
8
Internet
・比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。
1
2
3
4
5
6
7
8
Internet
根据管理员设置的比率客户请求以3:1:1:1的比率分发
Clients
Router
BIG-IP Controller
Servers
9
10
11
12
・优先权(Priority):给所有服务器分组,给每个组定义优先权,BIG-IP 用户的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中所有服务器出现故障,BIG-IP 才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。
管理员定义一组优先权高的服务器优先使用直到这组服务器全部出现故障则再换另外一组优先权低的服务器
Clients
Router
Servers
1
3
5
2
4
6
Internet
Priority 1
Priority 2
Minimum Active Members = 2
动态负载均衡算法
 
・最少的连接方式(Least Connection):传递新的连接给那些进行最少连接处理的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。
Clients
Router
BIG-IP Controller
Servers
1
2
Internet
新的请求将被转发到当前连接数最少的服务器
462
460
455
465
Current Connections
・最快模式(Fastest):传递连接给那些响应最快的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。
Clients
Router
BIG-IP Controller
Servers
新的请求将被转发到当前响应时间最快的服务器
101
102
Internet
14 ms
15 ms
20 ms
11 ms
Current Response Times
・观察模式(Observed):连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。
Clients
Router
BIG-IP Controller
Servers
新的请求将被转发到当前连接数和响应时间综合效果最好的服务器
1
2
Internet
・预测模式(Predictive):BIG-IP利用收集到的服务器当前的性能指标,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器相应用户的请求。(BIG-IP 进行检测)
Clients
Router
BIG-IP Controller
Servers
1
2
Internet
新的请求将被转发到将来连接数和响应时间综合效果最好的服务器
・动态性能分配(Dynamic Ratio-APM):BIG-IP 收集到的应用程序和应用服务器的各项性能参数,动态调整流量分配。
・动态服务器补充(Dynamic Server Act.):当主服务器群中因故障导致数量减少时,动态地将备份服务器补充至主服务器群。
・服务质量(QoS:按不同的优先级对数据流进行分配。
・服务类型(ToS): 按不同的服务类型(在Type of Field中标识)对数据流进行分配。
・规则模式:针对不同的数据流设置导向规则,用户可自行。
 
对应本地的应用交换,大家可以通过对上述负载均衡算法的理解, 结合实际的需求来采用合适你的负载均衡算法,我们常用到的一般是最少连接数、最快反应、或者轮询,决定选用那种算法, 主要还是要结合实际的需求。
 
 
全局流量管理技术主要有以下几种负载均衡算法:
 
静态负载均衡算法包括:TOPOLOGY
动态负载均衡算法包括:RTT
 
以上的算法是我们常用到的算法,其它的算法这里就不做阐述了。
 
Topology 原理、性能
 
SCDN的服务中, 为了加快用户访问的回应速度, 一般利用电信的资源, 通过收集各省级ip网段划分, 通过用户访问的省级ip网段定位, 直接决定用户的最优服务省级骨干边缘节点, f5 networks的技术中就是topology的处理, 具体界面如下:
 
3DNS 在配置的时候预先根据访问规则, 定义不同的ip网段或省级用户分类访问相应的data center pool.
 
3DNS接到访问的解析请求时, 通过对topology的比对, 判断应该回应的data center pool 地址.
 
Topology 在不同的CDN 环境中得到了很多应用, 在功能, 稳定性和性能上都有非常优异的表现
 
SCDN的模型中有一个非常特别的性能问题, 就是GSLB产品在添加多条规则后的性能下降问题; 压力测试的试验表明, 300条规则和3000条规则的不同情况下, 每秒解析的次数的性能下降有10倍以上, 特别时在实际应用当中, 可能存在更多的规则, 那性能的下降就非常难以预料了, 因此引入的user define regions 技术可以极大的缓解性能压力.
 
使用的方法就是将多个ip 网段规定成user define regions, 然后的规则不是针对ip 网段, 而是针对不同的regions, 在实际使用中针对3000条规则的性能上升可以达到15~20倍左右.
 
RTT 原理
 
RTT 的全称是round trip time , 就是指由各省级骨干边缘节点到各省local DNS的访问发起到接受回应的时间, 不同的各省local DNSRTT时间的收集对比, 可以产生实际的网络就近性对比表格,
 
 
 
 
 
 
 
 
 
 
具体访问流程:
1.   local DNS 3DNS发起解析请求
2.   3DNS 接收到local DNS的请求后, 通过加密通道通知省级骨干边缘节点内的bigip 有一个local DNS需要进行RTT的测试
3.   省级骨干边缘节点内的bigip接到RTT测试请求, 并向local DNS发起访问
4.   local DNS 回应bigip 的访问请求
5.   省级骨干边缘节点内的bigiplocal DNS的回应的延迟时间等相关信息返回给3DNS
6.   3DNS 经过接受各省级骨干边缘节点内的bigip的回应, 存储并判断后将最优的地址返回给local DNS
 
省级骨干边缘节点内的bigip可以选择多种测试方法判断对local DNSRTT时间, 包括:
DNS_Dot: local DNS发起一个包含”.”的测试, 也就是root, 希望得到一个root列表清单
DNS_REV: local DNS发起”PTR”的测试, 希望得到相应的domain 名称
UDP: 发起一个UDP的包, 看是否回应
TCP: 发起一个TCP的包看是否回应
ICMP: 发起一个ICMP ping , 看是否回应
 
 
 
针对一个local DNS RTT结果:
ldns {
   address          202.103.6.46
   cur_target_state 285241347
   ttl              2419200
   probe_protocol   dns_rev
   path {
      datacenter          "zjm"
      cur_rtt             419814
      cur_hops            0
      cur_completion_rate 10000
      cur_last_hops       0
   }
   path {
      datacenter          " changsha "
      cur_rtt             15175
      cur_hops            0
      cur_completion_rate 10000
      cur_last_hops       0
   }
   path {
      datacenter          "xian"
      cur_rtt             53816
      cur_hops            0
      cur_completion_rate 10000
      cur_last_hops       0
   }
}
 
如果你有不通的出口时, 这项记录就会有相应的数值,假设你有三条出口链路, 那么对应每个本地的DNS就会有三条记录,RTT 会把延时最短的一个解析给本地的DNS,这样本地的用户就能得到一个相对他/她最快的站点,从而实现了服务的持续、稳定、可靠、可用。

你可能感兴趣的:(算法,负载均衡,技术,休闲,交换)