.html
本章分为两节,第一节介绍数据平面开发套件DPDK(Data Plane Development Kit)的基础知识,第二节介绍DPDK盒子的使用方法。
本节首先介绍DPDK出现的行业背景,然后介绍DPDK概述、DPDK关键技术、DPDK开源代码,最后介绍DPDK Lib库。
在过去10年里,以太网接口技术也经历了飞速发展。从早期主流的10Mbit/s与100Mbit/s,发展到千兆网(1Gbit/s)。到如今,万兆(10Gbit/s)网卡技术成为数据中心服务器的主流接口技术,近年来,Intel等公司还推出了40Gbit/s、100Gbit/s的超高速网络接口技术。而CPU的运行频率基本停留在10年前的水平,严重阻碍了速度的提升,为了迎接超高速网络技术的挑战,DPDK(Data Plane Development Kit),一个以软件优化为主的数据面技术应时而生,它为今天NFV(Network Function Virtualization)技术的发展提供了绝佳的平台可行性。
网络处理器能够迅速将数据报文接收入系统,比如将64字节的报文以10Gbit/s的线速也就是14.88Mp/s(百万报文每秒)收入系统,并且交由CPU处理,这在早期Linux和服务器平台上无法实现。传统上,网卡驱动程序运行在Linux的内核态,以中断方式来唤醒系统处理,这和历史形成有关。早期CPU运行速度远高于外设访问,所以中断处理方式十分有效,但随着芯片技术与高速网络接口技术的一日千里式发展,报文吞吐需要高达10Gbit/s的端口处理能力,市面上已经出现大量的25Gbit/s、40Gbit/s甚至100Gbit/s高速端口,主流处理器的主频仍停留在3GHz以下。I/O超越CPU的运行速率,是横在行业面前的技术挑战。用轮询来处理高速端口开始成为必然,这构成了DPDK运行的基础。
在理论框架和核心技术取得一定突破后,Intel与6wind进行了合作,交由在法国的软件公司进行部分软件开发和测试,6wind向Intel交付了早期的DPDK软件开发包。2011年开始,6wind、Windriver、Tieto、Radisys先后宣布了对Intel DPDK的商业服务支持。Intel起初只是将DPDK以源代码方式分享给少量客户,作为评估IA(Intel Architecture)平台和硬件性能的软件服务模块,随着时间推移与行业的大幅度接受,2013年Intel将DPDK这一软件以BSD开源方式分享在Intel的网站上,供开发者免费下载。2013年4月,6wind联合其他开发者成立www.dpdk的开源社区,DPDK开始走上开源的大道。
什么是DPDK?对于用户来说,它可能是一个性能出色的包数据处理加速软件库;对于开发者来说,它可能是一个实践包处理新想法的创新工场;对于性能调优者来说,它可能又是一个绝佳的成果分享平台。当下火热的网络功能虚拟化,则将DPDK放在一个重要的基石位置。虽然很难用短短几语就勾勒出DPDK的完整轮廓,但随着认识的深入,我们相信你一定能够认可它传播的那些最佳实践方法,从而将这些理念带到更广泛的多核数据包处理的生产实践中去。DPDK最初的动机很简单,就是证明IA多核处理器能够支撑高性能数据包处理。随着早期目标的达成和更多通用处理器体系的加入,DPDK逐渐成为通用多核处理器高性能数据包处理的业界标杆。
如今,DPDK 应该已经很好地回答了IA多核处理器是否可以应对高性能数据包处理这个问题。而解决好这样一个问题,也不是用了什么凭空产生的特殊技术,更多的是从工程优化角度的迭代和实践的融合。简单地盘点一下这些技术,归纳如下。
随着DPDK不断丰满成熟,也将自身逐步拓展到更多的平台和场景。从Linux到FreeBSD,从物理机到虚拟机,从加速网络I/O到加速存储I/O,DPDK在不同纬度发芽生长。在NFV大潮下,无论是NFVI(例如,Virtual Switch)还是VNF,DPDK都用坚实有力的性能来提供基础设施保障。
本节以Release 17.02.0版本为例,介绍DPDK源码包含的以下几个子目录。
文件介绍:
DPDK库文件放在$(RTE_SDK)/lib目录中。习惯上,我们调用库的代码来提供API给应用程序。通常,这里会产生一个静态库(.a),不过内核模块也在这个文件夹下。
在下面表格中对Lib库的功能做进一步说明。
本节主要介绍盒子的硬件结构和连接使用方法。
简单来说,DPDK盒子是一个定制的、Mini的硬件盒子,预装Linux系统和DPDK软件,通过该盒子,使用者可以学习如何使用DPDK,也可以方便的开发基于DPDK的应用。DPDK盒子已经开发过三代了,下面简要介绍一下。
第一代盒子
第一代DPDK盒子的组成:一个单板计算机(MinnowboardTurbot);Intel®Atom™ E3826处理器(1M缓存,1.46GHz);SilverjawLure子板,Mini PCI槽;英特尔以太网控制器I350(双千兆),插入迷你PCI槽。
第二代盒子
第二代DPDK盒子(RCC-DFF 2220系统)组成:双核Intel®Atom™C2338 CPU,2GB内存,2GbE以太网端口,Nano-ITX外形,预装DPDK软件。
第三代盒子
第三代DPDK盒子(DPDK-2340四核系统)组成:四核Intel® Atom™ E3845 CPU,2GB内存,2GbE i210以太网端口,可支持四个RSS序列,预装32GB SSD & DPDK。这次升级,无论处理器,内存,还是外观都得到了大大加强。
第三代DPDK盒子(DPDK-2340四核系统)硬件规格:
使用MinnowBoard Turbot四核心板——开源硬件嵌入式平台,可用于基于4 Core Intel Atom E3845 CPU的DPDK盒子中。
第一代DPDK盒子连接方法
第一代盒子的使用方法可参考第二代盒子。
第二代DPDK盒子连接方法
1. 通过USB2控制线连接电脑和DPDK盒子。
2. 在电脑上下载并安装USB驱动(cp210x USB to UART)。
3. 打开Windows设备管理器并查看COM端口分配。
4. 打开Console客户端工具(如putty、Xshell),选择“Serial”,并将速度(波特率)设置为115200,端口号(根据实际查到的)设置为“COM3”,然后点击“Open”连接盒子。
5. 登陆客户端,用户名“root”,密码“password”。
6. 登录盒子后,可以运行dpdk文件下官方的Examples,如下图所示。
7. 例如,要运行helloworld用例,可按照下面步骤,先编译后执行。
第三代DPDK盒子连接方法
1. 使用HDMI转VGA连接线连接显示器和DPDK盒子。
2. 将键盘和鼠标的USB连接线连接DPDK盒子后面的USB口。
3. 登陆客户端,用户名“test”,密码“tester”。
4. 登录盒子后,可以运行dpdk文件官方的Examples,如下图所示。
5. 例如,要运行helloworld用例,可按照下面步骤,先编译后执行。
其他用例的执行可参考dpdk官方网站,或本系列文档第二部分内容的实例讲解。
DPDK盒子第一个用处就是作为学习DPDK的平台,对于刚刚接触DPDK的初学者,该平台主要的好处是提供了一个“已知”系统:可预测网络界面设置;可预测资源用性;出错范围有限;应用程序以标准方式运行,有已知标记知道要做什么,知道有哪些资源,培训者知道有多少内存,知道典型问题是什么,运行系统时培训者对于能进行的主题很熟悉。如果要建立许多驱动,可以挑选一些驱动,这是一个“已知”系统,可以限制出错范围。对于学生而言,还有一大优势是可以看到、感受到这个盒子,亲自建立系统,获得更多亲身感知的经验。
除了初学者学习如何使用DPDK之外,开发者也可以在小盒子上轻松开发基于DPDK的小微型应用并进行部署,例如,做成一个家庭或者小型企业的网关,充当防火墙,进行流量监控等等。鉴于DPDK盒子的便携性,开发者还可以使用基于DPDK的Pktgen,轻松将DPDK盒子改装成一个发包器,用于支持客户,现场Demo或者其他需要便携式发包仪器的场合。
经过本章的介绍,初学者已经对DPDK原理和DPDK盒子的使用有了基本的认识,更具体的应用案例将在后续的第二章、第三章进行详细介绍,敬请关注。
说明:第三代DPDK盒子因没有安装网卡驱动,导致盒子暂时无法连接外网,用户如果需要连接网络或者下载文件到盒子里,可以用以下方法解决。
1.下载igb的网卡驱动,并拷贝到盒子里,安装驱动,把其中一个网卡绑定到igb驱动,该网口就可以连网使用。
2.先将文件下载到U盘,再通过USB拷贝到盒子里。
3.有USB WiFi的用户,将USB WiFi插到盒子USB口,连接网络。
朱河清等.深入浅出DPDK[M].北京:机械工业出版社,2016:1-10
转载于:.html
本文发布于:2024-02-04 12:54:34,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170707728155762.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |