论文摘要
近年来,随着云计算数据中心技术的发展,虚拟化技术得到了广泛的应用,越来越多的公司或组织将自己的应用或服务部署在数据中心的虚拟机中,以虚拟机为单位进行管理并提供服务,这种虚拟化技术优点是可以整合服务器、提高服务器利用率,同时提高业务的连续性和弹性。但是,虚拟化技术同时也给数据中心的部署带来了新的挑战,即如何解决数据中心网络边缘虚拟机之间的通信问题。为了解决数据中心网络边缘虚拟机之间的通信问题,业界提出了VEB(Virtual Ethernet Bridge)机制,VEB机制的观点是在数据中心网络边缘物理结点内部部署虚拟交换机来解决数据中心网络边缘的通信问题。在数据中心服务器中以纯软件方式实现的VEB叫做vSwitch(虚拟交换机),如开源虚拟交换机Open vSwitch就是这类产品。vSwitch一般工作在系统的VMM (Virtual Machine Monitor)层,具有较好的数据包转发性能,能够在本地完成本地虚拟机之间的通信。但是由于运行时受到系统CPU、内存带宽等资源的限制,vSwitch也存在一些缺点,当系统可用资源较少时vSwitch对数据包的处理效率会比较低,而当系统可用资源比较多时,如果虚拟机之间有大量流量需要处理,vSwitch处理数据包时将会占用大量系统资源,影响宿主主机的资源分配弹性。随着数据中心中业务流量的增加,虚拟机之间的通信的数据流量越来越大,vSwitch的缺点导致其难以满足数据中心中虚拟机之间通信流量快速增加的要求,而且vSwitch过多的消耗宿主主机的系统资源也会对数据中心造成影响,无法满足数据中心发展要求。针对vSwitch运行时的缺点,本文以开源的虚拟交换机Open vSwitch作为vSwitch的研究对象,对vSwitch进行了研究分析。Open vSwitch分为用户态及核心态,其核心态是完成数据包处理的关键部分,影响着整体数据包处理性能,当有大量数据包需要处理时,核心态的工作机制也会导致其占用大量资源。针对以上分析,本文提出了使用硬件方式实现Open vSwitch核心态功能的方案,希望通过硬件加速数据包的处理。本文以NetFPGA为硬件基础,在NetFPGA中实现Open vSwitch核心态功能以替换Open vSwitch原有部分功能,并将Open vSwitch用户态与NetFPGA实现的核心态结合。最后通过对修改后的系统与原有的Open vSwitch性能及资源消耗的对比,验证了修改后的系统在性能及资源消耗方面的优势。