1、DPDK 背景介绍
随着芯片技术与高速网络接口技术的一日千里式发展,报文吞吐需要处 理10Gbps 端口处理能力,世面上大量的 25G、 40G 甚至100G 高速端口已经出现,主流处理器的主频仍停留在 3GHz 左右。
IO 超越 CPU 的运行速率,是横在行业面前的技术挑战。2009 年开始,以 Venky Venkastraen,Walter Gilmore,Mike Lynch为核心的 Intel 团队, 开始了可行性研究, 希望借助软件技术来实现,很快他们取得了一定的技术 突破,设计了运行在 Linux 用户态的网卡程序架构。随后, Intel与 6wind 进行了更进一步的合作,共同交付了早期的 DPDK 软件开发包。2011 年开始, 6wind、Windriver、Tieto、Radisys 先后宣布了对 Intel DPDK 的商业服务 支持。Intel 起初只是将 DPDK以源代码方式分享给少量客户,作为评估IA 平台和硬件性能的软件服务模块, 随着时间推移与行业的大幅度接受, 2013 年Intel 将 DPDK 这一软件以 BSD 开源方式,分享在Intel的网站上,供开发者免费下载。
2013 年 4 月, 6wind 联合其他开发者成立了 www.dpdk.org的开源社区, DPDK 走上 了开 源的大道 。DPDK 在 代码开 源 后, 任何开发 者被 允 许通 过 www.dpdk.org 提交代码,随着开发者社区进一步扩大,Intel 持续加大了在 开源社区的投入, 同时在 NFV 浪潮下,越来越多的公司和个人开发者加入了 这一社区,比如 Brocade,Cisco,RedHat, VMWARE, IBM,他们不再只是 DPDK 的消费者,角色向生产者转变,开始提供代码,对DPDK的代码进行优化, 整理。起初 DPDK完全专注于Intel的服务器平台技术,专注于利用处理器与芯片组高级特性, 支持 Intel 的网卡产品线系列。
DPDK 2.1 版本在 2015 年 8 月发布, 几乎所有行业主流的网卡设备商都已经加入了 DPDK 社区, 提供源代码级别支持。例如 Emulex 收购的 Broadcom 网卡,Mellanox,Chelsio以及Cisco等等。另外除了支持通用网卡之外,能否将DPDK应用在特别的加速芯片上,是一个有趣的话题,有很多工作在进行中, Intel 最新提交了用于 Crypto 设备的接口设计接口 ,可以利用类似 Intel的QuickAssit的硬件加速单元, 实现一个针对数据包加解密与压缩处理的软件接口。
在多架构支持方面, DPDK社区也取得了很大的进展, IBM中国研究院的 祝超博士,启动了将 DPDK 移植到 Power 体系架构的工作,Freescale的中 国开发者也参与修改,Tilera与Ezchip的工程师也花了不少精力将DPDK 运行在 Tile 架构下。很快 DPDK 从单一的基于 Intel 平台为基石的软件, 逐 步演变成一个相对完整的生态系统, 覆盖了多个处理器, 多个以太网和硬件加速技术。
在 Linux 社区融合方面, DPDK 也开始和一些主流的 Linux 社区合作,并 得到了越来越多的响应。作为Linux 社区最主要的贡献者之一RedHat,尝 试了在 Fedora Linux 集成了 DPDK;接着Redhat Enterprise Linux在安装 库里也加入DPDK支持,用户可以自动下载安装DPDK扩展库。Redhat 工程 师还尝试了将 DPDK与 Container 集成测试, 公开发布了运行结果。传统虚 拟化的领导者 VMWARE 的工程师也加入了 DPDK 社区,负责 VMXNET3-PMD 模块的维护。 Canonical 在 Ubuntu 15 中加入了 DPDK 的支持。