当前位置: 首页 > 科技观察

运维必学:全局负载均衡与CDN内容分发

时间:2023-03-19 16:00:56 科技观察

CDN介绍CDN全称ContentDeliveryNetwork,即内容分发网络。CDN是建立在现有网络基础上的智能虚拟网络。依托部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,用户就近获取所需内容,减少网络拥塞。提高用户访问响应速度和命中率。CDN的关键技术主要包括内容存储和分发技术。简而言之,就是将数据部署在各地的服务器中,利用负载均衡技术,让用户就近从服务器获取数据。CDN的原理CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的区域或网络上,在用户访问网站时,利用全局负载技术将用户访问引导到就近正常工作上缓存服务器,缓存服务器直接响应用户请求。全局负载均衡主要用于在多个地区都有自己的服务器的站点,目的是让全球用户只用一个IP地址或域名就可以访问离自己最近的服务器,从而获得最快的访问速度。CDN的基本思想是尽可能避开互联网上可能影响数据传输速度和稳定性的瓶颈和链路,从而使内容传输更快更稳定。通过在网络中各处放置节点服务器的基础上,在现有互联网的基础上放置一层智能虚拟网络,CDN系统可以实时根据网络流量和各节点的连接情况、负载状况、到用户和响应时间等综合信息,将用户的请求重定向到离用户最近的服务节点。其目的是使用户就近获取所需内容,解决Internet网络拥堵情况,提高用户访问网站的响应速度。总结CDN的功能,CDN有以下主要作用:节省骨干网带宽,降低带宽需求;提供服务器端加速,解决用户访问量大导致服务器过载的问题;服务商可以使用WebCache技术,将用户访问过的网页和对象缓存到本地,实现访问同一个对象不需要占用骨干网的出口带宽,增加相应的用户访问时间要求网页;可以克服网站分布不均的问题,降低网站建设和维护成本;减少“通信风暴”的影响,提高网络访问的稳定性。简单来说,内容分发网络(CDN)是一个战略性部署的整体系统,包括分布式存储、负载均衡、网络请求重定向、内容管理等。内容管理和全球网络流量管理(TrafficManagement)是CDN的核心。通过判断用户距离和服务器负载,CDN确保以极其有效的方式为用户请求提供内容。一般来说,内容服务是基于缓存服务器,也称为代理缓存(Surrogate),它位于网络的边缘,距离用户只有“一跳”(SingleHop)。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的透明镜像。这种架构使CDN服务提供商能够代表他们的客户、内容提供商向不能容忍请求响应时间延迟的最终用户提供最佳体验。全局服务器负载均衡(GlobalServerLoadBalance,GSLB),全局负载均衡是指放置在不同地理位置的服务器组之间的负载均衡。服务器负载均衡是指本地服务器组的负载均衡。主要用于在多个地区拥有自己服务器的站点,使全球用户只需一个IP地址或域名就可以访问最近的服务器,从而获得最快的访问速度。服务器场选择对于全局负载均衡,核心是服务器场的选择。应将特定客户定向到哪个服务组?应该使用什么标准来进行选择?一般来说,主要考虑两个因素:距离和负载大小。邻近机制主要考察服务器群与用户之间的物理距离。选择距离用户最近的服务器集群,可以减少服务响应到达用户的中转次数,从而减少中转节点对服务质量的影响。常见的方法有两种,一种是静态配置,比如根据静态IP地址配置表,将IP地址映射到服务器组。另一种方式是动态检测,比如实时检测到目标IP的距离(可以用到目标IP的跳数作为度量单位),然后比较检测结果进行选择。负载机制比较每个服务器群的负载,以确定哪个服务器群将响应请求。在全局负载均衡中,考虑的是服务器组的负载,而不是单个服务器的负载。因此,需要考虑更多的一般性问题,例如站点的最大连接数、站点的平均响应时间、服务质量等。等待。GSLB有三种常见的实现方式:DNS轮询、HTTP重定向和IP欺骗(也称为三角测量)。这三种实现方式都是在用户通过域名访问目标服务器时,GSLB设备进行智能决策,将用户引导至最优的服务IP。基于DNS的GSLB用户访问某个网站时,首先需要通过域名解析服务(DNS)获取该网站的IP。域名解析通常不是一次性完成的,往往需要查询几个不同的域名服务器才能找到对应的IP。如下图所示,用户首先在本地配置一个本地DNS服务器地址。如果本地DNS服务器收到DNS请求后无法解析,就会将请求转发给上级DNS服务器,直到找到该域名对应的IP或判断域名正确为止。存在。对于加入GSLB的情况,GSLB设备(可能是四层交换机)最终会代替DNS服务器完成域名解析。下图显示了两个过程之间的区别。基于DNS的GSLB的优缺点是:实现简单、易实现、成本低。缺点是:当GSLB设备采用“用户就近访问”的原则作为选择最优服务器的策略时,会出现判断不准确的情况。原因是在这个策略下,GSLB设备根据用户的IP地址和内容服务器的IP地址的比较来判断它的邻近性。但是,由于DNS响应是通过本地DNS服务器到达用户的,所以GSLB设备实际上只能获取到用户的IP地址。本地DNS服务器的地址。如果用户指定的DNS服务器IP不能正确代表用户的实际位置,就会出现判断不准确的情况。基于HTTP重定向的GSLB为了解决基于DNS实现判断不准确的问题,出现了基于HTTP重定向的GSLB。在这个解决方案中,GSLB使用HTTP重定向技术将用户访问重定向到最合适的服务器。使用基于HTTP的重定向方案,首先在DNS中将GSLB设备的IP地址注册为域名的A记录(即域名对应的IP)。如上图所示,用户首先通过DNS获取GSLB设备的IP地址。这时,用户认为这是站点服务器的IP地址,并向其发送HTTP请求。GSLB设备收到HTTP请求后,通过一定的策略选择最合适的服务器,然后GSLB设备向用户发送HTTP重定向命令(HTTP302),并附上选择的服务器的IP地址。最后,用户根据重定向IP访问站点的服务器。基于HTTP重定向的GSLB的优缺点优点:由于HTTP重定向命令直接发送给用户,可以获取到用户的真实IP,解决了判断不准确的问题。缺点是只能重定向到HTTP访问。基于IP欺骗的GSLBHTTP重定向方案解决了判断不准的问题,但只能用于HTTP协议应用。对于HTTP协议之外的访问,需要使用基于IP欺骗的GSLB(也称为三角传输)。基于IP欺骗的方案也需要先将GSLB设备的IP地址在DNS中注册为域名的A记录,这样用户对域名的请求报文才会优先发送给GSLB设备。如上图所示,GSLB设备在第一次收到服务请求包后,会选择最合适的服务器,向服务器发送服务请求包。服务器向用户发送响应报文时,将自己的源IP地址字段修改为GSLB设备的IP发送给用户。这样,在整个过程中,用户只感觉到GSLB设备在为其提供服务,并不知道自己经历了这样一个三角传输的过程。而且该方案可以重定向HTTP、FTP等所有类型的访问,但是其速度和效率相对于前两种方案要差一些,因为所有的用户访问请求只能通过三个点来响应。更多的路由和处理,所以主要在同一个GSLB设备中实现,作为HTTP重定向方案的补充方案。服务器组选择策略上面介绍的三种方案解决了如何将用户引导到指定的服务器组的问题。在此之前,首先需要通过某种方式为用户选择最合适的服务器组,即GSLB在选择服务器。小组采用的策略。接下来介绍一些常用的GSLB策略。1)地理区域或用户自定义区域:将若干个IP地址前缀划分为一个区域。根据用户本地DNS的IP地址,将特定IP范围内的用户优先分配到健康检查通过的站点。2)IP地址权重:DNS响应中的每个IP地址都可以分配一个权重,权重决定了分配给这个IP的流量与其他候选IP相比的比例。3)往返时间(RoundTripTime,RTT):RTT策略是最常用的基于域外的策略。RTT测量有两种模式:主动RTT测量和被动RTT测量。在实际部署中,由于网络限制和性能原因,ActiveRTT往往不可用,PassiveRTT更实用。a)主动RTT测量:当GSLBController收到来自LDNS的DNS请求时,GSLBController会通知所有站点负载均衡设备对LDNS进行RTT测量。GSLBController根据收集到的RTT值,选择RTT值最小的站点的VIP返回给LDNS。由于ActiveRTT使用DNSQuery或ICMP来衡量RTT,在某些网络中可能会被安全策略过滤而无法工作。主动RTT测量将生成额外的DNS查询或ICMP流量。在某些网络中,用户不希望有太多类似的非用户流量。b)被动RTT测量:被动RTT测量是指内容站点从收到用户的连接请求(发送TCNSYN)到收到用户的确认(收到TCPACK)所经过的时间。与简单的PING响应时间不同,您可以更准确地衡量最快的访问站点。被动RTT测量不会主动测量,也不会产生额外的数据流量,而是在用户与返回的VIP建立连接时进行采集。PassiveRTT的测量值真实反映了用户的上网体验,不会在运营商网络中产生额外的流量。它不会受到其他运营商或网络的安全策略的影响。