数据平面开发套件(DPDK)软件是一组用户空间库和驱动程序,可加速在所有主要CPU架构上运行的数据包处理工作负载。由Intel大约10年前创建,现在是Linux基金会旗下的开源项目之一。从企业数据中心到公共云的环境,尤其是在电信网络中, DPDK在推动高性能通用CPU的使用方面都起了重大作用。
DPDK是什么
DPDK是Linux基金会托管的一个开源项目。为了加快网络I / O,DPDK允许传入网络数据包过渡到用户空间,进而消除了内存复制的开销,在不进行内存复制的情况下,这些数据包将被快速处理用户空间和内核空间之间上下文切换的开销。DPDK扩展了标准内核网络堆栈,在高吞吐量和/或 低延迟至关重要,例如无线核心,无线访问,有线基础设施,路由器,负载均衡器,防火墙,视频流,IP语音等。许多流行的Linux发行版,包括由Red Hat和Canonical支持的发行版将DPDK支持作为其标准包装的一部分。
为什么需要DPDK-DPDK的发展史
传统上,由思科,爱立信,华为,瞻博网络, 中兴和诺基亚等供应商提供的联网设备使用ASIC来执行低级数据平面功能,例如数据包处理。在某些情况下,这些ASIC是专有的,而在其他产品则是诸如Broadcom或Marvell之类的芯片供应商提供的标准产品。反过来,利用了ASIC 通过专有软件来实现防火墙,路由器,交换机,基站支持的各种网络协议站和其他网络设备。这些架构提供了高性能所需的吞吐量网络方面,新产品推出的时间表受到漫长的芯片开发/调试周期以及供应商之间没有软件可移植性的机会。到2007年,半导体公司如Intel,Cavium(现在是Marvell的一部分),Freescale(现在是NXP的一部分)和NetLogic(现在Broadcom的一部分)正在引入具有足够处理能力的标准多核处理器,以执行低级数据包处理功能需要以与基于ASIC的网络有效竞争所需的成本和性能产品。问题出在软件上:Linux是网络设备的默认操作系统,而Linux内核包含许多瓶颈,无法有效处理数据包。需要一种在保持与Linux兼容性的同时消除这些性能限制的解决方案应用程序。它适合作为Linux发行版中存在的库进行打包,以供在需要时使用。管理各种网络设备。
这些目标最初是在2010年实现的,当时英特尔推出了针对Xeon一代的DPDK初始版本基于Nehalem微体系结构的处理器。DPDK绕过Linux内核,在用户中执行数据包处理空间以最大化网络性能。DPDK通过使用用户中运行的轮询模式驱动程序(PMD)来实现此目的空间,不断检查传入的数据包队列以查看是否有新数据到达,从而实现了高吞吐量和低吞吐量延迟(下图)。目前,根据开放源BSD许可,通过.zip文件提供了DPDK。
2013年,网络软件供应商6WIND建立了DPDK.org开源社区,以开发人员为中心资源,托管库,驱动程序,文档,开发人员的邮件列表和git存储库。DPDK.org的出现促进了DPDK的使用量的增加,以及来自不断扩大的IPDK池对DPDK的捐款的显着增长全球开发商。
误区 #1: DPDK是英特尔控制的
在DPDK的早期,英特尔确实对该项目产生了巨大的影响。但是,随着项目的发展社区的多样性也不断发展,例如Chelsio和Mellanox等设备供应商的贡献以及其他成员的贡献都占了重要比例。英特尔继续为改进了DPDK提供支持,但其他非x86体系结构的供应商(例如Arm,Power和Tilera)拥有将DPDK推到了纯粹的x86外都多种平台。如前所述,Linux基金会的治理结构会引导DPDK项目容纳更多都参与者,包括英特尔。
DPDK在NFV和其发展中扮演的角色
在电信行业中,随着公司开发解决方案来满足DPDK的要求,DPDK成为关键的使能技术。网络功能虚拟化(NFV)的目标。NFV计划始于2012年,当时有七个通讯服务提供商(CSP)同意在ETSI的主持下进行合作:AT&T,BT,德国电信,Orange,意大利电信,西班牙电信和Verizon。成员公司的列表增长迅速,现在包括800多个组织,其中包括 CSP,供应商,公共云提供商,研究人员,学术界和政府实体。
NFV的主要目标是实现网络功能作为标准托管的虚拟化软件的实现服务器平台,而不是传统的网络设备,后者包含在专有软件上运行的专有软件硬件。为了使这种方法具有成本效益,虚拟网络功能(VNF)至关重要。在以下情况下在标准CPU架构上运行时,能够获得足够的性能,吞吐量和延迟管理程序的控制。原始的ETSI NFV白皮书概述了该计划的目标和高层架构,将DPDK与多核处理器和电信级一起确定为NFV的关键启用技术虚拟化平台。大部分电信流量由小数据包组成;没有DPDK,瓶颈与在Linux内核中处理这些数据包相关联将阻止VNF达到所需的性能水平。但是,通过在VNF本身和虚拟交换机(vSwitches)中利用DPDK,开发人员能够实现高吞吐量和低延迟,从而使NFV概念成为可行且具有成本效益的固定功能设备的替代品。
尽管NFV的最初前提是在标准服务器上运行虚拟化工作负载,但现在重点是加速平台,包括智能网络接口卡(SmartNIC)和/或图形处理单元(GPU),这样可以大大减少主机CPU资源需求,从而节省大量的CAPEX和OPEX。工作是DPDK社区中正在进行的工作,以确保SmartNIC和GPU都可以作为DPDK的加速器进行接口,当系统中有SmartNIC和GPU资源时,使应用程序能够利用它们。
误区 #2 智能网卡会杀死 DPDK
在SmartNIC本身上,有一些使用DPDK的SmartNIC体系结构将数据包移入用户的用户空间。在NIC上运行的操作系统。DPDK还提供了与SmartNIC的接口,从而简化了相互之间的交互。智能网卡。无论是基于ASIC,CPU,FPGA还是NPU的DPDK都能为SmartNIC增加价值。
Linux 基金会和 DPDK
在2017年,DPDK加入Linux基金会,一个以为促进开源技术广泛合作的中立家园。现在,DPDK项目包括一个核心软件项目,DPDK本身以及各种 与DPDK密切相关的较小子项目。DPDK的核心项目由许多软件git组成存储库,包括主存储库,几个“下一个”存储库,这些存储库用于将更改应用到存储库的特定部分将DPDK放入主存储库和稳定发行版存储库之前。每个项目都有自己的维护者和维护过程。
DPDK的治理是由两个不同的委员会(管理董事会和技术委员会)推动的。管理董事会负责预算,市场营销,实验室资源,管理,法律和许可问题。技术委员会负责技术问题,包括批准新的子项目,弃用旧的子项目以及解决技术纠纷。这两个委员会是对等的,并且一起监督DPDK项目。BSD下提供了主要的DPDK代码许可,而与Linux内核相关的部分则根据GPL许可。
Linux基金会在世