DPDK是什么
DPDK 是一款在用户空间中运行的软件加速器,可绕过 Linux 内核并支持数据分组处理应用访问 NIC、CPU 和内存。
做作为一种内核旁路机制,DPDK允许虚拟交换机旁路内核并直接与兼容的网卡通信,使得分组处理方案更加简洁和高效。作为新一代数据平面解决方案,DPDK经历了多年的发展,推出多个版本。目前,DPDK开源项目代码行数达160万,社区投资约2 560万美元,能够支持英特尔Arch/ARM/Power8上的分组I/O加速。借助DPDK,可以将数据分组处理性能最多提高10倍。能够大幅提升数据面性能,让x86架构可以进入到更加强调性能和稳定性的传统网络市场,使运营商在部署NFV时更加得心应手,顺利解决遇到的瓶颈。
DPDK包含了多项组件,多方位提升了系统性能。
Memory Manager(内存管理器):负责内存对象池的分配。内存管理器使用大页面内存来创建内存池,同时也提供了数据对齐的支持来保障对内存通道的访问更加均匀。
Buffer Manager(缓存管理器):通过在内存池中预分配固定长度的缓存,显著的缩短了操作系统在分配和释放缓存所花的时间。
Queue Manager(队列管理器):提供安全的无锁队列,从而使得不同的软件组件在处理数据分组时可以避免一些不必要的等待。
Flow Classification(流分类):提供了高效的基于SSE扩展指令的散列函数,保障数据分组的快速分类处理,从而提高网络吞吐量。
Poll Mode Drivers(轮询模式驱动):针对千兆和万兆网卡的轮询模式驱动,不同于传统的异步中断处理机制,大大提高了数据分组处理性能。
DPDK的影响力
通信行业
通信行业正逐步迁移至虚拟化,以便在其网络环境中增强弹性、灵活性和标准化,随着时间的推移,这种趋势的发展已经变得更加多元化。 SDN、NFV、DPDK、Openflow 和 Open vSwitch 都得以使用。移动网的PGW网元和宽带网络的BRAS类转发设备,对转发性能有着非常高的要求。如果用x86架构的NFV服务器取代上述设备,由于Linux内核的限制和通用I/O报文读写方式,这种基于传统Linux和虚拟化技术的转发平面万兆端口普遍仅有1 Gbit/s以内的转发能力;而目前的电信级硬件转发设备可以轻松做到64 byte小报文不分组丢失线速转发。
下一代防火墙
持续优化网路安全需要不断改进防火墙的实施,这将受益于DPDK并不断发展。下一代防火墙也可以是 NFV 解决方案的一部分。用于简单数据分组过滤的基本防火墙已演进多年,可以执行更加高级的应用,比如入侵检测与防御 (IPS)、网络杀毒、IPsec、SSL 和应用控制等。这些功能均位于数据平台,要求对数据流进行深度数据包检查、具备加密和压缩功能,以及执行大量数据分组内容处理。下一代防火墙在设计时运用了采用DPDK的 Wind River 网络加速平台以及QuickAssist 。DPDK 提供了相应的机制,支持通过其他高性能方法来替代 Linux 系统调用,从而避免 Linux 内核出现的常见问题。Wind River 网络加速平台能够加速 Apache 服务器 等本机 Linux 应用,并为移植在网络加速引擎上的安全应用提供更高的加速性能。
大数据分析
关于涉及大数据分析的使用案例,Aspera公司与英特尔公司研究了超高速数据传输解决方案,该解决方案能够在裸机和虚拟化硬件平台上帮助商用互联网连接达到可预测的超高 WAN 传输速度,包括超过往返时间为数百毫秒的网络,以及常见远距离 WAN 几个百分点的数据分组丢失率。借助DPDK,软件工程师可减少收发数据分组所需的内存副本数量。Aspera公司因此成功地将测试系统上单个流数据的传输速度提高至 37.75 Gbit/s,加上以太网帧和 IP 数据分组标头,网络利用率达到了 39 Gbit/s。通过在基于内核的虚拟机 (KVM) 管理程序上进行测试,对虚拟化平台的传输性能开始了初步研究,并实现了 16.1 Gbit/s 的初始传输速度。
电网
作为全球最大的电力公司,中国国家电网公司承担着向大约 11 亿人口供电的坚决任务。 SGCC 依赖高性能计算集群确保电网的安全和平稳运行。伴随着中国电网规模的不断扩大,SGCC 急需增强其全数字实时仿真系统,以满足国家日益增长的电力供应需求。 DPDK 是其中一项关键组件,帮助将 ADPSS 的延迟降到 50μs之内。这也是为 3,000 台发电机和 30,000 根电网线路创建大型电力系统仿真的必要条件。
中文书名:DPDK应用指南
英文书名:DPDK Application Basis
作者:唐宏,柴卓原,任平,王勇,等 编著
出版社:人民邮电出版社
定价:49.00元
开本:185 mm×260 mm
ISBN:978-7-115-42604-8
内容提要
本书不仅深入浅出地介绍了DPDK的基础原理和安装调试方法,还详细介绍了DPDK在NFV中的应用场景和测试方法,并叙述了DPDK应用开发的技术细节和实践经验,是DPDK的入门必读,是了解NFV加速转发技术的绝佳指南。
作者简介
唐宏,中国电信股份有限公司广州研究院数据通信研究所所长,中国电子学会云计算专家委员会委员,中国SDN产业联盟需求场景与网络架构组组长,主要从事 IP多媒体网络的研发工作。
读者对象
互联网/电信业从事SDN/NFV设计/规划人员、从事网络编程的初中级工程师、NFV技术集成测试工程师。
目 录
第一部分 基础原理
第 1 章 背景概述
1.1 产业背景
1.2 DPDK 开源社区
第 2 章 DPDK 技术简介
2.1 软件架构
2.2 巨页技术
2.3 轮询技术
2.4 CPU 亲和技术
2.5 DPDK 性能影响因素
第 3 章 DPDK 库函数
3.1 EAL 库
3.2 Ring 库
3.3 Mempool 库
3.4 mbuf 库
3.5 PMD 驱动
3.6 IVSHMEM 库
3.7 Timer 库
3.8 LPM 库
3.9 Hash 库
3.10 多进程支持
...
↓↓↓ 点击"阅读原文" ,了解更多详情