CN107844304B - 虚拟机热升级方法及装置 - Google Patents
虚拟机热升级方法及装置 Download PDFInfo
- Publication number
- CN107844304B CN107844304B CN201610827960.4A CN201610827960A CN107844304B CN 107844304 B CN107844304 B CN 107844304B CN 201610827960 A CN201610827960 A CN 201610827960A CN 107844304 B CN107844304 B CN 107844304B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- direct connection
- resources
- pass
- virtualization environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
本发明揭示了一种虚拟机热升级方法,其中,所述方法包括:保存直通设备相关的软件状态和硬件状态;将待升级虚拟化环境中直通设备的相关资源设置为不销毁状态,且至少标识出直通设备的相关资源中的匿名资源;加载新虚拟化环境可执行文件,并在加载完成的新虚拟化环境内找回直通设备的相关资源,及恢复直通设备相关的软件状态和硬件状态。本发明的虚拟机热升级方法及装置,可在虚拟机热升级后,保证更新后的虚拟机和直通设备正常工作。
Description
技术领域
本发明涉及计算机领域,尤其是涉及一种虚拟机热升级方法及装置。
背景技术
虚拟机主要由虚拟化环境和虚拟机内核模块组成。当更新虚拟机内核模块和虚拟化环境版本时,使用传统的冷升级方法,则需将正在运行的虚拟机暂停甚至重启,这会严重影响用户体验和服务质量;为了解决这个问题,目前大多虚拟机使用热升级方法,如此,可在虚拟机的用户无感知的情况下完成更新。
然而,当虚拟机中带直通设备时,目前的热升级方法将无法正常工作:重建虚拟机的过程中会重建直通设备,由于直通设备的很多状态是保存在物理设备上的,因此虚拟化环境没有办法将其必要信息进行保存,这导致了带直通设备的虚拟机升级后,客户机设备驱动程序会发现直通设备硬件状态错误,引起宕机。
发明内容
本发明的目的在于提供一种虚拟机热升级方法及装置,该方法和装置解决了在虚拟机热升级时保留直通设备硬件状态的问题,实现虚拟机热升级。
为实现上述发明目的之一,本发明一实施方式提供了一种虚拟机热升级方法,所述方法包括:
保存直通设备相关的软件状态和硬件状态;
将待升级虚拟化环境中直通设备的相关资源设置为不销毁状态,且至少标识出直通设备的相关资源中的匿名资源;
加载新虚拟化环境,并在加载完成的新虚拟化环境内找回直通设备的相关资源,及恢复直通设备相关的软件状态和硬件状态,完成虚拟机热升级。
作为本发明一实施方式的进一步改进,所述保存直通设备相关的软件状态和硬件状态步骤具体包括:
保存待升级虚拟化环境中直通设备相关的软件状态,以及直通设备连接的 PCI配置空间。
作为本发明一实施方式的进一步改进,所述直通设备的相关资源为被待升级虚拟化环境调用的与直通设备相关的文件描述符。
作为本发明一实施方式的进一步改进,将待升级虚拟化环境中直通设备的相关资源设置为不销毁状态步骤具体为:
在与直通设备相关的文件描述符内加入加载新虚拟化环境的可执行文件时不被销毁的标志位。
作为本发明一实施方式的进一步改进,至少标识出直通设备的相关资源中的匿名资源步骤具体包括:
至少对直通设备的相关资源中的匿名资源命名名称。
作为本发明一实施方式的进一步改进,在新虚拟化环境内找回直通设备的相关资源步骤具体包括:
遍历新虚拟化环境,获取所有在新虚拟化环境下运行的资源及对应资源的标识;
根据直通设备的相关资源的标识找回直通设备的相关资源。
作为本发明一实施方式的进一步改进,所述方法还包括:
在热升级过程中不对待升级虚拟化环境中的直通设备直接存储通道进行映射以及不复位直通设备。
作为本发明一实施方式的进一步改进,在加载新虚拟化环境可执行文件步骤前,所述方法还包括:
强制关闭虚拟机内核模块中直通设备的相关资源。
为实现上述发明目的之一,本发明一实施方式提供了一种虚拟机热升级模块,所述模块包括:
存储模块,用于保存直通设备相关的软件状态和硬件状态;
配置模块,用于将待升级虚拟化环境中直通设备的相关资源设置为不销毁状态,且至少标识出直通设备的相关资源中的匿名资源;
升级模块,用于加载新虚拟化环境,并在加载完成的新虚拟化环境内找回直通设备的相关资源,及恢复直通设备相关的软件状态和硬件状态,完成虚拟机热升级。
作为本发明一实施方式的进一步改进,所述存储模块具体用于:
保存待升级虚拟化环境中直通设备相关的软件状态,以及直通设备连接的 PCI配置空间。
作为本发明一实施方式的进一步改进,所述直通设备的相关资源为被待升级虚拟化环境调用的与直通设备相关的文件描述符。
作为本发明一实施方式的进一步改进,所述配置模块用于:
在与直通设备相关的文件描述符内加入加载新虚拟化环境的可执行文件时不被销毁的标志位。
作为本发明一实施方式的进一步改进,所述配置模块用于:
至少对直通设备的相关资源中的匿名资源命名名称。
作为本发明一实施方式的进一步改进,所述升级模块用于:
遍历新虚拟化环境,获取所有在新虚拟化环境下运行的资源及对应资源的标识;
根据直通设备的相关资源的标识找回直通设备的相关资源。
作为本发明一实施方式的进一步改进,所述升级模块用于:
在热升级过程中不对待升级虚拟化环境中的直通设备直接存储通道进行映射以及不复位直通设备。
作为本发明一实施方式的进一步改进,所述升级模块还用于:
强制关闭虚拟机内核模块中直通设备的相关资源。
相对于现有技术,本发明的虚拟机热升级方法及装置,可在虚拟机热升级后,保证更新后的虚拟机和直通设备正常工作。
附图说明
图1是本发明一实施方式中虚拟机热升级方法的流程图。
图2是本发明一实施方式中带VFIO 直通设备的虚拟机的框架示意图。
图3是本发明一实施方式中虚拟机热升级装置的模块图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
本发明中所谓的热升级,是指在用户无感知的情况下更新虚拟机内核模块和虚拟化环境版本。
如图1所示,在本发明一实施方式中,所述虚拟机热升级方法,所述方法包括:
S1、保存直通设备相关的软件状态和硬件状态;
S2、将待升级虚拟化环境中直通设备的相关资源设置为不销毁状态,且至少标识出直通设备的相关资源中的匿名资源;
S3、加载新虚拟化环境,并在加载完成的新虚拟化环境内找回直通设备的相关资源,及恢复直通设备相关的软件状态和硬件状态,完成虚拟机热升级。
其中,S1、S2步骤的执行顺序可根据需求交换。
在本实施方式中,为了在热升级完成后,直通设备能够正常的工作,当需要热升级虚拟机时,需先短暂暂停虚拟机(ms级,用户无感知),以保存直通设备(passthroughdevice,即为能被上层虚拟机识别的物理设备)相关的软件状态和硬件状态,具体地,需保存待升级虚拟化环境中直通设备相关的软件状态,以及直通设备连接的用于存储直通设备相关的硬件状态的PCI 配置空间。
保存直通设备的软件状态和PCI配置空间,是本领域技术人员在冷升级虚拟机时的惯用技术手段,在此不再赘述。
在本实施方式中,在加载新虚拟化环境可执行文件前,需要将直通设备的相关资源设置为不销毁状态,以避免在新虚拟化环境下无法找回被销毁的直通设备的相关资源而导致宕机。
进一步地,在本实施方式中,直通设备的相关资源是以文件描述符的形式暴露给虚拟化环境的,即是所述直通设备的相关资源为被待升级虚拟化环境调用的与直通设备相关的文件描述符。
为便于后续在新虚拟化环境下找回直通设备的相关资源,本实施方式中,在初始化虚拟机时,即对与直通设备相关的文件描述符进行设置,使其在初始化虚拟机后不会被动地销毁,例如,在加载新的虚拟化环境可执行文件时,所述与直通设备相关的文件描述符不会被销毁。
进一步地,为使与直通设备相关的文件描述符在打开后不会因加载新虚拟化环境而销毁,在本实施方式中,是通过在与直通设备相关的文件描述符内加入加载新虚拟化环境的可执行文件时不被销毁的标志位,再运行与直通设备相关的文件描述符实现的。当然,也可在需要升级虚拟机时,再在与直通设备相关的文件描述符内加入加载新虚拟化环境的可执行文件时不被销毁的标志位,同样也保证新虚拟化环境下能够找回与直通设备相关的文件描述符。
另外,为了便于后续在新虚拟化环境中找回直通设备的相关资源,尤其是匿名资源(没有名称或隐藏名称的资源),避免无法找回匿名资源而导致的宕机。本实施方式中,可在虚拟机初始时,通过对直通设备的相关资源中匿名资源命名名称进行标识,即在虚拟机初始时,就对所述直通设备匿名的文件描述符命名名称。当然,也可在需要升级虚拟机时,再对直通设备的匿名资源命名名称。该名称可随意命名,只需要保证在新虚拟化环境中能够依据该名称找回对应的与直通设备相关的文件描述符即可。
另外,可通过标识在加载完成的新虚拟化环境内找回直通设备的相关资源(包括直通设备自有标识的资源以及标识后的匿名资源),并在新虚拟化环境中恢复直通设备相关的软件状态和硬件状态,以完成虚拟机热升级。
本实施方式中,因在更新过程中不会销毁直通设备的相关资源,且在更新后可通过标识找回直通设备的相关资源,故本发明可保证更新后的虚拟机和直通设备正常工作。
进一步地,因直通设备的相关资源不会被销毁,且直通设备相关的软件状态是由保存而恢复的,故本实施方式中,所述方法还包括:
在热升级过程中不对待升级虚拟化环境中的直通设备直接存储通道 (DMA)进行映射以及不复位直通设备。以使直通设备能够正确的访问所述虚拟机中的内存。
进一步地,为保证重构虚拟机时直通设备的缓存一致性和中断特性,便于模拟CPU行为时进行特殊处理,在本实施方式中,在加载新虚拟化环境可执行文件步骤前,所述方法还包括:
强制关闭虚拟机内核模块中直通设备的相关资源,以停止在加载新虚拟化环境可执行文件时不会被销毁掉的虚拟机内核模块中直通设备的相关资源 (即与直通设备相关的文件描述符),便于在重构虚拟机时,销毁虚拟机内核模块中原有的直通设备的相关资源,以及建立新的直通设备的相关资源,避免虚拟机内核模块中的直通设备的相关资源泄露。
进一步地,在本实施方式中,在新虚拟化环境内找回直通设备的相关资源步骤具体包括:
遍历新虚拟化环境,获取所有在新虚拟化环境下运行的资源及对应资源的标识;
根据直通设备的相关资源的标识找回直通设备的相关资源。
具体地,虽然加载了新的虚拟化环境可执行文件,但是待升级虚拟化环境内的进程本身并没有更改,新虚拟化环境可通过遍历自身的文件描述符获取未被关闭的所有文件描述符,并获取这些文件描述符的名字(匿名的文件描述符已经命名过),如此,即可根据文件描述符名称找回与直通设备相关的文件描述符。
上述主要以实现虚拟机热升级为实施方式进行说明,而在虚拟机热升级过程中可能涉及的其他步骤,本领域技术人员可参现有技术确定,在此不再赘述。
为了便于理解,下文以带VFIO直通设备的KVM虚拟机的热升级为例进行说明。
如图2所示,在本示例中,带VFIO直通设备的KVM虚拟机为本领域技术人员根据现有技术所掌握的虚拟机技术,为了便于下文的理解,在此进行简单介绍:所述带VFIO直通设备的KVM虚拟机包括:虚拟机模块、QEMU 程序、KVM内核模块、VFIO内核模块,以及外接硬件接口(PCI config)。其中,所述QEMU程序内还包括VFIO设备模拟。
以v1版本的KVM虚拟机热升级为v2版本KVM虚拟机为例,所述带VFIO 直通设备的KVM虚拟机热升级,是指在用户无感知的情况下更新虚拟化环境,即将v1版本的QEMU程序更新为v2版本的QEMU程序。其热升级过程包括:
首先,在初始化KVM虚拟机时,对与VFIO直通设备相关的文件描述符(例如,VFIOcontainer文件描述符、VFIO group文件描述符、VFIO匿名设备描述符,中断模拟相关的eventfd文件描述符等)进行设置,使其在KVM 虚拟机初始化后不会被动地销毁。例如,在调用exec加载v2版本的QEMU 程序的可执行文件时,所述与VFIO直通设备相关的文件描述符不会被销毁。在本示例中,是通过先在与VFIO直通设备相关的文件描述符内加入noncloexec标志位后,再运行与VFIO直通设备相关的文件描述符实现的,如此,在更新QEMU程序版本时,可保留上述与VFIO直通设备相关的文件描述符的进程。
另外,为了便于后续在v2版本QEMU程序的可执行文件加载完成后(即是QEMU程序更新为v2版本后)找回与VFIO直通设备相关的文件描述符,尤其是匿名的文件描述符,本示例中,在初始化KVM虚拟机时,就至少对匿名的文件描述符命名名称,例如通过修改内核来提供一个eventfd_name() 接口,通过该接口对eventfd文件描述符命名名称(由于eventfd文件描述符是通过标准的系统接口eventfd()来创建的,此接口在创建的匿名文件描述符时为它们统一命名了,不能通过名字辨别该eventfd文件描述符的用途,而 QEMU程序为VFIO直通设备创建了多个eventfd文件描述符分别用于模拟 intx、msi、msix类型的中断,故需要对这些eventfd文件描述符区别处理)。其他的KVM虚拟机初始化步骤与传统方案一致,在此不在赘述。
其次,短暂暂停虚拟机(ms级,用户无感知),以保存直通设备相关的软件状态和硬件状态,例如,保存v1版本的QEMU程序中VFIO直通设备相关的软件状态,以及VFIO直通设备连接的PCI配置空间,以便后续恢复;
再次,为保证重构KVM虚拟机时VFIO直通设备的缓存一致性和中断特性,便于模拟CPU行为时进行特殊处理,在此步骤需强制关闭KVM内核模块中与VFIO直通设备相关的文件描述符,以停止在exec时不会被销毁掉的KVM内核模块中与VFIO直通设备相关的文件描述符,便于在升级虚拟机时,销毁KVM内核模块中原有的与VFIO直通设备相关的文件描述符,以及建立新的与VFIO直通设备相关的文件描述符,避免KVM内核模块中的与VFIO直通设备相关的文件描述符泄露。
再次,加载v2版本的QEMU程序的可执行文件(例如调用exec来加载 v2版本的QEMU可执行文件),使v1版本的QEMU程序升级为v2版本的 QEMU程序,并在加载完成后的v2版本的QEMU程序内找回与已保存的 VFIO直通设备相关的文件描述符,并在v2版本的QEMU程序中恢复VFIO 直通设备相关的软件状态,以及直通设备连接的PCI配置空间,完成v1版本的KVM虚拟机热升级为v2版本KVM虚拟机。
其中,在v2版本的QEMU程序内找回与已保存的VFIO直通设备相关的文件描述符步骤具体包括:
遍历当前进程中活动的文件描述符,获取所有未被关闭的文件描述符及对应的文件描述符名称;
根据文件描述符名称找回与VFIO直通设备相关的文件描述符。
具体地,虽然在调用exec加载了v2版本的QEMU可执行文件,但是 v1版本的QEMU程序内进程本身并没有更改,v2版本的QEMU程序可通过遍历自身的文件描述符(/proc/pid/fd/)获取未被关闭的所有文件描述符,并通过readlink获取这些文件描述符的名字(匿名的文件描述符在初始化时已经命名过),如此,即可根据文件描述符名称找回与VFIO直通设备相关的文件描述符。
需要注意的是:在整个热升级过程中,都不对v1版本的QEMU程序中的VFIO直通设备直接存储通道(DMA)进行映射以及不复位VFIO直通设备,如此,可使VFIO直通设备能够正确的访问所述KVM虚拟机中的内存。
可以理解,本示例在热升级过程中,因与VFIO直通设备相关的文件描述符不会被销毁且可被找回,同时可通过保存并恢复VFIO直通设备相关的软件状态和直通设备连接的硬件状态,故本发明可保证更新后的虚拟机和 VFIO直通设备正常工作。
如图3所示,在本发明一实施方式中,所述虚拟机热升级装置,所述装置包括:
存储模块100,用于保存直通设备相关的软件状态和硬件状态;
配置模块200,用于将待升级虚拟化环境中直通设备的相关资源设置为不销毁状态,且至少标识出直通设备的相关资源中的匿名资源;
升级模块300,用于加载新虚拟化环境,并在加载完成的新虚拟化环境内找回直通设备的相关资源,及恢复直通设备相关的软件状态和硬件状态,完成虚拟机热升级。
本实施方式中所谓的热升级,是指在用户无感知的情况下更新虚拟机内核模块和虚拟化环境版本。
在本实施方式中,为了在热升级完成后,直通设备能够正常的工作,当需要热升级虚拟机时,需先短暂暂停虚拟机(ms级,用户无感知),以保存直通设备(passthroughdevice,即为能被上层虚拟机识别的物理设备)相关的软件状态和硬件状态,具体地,所述存储模块100用于:保存待升级虚拟化环境中直通设备相关的软件状态,以及直通设备连接的用于存储直通设备相关的硬件状态的PCI配置空间。
保存直通设备的软件状态和PCI配置空间,是本领域技术人员在冷升级虚拟机时的惯用技术手段,在此不再赘述。
在本实施方式中,在加载新虚拟化环境可执行文件前,需要将直通设备的相关资源设置为不销毁状态,以避免在新虚拟化环境下无法找回被销毁的直通设备的相关资源而导致宕机。
进一步地,在本实施方式中,直通设备的相关资源是以文件描述符的形式暴露给虚拟化环境的,即是所述直通设备的相关资源为被待升级虚拟化环境调用的与直通设备相关的文件描述符。
为便于后续在新虚拟化环境下找回直通设备的相关资源,本实施方式中,在初始化虚拟机时,即对与直通设备相关的文件描述符进行设置,使其在初始化虚拟机后不会被动地销毁,例如,在加载新的虚拟化环境可执行文件时,所述与直通设备相关的文件描述符不会被销毁。
进一步地,为使与直通设备相关的文件描述符在打开后不会因加载新虚拟化环境可执行文件而销毁,在本实施方式中,是通过所述配置模块200是通过在与直通设备相关的文件描述符内加入加载新虚拟化环境的可执行文件时不被销毁的标志位,再运行与直通设备相关的文件描述符实现的。当然,也可在需要升级虚拟机时,再在与直通设备相关的文件描述符内加入加载新虚拟化环境的可执行文件时不被销毁的标志位,同样也保证新虚拟化环境下能够找回与直通设备相关的文件描述符。
另外,为了便于后续在新虚拟化环境中找回直通设备的相关资源,尤其是匿名资源(没有名称或隐藏名称的资源),避免无法找回匿名资源而导致的宕机。本实施方式中,可在虚拟机初始时,通过所述配置模块200对直通设备的相关资源中匿名资源命名名称进行标识,即在虚拟机初始时,就对所述直通设备匿名的文件描述符命名名称。当然,也可在需要升级虚拟机时,再对直通设备的匿名资源命名名称。该名称可随意命名,只需要保证在新虚拟化环境中能够依据该名称找回对应的与直通设备相关的文件描述符即可。
另外,可通过标识在加载完成的新虚拟化环境内找回直通设备的相关资源(包括直通设备自有标识的资源以及标识后的匿名资源),并在新虚拟化环境中恢复直通设备相关的软件状态和硬件状态,以完成虚拟机热升级。
本实施方式中,因在更新过程中不会销毁直通设备的相关资源,且在更新后可通过标识找回直通设备的相关资源,故本发明可保证更新后的虚拟机和直通设备正常工作。
进一步地,因直通设备的相关资源不会被销毁,且直通设备相关的软件状态是由保存而恢复的,故本实施方式中,所述升级模块300用于:
在热升级过程中不对待升级虚拟化环境中的直通设备直接存储通道 (DMA)进行映射以及不复位直通设备。以使直通设备能够正确的访问所述虚拟机中的内存。
进一步地,为保证重构虚拟机时直通设备的缓存一致性和中断特性,便于模拟CPU行为时进行特殊处理,在本实施方式中,所述升级模块300还用于:
强制关闭虚拟机内核模块中直通设备的相关资源,以停止在加载新虚拟化环境可执行文件时不会被销毁掉的虚拟机内核模块中直通设备的相关资源 (即与直通设备相关的文件描述符),便于在重构虚拟机时,销毁虚拟机内核模块中原有的直通设备的相关资源,以及建立新的直通设备的相关资源,避免虚拟机内核模块中的直通设备的相关资源泄露。
进一步地,在本实施方式中,所述升级模块300用于:
遍历新虚拟化环境,获取所有在新虚拟化环境下运行的资源及对应资源的标识;
根据直通设备的相关资源的标识找回直通设备的相关资源。
具体地,虽然加载了新的虚拟化环境可执行文件,但是待升级虚拟化环境内的进程本身并没有更改,新虚拟化环境可通过遍历自身的文件描述符获取未被关闭的所有文件描述符,并获取这些文件描述符的名字(匿名的文件描述符已经命名过),如此,即可根据文件描述符名称找回与直通设备相关的文件描述符。
上述主要以实现虚拟机热升级为实施方式进行说明,而在虚拟机热升级过程中可能涉及的其他步骤,本领域技术人员可参现有技术确定,另外,具体示例也可参上述关于带VFIO直通设备的KVM虚拟机,在此不再赘述。
综上所述,本发明的虚拟机热升级方法及装置,可在虚拟机热升级后,保证更新后的虚拟机和直通设备正常工作。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,装置和模块的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本发明所提供的几个实施方式中,应该理解到,所揭露的装置,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所展示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块展示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能模块可以集成在一个决策模块中,也可以是各个模块单独物理存在,也可以2个或2个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等) 或处理器(processor)执行本发明各个实施方式所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。
Claims (16)
1.一种虚拟机热升级方法,其特征在于,所述方法包括:
保存直通设备相关的软件状态和硬件状态;
将待升级虚拟化环境中直通设备的相关资源设置为不销毁状态,且至少标识出直通设备的相关资源中的匿名资源;
加载新虚拟化环境,并在加载完成的新虚拟化环境内根据直通设备的相关资源的标识找回直通设备的相关资源,及恢复直通设备相关的软件状态和硬件状态,完成虚拟机热升级。
2.根据权利要求1所述的虚拟机热升级方法,所述保存直通设备相关的软件状态和硬件状态步骤具体包括:
保存待升级虚拟化环境中直通设备相关的软件状态,以及直通设备连接的PCI配置空间。
3.根据权利要求1所述的虚拟机热升级方法,其特征在于,所述直通设备的相关资源为被待升级虚拟化环境调用的与直通设备相关的文件描述符。
4.根据权利要求3所述的虚拟机热升级方法,其特征在于,将待升级虚拟化环境中直通设备的相关资源设置为不销毁状态步骤具体为:
在与直通设备相关的文件描述符内加入加载新虚拟化环境的可执行文件时不被销毁的标志位。
5.根据权利要求1所述的虚拟机热升级方法,其特征在于,至少标识出直通设备的相关资源中的匿名资源步骤具体包括:
至少对直通设备的相关资源中的匿名资源命名名称。
6.根据权利要求1所述的虚拟机热升级方法,其特征在于,在新虚拟化环境内找回直通设备的相关资源步骤具体包括:
遍历新虚拟化环境,获取所有在新虚拟化环境下运行的资源及对应资源的标识;
根据直通设备的相关资源的标识找回直通设备的相关资源。
7.根据权利要求1所述的虚拟机热升级方法,其特征在于,所述方法还包括:
在热升级过程中不对待升级虚拟化环境中的直通设备直接存储通道进行映射以及不复位直通设备。
8.根据权利要求1所述的虚拟机热升级方法,其特征在于,在加载新虚拟化环境可执行文件步骤前,所述方法还包括:
强制关闭虚拟机内核模块中直通设备的相关资源。
9.一种虚拟机热升级装置,其特征在于,所述装置包括:
存储模块,用于保存直通设备相关的软件状态和硬件状态;
配置模块,用于将待升级虚拟化环境中直通设备的相关资源设置为不销毁状态,且至少标识出直通设备的相关资源中的匿名资源;
升级模块,用于加载新虚拟化环境,并在加载完成的新虚拟化环境内根据直通设备的相关资源的标识找回直通设备的相关资源,及恢复直通设备相关的软件状态和硬件状态,完成虚拟机热升级。
10.根据权利要求9所述的虚拟机热升级装置,其特征在于,所述存储模块具体用于:
保存待升级虚拟化环境中直通设备相关的软件状态,以及直通设备连接的PCI配置空间。
11.根据权利要求9所述的虚拟机热升级装置,其特征在于,所述直通设备的相关资源为被待升级虚拟化环境调用的与直通设备相关的文件描述符。
12.根据权利要求11所述的虚拟机热升级装置,其特征在于,所述配置模块用于:
在与直通设备相关的文件描述符内加入加载新虚拟化环境的可执行文件时不被销毁的标志位。
13.根据权利要求9所述的虚拟机热升级装置,其特征在于,所述配置模块用于:
至少对直通设备的相关资源中的匿名资源命名名称。
14.根据权利要求9所述的虚拟机热升级装置,其特征在于,所述升级模块用于:
遍历新虚拟化环境,获取所有在新虚拟化环境下运行的资源及对应资源的标识;
根据直通设备的相关资源的标识找回直通设备的相关资源。
15.根据权利要求9所述的虚拟机热升级装置,其特征在于,所述升级模块用于:
在热升级过程中不对待升级虚拟化环境中的直通设备直接存储通道进行映射以及不复位直通设备。
16.根据权利要求9所述的虚拟机热升级装置,其特征在于,所述升级模块还用于:
强制关闭虚拟机内核模块中直通设备的相关资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610827960.4A CN107844304B (zh) | 2016-09-18 | 2016-09-18 | 虚拟机热升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610827960.4A CN107844304B (zh) | 2016-09-18 | 2016-09-18 | 虚拟机热升级方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107844304A CN107844304A (zh) | 2018-03-27 |
CN107844304B true CN107844304B (zh) | 2021-03-19 |
Family
ID=61657089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610827960.4A Active CN107844304B (zh) | 2016-09-18 | 2016-09-18 | 虚拟机热升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107844304B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874506B (zh) | 2018-06-08 | 2020-07-24 | 北京百度网讯科技有限公司 | 虚拟机直通设备的热迁移方法和装置 |
CN112199165B (zh) * | 2020-10-28 | 2022-07-05 | 支付宝(杭州)信息技术有限公司 | 用于热升级安全容器的虚拟机监控程序的方法及装置 |
CN112486632A (zh) * | 2020-12-07 | 2021-03-12 | 中国船舶重工集团公司第七一六研究所 | 一种面向k8s的用户态虚拟设备驱动框架 |
CN113535215A (zh) * | 2021-07-20 | 2021-10-22 | 北京字节跳动网络技术有限公司 | 一种虚拟机热升级方法、装置、设备以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446119A (zh) * | 2010-10-13 | 2012-05-09 | 中标软件有限公司 | 基于Passthrough I/O的虚拟机动态迁移方法 |
CN103201721A (zh) * | 2012-08-29 | 2013-07-10 | 华为技术有限公司 | 虚拟机热迁移的系统和方法 |
CN104142853A (zh) * | 2014-08-12 | 2014-11-12 | 华为技术有限公司 | 虚拟机存储资源部署方法和装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945436B2 (en) * | 2007-11-06 | 2011-05-17 | Vmware, Inc. | Pass-through and emulation in a virtual machine environment |
US8146082B2 (en) * | 2009-03-25 | 2012-03-27 | Vmware, Inc. | Migrating virtual machines configured with pass-through devices |
US8316120B2 (en) * | 2010-02-02 | 2012-11-20 | Microsoft Corporation | Applicability detection using third party target state |
US8484653B2 (en) * | 2010-07-28 | 2013-07-09 | Red Hat Israel, Ltd. | Mechanism for delayed hardware upgrades in virtualization systems |
US9158561B2 (en) * | 2011-08-18 | 2015-10-13 | Vmware, Inc. | Systems and methods for modifying an operating system for a virtual machine |
US9298499B2 (en) * | 2012-01-27 | 2016-03-29 | Microsoft Technology Licensing, Llc | Identifier generation using named objects |
CN104636159B (zh) * | 2013-11-15 | 2018-09-28 | 华为技术有限公司 | 对虚拟机中的软件进行升级的方法和装置 |
CN103577250A (zh) * | 2013-11-15 | 2014-02-12 | 浪潮(北京)电子信息产业有限公司 | 一种应用于虚拟机的设备直通方法 |
CN105159742A (zh) * | 2015-07-06 | 2015-12-16 | 北京星网锐捷网络技术有限公司 | 一种虚拟机pci设备透传方法和系统 |
-
2016
- 2016-09-18 CN CN201610827960.4A patent/CN107844304B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446119A (zh) * | 2010-10-13 | 2012-05-09 | 中标软件有限公司 | 基于Passthrough I/O的虚拟机动态迁移方法 |
CN103201721A (zh) * | 2012-08-29 | 2013-07-10 | 华为技术有限公司 | 虚拟机热迁移的系统和方法 |
CN104142853A (zh) * | 2014-08-12 | 2014-11-12 | 华为技术有限公司 | 虚拟机存储资源部署方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107844304A (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10871980B2 (en) | Execution of a script based on properties of a virtual device associated with a virtual machine | |
US9870288B2 (en) | Container-based processing method, apparatus, and system | |
CN107844304B (zh) | 虚拟机热升级方法及装置 | |
US7904914B2 (en) | On-the-fly replacement of physical hardware with emulation | |
CN107368353B (zh) | 一种实现虚拟机内存热添加的方法和装置 | |
CN102799464B (zh) | 虚拟机创建方法及系统、虚拟机重装方法及系统 | |
US8667489B2 (en) | Systems and methods for sharing the results of analyses among virtual machines | |
JP2021509200A (ja) | コンテナを更新するためのシステム及び方法 | |
CN107209683B (zh) | 备份映像恢复 | |
US10318331B2 (en) | Method and apparatus for live-migrating virtual machines | |
CN106293781B (zh) | 在线升级机器虚拟器的方法与设备 | |
US8910155B1 (en) | Methods and systems for injecting endpoint management agents into virtual machines | |
CN107544864B (zh) | 一种虚拟机数据拷贝方法及虚拟机数据拷贝系统 | |
JP2016515748A (ja) | 実行時のアプリケーションメソッドを置き換えるためのシステム及び方法 | |
US8881144B1 (en) | Systems and methods for reclaiming storage space from virtual machine disk images | |
CN109995814B (zh) | 云主机资源的迁移方法及装置、通信设备、存储介质 | |
CN102385523A (zh) | 一种云操作系统的驱动安装和管理方法 | |
US9146748B1 (en) | Systems and methods for injecting drivers into computing systems during restore operations | |
WO2020063432A1 (zh) | 一种升级虚拟化模拟器的方法和装置 | |
CN107908957B (zh) | 一种智能终端的安全运行管理方法及系统 | |
WO2016177261A1 (zh) | 在线升级基于内核虚拟机模块的设备和方法 | |
US10503430B2 (en) | Method and device for clearing data and electronic device | |
US9766918B2 (en) | Virtual system device identification using GPU to host bridge mapping | |
US10127029B1 (en) | Operating system installation using logical volumes | |
CN109582464B (zh) | 一种云平台管理多种虚拟化平台的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230606 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |