虚拟机热迁移方法、系统、设备及存储介质技术方案

技术编号:35779856 阅读:10 留言:0更新日期:2022-12-01 14:24
本申请实施例提供一种虚拟机热迁移方法、系统、设备及存储介质。其中,方法包括如下的步骤:获取源宿主机发送的源数据队列的队列状态;所述源数据队列是源虚拟设备根据源虚拟操作系统生成的队列创建命令创建的;通过所述目的虚拟设备重放所述源虚拟设备执行过的队列创建命令,以创建目的数据队列并根据所述源数据队列的队列状态确定所述目的数据队列的队列状态。本方案通过重放源宿主机的队列创建命令,可以复用已有的创建流程,降低由虚拟操作系统管理队列场景下虚拟设备的热迁移的难度。系统管理队列场景下虚拟设备的热迁移的难度。系统管理队列场景下虚拟设备的热迁移的难度。

【技术实现步骤摘要】
虚拟机热迁移方法、系统、设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种虚拟机热迁移方法、系统、设备及存储介质。

技术介绍

[0002]随着虚拟化技术的不断发展,虚拟机(Virtual Machine,简称VM)的应用也越来越广泛。在实际应用中,往往需要通过热迁移将虚拟机从一个物理机迁移到另外一个物理机,以实现计算资源的动态调度、物理故障主动运维,等等。
[0003]通常,虚拟机不仅拥有虚拟操作系统,还拥有虚拟设备(或称虚拟硬件),例如:虚拟网卡、虚拟存储设备,等等。因此,虚拟机热迁移的过程会涉及虚拟设备的热迁移。
[0004]现有技术中,为了实现虚拟设备的热迁移,需要额外设计较多的处理逻辑来确保迁移前后状态一致,方案复杂,难度大。

技术实现思路

[0005]本申请实施例提出一种虚拟机热迁移方法、系统、设备及存储介质,用于降低由虚拟操作系统管理队列场景下虚拟设备的热迁移的难度。
[0006]于是,在本申请的一个实施例中,提供了一种虚拟机热迁移方法,适用于目的宿主机,所述目的宿主机上设有目的虚拟设备;其中,所述方法,包括:
[0007]获取源宿主机发送的源数据队列的队列状态;所述源数据队列是源虚拟设备根据源虚拟操作系统生成的队列创建命令创建的;
[0008]通过所述目的虚拟设备重放所述源虚拟设备执行过的队列创建命令,以创建目的数据队列并根据所述源数据队列的队列状态确定所述目的数据队列的队列状态。
[0009]在本申请的又一实施例中,提供了一种虚拟机热迁移方法,适用于源宿主机,其中,包括:
[0010]确定源数据队列的队列状态;所述源数据队列是源虚拟设备根据源虚拟操作系统生成的队列创建命令创建的;
[0011]向目的宿主机发送所述源数据队列的队列状态;
[0012]其中,所述目的宿主机上设有目的虚拟设备;所述目的宿主机用于:通过所述目的虚拟设备重放所述源虚拟设备执行过的队列创建命令,以创建目的数据队列并根据所述源数据队列的队列状态确定所述目的数据队列的队列状态。
[0013]在本申请的又一实施例中,提供了一种电子设备。该电子设备,包括:存储器和处理器,其中,
[0014]所述存储器,用于存储程序;
[0015]所述处理器,与所述存储器耦合,用于执行所述存储器中存储的所述程序,以实现上述任一项所述的方法。
[0016]在本申请的又一实施例中,提供了一种存储有计算机程序的计算机可读存储介
质,所述计算机程序被计算机执行时能够实现上述任一项所述的方法。
[0017]本申请实施例提供的技术方案中,目的虚拟设备重放源虚拟设备执行过的由源虚拟操作系统生成的队列创建命令,以创建目的数据队列并根据源数据队列的队列状态确定目的数据队列的队列状态,使得虚拟设备的状态在迁移前后得到同步。通过重放源宿主机的队列创建命令,可以复用已有的创建流程,降低由虚拟操作系统管理队列场景下虚拟设备的热迁移的难度。
附图说明
[0018]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本申请一实施例提供的虚拟机热迁移系统的结构框图;
[0020]图2为本申请一实施例提供的虚拟机热迁移方法的流程示意图;
[0021]图3为本申请又一实施例提供的虚拟机热迁移系统的结构框图;
[0022]图4为本申请一实施例提供的虚拟机热迁移示例图;
[0023]图5为本申请一实施例提供的虚拟机热迁移方法的流程示意图;
[0024]图6为本申请一实施例提供的电子设备的结构框图。
具体实施方式
[0025]目前,有不少虚拟机采用了Virtio半虚拟化驱动来提高性能。virtio框架中包括前端驱动和后端驱动。其中,前端驱动是虚拟机的虚拟操作系统中的驱动程序模块;后端驱动是在虚拟机软件,例如QEMU(虚拟操作系统模拟器)中实现的。在这前后端驱动之间,通过环形队列来保存前端驱动和后端驱动执行的信息,并且它可以一次性保存前端驱动的多次I/O请求,这样,后端驱动可以主动地去批量处理。这样做,就不用针对虚拟操作系统的每次I/O请求都处理一次,通过批量收发的方式减少了VMEntry操作、VMExit操作以及上下文切换的的次数。
[0026]为了进一步提高性能,有人提出vhost

user框架。在vhost

user框架中,后端驱动被卸载到用户态宿主服务进程(也即宿主机的物理操作系统的进程)中。虚拟机软件与用户态宿主服务进程通过vhost

user协议进行交互。基于vhost

user协议的NVMe(Non

Volatile Memory Express,非易失性内存主机控制器接口规范)虚拟设备具有良好的读写性能。其中,基于vhost

user协议的NVMe虚拟设备是基于KVM模型下的方案,这是纯软件模拟方案。
[0027]若采用现有的虚拟设备热迁移方案来实现基于vhost

user协议的NVMe虚拟设备的热迁移,则需要额外设计较多的处理逻辑,方案非常复杂。因此,本申请实施例提供了一种简单的热迁移方案以实现基于vhost

user协议的NVMe虚拟设备的热迁移。
[0028]术语解释:
[0029]虚拟机(Virtual Machine,VM)是一种创建于物理硬件系统(位于外部或内部)、充当虚拟计算机系统的虚拟环境,它模拟出了自己的整套硬件,包括CPU、内存、网络接口和存
储器。通过名为虚拟机监控程序的软件,用户可以将机器的资源与硬件分开并进行适当置备,以供虚拟机使用。
[0030]虚拟机迁移:是指将正在运行的虚拟机从源宿主机移到目的宿主机上的过程。
[0031]QEMU:是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor,VMM),也可称为是虚拟机软件,能够模拟出一台能够独立运行操作系统的虚拟机。
[0032]KVM(Kernel

based Virtual Machine):指的是基于内核的虚拟机,是一种内建于Linux中的开源虚拟化技术。KVM可将Linux转变为虚拟机监控程序,使主机计算机能够运行多个隔离的虚拟环境,即虚拟客户机或虚拟机(Virtual Machine,VM)宿主机,是指:虚拟机运行的载体,只有在宿主机上才能运行虚拟机,是虚拟化软件运行的服务端。
[0033]为了使本
的人员更好地理解本申请方案,下面将根据本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟机热迁移方法,适用于目的宿主机,所述目的宿主机上设有目的虚拟设备;其中,所述方法,包括:获取源宿主机发送的源数据队列的队列状态;所述源数据队列是源虚拟设备根据源虚拟操作系统生成的队列创建命令创建的;通过所述目的虚拟设备重放所述源虚拟设备执行过的队列创建命令,以创建目的数据队列并根据所述源数据队列的队列状态确定所述目的数据队列的队列状态。2.根据权利要求1所述的方法,其中,还包括:接收所述源宿主机发送的所述源虚拟设备执行过的队列创建命令;其中,所述源虚拟设备执行过的队列创建命令由所述源虚拟设备记录得到。3.根据权利要求1所述的方法,其中,还包括:获取源控制队列的队列状态;所述源控制队列用于存储所述源虚拟操作系统需发送给所述源虚拟设备的队列创建命令;由所述目的虚拟设备构建目的控制队列并由所述目的虚拟设备根据所述源控制队列的队列状态确定所述目的控制队列的队列状态。4.根据权利要求1至3中任一项所述的方法,其中,所述目的虚拟设备包括:目的虚拟设备控制器以及目的后端驱动;所述目的虚拟设备控制器以及所述目的虚拟操作系统由运行于所述目的宿主机的目的虚拟机软件虚拟化得到;所述目的虚拟机软件与所述目的后端驱动运行于目的宿主机的物理操作系统不同的用户态进程中;通过所述目的虚拟设备重放所述源虚拟设备执行过的队列创建命令,以创建目的数据队列并根据所述源数据队列的队列状态确定所述目的数据队列的队列状态,包括:通过所述目的虚拟设备控制器重放所述源虚拟设备执行过的队列创建命令,以请求所述目的后端驱动创建目的数据队列并根据所述源数据队列的队列状态确定所述目的数据队列的队列状态。5.根据权利要求4所述的方法,其中,所述源虚拟设备包括:源虚拟设备控制器以及源后端驱动;所述源虚拟设备控制器以及所述源虚拟操作系统由运行于所述源宿主机的源虚拟机软件虚拟化得到;所述源虚拟机软件与所述源后端驱动运行于源宿主机的物理操作系统不同的用户态进程中;所述源数据队列是所述源虚拟设备控制器根据所述源虚拟操作系统生成的队列创建命令请求所述源后端驱动创建的。6.根据权利要求5所述的方法,其中,所述源数据队列的队列状态包括:所述源数据队列的由所述源后端驱动维护的队列指针;所述目的后端驱动创建目的数据队列,包括:所述目的后端驱动创建目的数据队列的队列结构体;其中,所述队列结构体中包括所述目的数据队列的由所述目的后端驱动维护的队列指针;所述目的后端驱动根据所述源数据队列的队列状态确定所述目的数据队列的队列状态,包括:所述目的后端驱动根据所述源数据队列的由所述源后端驱动维护的队列指...

【专利技术属性】
技术研发人员:贺进年
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1