【读书笔记】全局负载均衡工作原理及实现

[TOC]

《CDN技术详解》读书笔记

图片.png

全局负载均衡工作原理及实现

1. 全局负载均衡在 CDN 系统中的作用

  • CDN 系统总是希望使用距离用户最近的设备为用户提供服务,这样就需要在全网不同位置部署多个节点。CDN 全局负载均衡系统GSLB就是为了解决节点之间相互协同的问题,实现整个系统的大规模服务能力和高可用性。
  • GSLB 主要是在多个节点之间进行均衡,其结果可能直接终结负载均衡的过程,也可能将用户访问交付给下一层次的负载均衡系统
  • 在区域或者本地的负载均衡系统中,每个服务节点只掌握本节点内服务设备的信息,而在 GSLB 系统中,需要掌握所有节点中的信息

2. 基于DNS解析的GSLB实现机制

首先明白什么是DNS解析:

DNS 记录类型及报文格式:

  1. A 记录, Address。描述了域名到IP地址的映射关系,对于同一个域名,可以存在多条映射记录
  2. NS 记录 Name Server。域名服务器记录,用于指定域名由哪个DNS服务器来进行解析的。
  3. SOA 记录 Start Of Authority。记录指定该区域的权威域名服务器。
  4. CNAME。记录别名于域名的对应关系,这种记录允许将多个名字映射到同一台计算机上
  5. PTR 记录, Point Record。记录用于描述 IP 地址到域名的映射关系。

基于 DNS 解析实现 GSLB的几种方法:

基于 DNS 解析的 GSLB 方案实际上是把负载均衡设备部署在 DNS 系统中。在用户发出请求时,先通过 DNS 系统来请求获得服务器的 IP 地址,基于 DNS 的 GSLB 正是在返回 DNS 结果的过程中进行智能决策,给用户返回合适的IP 地址

1. 通过CNAME方式实现负载均衡

  • CNAME 描述了一个域名或主机名的别名,域名服务器获取到 CNAME 记录后,会用记录中的别名来替换查找的域名或者主机名。
  • 实现上利用了 DNS 本身的别名机制和轮训机制。
  • 先将 GSLB 主机名定义为所查询域名的权威 DNS服务器的别名,然后在 GSLB 主机名添加多条 A 记录,分别对应多个服务器的 IP 地址。这样,本地 DNS 服务器会向客户端返回多个IP地址作为查询结果,并且这些IP地址的排列顺序是轮换的

2. 负载均衡器作为权威 DNS 服务器

  • 负载均衡器作为权威 DNS 服务器,这样 GSLB 会接收到所有对这个域的 DNS 请求,从而能够根据预设的一些策略来进行智能 DNS 解析。
  • 所有的请求通过 GSLB ,对于DNS 解析能力会造成或多或少的影响。

3. 负载均衡器作为代理 DNS服务器

  • 这种情况下,负载均衡器也是注册为一个域名空间的权威 DNS 服务器而真正的权威域名服务器则部署在负载均衡器后面。所有的请求会先到达负载均衡器,由负载均衡器转发给真正的权威 DNS 服务器,然后修改权威DNS服务器返回的响应信息,从而达到负载均衡。

负载均衡的策略判断条件

  1. 服务器的“健康状况”。健康检查,未通过的不能作为域名解析结果
  2. 地理区域距离。由于 DNS 系统本身的工作原理所限,GSLB 只能看到用户本地 DNS 服务器的 IP 地址,看不到用户终端的IP位置
  3. 会话保持。需要保证同一用户访问被调度到同一台服务器上。
  4. 响应时间。通过测量服务器对于响应的时间,优化 GSLB 的策略
  5. IP 地址权重。权重值决定了某个 IP 与其他候选 IP 相比分配到的流量比例。
  6. 会话能力阀值。 GSLB 控制器可以获取每个服务器当前可用的会话数和会话表大小的最大值,达到阀值的服务器,将不会被选择
  7. 往返时间 RTT Rount-Trip Time。
  8. 其他信息,包括服务器当前可用会话数、最小选择次数、轮训等

3. 基于DNS的GSLB 应用部署方式

  • 域组 Domain Group:根据别名设置,用户根据别名选择提供服务的服务池与具体的虚拟服务器。
  • 服务池 Pool:提供同种业务的多个虚拟服务器的逻辑组概念。
  • 虚拟服务器 Virtual Server:用户访问网站时,直接提供服务的虚拟设备,其 IP 地址就是 GSLB 最终解析返回的地址。
  • 区域 Region:用户的本地 DNS 所代表的地址范围,用户可以通过在浏览器中设置本地 DNS 地址来定义所在区域。
  • 策略:GSLB 的路由控制策略。

负载均衡策略:

均衡策略:

  • 静态策略

    1. 基于特定的用户源 IP 地址。特定的 IP 地址端定向到特定的 POP 节点。
    2. 基于加权的 IP 地址。
    3. 基于加权的 POP节点。POP 节点对应的级别是虚拟服务器。
    4. 基于地理位置。
    5. 基于POP 节点管理优先级。
    6. 基于简单轮训。
  • 动态策略
    1. 基于 POP 节点的健康状况。
    2. 基于相对会话能力。GSLB会周期性的计算当前会话数和最大会话数的比值,然后与最大阀值进行比较。超过阀值,该节点不是选择的最佳节点。
    3. 基于绝对会话能力。不计算相对会话的比值,而是直接使用当前会话数与最大阀值做比较。
    4. 基于物理服务器绑定。
    5. 基于主动测量的用户访问往返时间 RTT。
    6. 基于被动测量的用户访问往返时间。
    7. 基于新建连接数
    8. 基于流量。根据POP节点或者虚拟服务器每秒完成多少比特数据的吞吐。
    9. 基于POP节点访问次数

4. 基于应用层协议重定向的 GSLB

工作流程:

  1. 用户首先向网站的本地 DNS 请求域名解析。
  2. 由于网站事先进行了域名 CNAME 指向 CDN 的GSLB 域名和 IP 所以本地DNS会向用户返回 GSLB 设备的 IP 地址。
  3. 用户向中动态 GSLB 设备发送 HTTP GET 请求,请求该网站的某个资源。
  4. GSLB设备根据综合分析用户IP、内容分布、设备负载、链路状况等实时信息,为用户选择一个合适的服务单元。
  5. 用户根据得到的IP 地址向 CDN 节点发送媒体访问请求。
  6. 如果这个IP地址仍然·是一个负载均衡设备,该设备会选择一个具体的设备,返回给用户。
  7. 用户根据得到的 IP 地址,再次发送请求。

5. 基于 IP 路由的 GSLB

  1. 先为两个本地负载均衡器配置一个相同的 VIP 地址,对 IP 网上的路由器来说,这是到达同一IP地址的两条不同的路由。
  2. 终端发送请求时,当经过路由器,会根据路由表来选择走哪条路径,转发数据包到本地负载均衡器上。
(0)

相关推荐