论文部分内容阅读
网络功能虚拟化(Network FunctionVirtualization,NFV)是通信运营商维护和改良服务的极大助力。运营商用通用的软件取代传统的硬件设备来实现种种网络功能,从而有效缩减业务的运营成本和操作成本。当然,新兴的技术往往也伴随着挑战,软件的网络功能必须提高自己的性能来符合实际的需求。各种软硬件优化手段都可以用于提高网络功能的性能,在软件方面,高速包转发框架DPDK(Data Plane Development Kit)提供了数据面加速的大多数优化手段。同时,在硬件层面也有很多针对I/O和内存访问的加速技术。DPDK提供了一种流水线模型,可以将一个网络功能分成多个步骤,将每一个步骤都视作独立的线程部署于多核系统之上,一个报文在其处理过程中会途径多个线程,发生多次数据交换。这种多线程的软件在多核系统上部署时需要谨慎选择放置策略,要同时考虑到硬件平台上的加速技术和流水线模型本身的特性。多核系统中的NUMA(Non Uniform Memory Access)架构使得远程内存访问的开销比本地内存访问要大。在放置流水线模型的网络功能时应针对特定的硬件特性给出优化策略,从而更好的利用各项软硬件加速技术,提高网络功能整体的性能。对于网络功能的放置,现有研究解决问题的角度都略显宏观,并没有关注网络功能内部的结构,只是将其视作一个有计算资源需求的放置单位。本研究对NFV中网络功能的资源分配和放置问题作出了细节的扩充,关注的是流水线处理模型下多线程网络功能内部的每一个子功能线程与NUMA架构多核系统中的核心映射。本文主要的工作成果可以归纳如下:(1)本研究分析了流水线模型的多线程网络功能在多核系统上运行时的各种影响性能的因素。网络功能基于DPDK的包转发框架开发,利用到了多种数据面加速技术,流水线架构本身也会对报文处理带来一部分数据传输的开销。在硬件方面,DDIO(Direct DataIO)技术对网卡的收发包进行加速,NUMA架构对内存访问也进行了优化。针对综上各种软硬件加速技术,本文分析了可能造成性能下降的因素和相应的优化点。(2)本研究在总结现有NFV资源分配和放置问题研究工作的基础上提出了线程级别的放置,针对流水线的特性建立了转发路径图模型,还对底层使用了 NUMA架构的硬件资源进行建模。最后把流水线网络功能在多核系统上的放置建模为一个整数线性规划问题,给出了相应的物理约束,并定义了使放置后功能内部转发路径延迟最低,且流水线生产最平衡的目标。(3)针对提出的优化目标,本文给出了两类不同的线程放置算法。第一种是在线程可以独占处理器核心的情况下,尽量使整个流水线内部转发路径的延迟最低的最小距离映射算法。其次提出的是当多个线程可以分享一个处理器核心的运行时间时,为每一个线程选择合适的处理器核心的核心绑定算法。本文首先介绍了网络功能虚拟化背景下对流水线模型网络功能进行合理放置的研究意义和价值,然后介绍了相关领域研究的现状和存在的问题,并提出了本文的研究挑战和研究路线。接着,本文对DPDK、硬件方面的加速技术和流水线处理模型等关键技术进行了介绍。之后本文给出了软硬件的模型,将其建模为整数线性规划问题,给出约束和目标,并提出了放置的算法。然后通过实验验证了各项影响网络功能性能的因素和本文算法的有效性。最后是对全文的总结与展望。