CDN负载均衡器器七层探测技术方案


  1. CDN负载均衡器现状描述

自研CDN在边缘节点建设过程中,使用了两种技术路线去实现负载均衡的功能,一种是使用商业销售的四层/七层交换机完成负载均衡的功能,当前的CDN网络平台内有包括F5,Array,A10等多个品牌多个型号的负载交换机;一种是使用Linux操作系统自带的LVS软件实现软负载。
本文重点以 Keepalived+LVS方案为基本技术路线,描述在Keepalived+LVS路线下,使用七层探测实现负载均衡器的服务器状态检查,最大限度地保证服务的高可用。

  • Keepalived+LVS简介

Keepalived+LVS是由两个软件构成,一个是保持实现了高可用,健康检查,配置管理,以及VIP的漂移功能Keepalived软件;一个是实现了负载均衡功能的LVS软件。
LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。

  • Keepalive的用途

Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能。主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP协议实现多台机器之间的故障转移服务。

  • LVS的用途

LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外可扩展性也非常好。

  • Keepalive的健康检查模式

TCP_CHECK
工作在第4层,keepalived向后端服务器发起一个tcp连接请求,如果后端服务器没有响应或超时,那么这个后端将从服务器池中移除。
HTTP_GET
工作在第5层,向指定的URL执行http请求,将得到的结果用md5加密并与指定的md5值比较看是否匹配,不匹配则从服务器池中移除;此外还可以指定http返回码来判断检测是否成功。HTTP_GET可以指定多个URL用于检测,这个一台服务器有多个虚拟主机的情况下比较好用。
SSL_GET
跟上面的HTTP_GET相似,不同的只是用SSL连接
MISC_CHECK
用脚本来检测,脚本如果带有参数,需将脚本和参数放入双引号内。脚本的返回值需为:
返回是0:检测成功
返回是1:检测失败,将从服务器池中移除
返回是02-255)检测成功;如果有设置misc_dynamic,权重自动调整为 退出码-2,如退出码为200,权重自动调整为198=200-2。
SMTP_CHECK
用来检测邮件服务的smtp的。

  1. 现存问题描述

CDN负载均衡通用方案

当前CDN使用的心跳检查策略是以TCP端口检查为手段的四层探测,即每隔一段时间负载均衡服务器都会测试业务服务器的某一个特点的端口(80端口)是否开放,如果开放则认为服务正常,就把用户调度到该节点。

问题描述
在使用过程中发现当服务器的操作系统处于异常状态的时候存在一个“假死“的状态,服务器端口照常开放,但是服务器的已经无法提供有效的CDN服务,此时负载均衡器就会将用户调度到该服务器,最终导致调度到该服务器的部分用户无法提供服务。
为了解决该问题,提出下述章节的方案。

  1. 方案介绍

CDN服务器的配置
CDN服务器配置特定的检测端口和检测页面,对该端口的此页面的访问返回200状态码。

负载均衡器的配置
Keepalive设置HTTP_GET探测模式,定时探测CDN服务器所定义的服务检测端口和检测页面。
组网拓扑和数据流向


物理拓扑图


逻辑拓扑图
软件功能配合
CDN设置
CDN需要配置用于心跳检测的端口监听和URL访问,并保证在服务正常的时候请求该URL能够正常的返回http协议的200状态码。
功能管控
CDN的配置管理系统可以将服务器资源,IP地址池(V4+V6),探测URL,探测方式,负载均衡算法,端口资源,基本的安全策略等进行统一管理。
优点和缺点
优点
更精确的探测服务器上的正式的服务状态,规避服务器上服务假死的时候端口开放,但是服务不可用时出现的部分用户被调度到无法服务的服务器上的问题。
缺点
CDN上只有探测域名的服务存在问题的时候,会导致均衡负载器误认为所有的CDN服务器都无法提供服务,此时即使CDN服务器服务正常,但是CDN整个节点服务仍旧不可用。

声明:leopard的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - CDN负载均衡器器七层探测技术方案


清风不问烟雨。醉酒只候深情