论文部分内容阅读
在传统电信产业中,产品由各式各样的硬件设备承载,而随着新技术和服务的创新加速,硬件设备的生命周期越来越短,服务提供商的网络运营日趋复杂,阻碍了业务创新。而随着互联网的快速发展,传统电信业务在面临来自互联网企业OTT(Over The Top)服务的竞争中处于不利地位。服务提供商为打破这种局面,提出了网络功能虚拟化(NFV,Network Function Vitalization),将网络服务与具体的硬件分开,能够以软件的形式交付,并部署在通用的硬件平台上,为运营商提供更强大的业务整合与业务创新能力。网络负载均衡器是NFV热门应用动态业务链的重要中间件,同时欧洲电信标准化协会的标准文稿中也定义了VNF(Virtual Network Function)负载均衡模型,可以说网络负载均衡器是NFV中不可或缺的组件。而在NFV的虚拟化环境中运行现有的软件负载均衡器存在性能低下的问题,因此设计并实现一个面向NFV的高速网络负载均衡系统具有重要的现实意义。 本文基于DPDK(Data Plane Development Kit)框架设计并实现了一个高速网络负载均衡系统,能够运行于常见的虚拟化平台如Xen,KVM等。本文的主要贡献有: 1.针对虚拟化环境对网络数据包传输的影响,设计实现了面向NFV的高速网络负载均衡器架构。数据包处理过程采用多阶段流水线架构,使用CPU亲和性绑定各流水线阶段,使各阶段高效并发执行,并通过无锁环形队列通信,有效地减少线程同步开销。 2.基于DPDK技术,设计并实现了高速数据包接收、分类、处理和发送处理流程,充分采用零拷贝、用户空间I/O、轮询模式驱动、内存池等技术,避免了处理过程中的数据包拷贝开销和数据包发送、接收的中断开销,减少了内存申请和释放开销。 3.设计并实现了可扩展的负载均衡调度框架,采用常用的轮询调度策略,结合数据包快速分类结果,完成网络请求的均衡调度功能,用户也可根据需求扩展其它调度策略。 4.通过交互式命令行界面的形式提供了丰富的控制和管理功能,包括服务添加、删除,Hash表的维护及信息查询等。信息统计基于线程本地存储技术,并采用全局按需拉取方式,使得大部分统计工作在本地完成,最大限度地减少了统计过程中的锁开销。 功能和性能测试实验表明,该系统能够将网络请求均衡、准确地调度到后台服务集群。与主流开源软件LVS相比,在虚拟化环境下,系统网络吞吐量提高达276%,网络平均延迟降低51%,在1GBE的虚拟网卡上取得了接近线速的转发性能。