前言

近两年,经过业界孜孜不倦的努力,NFV技术已取得长足的进步,从以往简单的Po C功能验证和初级的标准规范制定,发展到近期在编排、控制与基础设施层有大量的开源项目涌现,如OpenMANO、ODL、ONOS、OpenStack、OVS等。同时,基于各类固网/移动电信业务的VNF试点已在全球普遍开展。NFV所需的支撑技术,如Cloud OS、NFVI及VIM等组件也出现了商用解决方案。另外,NFV在转发性能方面也取得了长足进步,各类基于DPDK技术的单服务器转发能力已经超过100 Gbit/s,思科最新的FDio开源虚拟交换机单服务器(24核)的混合分组长转发性能已超过500 Gbit/s,这些都是令人鼓舞的成就。

DPDK引起我们的关注并非偶然,熟悉电信网络的朋友都知道,移动网的PGW网元和宽带网络的BRAS类转发设备,都对转发性能有着非常高的要求。如果用x86架构的NFV服务器取代上述设备,由于Linux内核的限制和通用I/O报文读写方式,这种基于传统Linux和虚拟化技术的转发平面万兆端口普遍仅有1 Gbit/s以内的转发能力;而目前的电信级硬件转发设备可以轻松做到64 byte小报文不丢失分组线速转发。这种巨大反差的存在,促使我们努力去了解其内在原因,因此,初期我们对DPDK技术的研究更多是出于兴趣。

作为来自运营商的研发团队,我们更擅长网络相关的系统集成与测试,很少关注底层实现技术,对现代计算机体系结构的理解也较为粗浅;但NFV性能问题又要求团队对高速I/O技术及相关的体系结构、操作系统、虚拟化等技术有深度了解和配置能力。在历时2年多的时间中,团队克服自身不足与重重困难,逐步积累起DPDK在应用与测试方面的使用经验,也与大量网络厂商多次探讨基于DPDK的VNF加速问题。这些积累也帮助我们理解了NFV编程与部署中的并发与核亲和性、巨页与内存管理、NUMA结构等NFV性能的影响因素。DPDK不仅是一个用户态的I/O加速方案,也包含了NFV开发测试环境中所需的高速网络应用样例库以及开发调试和测试工具集。在这个过程中,我们欣喜地看到,有越来越多的开源项目或商用解决方案基于DPDK进行了实现,如ODL SFC项目、OVS DPDK等,DPDK已经成为NFV加速的基础性架构和公认的应用加速接口。

2015年底,我们将一部分成果总结为DPDK技术白皮书1.0版并进行了发布。白皮书包含了我们对DPDK技术的理解,介绍了DPDK应用场景,基于DPDK技术的NFVI转发能力测评,这些测试结果是可重现的。很多读者和朋友对白皮书提供了宝贵意见,根据这些建议,我们后续改进了测试方法,增加了海量流表、多网卡并发等测试项,并发布了白皮书1.2版。以上内容吸引了很多初学读者和运营商相关同行的关注,他们希望我们能系统地介绍一下DPDK入门技术、NFV转发性能优化技术及其相关的评估方法,这成为本书成稿的主要原因。

本书的阅读对象主要是互联网/电信业从事SDN/NFV设计/规划人员、从事网络编程的初中级工程师、NFV技术集成测试工程师。本书可以作为了解DPDK技术和NFV性能评测的初级读物,或作为计算机体系结构、Linux内核技术、虚拟化以及v Switch技术等专业计算机书籍的辅助读物,它就像一条项链,把知识点有机地串接起来,帮助大家理解基本概念及其应用。

本书大致分为3部分:第一部分主要介绍NFV转发性能问题的成因、NFV加速和DPDK引入的背景、DPDK原理与架构、主要库函数工具,帮助读者学习DPDK的主要技术架构、安装部署、代码结构,了解在开发和测试中可以利用的工具和样例库,该部分内容主要来自DPDK白皮书和DPDK开源社区提供的文档及代码,因时间有限,我们并未对所有代码进行评测;第二部分介绍了DPDK相关的NFV性能测试方法学,给出了各个测试例及其测试结果,同时,附录列出了针对不同OS版本和DPDK版本的详细配置方法和测试条件;本书最后一部分针对开发虚拟化网元的网络编程人员,给出了在DPDK驱动、用户态VNF代码移植方面的开发示例,如L3处理队列、收发逻辑核绑定、收发缓冲区设定等,内容虽然简单,但可以作为代码编写或调试的练习案例。

感谢中国电信广州研究院SDN项目团队的各位成员,莫博奇、李鹏、陈前锋、刘其坚等同事为本书提供了大量测试例和测试总结,罗雨佳、刘汉江、欧亮等同事参与了本书部分章节的撰写与修订。同时,也感谢Intel公司的Danny Zhou、朱河清、杨涛、李训、廖阔等专家在DPDK评估中提供的大量技术指导,没有他们的开创性工作,我们无法独立胜任这项艰巨的任务。我们还对武汉绿网深圳灵动智网公司提供的大力协助表示诚挚的感谢,尤其是刘江与陈平两位工程师,他们在前期DPDK研究测试和本书编程技术的撰写中做出了重要贡献,我们对他们及武汉绿网深圳灵动智网公司广大同事的奉献精神深表敬意。最后,我们真心感谢在DPDK测试中为我们无私提供设备和技术指导的各位厂商朋友,希望能与你们继续结伴同行。

衷心希望本书能帮助各位朋友轻松踏上NFV之旅,祝大家旅途愉快!

唐宏

2016年5月于广州