虚拟机热迁移方法及装置、存储介质、处理器与流程

文档序号:20092350发布日期:2020-03-13 07:07阅读:332来源:国知局
虚拟机热迁移方法及装置、存储介质、处理器与流程

本发明涉及计算机领域,具体而言,涉及一种虚拟机热迁移方法及装置、存储介质、处理器。



背景技术:

虚拟机热迁移是虚拟化关键技术,可为客户带来明确收益。而虚拟机热迁移过程中,io(inputoutput,输入输出)设备的热迁移,传统来说,主要实现了半虚拟化io设备的热迁移。其实现思路是:在迁移过程中,后端虚拟机监控器(比如模拟处理器+系统虚拟化模块)有能力取得上述页面浏览量输入设备引入的新脏页信息,然后虚拟机监控器(例如模拟处理器+系统虚拟化模块)会增量方式地传输这些新脏页到虚拟机的目的端。

而页面浏览量输入设备在性能和时延等方面,相对于单根输入输出虚拟化单根输入输出虚拟化等直通设备来说,有很大差距。那么对于高性能低时延io要求的虚拟机,一般会采用单根输入输出虚拟化等直通设备模式。

而在虚拟机中引入单根输入输出虚拟化硬件设备,会导致虚拟机热迁移功能丧失。原因就是这些单根输入输出虚拟化硬件设备在虚拟机热迁移过程中,将不断引入新的虚拟机脏页,而这些新脏页的信息,无法被传统虚拟机监控器(比如模拟处理器+系统虚拟化模块)感知。于此同时,单根输入输出虚拟化硬件设备热迁移还需要迁移其设备的状态到虚拟机目的地,并写入相应的页面浏览量输入设备(或者单根输入输出虚拟化硬件设备)。

智能网卡在云主机虚拟私有云网络中,得到了普遍的应用;典型的智能网卡包含soc(systemonchip,系统级芯片)、fpga(field-programmablegatearray,现场可编程逻辑门阵列)、asic(applicationspecificintegratedcircuit,专用集成电路)等实现模式。但他们的共性都是通过单根输入输出虚拟化硬件设备的技术手段,对虚拟机暴露直通设备。而直通设备都会存储上述脏页信息而无法被虚拟机监控器(比如模拟处理器+系统虚拟化模块感知)。

针对上述无法传输虚拟机热迁移的过程中由直通输入输出设备产生的脏页信息的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种虚拟机热迁移方法及装置、存储介质、处理器,以至少解决在虚拟机热迁移的过程中无法传输自于单根输入输出虚拟化硬件设备的脏页信息的技术问题。

根据本发明实施例的一个方面,提供了一种虚拟机热迁移方法,包括:接收来自于直通输入输出设备的脏页信息,其中,所述脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由所述直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页;根据所述脏页信息,将所述新增脏页从所述源物理机传输至所述目的物理机。

根据本发明实施例的另一方面,还提供了一种虚拟机热迁移方法,包括:从操作日志中获取脏页信息,其中,所述脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页;将所述脏页信息发送至所述虚拟机的管理程序。

根据本发明实施例的另一方面,还提供了一种虚拟机热迁移装置,包括:第一接收单元,用于接收来自于直通输入输出设备的脏页信息,其中,所述脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由所述直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页;第一传输单元,用于根据所述脏页信息,将所述新增脏页从所述源物理机传输至所述目的物理机。

根据本发明实施例的另一方面,还提供了一种虚拟机热迁移装置,包括:第一获取单元,用于从操作日志中获取脏页信息,其中,所述脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页;第一发送单元,用于将所述脏页信息发送至所述虚拟机的管理程序。

根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行以下步骤:接收来自于直通输入输出设备的脏页信息,其中,所述脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由所述直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页;根据所述脏页信息,将所述新增脏页从所述源物理机传输至所述目的物理机。

根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行以下步骤:从操作日志中获取脏页信息,其中,所述脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页;将所述脏页信息发送至所述虚拟机的管理程序。

根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以下步骤:接收来自于直通输入输出设备的脏页信息,其中,所述脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由所述直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页;根据所述脏页信息,将所述新增脏页从所述源物理机传输至所述目的物理机。

根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以下步骤:从操作日志中获取脏页信息,其中,所述脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页;将所述脏页信息发送至所述虚拟机的管理程序。

在本发明实施例中,接收源物理机与目的物理机之间的热迁移过程中由直通输入输出设备产生的新增脏页,并根据用于描述该新增脏页的脏页信息将新增脏页从所述源物理机传输至所述目的物理机,从而实现了对直通输入输出设备在传输过程中产生的脏页信息进行传输的技术效果,进而解决了在虚拟机热迁移的过程中无法传输自于单根输入输出虚拟化硬件设备的脏页信息的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本申请实施例的一种虚拟机热迁移方法的计算机终端的硬件结构框图;

图2是根据本申请实施例的一种用计算机终端作为接收端的硬件结构框图;

图3是根据本发明实施例的一种可选的虚拟机热迁移方法的示意图;

图4是根据本发明实施例的一种可选的虚拟机热迁移方法的示意图;

图5是根据本发明实施例的一种可选的虚拟机热迁移方法的示意图;

图6是根据本发明实施例的一种可选的虚拟机热迁移方法的示意图;

图7是根据本发明实施例的一种可选的虚拟机热迁移方法的示意图;

图8是根据本发明实施例的一种可选的虚拟机热迁移方法的示意图;

图9是本发明提供的一种直通输入输出设备条件下虚拟机热迁移的示意图;

图10是本发明提供的一种直通输入输出设备条件下虚拟机的示意图;

图11是本发明提供的一种直通输入输出设备条件下虚拟机的示意图;

图12是根据本发明实施例的一种可选的虚拟机热迁移装置的示意图;

图13是根据本发明实施例的一种可选的虚拟机热迁移装置的示意图;

图14是根据本发明实施例的一种可选的虚拟机热迁移装置的示意图;

图15是根据本发明实施例的一种可选的虚拟机热迁移装置的示意图;

图16是根据本发明实施例的一种可选的虚拟机热迁移装置的示意图;

图17是根据本发明实施例的一种可选的虚拟机热迁移装置的示意图;

图18是根据本发明实施例的一种计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

pcie:peripheralcomponentinterconnectexpress,一种高速串行计算机扩展总线标准,典型来说,用于cpu(centralprocessingunit,中央处理器)和外部io设备之间的总线互联。

sriov:singlerootinput/outputvirtualization,单根输入输出虚拟化硬件设备。sriov技术可以让多个虚拟机共享一个pcieio设备,目标是降低半虚拟化等技术带来的io性能损失。

vmlivemigration:virtualmachinelivemigration,虚拟机热迁移,一种虚拟化领域的技术,使得正在运行的虚拟机能够在不同物理机之间完成迁移,而运行在虚拟机中的应用对热迁移无感知(诸如:网络链接不会断开等)。

实施例1

根据本发明实施例,还提供了一种虚拟机热迁移的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现虚拟机热迁移方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104。除此以外,还可以包括:传输装置、显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的虚拟机热迁移方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的虚拟机热迁移方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。

图1示出的硬件结构框图,不仅可以作为上述计算机终端10(或移动设备)的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图2以框图示出了使用上述图1所示的计算机终端10(或移动设备)作为接收端的一种实施例。如图2所示,计算机终端10(或移动设备)可以经由数据网络连接或电子连接到一个或多个服务器。一种可选实施例中,上述计算机终端10(或移动设备)可以是任意移动计算设备。数据网络连接可以是局域网连接、广域网连接、因特网连接,或其他类型的数据网络连接。计算机终端10(或移动设备)可以执行以连接到由一个服务器(例如安全服务器)或一组服务器执行的网络服务。网络服务器是基于网络的用户服务,诸如社交网络、云资源、电子邮件、在线支付或其他在线应用。

在上述运行环境下,本申请提供了如图3所示的虚拟机热迁移方法。图3是根据本发明实施例1的虚拟机热迁移方法的流程图,如图3所示的方法可以包括如下步骤:

步骤s21,接收来自于直通输入输出设备的脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页。

需要说明的是,直通输入输出设备是采用直通(passthrough)模式的输入输出设备,在这一模式下,客户机内部能够直接对接入的输入输出设备进行操作。在该实施例中,直通送输入输出设备可以是单根输入输出虚拟化硬件设备。

需要说明的是,虚拟机是指在物理机上运行的,通过软件模拟完整硬件系统功能的计算机系统,其中,运行在源物理机上的虚拟机为源虚拟机,运行在目标物理机上的虚拟机为目标虚拟机。

可选地,虚拟机可以通过热迁移的方式从源物理机迁移至目的物理机。

可选地,直通输入输出设备与源物理机相连,用于对源物理机的客户机物理存储进行写操作,产生新增脏页。

此处需要说明的是,虚拟机产生的脏页能够被虚拟机的管理程序(例如,模拟处理器/系统虚拟化模块)识别,所以模拟处理器/系统虚拟化模块可以构建脏页的位图文件。但是,通过直通输入输出设备对客户机物理存储进行写操作所引入的新增脏页无法被模拟处理器/系统虚拟化模块感知到,因此无法在虚拟机进行热迁移过程中搬运该新增脏页。

可选地,在进行虚拟机热迁移的过程中,可以通过直通输入输出设备接收或发出操作指令,进而虚拟机将响应该操作指令,但是由于虚拟机正处于热迁移过程中,响应该操作指令产生的数据不在热迁移过程的迁移队列中,进而可以将响应该操作指令产生的数据作为新增脏页。

可选地,新增脏页至少包括虚拟机物理地址。

可选地,脏页信息可以是用于记录新增脏页的起始存储位置信息和存储空间占用信息的操作日志。

可选地,在源物理机与目的物理机之间的热迁移过程中所产生的新增脏页可以存储于客户机物理存储器中,并记录新增脏页的起始存储位置信息和存储空间占用信息等信息作为脏页信息。

在上述步骤s21中,使用能够被虚拟机的管理程序(例如,模拟处理器/系统虚拟化模块)识别的脏页信息,描述直通输入输出设备产生的新增脏页,进而在源物理机与目的物理机之间的热迁移过程中,可以使虚拟机的管理程序可以根据该脏页信息传输新增脏页。

步骤s23,根据脏页信息,将新增脏页从源物理机传输至目的物理机。

在本申请提供的一种可选实施例中,如图4所示,步骤s23根据脏页信息,将新增脏页从源物理机传输至目的物理机包括:

步骤s231:根据脏页信息,确定新增脏页在源虚拟机的虚拟机物理存储区域中的起始存储位置信息,以及存储空间占用信息;

步骤s233:根据起始存储位置信息和存储空间占用信息,从虚拟机物理存储区域中提取新增脏页;

步骤s235:将新增脏页传输至目的物理机中的迁移目标位置,并经由目的物理机传输至与目的物理机对应的直通输入输出设备。

此处需要说明的是,直通输入输出设备在对源虚拟机的虚拟机物理存储区域进行写操作的情况下(或者pcietlp对源虚拟机的虚拟机物理存储区域进行写操作的情况下),直通输入输出设备将会知道源虚拟机的虚拟机物理存储区域被改写的起始存储位置信息和存储空间占用信息。该起始存储位置信息和存储空间占用信息可以被反馈到主机的管理程序(例如模拟处理器),则模拟处理器将会知道热迁移过程中,哪些源虚拟机的虚拟机物理存储区域被写入了新增脏页,然后这些单根输入输出虚拟化硬件设备等直通输入输出设备产生的新增脏页会被模拟处理器迁移到目的虚拟机物理机。

本申请上述步骤s231至步骤s235,在传输新增脏页进行传输的过程中,可以根据脏页信息确定新增脏页在源虚拟机的虚拟机物理存储区域中的起始存储位置信息和存储空间占用信息,并根据该起始存储位置信息和存储空间占用信息提取新增脏页,然后再将新增脏页传输至目的物理机中的迁移目标位置,再经由目的物理机传输至目的物理机对应的直通输入输出设备,从而使直通输入输出设备产生的新增脏页能够在虚拟机进行热迁移的过程中,从源物理机传输至目的物理机中的虚拟机。

本发明上述实施例,接收源物理机与目的物理机之间的热迁移过程中由直通输入输出设备产生的新增脏页,并根据用于描述该新增脏页的脏页信息将新增脏页从所述源物理机传输至所述目的物理机,从而实现了对直通输入输出设备在传输过程中产生的脏页信息进行传输的技术效果,进而解决了在虚拟机热迁移的过程中无法传输自于单根输入输出虚拟化硬件设备的脏页信息的技术问题。

在本申请提供的一种可选实施例中,如图5所示,在步骤s23根据脏页信息,将新增脏页从源物理机传输至目的物理机之后,还包括:

步骤s25:接收来自于直通输入输出设备的状态信息;

步骤s27:将状态信息传输至目的物理机中的迁移目标位置,并经由目的物理机传输至与目的物理机对应的直通输入输出设备。

本申请上述步骤s25和步骤s27,在将新增脏页传输至目的物理机之后,还可以获取来自于直通输入输出设备的状态信息,并将该状态信息传输至目的物理机的迁移目标位置,再经由目的物理机传输至目的物理机对应的直通输入输出设备,从而可以将源物理机对应的直通输入输出设备的状态信息传输至与目的物理机对应的直通输入输出设备,使目的物理机对应的直通输入输出设备可以根据该状态信息进行配置,实现对直通输入输出设备的迁移。

可选地,上述状态信息至少包括硬件的配置信息。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在上述实施例1运行环境下,本申请提供了如图6所示的虚拟机热迁移方法。图6是根据本发明实施例2的虚拟机热迁移方法的流程图,如图6所示的方法可以包括如下步骤:

步骤s31,从操作日志中获取脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页。

需要说明的是,直通输入输出设备可以是单根输入输出虚拟化硬件设备。

需要说明的是,虚拟机是指在物理机上运行的,通过软件模拟完整硬件系统功能的计算机系统,其中,运行在源物理机上的虚拟机为源虚拟机,运行在目标物理机上的虚拟机为目标虚拟机。

可选地,虚拟机可以通过热迁移的方式从源物理机迁移至目的物理机。

可选地,直通输入输出设备与源物理机相连,用于对源虚拟机的虚拟机物理存储区域进行写操作,产生新增脏页。

此处需要说明的是,虚拟机产生的脏页能够被虚拟机的管理程序(例如,模拟处理器/系统虚拟化模块)识别,所以模拟处理器/系统虚拟化模块可以构建脏页的位图文件。但是,通过直通输入输出设备对源虚拟机的虚拟机物理存储区域进行写操作所引入的新增脏页无法被模拟处理器/系统虚拟化模块感知到,因此无法在虚拟机进行热迁移过程中搬运该新增脏页。

在上述步骤s31中,使用能够被虚拟机的管理程序(例如,模拟处理器/系统虚拟化模块)识别的脏页信息,描述直通输入输出设备产生的新增脏页,进而在源物理机与目的物理机之间的热迁移过程中,可以使虚拟机的管理程序可以根据该脏页信息传输新增脏页。

步骤s33,将脏页信息发送至虚拟机的管理程序。

在上述步骤s33中,在获取脏页信息后,可以将该脏页信息发送给虚拟机的管理程序,使虚拟机的管理程序可以根据该脏页信息传输新增脏页。

在本发明实施例中,在虚拟机从源物理机热迁移至目的物理机的过程中,描述由直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页,即为脏页信息,从操作日志中获取该脏页信息,并将该脏页信息发送至虚拟机的管理程序,通过管理程序传输该直通脏页信息,从而实现了对直通输入输出设备在传输过程中产生的脏页信息进行传输的技术效果,进而解决了在虚拟机热迁移的过程中无法传输自于单根输入输出虚拟化硬件设备的脏页信息的技术问题。

可选地,脏页信息包括虚拟机物理地址。

具体地,获取虚拟机物理地址,并根据该物理地址向源物理机中与源虚拟机对应的虚拟机物理存储区域写入数,然后再通过操作日志记录该写入数据的起始存储位置信息和存储空间占用信息,从而根据该操作日志中记录的信息作为脏页信息,进而根据该脏页信息可以传输新增脏页。

在本申请提供的一种可选实施例中,如图7所示,步骤s31从操作日志中获取脏页信息包括:

步骤s311:接收来自于管理程序的通知消息,其中,通知消息用于通知在源物理机与目的物理机之间启动热迁移;

步骤s313:从操作日志中获取新增脏页在虚拟机物理存储区域中的起始存储位置信息,以及存储空间占用信息;

步骤s315:根据起始存储位置信息和存储空间占用信息确定脏页信息。

此处需要说明的是,直通输入输出设备在对源虚拟机的虚拟机物理存储区域进行写操作的情况下(或者pcietlp对源虚拟机的虚拟机物理存储区域进行写操作的情况下),直通输入输出设备将会知道源虚拟机的虚拟机物理存储区域被改写的起始存储位置信息和存储空间占用信息。该起始存储位置信息和存储空间占用信息可以被反馈到主机的管理程序(例如模拟处理器),则模拟处理器将会知道热迁移过程中,哪些源虚拟机的虚拟机物理存储区域被写入了新增脏页,然后这些单根输入输出虚拟化硬件设备等直通输入输出设备产生的新增脏页会被模拟处理器迁移到目的虚拟机物理机。

本申请上述步骤s311至步骤s315,在收到用于通知在源物理机与目的物理机之间启动热迁移的通知消息的情况下,可以从操作日志中查询新增脏页在虚拟机物理存储区域中的起始存储位置信息和以及存储空间占用信息,根据操作日志的查询结果,可以准确确定该新增脏页的脏页信息,进而在源物理机与目的物理机之间的热迁移过程中根据该脏页信息可以快速、准确地传输新增脏页。

在本申请提供的一种可选实施例中,如图8所示,在将脏页信息发送至虚拟机的管理程序之后,还包括:

步骤s35,获取直通输入输出设备的状态信息;

步骤s37,将状态信息发送至管理程序。

本申请上述步骤s35和步骤s37,在将脏页信息发送至所述管理程序之后,还可以获取直通输入输出设备的状态信息,并将该状态信息发送至管理程序,由管理程序传输该直通输入输出设备的状态信息,从而可以将源物理机对应的直通输入输出设备的状态信息传输至与目的物理机对应的直通输入输出设备,使目的物理机对应的直通输入输出设备可以根据该状态信息进行配置,实现对直通输入输出设备的迁移。

实施例3

下面通过一种更为详细的实施例来说明本发明,在下述实施例中,详细介绍单根输入输出虚拟化硬件设备条件下虚拟机热迁移。

图9是本发明提供的一种直通输入输出设备条件下虚拟机热迁移的示意图,如图9所示包括如下步骤:

步骤s200:开始。

步骤s201:掩盖并发送ram脏页。

步骤s202:在虚拟机进行热迁移的过程中,发送虚拟机的虚拟cpu生成的ram脏页。

步骤s203:发送直通设备生成的ram脏页。

步骤s204:停止客户访问,传输剩余ram脏页和软件仿真设备状态。

步骤s205:硬件直通设备的状态。

步骤s206:目标管理程序继续执行。

步骤s207:结束。

此处需要说明的是,上述步骤s202、步骤s204以及步骤s206中,通过虚拟机生成的脏页能够被虚拟机的管理程序(例如,模拟处理器/系统虚拟化模块)识别,所以模拟处理器/系统虚拟化模块可以构建脏页的位图文件。

而通过直通输入输出设备对客户机物理存储区域(即源虚拟机的虚拟机物理存储区域)进行写操作所引入的新增脏页无法被模拟处理器/系统虚拟化模块感知到,因此无法在虚拟机进行热迁移过程中搬运该新增脏页。

需要说明的是,直通输入输出设备包括单根输入输出虚拟化硬件设备。

上述步骤s203可以应用在图10所示的虚拟机中,图10是本发明提供的一种直通输入输出设备条件下虚拟机的示意图,如图10所示,包括虚拟机和直通输入输出设备,在虚拟机的系统管理程序中,执行步骤s301:通过管理程序软件读取和写入硬件设备状态;在直通输入输出设备中,执行步骤s302:获取设备的队列长度和状态。

需要说明的是,执行步骤s302的设备,可以包括但不限于网卡、hba、gpu等能够读写源虚拟机的虚拟机物理存储区域的直通输入输出设备或计算机。

需要注意的是,在步骤301中,应将在对客户机物理存储区域(即源虚拟机的虚拟机物理存储区域)进行写操作的情况下(例如,pcietlp对客户机物理存储区域进行写操作的情况下),步骤s302将会知道客户机物理存储区域被改写的起始存储位置信息和存储空间占用信息。该起始存储位置信息和存储空间占用信息可以被反馈到主机的管理程序(例如模拟处理器),则模拟处理器将会知道热迁移过程中,哪些客户机物理存储区域被写入了新增脏页,然后这些单根输入输出虚拟化硬件设备等直通输入输出设备产生的新增脏页会被模拟处理器迁移到目的虚拟机物理机。

上述步骤s205可以应用在图11所示的虚拟机中,图11是本发明提供的一种直通输入输出设备条件下虚拟机的示意图,如图11所示,包括虚拟机和直通输入输出设备,在虚拟机的系统管理程序中,执行步骤s401:管理程序软件获取由硬件产生的ram脏页信息(即获取直通输入输出设备产生的脏页信息);在直通输入输出设备中,执行步骤s402:获取通过直通设备对虚拟机客户物理存储器的写操作。

此处需要说明的是,步骤s402还包括:读取和写入硬件设备的状态,其中,所述硬件设备的状态至少包括:队列长度、硬件配置信息等。

实施例4

根据本发明实施例,还提供了一种用于实施上述虚拟机热迁移方法的虚拟机热迁移装置,如图12所示,该装置包括:

第一接收单元1201,用于接收来自于直通输入输出设备的脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页;第一传输单元1203,用于根据脏页信息,将新增脏页从源物理机传输至目的物理机。

此处需要说明的是,上述第一接收单元1201和第二传输单元1203对应于实施例1中的步骤s21和步骤s23,两个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

在本发明实施例中,接收源物理机与目的物理机之间的热迁移过程中由直通输入输出设备产生的新增脏页,并根据用于描述该新增脏页的脏页信息将新增脏页从所述源物理机传输至所述目的物理机,从而实现了对直通输入输出设备在传输过程中产生的脏页信息进行传输的技术效果,进而解决了在虚拟机热迁移的过程中无法传输自于单根输入输出虚拟化硬件设备的脏页信息的技术问题。

在本申请提供的一种可选实施例中,如图13所示,第一传输单元1201包括:第一确定模块12011,用于根据脏页信息,确定新增脏页在源虚拟机的虚拟机物理存储区域中的起始存储位置信息,以及存储空间占用信息;提取模块12013,用于根据起始存储位置信息和存储空间占用信息从虚拟机物理存储区域中提取新增脏页;传输模块12015,用于将新增脏页传输至目的物理机中的迁移目标位置,并经由目的物理机传输至与目的物理机对应的直通输入输出设备。

此处需要说明的是,上述第一确定模块12011至传输模块12015对应于实施例1中的步骤s231和步骤s235,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

在本申请提供的一种可选实施例中,如图14所示,该装置还包括:第二接收单元1205,用于在根据脏页信息,将新增脏页从源物理机传输至目的物理机之后,接收来自于直通输入输出设备的状态信息;第二传输单元1207,用于将状态信息传输至目的物理机中的迁移目标位置,并经由目的物理机传输至与目的物理机对应的直通输入输出设备。

此处需要说明的是,上述第二接收单元1205和第二传输单元1207对应于实施例1中的步骤s25和步骤s27,两个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

在本申请提供的一种可选实施例中,直通输入输出设备为单根输入输出虚拟化硬件设备。

实施例5

根据本发明实施例,还提供了一种用于实施上述虚拟机热迁移方法的虚拟机热迁移装置,如图15所示,该装置包括:第一获取单元1501,用于从操作日志中获取脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页;用于将脏页信息发送至虚拟机的管理程序。

此处需要说明的是,上述第一获取单元1501和第一发送单元1503对应于实施例1中的步骤s31和步骤s33,两个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

在本发明实施例中,在虚拟机从源物理机热迁移至目的物理机的过程中,描述由直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页,即为脏页信息,从操作日志中获取该脏页信息,并将该脏页信息发送至虚拟机的管理程序,通过管理程序传输该直通脏页信息,从而实现了对直通输入输出设备在传输过程中产生的脏页信息进行传输的技术效果,进而解决了在虚拟机热迁移的过程中无法传输自于单根输入输出虚拟化硬件设备的脏页信息的技术问题。

在本申请提供的一种可选实施例中,该实施例还包括:写入单元,用于在从操作日志中获取脏页信息之前,根据虚拟机物理地址,向源物理机中与源虚拟机对应的虚拟机物理存储区域写入数据;记录单元,用于将数据的起始存储位置信息和存储空间占用信息记录在操作日志中。

在本申请提供的一种可选实施例中,如图16所示,第一获取单元1501包括:接收模块15011,用于接收来自于管理程序的通知消息,其中,通知消息用于通知在源物理机与目的物理机之间启动热迁移;获取模块15013,用于从操作日志中获取新增脏页在虚拟机物理存储区域中的起始存储位置信息,以及存储空间占用信息;确定模块15015,用于根据起始存储位置信息和存储空间占用信息确定脏页信息。

此处需要说明的是,上述接收模块15011、获取模块15013和确定模块15015对应于实施例1中的步骤s311、步骤s313和步骤s315,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

在本申请提供的一种可选实施例中,如图17所示,还可以包括:第二获取单元1505,用于在将脏页信息发送至虚拟机的管理程序之后,获取直通输入输出设备的状态信息;第二发送单元1507,用于将状态信息发送至管理程序。

此处需要说明的是,上述第二获取单元1505和第二发送单元1507对应于实施例1中的步骤s35和步骤s37,两个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。

在本申请提供的一种可选实施例中,直通输入输出设备为单根输入输出虚拟化硬件设备。

实施例6

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行应用程序的虚拟机热迁移方法中以下步骤的程序代码:接收来自于直通输入输出设备的脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页;根据脏页信息,将新增脏页从源物理机传输至目的物理机。

在本实施例中,上述计算机终端还可以执行应用程序的虚拟机热迁移方法中以下步骤的程序代码:从操作日志中获取脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页;将脏页信息发送至虚拟机的管理程序。

可选地,图18是根据本发明实施例的一种计算机终端的结构框图。如图18所示,该计算机终端10可以包括:一个或多个(图中仅示出一个)处理器102、存储器104、以及传输设备106。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的虚拟机热迁移方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟机热迁移方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接收来自于直通输入输出设备的脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页;根据脏页信息,将新增脏页从源物理机传输至目的物理机。

可选的,上述处理器还可以执行如下步骤的程序代码:根据脏页信息,确定新增脏页在源虚拟机的虚拟机物理存储区域中的起始存储位置信息,以及存储空间占用信息;根据起始存储位置信息和存储空间占用信息,从虚拟机物理存储区域中提取新增脏页;将新增脏页传输至目的物理机中的迁移目标位置,并经由目的物理机传输至与目的物理机对应的直通输入输出设备。

可选的,上述处理器还可以执行如下步骤的程序代码:接收来自于直通输入输出设备的状态信息;将状态信息传输至目的物理机中的迁移目标位置,并经由目的物理机传输至与目的物理机对应的直通输入输出设备。

可选的,直通输入输出设备为单根输入输出虚拟化硬件设备。采用本发明实施例,提供了一种虚拟机热迁移的方案。接收源物理机与目的物理机之间的热迁移过程中由直通输入输出设备产生的新增脏页,并根据用于描述该新增脏页的脏页信息将新增脏页从所述源物理机传输至所述目的物理机,从而实现了对直通输入输出设备在传输过程中产生的脏页信息进行传输的技术效果,进而解决了在虚拟机热迁移的过程中无法传输自于单根输入输出虚拟化硬件设备的脏页信息的技术问题。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:从操作日志中获取脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页;将脏页信息发送至虚拟机的管理程序。

可选的,上述处理器还可以执行如下步骤的程序代码:根据虚拟机物理地址,向源物理机中与源虚拟机对应的虚拟机物理存储区域写入数据;将数据的起始存储位置信息和存储空间占用信息记录在操作日志中。

可选的,上述处理器还可以执行如下步骤的程序代码:接收来自于管理程序的通知消息,其中,通知消息用于通知在源物理机与目的物理机之间启动热迁移;从操作日志中获取新增脏页在虚拟机物理存储区域中的起始存储位置信息,以及存储空间占用信息;根据起始存储位置信息和存储空间占用信息确定脏页信息。

可选的,上述处理器还可以执行如下步骤的程序代码:获取直通输入输出设备的状态信息;将状态信息发送至管理程序。

可选的,直通输入输出设备为单根输入输出虚拟化硬件设备。

采用本发明实施例,提供了一种虚拟机热迁移的方案。在虚拟机从源物理机热迁移至目的物理机的过程中,描述由直通输入输出设备对所述虚拟机执行写操作所引入的新增脏页,即为脏页信息,从操作日志中获取该脏页信息,并将该脏页信息发送至虚拟机的管理程序,通过管理程序传输该直通脏页信息,从而实现了对直通输入输出设备在传输过程中产生的脏页信息进行传输的技术效果,进而解决了在虚拟机热迁移的过程中无法传输自于单根输入输出虚拟化硬件设备的脏页信息的技术问题。

本领域普通技术人员可以理解,图18所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图18其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图18中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图18所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例7

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例1所提供的虚拟机热迁移方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收来自于直通输入输出设备的脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页;根据脏页信息,将新增脏页从源物理机传输至目的物理机。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据脏页信息,确定新增脏页在源虚拟机的虚拟机物理存储区域中的起始存储位置信息,以及存储空间占用信息;根据起始存储位置信息和存储空间占用信息,从虚拟机物理存储区域中提取新增脏页;将新增脏页传输至目的物理机中的迁移目标位置,并经由目的物理机传输至与目的物理机对应的直通输入输出设备。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收来自于直通输入输出设备的状态信息;将状态信息传输至目的物理机中的迁移目标位置,并经由目的物理机传输至与目的物理机对应的直通输入输出设备。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从操作日志中获取脏页信息,其中,脏页信息用于描述在虚拟机从源物理机热迁移至目的物理机的过程中,由直通输入输出设备对虚拟机执行写操作所引入的新增脏页;将脏页信息发送至虚拟机的管理程序。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据虚拟机物理地址,向源物理机中与源虚拟机对应的虚拟机物理存储区域写入数据;将数据的起始存储位置信息和存储空间占用信息记录在操作日志中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收来自于管理程序的通知消息,其中,通知消息用于通知在源物理机与目的物理机之间启动热迁移;从操作日志中获取新增脏页在虚拟机物理存储区域中的起始存储位置信息,以及存储空间占用信息;根据起始存储位置信息和存储空间占用信息确定脏页信息。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取直通输入输出设备的状态信息;将状态信息发送至管理程序。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1