一种半虚拟化网卡内核加速模块升级方法和装置制造方法及图纸

技术编号:14235498 阅读:104 留言:0更新日期:2016-12-21 09:19
本申请的目的是提供一种半虚拟化网卡内核加速模块升级方法和装置,所述方法包括:将第一半虚拟化网卡内核加速模块的网络流量切换至用户态进行传输;移除第一半虚拟化网卡内核加速模块;插入第二半虚拟化网卡内核加速模块;将用户态进行传输的网络流量切换至第二半虚拟化网卡内核加速模块进行传输。本申请的半虚拟化网卡内核加速模块升级方法和装置,网络流量在内核态和用户态之间的切换不会造成虚拟机网络流量的波动,实现半虚拟化网卡内核加速模块的升级对于用户而言是无法感知的,不会影响用户体验。

Method and device for updating semi virtual network card core acceleration module

The invention aims to provide a virtual network kernel acceleration module upgrade method and device, the method comprises the following steps: the first half of the virtual NIC kernel network flow switch to user mode acceleration module for transmission; remove the virtual network kernel half acceleration module; the second is inserted into the virtual NIC kernel acceleration module; the virtual network kernel network traffic to switch to the second user state transmission speed module for transmission. Virtual NIC kernel this application acceleration module upgrade method and device, switch is not network traffic between kernel mode and user mode virtual machine caused by the fluctuation of the network bandwidth, achieve virtual NIC kernel acceleration module upgrade is imperceptible to the user, will not affect the user experience.

【技术实现步骤摘要】

本申请涉及计算机领域,尤其涉及一种半虚拟化网卡内核加速模块升级方法和装置
技术介绍
半虚拟化网卡内核加速模块(vhost-net)是基于内核的虚拟机(KVM,Kernel-based Virtual Machine)的重要组件,vhost-net模块可以提升KVM虚拟机网络约30%的性能。现有技术中,对于vhost-net模块升级时,需要将虚拟机关机,移除原vhost-net模块后,插入新的vhost-net模块,再重新启动虚拟机。这种vhost-net模块的升级方式必须暂时关闭虚拟机,关闭期间会造成服务中断,对于服务提供商和客户都会带来不良影响。
技术实现思路
本申请的一个目的是提供一种半虚拟化网卡内核加速模块升级方法和装置。根据本申请的一个方面,提供了一种半虚拟化网卡内核加速模块升级方法,包括:将第一半虚拟化网卡内核加速模块的网络流量切换至用户态进行传输;移除第一半虚拟化网卡内核加速模块;插入第二半虚拟化网卡内核加速模块;将用户态进行传输的网络流量切换至第二半虚拟化网卡内核加速模块进行传输。根据本申请的另一个方面,提供了一种半虚拟化网卡内核加速模块升级装置,包括:第一模块,用于将第一半虚拟化网卡内核加速模块的网络流量切换至
用户态进行传输;第二模块,用于移除第一半虚拟化网卡内核加速模块;第三模块,用于插入第二半虚拟化网卡内核加速模块;第四模块,用于将用户态进行传输的网络流量切换至第二半虚拟化网卡内核加速模块进行传输。与现有技术相比,本申请在对半虚拟化网卡内核加速模块进行升级时,首先将网络流量由内核态切换至用户态进行传输,然后将升级后的半虚拟化网卡内核加速模块插入系统,再将原先由用户态转发的网络流量切换回内核态由新的半虚拟化网卡内核加速模块进行转发,不需要中断服务,网络流量在内核态和用户态之间的切换不会造成虚拟机网络流量的波动,实现半虚拟化网卡内核加速模块的升级对于用户而言是无法感知的,不会影响用户体验。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1示出根据本申请一个方面的半虚拟化网卡内核加速模块升级装置的结构示意图;图2示出根据本申请又一个方面的半虚拟化网卡内核加速模块升级装置的结构示意图;图3示出根据本申请一个方面的半虚拟化网卡内核加速模块升级方法的流程示意图;图4示出根据本申请又一个方面的半虚拟化网卡内核加速模块升级方法的流程示意图。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式下面结合附图对本申请作进一步详细描述。图1示出根据本申请一个方面的半虚拟化网卡内核加速模块升级装置
的结构示意图。如图1所示,该半虚拟化网卡内核加速模块升级装置1包括:第一模块11、第二模块12、第三模块13和第四模块14。其中,第一模块11,用于将第一半虚拟化网卡内核加速模块的网络流量切换至用户态进行传输;第二模块12,用于移除第一半虚拟化网卡内核加速模块;第三模块13,用于插入第二半虚拟化网卡内核加速模块;第四模块14,用于将用户态进行传输的网络流量切换至第二半虚拟化网卡内核加速模块进行传输。在此,半虚拟化网卡内核加速模块可以采用KVM虚拟化的vhost-net模块,vhost-net模块用于机器虚拟器(QEMU)半虚拟化网卡(virtio-net)加速。第一半虚拟化网卡内核加速模块是指升级前的vhost-net模块,第二半虚拟化网卡内核加速模块是指升级后新的vhost-net模块。第一模块11将旧的vhost-net模块的网络流量切换至用户态进行传输。在用户态下,虚拟机在发送或接收数据包时,首先陷入内核态,然后再返回到用户态的QEMU(机器虚拟器)进程进行处理,最后通过虚拟以太网网络设备(TAP设备)经由网桥、物理网卡进行网络数据包的发送或接收。在将旧的vhost-net模块的网络流量切换至用户态进行转发后,第二模块12可以移除旧的vhost-net模块,而网络服务不被中断。此后第三模块13插入新的vhost-net模块。第四模块14将用户态进行转发的网络流量切换至内核态由升级后新的vhost-net模块进行传输。内核态下,虚拟机陷入内核态后,不需要再返回到用户态,而由新的vhost-net模块的内核线程进行处理,通过虚拟以太网网络设备(TAP设备)经由网桥、物理网卡进行数据包的发送或接收。通过用户态和内核态的互相切换,从而实现了在移除旧的vhost-net模块并插入新的升级后的vhost-net模块时,不会中断网络服务。图2示出根据本申请又一个方面的半虚拟化网卡内核加速模块升级装置的结构示意图。如图2所示,该半虚拟化网卡内核加速模块升级装置1包括:第一模块11、第二模块12、第三模块13和第四模块14。其中,第一模块11,用于将第一半虚拟化网卡内核加速模块的网络流量切换至用户态进行传输;第二模块12,用于移除第一半虚拟化网卡内核加速模块;第三模块13,用于插入第二半虚拟化网卡内核加速模块;第四
模块14,用于将用户态进行传输的网络流量切换至第二半虚拟化网卡内核加速模块进行传输。在此,半虚拟化网卡内核加速模块可以采用KVM虚拟化的vhost-net模块,vhost-net模块用于机器虚拟器(QEMU)半虚拟化网卡(virtio-net)加速。第一半虚拟化网卡内核加速模块是指升级前旧的vhost-net模块,第二半虚拟化网卡内核加速模块是指升级后新的vhost-net模块。第一模块11将旧的vhost-net模块的网络流量切换至用户态进行传输。在用户态下,虚拟机在发送或接收数据包时,首先陷入内核态,然后再返回到用户态的QEMU进程进行处理,最后通过虚拟以太网网络设备(TAP设备)经由网桥、物理网卡进行数据包的发送或接收。在将旧的vhost-net模块的网络流量切换至用户态进行转发后,第二模块12可以移除旧的vhost-net模块,而网络服务不被中断。此后第三模块13插入新的vhost-net模块。第四模块14将用户态进行转发的网络流量切换至内核态由升级后新的vhost-net模块进行传输。内核态下,虚拟机陷入内核态后,不需要再返回到用户态,而由新的vhost-net模块的内核线程进行处理,通过TAP设备(虚拟以太网网络设备)经由网桥、物理网卡进行数据包的发送或接收。通过用户态和内核态的互相切换,从而实现了在移除旧的vhost-net模块并插入新的升级后的vhost-net模块时,不会中断网络服务。具体地,第一模块11包括:第一一子模块111、第一二子模块112和第一三子模块113。其中,第一一子模块111,用于机器虚拟器进程获取共享内存的使用状态。第一二子模块112,用于所述机器虚拟器进程控制对共享内存中网络数据包的发送和/或接收。第一三子模块113,用于停止所述第一半虚拟化网卡内核加速模块内核线程的轮询。在此,第一一子模块111使QEMU进程获取共享内存(vring)的使用状态,第一二子模块112使QEMU进程控制对共享内存中网络数据包的发送和/或接收。第一三子模块113停止旧的vhost-net模块内核线程在TAP设备上的收/发网络数据包的轮询(poll),将旧的vhost-net本文档来自技高网
...
一种半虚拟化网卡内核加速模块升级方法和装置

【技术保护点】
一种半虚拟化网卡内核加速模块升级方法,其中,所述方法包括:将第一半虚拟化网卡内核加速模块的网络流量切换至用户态进行传输;移除第一半虚拟化网卡内核加速模块;插入第二半虚拟化网卡内核加速模块;将用户态进行传输的网络流量切换至第二半虚拟化网卡内核加速模块进行传输。

【技术特征摘要】
1.一种半虚拟化网卡内核加速模块升级方法,其中,所述方法包括:将第一半虚拟化网卡内核加速模块的网络流量切换至用户态进行传输;移除第一半虚拟化网卡内核加速模块;插入第二半虚拟化网卡内核加速模块;将用户态进行传输的网络流量切换至第二半虚拟化网卡内核加速模块进行传输。2.根据权利要求1所述的方法,其中,所述将第一半虚拟化网卡内核加速模块的网络流量切换至用户态进行传输包括:机器虚拟器进程获取共享内存的使用状态;所述机器虚拟器进程控制对共享内存中网络数据包的发送和/或接收。3.根据权利要求2所述的方法,其中,所述将第一半虚拟化网卡内核加速模块的网络流量切换至用户态进行传输还包括:停止所述第一半虚拟化网卡内核加速模块内核线程的轮询。4.根据权利要求1至3中任一项所述的方法,其中,所述移除第一半虚拟化网卡内核加速模块包括:清理所述第一半虚拟化网卡内核加速模块的资源。5.根据权利要求1至4中任一项所述的方法,其中,所述插入第二半虚拟化网卡内核加速模块包括:初始化所述第二半虚拟化网卡内核加速模块的资源。6.根据权利要求1至5中任一项所述的方法,其中,所述将用户态进行传输的网络流量切换至第二半虚拟化网卡内核加速模块进行传输包括:所述第二半虚拟化网卡内核加速模块创建内核线程;所述第二半虚拟化网卡内核加速模块内核线程获取共享内存的使用状态;所述第二半虚拟化网卡内核加速模块内核线程控制对共享内存中网络数据包的发送和/或接收。7.根据权利要求6所述的方法,其中,所述将用户态进行传输的网络流量切换至第二半虚拟化网卡内核加速模块进行传输还包括:开启所述第...

【专利技术属性】
技术研发人员:张献涛傅俊康
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1