• CDN技术之--全局负载均衡(GSLB)


    负载均衡就是智能调度
    全局负载均衡(GSLB)的负载均衡主要是在多个节点之间进行均衡,其结果可能直接终结负载均衡过程,
    也可能将用户访问交付下一层次的(区域或本地)负载均衡系统进行处理。
    GSLB最通用的是基于DNS解析方式,还有HTTP重定向、IP路由等方法

    DNS就是IP地址和网址互换
    当需要访问abc.com这个站点时,
    实际上我们想要浏览的网页内容都存放在互联网中对应某个IP的服务器上,
    而浏览器的任务就是找到我们想要访问的这台服务器的IP地址,然后向它请求内容。

    本地DNS服务器(local DNS server)是用户所在局域网或ISP网络中的域名服务器。
    当客户端在浏览器里请求abc.com时,浏览器会首先向本地DNS服务器请求将 abc.com解析成IP地址,
    本地DNS服务器再向整个DNS系统查询,直到找到解析结果。
    客户端可以配置DNS服务器或通过DHCP来分配
    DNS给使用它的互联网应用带来额外的时延,有时时延还比较大,为了解决问题,需要引入“缓存”机制。
    缓存是指DNS查询结果在主机(local DNS server)中缓存。
    在区内主机对某个域名发起第一次查询请求时,
    负责处理递归查询的DNS服务器要发送好几次查询(先查.root,再查.com之 类,再定位IP地址等)才能找到结果,
    不过在这过程中它也得到了许多信息,
    比如各区域权威DNS服务器(就是告诉你最终abc.com在哪里的DNS服务 器)和它们的地址、域名解析最终结果。
    他会把这些信息保存起来,当其他主机向它发起查询请求时,它就直接向主机返回缓存中能够找到的结果,直到数据过期。


    客户端浏览器也可以缓存DNS响应信息。
    Internet类资源记录分为
    –A记录(address):域名->多个IP的映射。对同一个域名,可以有多条A记录
    –NS记录(name server):指定由哪台DNS服务器来解析
    –SOA记录(start of authority):指定该区域的权威域名服务器
    –CNAME记录(canonical name):多个域名->服务器的映射
    –PTR记录(pointer record):IP->域名的映射

    DNS系统本身是具备简单负载分配能力的,这是基于DNS的轮询机制。
    如果有多台Web服务器(多源)同时为站点 abc.com提供服务,abc.com的权威服务器可能会解析出一个或多个IP地址。
    权威域名服务器还可以调整响应中IP地址的排列方式,即在每次响应中将不同的IP地址置于首位(取决于可服务能力和服务质量),
    通过这种方式实现对这些Web服务器的负载均衡通过CNAME方式实现负载均衡:域名服务器获得CNAME记录后,
    就会用记录中的别名来替换查找的域名或主机名(实现多个域名->服务器映射)。
    后面会查询这个别名的A记录来获取相应的IP地址。

    具体操作为:先将GSLB的主机名定义为所查询域名的权威DNS服务器的别名,
    然后将GSLB主机名添加多条A记录,分别对应多个服务器的IP地址。
    这样,本地DNS服务器会向客户端返回多个IP地址作为域名的查询结果,并且这些IP地址的排列顺序是轮换的。
    客户端一般会选择首个IP地址进行访问。

    负载均衡器作为权威DNS服务器:负载均衡器就会接收所有对这个域名的DNS请求,
    从而能够根据预先设置的一些策略来提供对域名的智能DNS解析。
    F5的DNS具有完整的DNS功能以及增强的GSLB特性,Foundry、Nortel、Cisco和Radware的产品 能实现部分DNS功能。

    负载均衡作为代理DNS服务器:负载均衡器被注册为一个域名空间的权威DNS服务器,
    而真正的权威域名服务器则部署在负载均衡器后面。
    所有的DNS请求都会先到达负载均衡器,由负载均衡器转发到真正的权威DNS服务器,然后修改权威DNS服务器返回的响应信息。
    真正的权威DNS服务器正常响应浏览器的DNS请求,返回域名解析结果列表,
    这个响应会先发送到负载均衡器,而负载均衡器会根据自己的策略选择一个性能最好的服务器 IP并修改需要实现GSLB的域名的DNS查询响应,
    对其他请求透明转发,这样就不会影响整个域名空间的解析性能。

    在基于DNS方式下无论采用何种工作方式,都会有一些请求不会到达GSLB,这是DNS系统本身的缓存机制在起作用。
    当用户请求的域名在本地DNS或本机(客户端浏览器)得到了解析结果,这些请求就不会达到GSLB。
    Cache更新时间越短,用户请求达到GSLB的几率越大。由于DNS的缓存机制屏蔽掉相当一部分用户请求,从而大大减 轻了GSLB处理压力,使得系统抗流量冲击能力显著提升,这也是很多商业CDN选择DNS机制做全局负载均衡的原因之一。
    但弊端在于,如果在DNS缓存刷新间隔之内系统发生影响用户服务的变化,
    比如某个节点故障,某个链路拥塞等,用户依然会被调度到故障部位去。

    智能DNS功能,它在向本地DNS返回应答之前会先根据一些静态或动态策略进行智能计算。
    – 服务器的“健康状况”
    – 地理区域距离
    – 会话保持
    – 响应时间
    – IP地址权重
    – 会话能力阈值
    – 往返时间(TTL)
    – 其他信息,包括服务器当前可用会话数、最少选择次数、轮询等

    关于GSLB的部署问题

    关于内容的缓存问题(如何智能调度最有效)和配置

    在有些CDN中(用于视频网站加速的情况较多),网站需要加速的内容全部先缓存在OCS(内容中心),
    然后再将一部分 (通常是热门的内容)分发到个POP节点(Cache边缘集群),
    所以POP节点在某些时候会出现本地不命中而需要回OCS取内容或者从其他POP节点取内容的情况

    纯粹基于DNS方式的GSLB只能完成就近性判断。
    为实现智能调度,大多数解决方案需要在GSLB设备附近以旁路的方式部署一台辅助设备(为方便描述,我们可称之为GRM——全局资源管理设备),
    用以实现和各POP节点的本地资源管理设备进行通信,完成CDN对各POP节点的状态检查,
    并根据POP节点的状态和流量情况,重新制订用户调度策略,将策略实时发送到GSLB中去执行

    因为DNS服务采用以UDP为基础的、默认无连接的访问方式,给分布式攻击(DDoS)带来了更大的便利。
    (有DNSSEC可以提供某程度的DDoS攻击保护)
    隐藏节点的存在很大程度上可以避免GSLB被攻击致瘫痪的机会,
    实际隐藏节点的实现方法就是在实际组网时除了部署正常工作的GSLB以外,
    再部署一台备份的GSLB设备,并将这一备份GSLB设备隐藏起来,不对外公布。

    HTTP重定向(CDN GSLB用302重定向):在HTTP协议中,有三类重定向状态码:
    301永久性转移(permanently moved)、
    302暂时转移(temporarily moved)、
    meta fresh在特定时间后重定向到新的网页
    HTTP重定向只适用于HTTP应用,不适用于任何其他应用。
    比如微软的MMS协议,RTSP协议,就不能使用这种方式 进行重定向。
    其次,由于HTTP重定向过程需要额外解析域名URL,还需要与URL建立TCP连接并且发送HTTP请求,使得响应时间加长。
    第三,不同于DNS方式,没有任何用户请求能被外部系统终结(不能缓存),
    所有请求都必须进入GSLB系统,这将成为性能和可靠性的瓶颈。(流媒体用的比较多)

    基于IP路由的GSLB
    基于路由协议算法选择一条路由到达这两个本地均衡器中的一个。
    因为每次访问请求的终端IP地址不同,路由条件也不同,
    所以在多个路由器上优选的路由不同,从统计复用的角度来看基本是在负载均衡器1和2之间均匀分布的。
    IP路由在多个POP点之间实现的负载均衡是一种概率上的均衡,而不是真正的均衡(没做智能调度)。



    基于DNS解析方式,基于HTTP重定向方式,基于IP路由方式 这3种方式的比较

    性能
    基于DNS解析方式:本地DNS服务器和用户终端DNS缓存能力使GSLB的负载得到有效分担
    基于HTTP重定向方式:GSLB处理压力大,容易成为系统性能的瓶颈
    基于IP路由方式:借助IP网络设备完成负载均衡,没有单点性能瓶颈

    准确度
    基于DNS解析方式:定位准确度取决于本地DNS覆盖范围,本地DNS设置错误会造成定位不准确
    基于HTTP重定向方式:在对用户IP地址数据进行有效维护的前提下,定位准确且精度高
    基于IP路由方式:就近性调度准确,但对设备健康性等动态信息响应会有延迟

    效率
    基于DNS解析方式:效率约等于DNS系统本身处理效率
    基于HTTP重定向方式:依靠服务器做处理,对硬件资源的要求高
    基于IP路由方式:效率约等于IP设备本身效率

    扩展性
    基于DNS解析方式:扩展性和通用性好
    基于HTTP重定向方式:扩展性较差,需对各种应用协议进行定制开发
    基于IP路由方式:通用性好,但适用范围有限

    商用性
    基于DNS解析方式:在Web加速领域使用较多
    基于HTTP重定向方式:国内流媒体CDN应用较多
    基于IP路由方式:尚无商用案例

    备注:随笔中内容来源于网上资料整理,仅供参考

  • 相关阅读:
    Microsoft Azure 的负载平衡器的Session Sticky
    MySQL Performance tuning
    集装箱码头智能理货方案
    Iphone 英语语言下通讯录排序问题
    mac安装Aws cli失败
    vbs操作excel
    Sharepoint 2010 工作流启动时处理出错
    2、easyUI-创建 CRUD可编辑dataGrid(表格)
    1、easyUI-创建 CRUD普通dataGrid(表格)
    0327定时执行--存储过程--dbms_job--dbms_scheduler.create_job
  • 原文地址:https://www.cnblogs.com/Alanf/p/8072312.html
Copyright © 2020-2023  润新知