System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于XDP的容器网络流量控制系统技术方案_技高网

基于XDP的容器网络流量控制系统技术方案

技术编号:43661570 阅读:5 留言:0更新日期:2024-12-13 12:52
本发明专利技术公开了基于XDP的容器网络流量控制系统,涉及流量控制领域,包括分析带宽限高保低模块、带宽动态比例调整模块和数据包过滤模块;带宽限高保低模块,用于区分网络数据包的来源容器,并关联IP地址和用户提供的保留值和限制值,并将数据传至带宽动态比例调整模块;带宽动态比例调整模块,用于动态调整分给各容器的带宽,并将数据传至数据包过滤模块;数据包过滤模块,用于通过XDP程序在网络驱动层进行规则匹配和网络数据包处理,XDP上下文包含所有需要在原始形式下访问数据包的信息,通过分析其上下文来获取数据包来源,相比于iptables/netfilter,能够更早地识别并丢弃报文,因此具有更高的处理性能。

【技术实现步骤摘要】

本专利技术涉及流量控制领域,尤其涉及基于xdp的容器网络流量控制系统。


技术介绍

1、随着云计算及相关虚拟化技术的发展,虚拟化数据中心逐渐取代了传统的数据中心;虚拟化技术将数据中心的物理资源池化,使得用户可以从资源池中弹性获取资源;容器与虚拟机作为两种不同的虚拟化技术,都用于对应用程序及其所需的运行环境进行隔离,构建起一套能独立运行的单元,但是这两种虚拟化技术又有着显著的不同;

2、虚拟机是一种硬件层抽象技术,每个虚拟机有其单独的虚拟硬件,内核,用户空间,使用“虚拟机管理程序”hypervi sor直接运行在主机物理设备上,并利用hyperv i sor集中高效地管理所有虚拟环境;这些虚拟环境完全相互独立,隔离性极强;但是每个虚拟机都会大量占用主机的资源,例如,一台虚拟机往往占用数gb的内存空间;在虚拟机上运行一个应用程序,还得同时运行其所在虚拟机的guest os以及支持guest os运行所需的所有虚拟硬件,极大地增加了ram和cpu的开销;而容器作为另一种虚拟化技术,在主机操作系统之上进行资源抽象,所有容器化的应用都共享主机操作系统;

3、相比于虚拟机,容器共享宿主机的内核,在更高层进行抽象,更加轻量化,减少了虚拟机额外运行guestos的开销;然而,由于容器与主机共享操作系统和内核,无法提供强大的硬件隔离和资源管理;docker作为当下最流行的支持创建和使用l i nux容器的引擎,使用cgroup机制为容器提供内存,存储等资源的分配;cgroup以分组的形式对进程使用系统资源的行为进行管理和控制,而具体的策略是通过各个子系统模块来完成的,每个子系统负责一种类型的资源的管理和控制;不幸的是,目前的框架缺乏针对网络资源的管理和控制;因此,开发一种针对容器的网络流量控制系统极为必要。

4、目前主流的流量控制研究大多基于操作系统中的原始网络流量控制框架,l inux traff i c contro l(tc);tc通过设置数据包在输入和输出时的队列规则来实现流量控制;但tc的操作在内核协议栈中执行,导致相对较高的cpu使用率;此外,传统tc在网络资源配置上是静态的;

5、而容器具有生命周期短,数量大,变化多,资源竞争激烈等特点,tc的静态配置无法很好地适用于动态变化的容器环境;xdp(express data path),即快速数据路径,位于网卡驱动层,能够在网络数据包到达协议栈之前进行处理;xdp和tc在内核中所处位置如图2所示;相比于tc,xdp具有更高的处理性能,和更强的灵活性;

6、针对现有网络流量控制过程中的不足,现提出一种解决方案。


技术实现思路

1、本专利技术的目的在于针对现有技术中的上述不足,本专利技术旨在基于xdp技术,探索一种高效,灵活的容器网络流量控制机制;具体来说,本专利技术基于历史数据传输特征动态调整分给各个容器的带宽,一方面满足各容器对网络资源的最低需求,另一方面,为防止网络io密集型容器过度占用网络资源,本专利技术也会限制各容器对网络资源的占用上限;此外,在上下限范围内,本专利技术实现了带宽的公平分配;实验结果表明,相较于传统的基于tc的方案,在网络io密集型容器应用和非网络io密集型容器应用共存时,本工作极大地优化了非网络io密集型容器应用的平均完成时间;最后,在容器化环境中,大量不同安全级别或不同用途的容器共存于同一主机上;为避免某些容器中的恶意流量挤占网络带宽,本文基于xdp实现了一种高性能的包过滤机制,并与主流的i ptab l es/netf i l ter机制做了对比,验证了本文所实现的过滤机制的高效性。

2、本专利技术的目的可以通过以下技术方案实现:基于xdp的容器网络流量控制系统,包括带宽限高保低模块、带宽动态比例调整模块和数据包过滤模块;

3、带宽限高保低模块,用于区分网络数据包的来源容器,并关联ip地址和用户提供的保留值和限制值,并将数据传至带宽动态比例调整模块;

4、带宽动态比例调整模块,用于动态调整分给各容器的带宽,并将数据传至数据包过滤模块;

5、数据包过滤模块,用于通过xdp程序在网络驱动层进行规则匹配和网络数据包处理。

6、优选的,带宽限高保低模块的具体内容如下:

7、xdp上下文包含所有需要在原始形式下访问数据包的信息,通过分析其上下文来获取数据包来源,其中xdp程序的上下文是名为xdp_md的结构体,在该结构体中data和data_end分别是数据包头和尾的地址,在数据包包头中,各个字段为固定长度,通过解析上下文中的data字段,推算出存放源ip地址的字段的位置;

8、当获取ip地址后,关联ip地址和用户提供的保留值和限制值,bpf map中信息被内核态ebpf程序和加载程序的用户态程序共享,应用程序和ebpf钩子程序通信通过bpf map的共享特性,使用户空间程序通过'bpf()'系统调用和创建bpf map,其中map以ip地址为键,保留值和限制值为值,对ip、保留值和限制值之间的映射关系进行存储,使ebpf程序通过读取bpfmap获得相关映射关系,分配完各容器保留带宽后,再按照比例调整算法,分配剩余带宽;在分配剩余带宽时,和用户输入的限制值作比较,如果超出限制值,记录超出的带宽量;将超出的带宽量按比例分给未到上限的容器,循环操作,直到分配完所有超出带宽,或每个容器都到达上限值。

9、优选的,所述带宽动态比例调整模块的调整过程如下:

10、当随时间推移不断变化时,保证容器最低带宽需求,限制最高带宽使用量后,仍根据容器需求,动态调整分给各容器的带宽,通过采用热度排序算法,依据历史传输量,以及距离当前时间长短,计算得出各容器“热度值”,热度低的容器表示其对网络io资源需求量小,优先为资源需求量小容器分配带宽,以避免此类容器被网络io密集型,即热度高的容器阻塞,保证其服务质量qos,当网络io密集型容器qos基本维持不变时,最大化非网络io密集型容器qos,计算令牌总数为n的情况下,能够分给该容器的保留令牌数。

11、优选的,所述数据包过滤模块的过滤过程如下:

12、通过xdp在网络驱动层处理阶段处理网络数据包,基于xdp的包过滤方案减少处理数据包时占用的cpu开销,并使用xdp程序实现规则匹配和数据包处理,通过解析用户输入命令中的ip地址和数据包处理规则,将ip和处理规则存入bpfmapi p_map,每当收到一个数据包时,从xdp上下文中解析出数据包ip,并通过i p_map查找相应的处理规则,对其进行接受,拒绝或转发,在维持网络io密集型容器应用qos基本不变的同时,大幅优化非网络io密集型容器qos。

13、本专利技术的有益效果如下:

14、本专利技术通过本方法设计的容量网络流量控制系统极大地优化了多容器场景下,非网络io密集型容器应用的qos。此外,相较于传统的i ptab l es/netf i l ter框架,本方法设计的基于xdp技术实现的包过滤机制展本文档来自技高网...

【技术保护点】

1.基于XDP的容器网络流量控制系统,其特征在于,包括:带宽限高保低模块、带宽动态比例调整模块和数据包过滤模块;

2.根据权利要求1所述的基于XDP的容器网络流量控制系统,其特征在于,所述带宽限高保低模块的具体内容如下:

3.根据权利要求1所述的基于XDP的容器网络流量控制系统,其特征在于,所述带宽动态比例调整模块的调整过程如下:

4.根据权利要求1所述的基于XDP的容器网络流量控制系统,其特征在于,所述数据包过滤模块的过滤过程如下:

【技术特征摘要】

1.基于xdp的容器网络流量控制系统,其特征在于,包括:带宽限高保低模块、带宽动态比例调整模块和数据包过滤模块;

2.根据权利要求1所述的基于xdp的容器网络流量控制系统,其特征在于,所述带宽限高保低模块的具体内容如下:

【专利技术属性】
技术研发人员:裴仁杰李文信
申请(专利权)人:天津大学合肥创新发展研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1