CN112968955B - 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统 - Google Patents

一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统 Download PDF

Info

Publication number
CN112968955B
CN112968955B CN202110187737.9A CN202110187737A CN112968955B CN 112968955 B CN112968955 B CN 112968955B CN 202110187737 A CN202110187737 A CN 202110187737A CN 112968955 B CN112968955 B CN 112968955B
Authority
CN
China
Prior art keywords
server
virtual network
network card
node
ebpf
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110187737.9A
Other languages
English (en)
Other versions
CN112968955A (zh
Inventor
武志鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Netju Yunlian Technology Co.,Ltd.
Original Assignee
Beijing Wangju Yunlian Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Wangju Yunlian Technology Co ltd filed Critical Beijing Wangju Yunlian Technology Co ltd
Priority to CN202110187737.9A priority Critical patent/CN112968955B/zh
Publication of CN112968955A publication Critical patent/CN112968955A/zh
Application granted granted Critical
Publication of CN112968955B publication Critical patent/CN112968955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于eBPF技术的CDN节点跨机调度方法及系统,在CDN节点上,判断第一服务器和第二服务器下虚拟网卡的负载情况,当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上,通过在各个机器中的操作系统内核的TC层嵌入eBPF模块代码并在每个单机内安装一个通信Agent模块,Agent模块主要是负责跨机通信(通过路由器的ARP广播功能)和数据交互(跨机之间的网卡负载情况互通,采用UDP通信),eBPF模块主要是在节点内部机器集群中选出带宽低负载的虚拟网卡进行数据回吐,从而解决客户端多次302重定向的问题,达到降低请求的效耗,在节点内部跨机调度时避免死循环,从而实现最优调度。

Description

一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统
技术领域
本发明涉及CDN节点调度领域,尤其指一种基于eBPF技术的CDN节点跨机调度方法及系统。
背景技术
在CDN分发领域,通常采用HTTP 302调度机制(重定向机制)达到更好的调度效果。HTTP 302调度机制原理如下:假设域名A接入到CDN网络,并且配置了HTTP调度中心,当用户终端发起域名A的请求时,域名A的请求会被CNAME引导到CDN的HTTP调度中心,HTTP调度中心根据预设DNS解析表中的节点健康状况、负载情况等信息,综合判断给出调度结果,返回302状态码,并且在Location的响应头返回重定向的IP地址,用户终端收到302重定向响应,会重新请求Location的内容,向该IP地址发送请求。
对于本地负载调度,是指CDN边缘节点内部机器的路由过程,如果节点的IP地址是固定的,一般是通过在Cache层前面搭载一个LVS负载均衡软件,进行内部网络层负载均衡调度。这种调度机制是针对已确定服务IP的节点场景,对于动态IP节点的场景却是无法满足。在CDN行业内,针对不确定IP的动态CDN节点(此处指的是拨号上网的CDN边缘节点,定时更新服务IP)的场景,一般是通过多次302达到节点内部单机调度,即当客户端的请求被HTTP 302重定向调度到某个节点的某个虚拟网卡(IP拨号上网线路)上时,如果该IP线路的带宽正好处于高负载的情况,那么通过返回302给客户端,由客户端再次302重定向访问其它的虚拟网卡IP线路,循环直到找到带宽低负载的IP线路进行服务。
因此在现有技术中,
多次的302重定向,增加客户端访问线路的效耗,影响客户的访问体验;
302重定向到其它的IP线路,无法保障调度后的IP线路就是低负载,也可能重定向后的IP线路也是高负载,又会增加1次302重定向,多次重定向,存在定向死循环风险。
发明内容
本发明目的在于提供一种基于eBPF技术的CDN边缘节点跨机调度方法,以实现减少302重定向次数,降低访问的链路效耗,且避免定向到其他IP线路时死循环风险的技术效果。
一种基于eBPF技术的CDN边缘节点跨机调度方法,包括:
获取由HTTP编码调度中心返回的301/302的状态码和Location头;
按照所述301/302状态码,发出重定向所述Location头的URL的访问请求,所述Location头中包含全局调度后的IP节点地址;
在CDN节点上,判断第一服务器和第二服务器下虚拟网卡的负载情况,当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上;
在所述第二服务器中,所述访问请求流经内核的TC层到达Cache层,在Cache层具备缓存数据时,获取所述第二服务器中负载最小的虚拟网卡所返回的数据。
优选地,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上,具体实现为:
所述第一服务器中的网卡驱动模块XDP在接收到所述访问请求时,通过查询所述eBPF模块的eBPFmap功能模块,确定负载最低的虚拟网卡;
将所述访问请求MAC地址修改为所述负载最低的虚拟网卡的地址;
所述eBPF模块通过eBPFmap功能模块记录第一服务器和第二服务器中的所有虚拟网卡的带宽冗余数据。
优选地,判断本机第一服务器下虚拟网卡的负载情况具体实现为:
第一服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况;
还包括:在所述第二服务器中,获取所有虚拟网卡负载情况,具体实现为:
第二服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况。
优选地,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上后还包括:
所述访问请求到达动态CDN节点并达到虚拟网卡,所述虚拟网卡有多个,并经过对应网卡驱动模块XDP;
所述网卡驱动模块的流量均经过所述TC层。
优选地,判断第一服务器和第二服务器下虚拟网卡的负载情况包括:
所述访问请求在经过第一虚拟网卡时,当第一虚拟网卡没有冗余带宽时,由对应的XDP模块查询所述eBPFmap选出当前节点内部有带宽冗余的第二虚拟网卡,将所述访问请求MAC地址修改为所述第二虚拟网卡的地址。
一种基于eBPF技术的CDN边缘节点跨机调度系统,执行上述基于eBPF技术的CDN边缘节点跨机调度方法,包括:
用户终端,发出地址访问请求;
HTTP编码调度中心,返回301/302的状态码和Location头;
用户终端按照所述301/302状态码,发出重定向所述Location头的URL的访问请求,所述Location头中包含全局调度后的IP节点地址;获取所述第二服务器中负载最小的虚拟网卡所返回的数据;
CDN节点,判断第一服务器和第二服务器下虚拟网卡的负载情况,当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上;
在所述第二服务器中,所述访问请求流经内核的TC层到达Cache层,在Cache层具备缓存数据时,所述第二服务器中负载最小的虚拟网卡返回数据。
优选地,
当所述CDN节点被配置为动态节点时,CDN节点还包括:
虚拟网卡,所述访问请求到达动态CDN节点并达到所述虚拟网卡,所述虚拟网卡有多个;
网卡驱动模块XDP,所述访问请求经过所述网卡驱动模块,所述网卡驱动模块与所述虚拟网卡一一对应;
所述网卡驱动模块的流量均经过所述TC层。
优选地,CDN节点在判断本机第一服务器下虚拟网卡的负载情况时,配置为:
第一服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况;
还包括:在所述第二服务器中,获取所有虚拟网卡负载情况,具体实现为:
第二服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况。
优选地,CDN节点,判断第一服务器和第二服务器下虚拟网卡的负载情况,具体地配置为:
所述访问请求在经过第一虚拟网卡时,当第一虚拟网卡没有冗余带宽时,由对应的XDP模块查询所述eBPFmap选出当前节点内部有带宽冗余的第二虚拟网卡,将所述访问请求MAC地址修改为所述第二虚拟网卡的地址。
一种动态CDN节点,当客户端向所述IP地址发送HTTP或HTTPS请求时,判断第一服务器和第二服务器下虚拟网卡的负载情况,当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上;在所述第二服务器中,所述访问请求流经内核的TC层到达Cache层,在Cache层具备缓存数据时,获取所述第二服务器中负载最小的虚拟网卡所返回的数据。
本发明的实施例提出的基于eBPF技术的CDN边缘节点跨机调度方法,针对多次302重定向和单机负载高,存在定向死循环风险的问题,通过在各个机器中的操作系统内核的TC层嵌入eBPF模块代码并在每个单机内安装一个通信Agent模块,Agent模块主要是负责跨机通信(通过路由器的ARP广播功能)和数据交互(跨机之间的网卡负载情况互通,采用UDP通信),eBPF模块主要是在节点内部机器集群中选出带宽低负载的虚拟网卡进行数据回吐,从而解决客户端多次302重定向的问题,达到降低请求的效耗,在节点内部跨机调度时避免死循环,从而实现最优调度。
附图说明
图1为现有技术中本地负载调度方法的流程图;
图2为本发明实施例的一种基于eBPF技术的CDN边缘节点跨机调度方法的一个流程图;
图3为本发明实施例的一种基于eBPF技术的CDN边缘节点跨机调度方法的又一个流程图;
图4本发明实施例的一种基于eBPF技术的CDN边缘节点跨机调度系统的结构示意图;
图5本发明实施例的一种基于eBPF技术的CDN节点的结构示意图;
具体实施方式
为了更清楚地说明现有本地负载调度的实现参见图1,针对动态IP资源节点,在节点单机内虚拟出多张虚拟网卡,通过网卡拨号请求联网,整体步骤如下所示:
1.用户终端请求URL;
2.用户终端通过CNAME记录引导到CDN的HTTP调度中心;
3.HTTP调度中心返回302的状态码和Location头,Location头中包含了全局调度后的IP节点地址;
4.用户终端收到302状态码,重定向到节点IP请求访问Location头中的URL;
5.请求到达节点,假设是请求到虚拟网卡1,流经到网卡驱动XDP;
6.访问请求流经内核的TC层到达Cache层;假设Cache层有缓存数据,那么就通过虚拟网卡1返回,如Cache层没有数据,则MISS回源站获取。
7.假设虚拟网卡1的上行带宽(即流出负载跑满),那么就会返回302给客户端;
8.客户端收到302,则再次请求新的线路,假设此次请求到了虚拟网卡2这条线路;
9如虚拟网卡2可以支持,则返回;如虚拟网卡2还是流出负载高,那么就再次302,直到找到可以服务的虚拟网卡线路;
10.结束。
多次的302重定向,增加客户端访问线路的效耗,影响客户的访问体验;
302重定向到其它的IP线路,无法保障调度后的IP线路就是低负载,也可能重定向后的IP线路也是高负载,又会增加1次302重定向,多次重定向,存在定向死循环风险;
本发明提出了一种基于eBPF技术的边缘节点跨机调度方法。在各个单机的系统内核模块的TC层嵌入eBPF程序代码,由该模块来控制数据回吐。同时,在每个单机内安装一个通信Agent模块,Agent模块主要是负责跨机通信(通过路由器的ARP广播功能找到IP地址对应的MAC地址,跨机之间的网卡负载信息互通,采用低开销的UDP协议进行无连接传输)。
其中,eBPF起源于bpf(Berkeley Packet Filter),bpf是一种网络过滤器,为捕捉和过滤符合特定规则的网络包而设计的,过滤器为运行在基于寄存器的虚拟机上的程序。
由于各个网卡的带宽都经过内核的TC层的时候,各个网卡的带宽负载情况都被保存在各个机器的eBPFmap中,当数据要选择虚拟网卡吐出给客户端时,则在eBPF模块中根据eBPFmap数据进行优选回吐的虚拟网卡,由于节点内部跨机器之间通过路由器的ARP广播功能,将节点内部各个机器的通信Agent连接起来,并且通过UDP协议进行数据交互,如此,每台机器的eBPFmap记录的数据将是整个节点内部所有的机器虚拟网卡的负载情况,这样各个机器的eBPFmap就可以记录节点内部所有虚拟网卡的负载情况,所述eBPF模块主要是在节点内部机器集群中选出带宽低负载的虚拟网卡进行数据回吐。
如图2至图5所示,结合附图说明本发明实施例的一种基于eBPF技术的CDN边缘节点跨机调度方法。
如图2所示,该方法的一种实现方式为:
S21:获取由HTTP编码调度中心返回的301/302的状态码和Location头;
用户终端访问URL,通过CNAME方式引导到CDN厂家的HTTP调度中心,HTTP调度中心返回302的状态码和Location头,Location头中包含了全局调度后的IP节点地址,用户终端收到302重定向,向节点IP请求访问Location头中的URL。
S22:按照所述301/302状态码,发出重定向所述Location头的URL的访问请求,所述Location头中包含全局调度后的IP节点地址;
S23:在CDN节点上,判断第一服务器和第二服务器下虚拟网卡的负载情况,当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上;
需要说明的是,所述访问请求是通过XDP模块修改请求MAC地址引导到第二服务器的网卡。而Agent模块是为了让机器的网卡带宽情况信息互通记录到eBPFmap中。
在第一服务器下,请求到达节点到第一虚拟网卡1,第一虚拟网卡经过网卡驱动XDP程序,XDP程序获取eBPFmap的虚拟网卡负载情况,如本机有虚拟网卡线路带宽冗余,则由该虚拟网卡回吐数据。假设第一服务器的所有虚拟网卡负载都高,那么就直接将请求指令引导到同节点下第二服务器中负载最小的虚拟网卡上(第二虚拟网卡)(XDP程序直接将请求指令的目的MAC地址替换掉),即:在第一服务器时就选出了第二服务器中负载最低的虚拟网卡,到达第二服务器时无需再选虚拟网卡,而所述cache层在有缓存的情况下直接从所述访问请求的的虚拟网卡吐回数据。
S24:在所述第二服务器中,所述访问请求流经内核的TC层到达Cache层,在Cache层具备缓存数据时,获取所述第二服务器中负载最小的虚拟网卡所返回的数据。
所述第二服务器中的XDP模块流经TC层,到达Cache层,如果cache层有缓存数据,那么就通过TC层的eBPF模块,如Cache层没有数据,则MISS回源站获取。通过所述第二服务器的已选出的负载最低的虚拟网卡,返回数据给客户端。所述客户端获取该访问请求匹配的网站数据。
图3示出了本发明的另一种实现方式,包括:
S31:获取由HTTP编码调度中心返回的301/302的状态码和Location头;
S32:按照所述301/302状态码,发出重定向所述Location头的URL的访问请求,所述Location头中包含全局调度后的IP节点地址;
S33:在CDN节点上,第一服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况;
S34:当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上;
所述第一服务器中的网卡驱动模块XDP在接收到所述访问请求时,通过查询所述eBPF模块的eBPFmap功能模块,确定负载最低的虚拟网卡;
将所述访问请求MAC地址修改为所述负载最低的虚拟网卡的地址;
所述eBPF模块通过eBPFmap功能模块记录第一服务器和第二服务器中的所有虚拟网卡的带宽冗余数据。
所述第一服务器与所述第二服务器的的虚拟网卡的带宽冗余情况是通过Agent通信模块交互,从而使得每个服务器的map所述eBPF模块通过eBPFmap功能模块记录所有虚拟网卡的负载情况。
S35:第二服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况。
在该CDN节点的第一服务器和第二服务器下,所述访问请求到达动态CDN节点并达到虚拟网卡,所述虚拟网卡有多个,并经过对应网卡驱动模块XDP;所述网卡驱动模块的流量均经过所述TC层。
所有虚拟网卡的负载情况都是通过UDP数据通信,让eBPFmap实时记录所有的机器虚拟网卡负载情况。
S36:当第一虚拟网卡(第一服务器中)没有冗余带宽时,由对应的XDP模块查询所述eBPFmap选出当前节点内部有带宽冗余的第二虚拟网卡(第二服务器中),将所述访问请求MAC地址修改为所述第二虚拟网卡的地址。
采用本发明实施例的调度方法,至少具备如下技术优势:
(1)当线路负载较高情况下,减少302重定向次数,降低访问的链路效耗。
(2)当单机负载过高时,可以在节点范围内优选虚拟网卡回吐。
图4示出了一种基于eBPF技术的CDN边缘节点跨机调度系统,执行上述图2-3中基于eBPF技术的CDN边缘节点跨机调度方法,包括:
用户终端41,发出地址访问请求;
HTTP编码调度中心42,返回301/302的状态码和Location头;
用户终端41按照所述301/302状态码,发出重定向所述Location头的URL的访问请求,所述Location头中包含全局调度后的IP节点地址;获取所述第二服务器中负载最小的虚拟网卡所返回的数据;
CDN节点43,判断本机第一服务器44下虚拟网卡的负载情况:
第一服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况;
当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上;
CDN节点43具体配置有:通过XDP模块修改请求MAC地址引导到第二服务器的网卡,Agent模块网卡带宽情况信息互通记录到eBPFmap中。
在所述第二服务器45中,所述访问请求流经内核的TC层到达Cache层,在Cache层具备缓存数据时,所述第二服务器中负载最小的虚拟网卡返回数据。
CDN节点43的第二服务器45,如Cache层没有数据,则MISS回源站46获取。
第二服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况;
判断第一服务器和第二服务器下虚拟网卡的负载情况,具体地配置为,
所述访问请求在经过第一虚拟网卡时,当第一虚拟网卡(第一服务器中)没有冗余带宽时,由对应的XDP模块查询所述eBPFmap选出当前节点内部有带宽冗余的第二虚拟网卡,将所述访问请求MAC地址修改为所述第二虚拟网卡的地址。
所述第一服务器中的网卡驱动模块XDP在接收到所述访问请求时,通过查询所述eBPF模块的eBPFmap功能模块,确定负载最低的虚拟网卡;
将所述访问请求MAC地址修改为所述负载最低的虚拟网卡的地址;
所述eBPF模块通过eBPFmap功能模块记录第一服务器和第二服务器中的所有虚拟网卡的带宽冗余数据。
图5示出了一种动态CDN节点,包括:
当客户端向所述IP地址发送HTTP或HTTPS请求时;
判断本机第一服务器51下虚拟网卡的负载情况,当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器52的虚拟网卡53上;在所述第二服务器中,所述访问请求流经内核的TC层54到达Cache层55,在Cache层55具备缓存数据时,获取所述第二服务器中负载最小的虚拟网卡53所返回的数据;
所述第一服务器51及第二服务器52均包括多个虚拟网卡51,所述访问请求到达动态CDN节点并达到所述虚拟网卡,所述虚拟网卡有多个;
网卡驱动模块XDP,所述访问请求经过所述网卡驱动模块,所述网卡驱动模块与所述虚拟网卡一一对应;
所述网卡驱动模块的流量均经过所述TC层;
CDN节点中,访问请求是通过XDP模块56修改请求MAC地址引导到第二服务器52的网卡。Agent模块57是网卡带宽情况信息互通记录到eBPFmap中;
第一服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况;
第二服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况。
综上所述:
本发明实施例通过在各个机器中的操作系统内核的TC层嵌入eBPF模块代码并在每个单机内安装一个通信Agent模块,Agent模块主要是负责跨机通信(通过路由器的ARP广播功能)和数据交互(跨机之间的网卡负载情况互通,采用UDP通信),eBPF模块主要是在节点内部机器集群中选出带宽低负载的虚拟网卡进行数据回吐,从而解决客户端多次302重定向的问题,达到降低请求的效耗,在节点内部跨机调度时避免死循环,从而实现最优调度。
应该理解的是,本发明所公开的实施例不限于这里所公开的特定结构、处理步骤,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
虽然本发明所公开的实施方式如上,但的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (10)

1.一种基于eBPF技术的CDN边缘节点跨机调度方法,其特征在于,包括:
获取由HTTP编码调度中心返回的301/302的状态码和Location头;
按照所述301/302状态码,发出重定向所述Location头的URL的访问请求,所述Location头中包含全局调度后的IP节点地址;
在CDN节点上,判断第一服务器和第二服务器下虚拟网卡的负载情况,当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上;
在所述第二服务器中,所述访问请求流经内核的TC层到达Cache层,在Cache层具备缓存数据时,获取所述第二服务器中负载最小的虚拟网卡所返回的数据;
其中,所述第一服务器和所述第二服务器操作系统内核的TC层嵌入eBPF模块代码并在每个服务器内安装通信Agent模块;
所述Agent模块用于跨机通信和数据交互;
所述eBPF模块用于在节点内部服务器集群中选出带宽低负载的虚拟网卡进行数据回吐。
2.根据权利要求1所述的一种基于eBPF技术的CDN边缘节点跨机调度方法,其特征在于,
所述第一服务器中的网卡驱动模块XDP在接收到所述访问请求时,通过查询所述eBPF模块的eBPFmap功能模块,确定负载最低的虚拟网卡;
将所述访问请求MAC地址修改为所述负载最低的虚拟网卡的地址;
所述eBPF模块通过eBPFmap功能模块记录第一服务器和第二服务器中的所有虚拟网卡的带宽冗余数据。
3.根据权利要求1所述的一种基于eBPF技术的CDN边缘节点跨机调度方法,其特征在于,
判断本机第一服务器下虚拟网卡的负载情况具体实现为:
第一服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况;
还包括:在所述第二服务器中,获取所有虚拟网卡负载情况,具体实现为:
第二服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况。
4.根据权利要求1所述的一种基于eBPF技术的CDN边缘节点跨机调度方法,其特征在于,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上后还包括:
所述访问请求到达动态CDN节点并达到虚拟网卡,所述虚拟网卡有多个,并经过对应网卡驱动模块XDP;
所述网卡驱动模块的流量均经过所述TC层。
5.根据权利要求2或3中任一项所述的一种基于eBPF技术的CDN边缘节点跨机调度方法,其特征在于,判断第一服务器和第二服务器下虚拟网卡的负载情况包括:
所述访问请求在经过第一虚拟网卡时,当第一虚拟网卡没有冗余带宽时,由对应的XDP模块查询所述eBPFmap选出当前节点内部有带宽冗余的第二虚拟网卡,将所述访问请求MAC地址修改为所述第二虚拟网卡的地址。
6.一种基于eBPF技术的CDN边缘节点跨机调度系统,其特征在于,执行权利要求1-5任一项所述的一种基于eBPF技术的CDN边缘节点跨机调度方法,包括:
用户终端,发出地址访问请求;
HTTP编码调度中心,返回301/302的状态码和Location头;
用户终端按照所述301/302状态码,发出重定向所述Location头的URL的访问请求,所述Location头中包含全局调度后的IP节点地址;获取所述第二服务器中负载最小的虚拟网卡所返回的数据;
CDN节点,判断第一服务器和第二服务器下虚拟网卡的负载情况,当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上;
在所述第二服务器中,所述访问请求流经内核的TC层到达Cache层,在Cache层具备缓存数据时,所述第二服务器中负载最小的虚拟网卡返回数据;
其中,所述第一服务器和所述第二服务器操作系统内核的TC层嵌入eBPF模块代码并在每个服务器内安装通信Agent模块;
所述Agent模块用于跨机通信和数据交互;
所述eBPF模块用于在节点内部服务器集群中选出带宽低负载的虚拟网卡进行数据回吐。
7.如权利要求6所述的一种基于eBPF技术的CDN边缘节点跨机调度系统,其特征在于,
当所述CDN节点被配置为动态节点时,CDN节点还包括:
虚拟网卡,所述访问请求到达动态CDN节点并达到所述虚拟网卡,所述虚拟网卡有多个;
网卡驱动模块XDP,所述访问请求经过所述网卡驱动模块,所述网卡驱动模块与所述虚拟网卡一一对应;
所述网卡驱动模块的流量均经过所述TC层。
8.如权利要求6所述的一种基于eBPF技术的CDN边缘节点跨机调度系统,其特征在于,CDN节点在判断本机第一服务器下虚拟网卡的负载情况时,配置为:
第一服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况;
还包括:在所述第二服务器中,获取所有虚拟网卡负载情况,具体实现为:
第二服务器的eBPF模块的eBPFmap功能单元通过UDP数据通信实时记录所述第一服务器和第二服务器中所有虚拟网卡负载情况。
9.如权利要求8所述的一种基于eBPF技术的CDN边缘节点跨机调度系统,其特征在于,CDN节点,判断第一服务器和第二服务器下虚拟网卡的负载情况,具体地配置为:
所述访问请求在经过第一虚拟网卡时,当第一虚拟网卡没有冗余带宽时,由对应的XDP模块查询所述eBPFmap选出当前节点内部有带宽冗余的第二虚拟网卡,将所述访问请求MAC地址修改为所述第二虚拟网卡的地址。
10.一种动态CDN节点,其特征在于,配置于权利要求6-9任一项所述的一种基于eBPF技术的CDN边缘节点跨机调度系统中,其实现:当客户端向IP地址发送HTTP或HTTPS请求时,判断第一服务器和第二服务器下虚拟网卡的负载情况,当所述第一服务器不存在拥有冗余带宽的虚拟网卡时,将所述访问请求引导到该CDN节点下第二服务器中负载最小的虚拟网卡上;在所述第二服务器中,所述访问请求流经内核的TC层到达Cache层,在Cache层具备缓存数据时,获取所述第二服务器中负载最小的虚拟网卡所返回的数据。
CN202110187737.9A 2021-02-18 2021-02-18 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统 Active CN112968955B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110187737.9A CN112968955B (zh) 2021-02-18 2021-02-18 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110187737.9A CN112968955B (zh) 2021-02-18 2021-02-18 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统

Publications (2)

Publication Number Publication Date
CN112968955A CN112968955A (zh) 2021-06-15
CN112968955B true CN112968955B (zh) 2023-02-14

Family

ID=76285009

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110187737.9A Active CN112968955B (zh) 2021-02-18 2021-02-18 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统

Country Status (1)

Country Link
CN (1) CN112968955B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114039789B (zh) * 2021-11-17 2023-11-14 北京天融信网络安全技术有限公司 流量防护方法及电子设备、存储介质
CN115550366A (zh) * 2022-08-29 2022-12-30 紫光云技术有限公司 一种负载均衡方法、设备、存储介质
CN115499242B (zh) * 2022-10-11 2023-12-26 中电云计算技术有限公司 一种基于eBPF XDP从外网引流到内网蜜罐的方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882939A (zh) * 2012-09-10 2013-01-16 北京蓝汛通信技术有限责任公司 负载均衡方法、设备及泛域名加速访问系统
CN104333568A (zh) * 2014-07-22 2015-02-04 江苏惠居乐信息科技有限公司 基于cdn和负载均衡技术的家居电商云系统及实现方法
CN111193773A (zh) * 2019-12-06 2020-05-22 腾讯云计算(北京)有限责任公司 负载均衡方法、装置、设备及存储介质
CN112235339A (zh) * 2020-08-31 2021-01-15 贵阳忆联网络有限公司 一种基于边缘计算的互联网cdn加速系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069885B2 (en) * 2013-03-18 2018-09-04 Ericsson Ab Bandwidth management for over-the-top adaptive streaming

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102882939A (zh) * 2012-09-10 2013-01-16 北京蓝汛通信技术有限责任公司 负载均衡方法、设备及泛域名加速访问系统
CN104333568A (zh) * 2014-07-22 2015-02-04 江苏惠居乐信息科技有限公司 基于cdn和负载均衡技术的家居电商云系统及实现方法
CN111193773A (zh) * 2019-12-06 2020-05-22 腾讯云计算(北京)有限责任公司 负载均衡方法、装置、设备及存储介质
CN112235339A (zh) * 2020-08-31 2021-01-15 贵阳忆联网络有限公司 一种基于边缘计算的互联网cdn加速系统及方法

Also Published As

Publication number Publication date
CN112968955A (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
CN112968955B (zh) 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统
US11805184B2 (en) Content delivery systems and methods
US20210021692A1 (en) Translation of resource identifiers using popularity information upon client request
EP2510453B1 (en) Website performance optimization and internet traffic processing
US8224986B1 (en) Methods and apparatus for redirecting requests for content
US9191458B2 (en) Request routing using a popularity identifier at a DNS nameserver
US20030210694A1 (en) Content routing architecture for enhanced internet services
CN1372405A (zh) 接续持续连接
US11159642B2 (en) Site and page specific resource prioritization
CN107613037A (zh) 一种域名重定向方法和系统
US20020138660A1 (en) Method and system for the redirection of client requests
WO2016062077A1 (zh) 重定向到Web页面的方法及装置
JP2008522464A (ja) 端末要求をエージェントがリダイレクトする方法及びシステム
CN113037808B (zh) 一种基于eBPF技术的CDN节点单机调度方法及其系统
US11729142B1 (en) System and method for on-demand edge platform computing
Khandaker et al. On-path vs off-path traffic steering, that is the question
CN115118593A (zh) 一种多台设备网络共享时对流量优化的方法及其系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240101

Address after: 518000, B-1503, Zhongdian Changcheng Building, No.3 Kefa Road, Science and Technology Park Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Netju Yunlian Technology Co.,Ltd.

Address before: 101102 room 01-0131, 1st floor, building 8, yard 33, Jingsheng south 2nd Street, Tongzhou District, Beijing

Patentee before: Beijing Wangju Yunlian Technology Co.,Ltd.

TR01 Transfer of patent right