虚拟网络优化方法与系统技术方案

技术编号:15519877 阅读:115 留言:0更新日期:2017-06-04 09:35
本发明专利技术涉及一种虚拟网络优化方法,包括组包步骤、拆包步骤和共享授权页面步骤,其中:组包步骤,将拥有相同源和目的链路地址的包组成组合网络包,生成组合网络包;共享授权页面步骤,接收该组合网络包,并将该组合网络包拷贝至虚拟机的前端驱动;拆包步骤,接收来自该前端驱动的该组合网络包,并根据I/O应答确定该组合网络包中的小网络包,对该组合网络包进行拆分,并将拆分后得到的小网络包交由上层网络协议栈进行处理。本发明专利技术通过接收端组包与共享授权页面的方式,优化网络虚拟化的整体性能。

Virtual network optimization method and system

The invention relates to a virtual network optimization method, including the steps, package unpacking steps and shared page authorization steps, including: Pack steps, will have the same source and destination address of the packet link combination network packet, network packet generation; sharing authorization page step, receiving the combination of network packets, and the front end the combination of network packet copy to the virtual machine drive; unpacking steps, receiving the network packet from the combination of front drive, and according to the I/O response to determine the combination of network packets in small network packets, the combination of network packet split, and the split the small network packet be handled by the upper network protocol stack. The invention optimizes the overall performance of the network virtualization by receiving a packet and a shared authorization page.

【技术实现步骤摘要】
虚拟网络优化方法与系统
本专利技术涉及网络虚拟化领域,特别是涉及一种虚拟网络优化方法与系统。
技术介绍
虚拟化是云计算的基础技术,网络虚拟化则是虚拟化技术的重要支撑,其对云计算平台的整体效率有着至关重要的影响。网络虚拟化的性能优化十分具有挑战性,高速的网络设备要在很短的时间间隔内收发大量的网络包,而每个网络包的处理不可避免的伴随着额外的虚拟化开销。虚拟网络的发送过程可以利用下移、零拷贝以及Nagle算法优化等方法来优化,但是由于虚拟网络软件栈的特殊性,其接收过程可用的优化手段较少,导致接收性能受虚拟化影响更大。网络接收,尤其是网络小网络包(小包)的接收,是诸如LVS(LinuxVirtualServer)、Memcached等的网络服务的主要性能瓶颈。虚拟网络中的网络包处理将占用一定的CPU资源,且随着新一代的10GbE、40GbE高速以太网的应用与普及,大量的网络包处理将导致CPU饱和、网络性能的扩展性降低。网络虚拟化接收过程的开销一般分为两类:每字节(Per-Byte)开销和每包(Per-Packet)开销。每字节开销主要包括数据拷贝、校验计算等的开销,传统上是网络接收过程的主要开销;随着现代CPU体系结构的发展,特别是激进的预取策略以及缓存直接访问技术的发展,每字节开销得到了大幅优化。每包开销,例如协议处理和缓冲区管理,成为网络接收的主要开销;对于网络小网络包而言,由于需拷贝、校验的数据较少,包处理开销占比更是凸显。与物理环境相比,软件虚拟网络在处理路径上多出了软件网桥与防火墙、后端驱动、前端驱动等环节,引入了额外的协议栈处理、缓冲区拷贝、上下文切换等开销,故而降低每包处理开销对优化虚拟网络性能至关重要。虚拟机设备队列(VirtualMachineDeviceQueue,VMDq)技术由硬件网卡根据MAC地址或VLAN来进行包的分类与排序,并发送到指定的虚拟机,虚拟机监视器(VirtualMachineMonitor,VMM)只需进行相对简单的数据拷贝即可实现虚拟交换,大幅降低了CPU的资源占用。单根I/O虚拟化(Single-RootI/OVirtualization,SR-IOV)技术由硬件网卡提供虚拟功能(VirtualFunction,VF)并直通至虚拟机,不需软件模拟网卡、不占CPU资源,由网卡实现高效的共享,可获得媲美裸机的I/O性能。此类技术虽然能够提供最佳的虚拟化性能,但其要求特定的硬件支持,且由于依赖硬件平台,虚拟机的迁移与管理相对复杂,在成本、灵活性、应用面等方面不及软件虚拟化的方式。事实上,在主流的云计算提供商的服务中,标准的虚拟机配置仍然大都采用软件的I/O虚拟化。
技术实现思路
为了解决上述技术问题,本专利技术目在于,在现有的网络虚拟化的架构下,优化虚拟网络接收过程中的每网络包开销。通过将多个小网络包组合成大数据包的方式,来减少虚拟机监视器和网络栈处理网络包的次数。在虚拟机前端和后端驱动程序之间通过共享授权内存的方式通信,使尽可能多的网络包共用同一授权页面,并结合空闲页面及引用缓冲的方法,减少宝贵的内存页面映射和授权开销,从而降低虚拟网络接收过程中的每网络包开销。通过接收端组包与共享授权页面的方式,优化网络虚拟化的整体性能。具体地说,本专利技术公开了一种虚拟网络优化方法,其中该方法,包括组包步骤、拆包步骤和共享授权页面步骤,其中:组包步骤,将拥有相同源和目的链路地址的包组成组合网络包,生成组合网络包;共享授权页面步骤,接收该组合网络包,并将多个该组合网络包通过单一内存页面拷贝至虚拟机的前端驱动;拆包步骤,接收来自该前端驱动的该组合网络包,并根据I/O应答确定该组合网络包中的小网络包,对该组合网络包进行拆分,并将拆分后得到的小网络包交由上层网络协议栈进行处理。该虚拟网络优化方法,其中该组包步骤包括:步骤S201,将接收到的网络包放入每个CPU的接收队列,并从该接收队列读取该网络包;步骤S202,根据该网络包的目的地址,判断该目的地址是否为虚拟机,若不是,则直接执行步骤S206,若是,则继续执行步骤S203开始组包;步骤S203,从该网络包的套接字缓冲中获取其源链路层地址和目的链路层地址,并对该源链路层地址和该目的链路层地址进行哈希运算,生成哈希结果;步骤S204,根据该哈希结果将该网络包插入至相应的包队列,生成组合网络包;步骤S205,判断组包结束条件,若未满足条件,则继续执行步骤S202进行组包处理,若已满足条件,则执行步骤S206;步骤S206,将该组合网络包交由软件网桥与链路层防火墙进行处理;步骤S207,接收经由步骤S206软件网桥与链路层防火墙处理后的该组合网络包,后端驱动对该组合网络包设定特殊标志。该虚拟网络优化方法,其中该拆包步骤包括:步骤S208,前端驱动接收网络包,并读取该该网络包的I/O应答;步骤S209,根据该I/O应答判断该网络包是否为组合网络包,若不是组合网络包,则执行步骤S211,若是组合网络包,则执行步骤S210;步骤S210,根据该I/O应答将该组合网络包中的小网络包分别拷贝至独立的套接字缓冲中;步骤S211,由客户虚拟机上层网络协议栈进行后续处理。该虚拟网络优化方法,其中该共享授权页面步骤,包括:步骤S310,后端驱动接收到组合网络包时,该后端驱动遍历该组合网络包即以确定该组合网络包的大小;步骤S320,前端驱动检查页面重用缓存是否存在可用的授权页面及引用,若存在可用的页面,则执行步骤S321,直接选取可用的页面并将引用授权至后端驱动;若不存在可用页面,则执行步骤S322,重分配新的页面及引用授权至后端驱动;步骤S330,后端驱动获得该页面的授权,并通过该引用授权将该组合网络包拷贝至该页面;步骤S340,后端驱动根据该组合网络包的大小,判断授权页面剩余空间是否足够拷贝下一个组合网络包,若空间足够,则执行步骤S330继续拷贝数据,若空间足够,则执行步骤S350;步骤S350,通知前端驱动该组合网络包的到达。该虚拟网络优化方法,其中该组包结束条件具体为,判断该接收队列中是否有可组网络包,若没有可组网络包,则为已满足条件;若有可组网络包,则将该组合网络包大小与预先设定好的组合网络包边界阈值相比较,若该组合网络包大于等于该阈值,则为已满足条件;若该组合网络包小于该阈值,则为未满足条件。本专利技术还提出了一种虚拟网络优化系统,其中该系统,包括组包模块、拆包模块和共享授权页面模块,其中:组包模块,用于将拥有相同源和目的链路地址的包组成组合网络包,生成组合网络包;共享授权页面模块,用于接收该组合网络包,并将该组合网络包拷贝至虚拟机的前端驱动;拆包模块,用于接收来自该前端驱动的该组合网络包,并根据I/O应答确定该组合网络包中的小网络包,对该组合网络包进行拆分,并将拆分后得到的小网络包交由上层网络协议栈进行处理。该虚拟网络优化方法,其中该组包模块包括:第一读取模块,用于将接收到的网络包放入每个CPU的接收队列,并从该接收队列读取该网络包;判断模块,用于根据结束条件,决定是否继续组包处理;第一处理模块,用于根据该网络包的目的地址,判断该目的地址是否为虚拟机,以决定是否开始组包,并从该网络包的套接字缓冲中获取其源链路层地址和目的链路层地址,对该源链路层地址和该目的链本文档来自技高网
...
虚拟网络优化方法与系统

【技术保护点】
一种虚拟网络优化方法,其特征在于,该方法,包括组包步骤、拆包步骤和共享授权页面步骤,其中:组包步骤,将拥有相同源和目的链路地址的包组成组合网络包,生成组合网络包;共享授权页面步骤,接收该组合网络包,并通过共用内存页面的方式将该组合网络包拷贝至虚拟机的前端驱动;拆包步骤,接收来自该前端驱动的该组合网络包,并根据I/O应答确定该组合网络包中的小网络包,对该组合网络包进行拆分,并将拆分后得到的小网络包交由上层网络协议栈进行处理。

【技术特征摘要】
1.一种虚拟网络优化方法,其特征在于,该方法,包括组包步骤、拆包步骤和共享授权页面步骤,其中:组包步骤,将拥有相同源和目的链路地址的包组成组合网络包,生成组合网络包;共享授权页面步骤,接收该组合网络包,并通过共用内存页面的方式将该组合网络包拷贝至虚拟机的前端驱动;拆包步骤,接收来自该前端驱动的该组合网络包,并根据I/O应答确定该组合网络包中的小网络包,对该组合网络包进行拆分,并将拆分后得到的小网络包交由上层网络协议栈进行处理。2.如权利要求1所述的虚拟网络优化方法,其特征在于,该组包步骤包括:步骤S201,将接收到的网络包放入每个CPU的接收队列,并从该接收队列读取该网络包;步骤S202,根据该网络包的目的地址,判断该目的地址是否为虚拟机,若不是,则直接执行步骤S206,若是,则继续执行步骤S203开始组包;步骤S203,从该网络包的套接字缓冲中获取其源链路层地址和目的链路层地址,并对该源链路层地址和该目的链路层地址进行哈希运算,生成哈希结果;步骤S204,根据该哈希结果将该网络包插入至相应的包队列,生成组合网络包;步骤S205,判断组包结束条件,若未满足条件,则继续执行步骤S202进行组包处理,若已满足条件,则执行步骤S206;步骤S206,将该组合网络包交由软件网桥与链路层防火墙进行处理;步骤S207,接收经由步骤S206软件网桥与链路层防火墙处理后的该组合网络包,后端驱动对该组合网络包设定特殊标志。3.如权利要求1所述的虚拟网络优化方法,其特征在于,该拆包步骤包括:步骤S208,前端驱动接收网络包,并读取该该网络包的I/O应答;步骤S209,根据该I/O应答判断该网络包是否为组合网络包,若不是组合网络包,则执行步骤S211,若是组合网络包,则执行步骤S210;步骤S210,根据该I/O应答将该组合网络包中的小网络包分别拷贝至独立的套接字缓冲中;步骤S211,由客户虚拟机上层网络协议栈进行后续处理。4.如权利要求1所述的虚拟网络优化方法,其特征在于,该共享授权页面步骤,包括:步骤S310,后端驱动接收到组合网络包时,该后端驱动遍历该组合网络包即以确定该组合网络包的大小;步骤S320,前端驱动检查页面重用缓存是否存在可用的授权页面及引用,若存在可用的页面,则执行步骤S321,直接选取可用的页面并将引用授权至后端驱动;若不存在可用页面,则执行步骤S322,重分配新的页面及引用授权至后端驱动;步骤S330,后端驱动获得该页面的授权,并通过该引用授权将该组合网络包拷贝至该页面;步骤S340,后端驱动根据该组合网络包的大小,判断授权页面剩余空间是否足够拷贝下一个组合网络包,若空间足够,则执行步骤S330继续拷贝数据,若空间足够,则执行步骤S350;步骤S350,通知前端驱动该组合网络包的到达。5.如权利要求2所述的虚拟网络优化方法,其特征在于,该组包结束条件具体为,判断该接收队列中是否有可组...

【专利技术属性】
技术研发人员:郭振兴安仲奇黎斐南李豪李强霍志刚
申请(专利权)人:中国科学院计算技术研究所中国科学院国有资产经营有限责任公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1