支持虚拟化硬件加速的虚拟宿主机用户后端升级方法技术

技术编号:37877331 阅读:11 留言:0更新日期:2023-06-15 21:05
本申请提供一种支持虚拟化硬件加速的虚拟宿主机用户后端升级方法,应用于虚拟宿主机用户后端。虚拟宿主机用户后端用于支持半虚拟化架构的虚拟化硬件加速,半虚拟化架构包括前端驱动侧和后端设备侧,虚拟化硬件加速包括前端驱动侧和后端设备侧之间的数据平面直通以及通过虚拟宿主机用户后端实现的前端驱动侧和后端设备侧之间的控制平面协商。该方法不需要虚拟机本身的关闭和重启,也不需要虚拟机迁移,可以满足对支持虚拟化硬件加速的虚拟宿主机用户后端进行改动升级的需求例如对OVS

【技术实现步骤摘要】
支持虚拟化硬件加速的虚拟宿主机用户后端升级方法


[0001]本申请涉及计算机
,尤其涉及一种支持虚拟化硬件加速的虚拟宿主机用户后端升级方法。

技术介绍

[0002]随着计算机科学、云计算、数据中心等发展,虚拟化技术(Virtualization)得到了广泛应用。虚拟化技术指的是将各种计算机硬件资源如内存、磁盘、中央处理器等转换为可以分割且组合的一个或者多个虚拟计算机的配置环境,这样能不受到现有架构和物理配置的限制来应用计算机硬件资源。其中,维蒂奥(也即virtio)架构提供了一种半虚拟化标准用于虚拟机内部通用输入输出设备也即virtio前端与虚拟化处理程序也即virtio后端之间的交互。基于数据平面开发套件(Data Plane Development Kit,DPDK)的多层虚拟交换机(Open vSwitch,OVS)也叫OVS

DPDK,与virtio架构结合提供了virtio网络后端驱动方案也就是虚拟宿主机用户后端(vhost user)。virtio架构结合虚拟化硬件加速(vhost data path acceleration,VDPA)也叫虚拟宿主机数据路径加速,可以实现数据平面与硬件网卡的直通。VDPA意味着将控制信息传递到硬件中,在硬件完成数据平面的配置之后,数据通信过程由在虚拟机和硬件之间直通的数据平面完成而不需要主机的干预。但是,在支持虚拟化硬件加速也即支持VPDA的半虚拟化架构中,控制平面的协商也是基于虚拟宿主机用户协议与OVS

DPDK一起完成。基于半虚拟化架构的网卡、虚拟机等,一般用于流量卸载等复杂组网业务,也因此需要频繁地进行软件改动,例如对OVS

DPDK软件进行改动升级,也就是需要频繁地对支持虚拟化硬件加速的虚拟宿主机用户后端进行改动升级。现有技术中,一种升级方法是将虚拟机关机并移除原来的虚拟宿主机用户后端模块并安装新的虚拟宿主机用户后端模块后再重新启动虚拟机,但是这样会导致虚拟机本身的关闭和重启。另一种升级方法是利用虚拟机迁移将当前宿主机上虚拟机迁移走进行升级后再迁移回来,但是虚拟机迁移需要占用相当的物理资源进行备份也会导致较长的迁移时间,还可能导致迁移期间丢包。还有另外一种升级方法是利用网络流量转发在用户态和内核态之间的切换,这样在移除旧模块和插入新模块期间保持网络服务,但是网络流量转发的切换会导致额外的损耗且在改动升级频繁的场景下也会导致频繁地进行用户态和内核态之间的切换。
[0003]为此,本申请提出了一种支持虚拟化硬件加速的虚拟宿主机用户后端升级方法,不需要虚拟机本身的关闭和重启,也不需要虚拟机迁移,可以满足对支持虚拟化硬件加速的虚拟宿主机用户后端进行改动升级的需求例如对OVS

DPDK软件进行改动升级的需求,有利于虚拟机升级期间的稳定性,且具有效率高、资源占用低的优点。

技术实现思路

[0004]第一方面,本申请提供了一种支持虚拟化硬件加速的虚拟宿主机用户后端升级方法。所述虚拟宿主机用户后端升级方法应用于虚拟宿主机用户后端,所述虚拟宿主机用户后端用于支持半虚拟化架构的虚拟化硬件加速,所述半虚拟化架构包括前端驱动侧和后端
设备侧,所述虚拟化硬件加速包括所述前端驱动侧和所述后端设备侧之间的数据平面直通以及通过所述虚拟宿主机用户后端实现的所述前端驱动侧和所述后端设备侧之间的控制平面协商。所述虚拟宿主机用户后端升级方法包括:响应于与所述虚拟宿主机用户后端相关联的升级请求,停止与所述后端设备侧对应的收发包队列并排空所述收发包队列,所述收发包队列用于所述前端驱动侧和所述后端设备侧之间的数据交互,其中,分别通过所述前端驱动侧更新与所述收发实现所述包队列对应的环形缓存的第一指针和通过所述后端设备侧更新所述环形缓存的第二指针来前端驱动侧和所述后端设备侧之间的数据交互;至少在所述收发包队列被排空之后,通过所述后端设备侧读取与所述收发包队列对应的所述环形缓存的所述第二指针所在的第一位置;通过所述虚拟宿主机用户后端,将所述第一位置传递给用于模拟所述前端驱动侧的系统模拟器,然后所述系统模拟器保存所述第一位置;至少在所述虚拟宿主机用户后端将所述第一位置传递给所述系统模拟器之后,对所述虚拟宿主机用户后端执行与所述升级请求对应的升级流程;在执行完所述升级流程之后,通过所述系统模拟器下发包括所述第一位置的队列参数到所述后端设备侧从而恢复所述收发包队列的队列状态到所述收发包队列在所述后端设备侧读取所述第一位置时的队列状态。
[0005]通过本申请的第一方面,不需要虚拟机本身的关闭和重启,也不需要虚拟机迁移,可以满足对支持虚拟化硬件加速的虚拟宿主机用户后端进行改动升级的需求例如对OVS

DPDK软件进行改动升级的需求,有利于虚拟机升级期间的稳定性,且具有效率高、资源占用低的优点。
[0006]在本申请的第一方面的一种可能的实现方式中,排空所述收发包队列,包括:通过所述后端设备侧处理所述收发包队列中的所有待处理数据。
[0007]在本申请的第一方面的一种可能的实现方式中,所述虚拟宿主机用户后端包括基于数据平面开发套件的多层虚拟交换机,与所述虚拟宿主机用户后端相关联的升级请求包括与所述基于数据平面开发套件的多层虚拟交换机相关联的升级请求。
[0008]在本申请的第一方面的一种可能的实现方式中,所述虚拟宿主机用户后端升级方法还包括:在对所述虚拟宿主机用户后端执行与所述升级请求对应的所述升级流程期间,断开所述虚拟宿主机用户后端与所述半虚拟化架构之间的连接并且断开所述半虚拟化架构的流量。
[0009]在本申请的第一方面的一种可能的实现方式中,所述半虚拟化架构是virtio架构。
[0010]在本申请的第一方面的一种可能的实现方式中,所述后端设备侧包括至少一个虚拟化硬件加速设备,所述虚拟化硬件加速包括将报文转发操作硬件卸载到所述至少一个虚拟化硬件加速设备。
[0011]在本申请的第一方面的一种可能的实现方式中,通过所述虚拟宿主机用户后端实现的所述前端驱动侧和所述后端设备侧之间的控制平面协商,包括:所述系统模拟器基于虚拟宿主机用户协议与所述虚拟宿主机用户后端协商。
[0012]在本申请的第一方面的一种可能的实现方式中,通过所述虚拟宿主机用户后端实现的所述前端驱动侧和所述后端设备侧之间的控制平面协商,还包括:所述虚拟宿主机用户后端下发数据平面参数到所述后端设备侧,所述数据平面参数用于配置所述前端驱动侧
和所述后端设备侧之间的数据平面直通。
[0013]在本申请的第一方面的一种可能的实现方式中,通过所述虚拟宿主机用户后端将所述第一位置传递给所述系统模拟器,包括:扩展所述虚拟宿主机用户协议以增加第一消息格式,所述虚拟宿主机基于所述第一消息格式将所述第一位置传递给所述系统模拟器。
[0014]在本申请的第一方面的一种可能的实现方式中,所述虚拟宿主机用户后端升级方法还包括:响应于与所述虚拟宿主机用户后端相关联的所述升级请求,对所述后端设备侧的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持虚拟化硬件加速的虚拟宿主机用户后端升级方法,其特征在于,所述虚拟宿主机用户后端升级方法应用于虚拟宿主机用户后端,所述虚拟宿主机用户后端用于支持半虚拟化架构的虚拟化硬件加速,所述半虚拟化架构包括前端驱动侧和后端设备侧,所述虚拟化硬件加速包括所述前端驱动侧和所述后端设备侧之间的数据平面直通以及通过所述虚拟宿主机用户后端实现的所述前端驱动侧和所述后端设备侧之间的控制平面协商,所述虚拟宿主机用户后端升级方法包括:响应于与所述虚拟宿主机用户后端相关联的升级请求,停止与所述后端设备侧对应的收发包队列并排空所述收发包队列,所述收发包队列用于所述前端驱动侧和所述后端设备侧之间的数据交互,其中,分别通过所述前端驱动侧更新与所述收发包队列对应的环形缓存的第一指针和通过所述后端设备侧更新所述环形缓存的第二指针来实现所述前端驱动侧和所述后端设备侧之间的数据交互;至少在所述收发包队列被排空之后,通过所述后端设备侧读取与所述收发包队列对应的所述环形缓存的所述第二指针所在的第一位置;通过所述虚拟宿主机用户后端,将所述第一位置传递给用于模拟所述前端驱动侧的系统模拟器,然后所述系统模拟器保存所述第一位置;至少在所述虚拟宿主机用户后端将所述第一位置传递给所述系统模拟器之后,对所述虚拟宿主机用户后端执行与所述升级请求对应的升级流程;在执行完所述升级流程之后,通过所述系统模拟器下发包括所述第一位置的队列参数到所述后端设备侧从而恢复所述收发包队列的队列状态到所述收发包队列在所述后端设备侧读取所述第一位置时的队列状态。2.根据权利要求1所述的虚拟宿主机用户后端升级方法,其特征在于,排空所述收发包队列,包括:通过所述后端设备侧处理所述收发包队列中的所有待处理数据。3.根据权利要求1所述的虚拟宿主机用户后端升级方法,其特征在于,所述虚拟宿主机用户后端包括基于数据平面开发套件的多层虚拟交换机,与所述虚拟宿主机用户后端相关联的升级请求包括与所述基于数据平面开发套件的多层虚拟交换机相关联的升级请求。4.根据权利要求1所述的虚拟宿主机用户后端升级方法,其特征在于,所述虚拟宿主机用户后端升级方法还包括:在对所述虚拟宿主机用户后端执行与所述升级请求对应的所述升级流程期间,断开所述虚拟宿主机用户后端与所述半虚拟化架构之间的连接并且断开所述半虚拟化架构的流量。5.根据权利要求1所述的虚拟宿主机用户后端升级方法,其特征在于,所述半虚拟化架构是virtio架构。6.根据权利要求1所述的虚拟宿主机用户后端升级方法,其特征在于,所述后端设备侧包括至少一个虚拟化硬件加速设备,所述虚拟化硬件加速包括将报文转发操作硬件卸载到所述至少一个虚拟化硬件加速设备。7.根据权利要求1所述的虚拟宿...

【专利技术属性】
技术研发人员:王旭陈森法
申请(专利权)人:珠海星云智联科技有限公司
类型:发明
国别省市:

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

1