CN108121592A - 基于Qemu动态迁移vTPM数据的方法及装置 - Google Patents
基于Qemu动态迁移vTPM数据的方法及装置 Download PDFInfo
- Publication number
- CN108121592A CN108121592A CN201711385999.6A CN201711385999A CN108121592A CN 108121592 A CN108121592 A CN 108121592A CN 201711385999 A CN201711385999 A CN 201711385999A CN 108121592 A CN108121592 A CN 108121592A
- Authority
- CN
- China
- Prior art keywords
- vtpm
- data
- virtual machine
- source host
- encapsulation
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Abstract
本发明公开了一种基于Qemu动态迁移vTPM数据的方法,应用于目的主机端,在源主机的第一虚拟机运行过程中,加载源主机发送的第一虚拟机的vTPM封装数据,然后对vTPM封装数据进行解封装,得到vTPM数据副本,暂停第一虚拟机的运行,将vTPM数据副本同步到目的主机的第二虚拟机,启动第二虚拟机以完成动态迁移。可见,本发明能够在源主机的第一虚拟机运行过程中,将第一虚拟机的vTPM数据迁移到目的主机上,保证了虚拟机工作的连续性,满足了更多的实际应用需求。此外,本发明还提供了与上述方法相对应的装置,以及一种应用于源主机端的基于Qemu动态迁移vTPM数据的方法及装置,其作用与上述方法的作用相对应。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种应用于目的主机端的基于Qemu动态迁移vTPM数据的方法及装置,和一种应用于源主机端的基于Qemu动态迁移vTPM数据的方法及装置。
背景技术
随着信息时代的到来,人们对硬件的需求日益增高,而硬件的切换成本一般十分高昂,因此云计算技术成为行业热门。云计算通过软件来虚拟各种硬件的方式来满足业务需求或用户需求,它是一种虚拟化技术,更具体的来讲,云计算是一种通过互联网以服务的形式为用户提供的动态的可伸缩的虚拟化资源的模式。云计算允许在一台物理主机上可运行多台虚拟机,并通过虚拟机监视器hypervisor对各个虚拟机进行管理,实现了计算资源的高效利用,同时虚拟机可在不同物理主机间迁移,因而实现了计算资源的弹性分配。高效性和弹性分配是云计算的核心价值。
虽然虚拟机技术实现了高效的资源共享,但业界对其安全性的质疑一直不断。围绕该问题,科技人员研究和设计了多种安全技术,其中可信计算技术是近年来兴起的应用于云计算的重要安全技术之一。可信计算技术在设计之初,目标是保障主机在启动过程中的安全性,用于检测各模块未被破坏或篡改。随着虚拟机技术的兴起,一台物理主机上运行了多台虚拟机,由于为每台虚拟机配置一个物理TPM芯片难以实现,所以需要虚拟化实现TPM,也就是为每台虚拟机提供虚拟TPM芯片,即vTPM,由vTPM实现与物理TPM芯片无差别的可信服务。
由于云计算具有弹性分配的特点,也就是经常需要将虚拟机在不同物理主机上进行迁移,迁移的类型包括静态迁移和动态迁移。所谓动态迁移,就是指在虚拟机上的服务正常运行时,将虚拟机系统从一个物理主机迁移到另一个物理主机的过程。其中,Qemu是目前广泛应用的虚拟化软件之一,它模拟实现了CPU、网卡、显卡、TPM等多种设备,为虚拟机提供与物理设备无差别的功能,从公开资料看,Qemu已实现了CPU、网卡、显卡等通用设备的动态迁移。但是,对于TPM设备,Qemu尚不具备动态迁移能力,所以如果虚拟机配置了vTPM设备,将无法实现vTPM的动态迁移。只能将虚拟机关机后,再将vTPM迁移至目的主机。因此,在利用Qemu迁移vTPM之前必须关闭虚拟机,中断虚拟机的运行,不能满足诸多实际应用需求。
发明内容
本发明的目的是提供一种应用于目的主机端的基于Qemu动态迁移vTPM数据的方法及装置,和一种应用于源主机端的基于Qemu动态迁移vTPM数据的方法及装置,用以解决利用传统Qemu迁移vTPM时必须中断虚拟机的运行,不能满足诸多实际应用需求的问题。
为解决上述技术问题,本发明提供一种基于Qemu动态迁移vTPM数据的方法,应用于目的主机端,包括:
在源主机的第一虚拟机运行过程中,加载所述源主机发送的所述第一虚拟机的vTPM封装数据;
对所述vTPM封装数据进行解封装,得到vTPM数据副本;
向所述源主机发送暂停指令,以便所述第一虚拟机响应于所述暂停指令暂停运行;
将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,并启动所述第二虚拟机以完成动态迁移。
其中,在所述将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,并启动所述第二虚拟机以完成动态迁移之后,还包括:
判断所述第二虚拟机是否启动成功;
若所述第二虚拟机启动失败,则向所述源主机发送启动指令,以便所述源主机响应于所述启动指令启动所述第一虚拟机。
其中,在所述判断所述第二虚拟机是否启动成功之后,还包括:
若所述第二虚拟机启动成功,则判断加载得到的所述vTPM封装数据是否完整;
若加载得到的所述vTPM封装数据完整,则向所述源主机发送删除指令,以便所述源主机响应于所述删除指令删除所述第一虚拟机的vTPM数据。
其中,在所述在源主机的第一虚拟机运行过程中,加载所述源主机发送的所述第一虚拟机的vTPM封装数据之前,还包括:
从主机管理端获取源主机的可信状态;
判断所述可信状态是否为可信;
若所述可信状态为可信,则建立与所述源主机之间的通信链路。
本发明还提供了一种基于Qemu动态迁移vTPM数据的方法,应用于源主机端,包括:
在源主机的第一虚拟机运行过程中,复制所述第一虚拟机的vTPM数据,得到vTPM数据副本;
对所述vTPM数据副本进行封装,得到vTPM封装数据;
将所述vTPM封装数据发送到目的主机,以便所述目的主机对所述vTPM封装数据进行解封装得到所述vTPM数据副本,向所述源主机发送暂停指令,并将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,启动所述第二虚拟机以完成动态迁移。
其中,所述对所述vTPM数据副本进行封装,得到vTPM封装数据包括:
通过Qemu接口层向Qemu功能层发送封装指令;
所述Qemu功能层响应于所述封装指令,对所述vTPM数据副本进行封装,得到vTPM封装数据。
除此之外,本发明还提供了一种基于Qemu动态迁移vTPM数据的装置,应用于目的主机端,包括:
加载模块:用于在源主机的第一虚拟机运行过程中,加载所述源主机发送的所述第一虚拟机的vTPM封装数据;
解封装模块:用于对所述vTPM封装数据进行解封装,得到vTPM数据副本;
暂停指令发送模块:用于向所述源主机发送暂停指令,以便所述第一虚拟机响应于所述暂停指令暂停运行;
第二虚拟机启动模块:用于将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,并启动所述第二虚拟机以完成动态迁移。
其中,所述装置还包括:
启动判断模块:用于判断所述第二虚拟机是否启动成功;
启动指令发送模块:用于若所述第二虚拟机启动失败,向所述源主机发送启动指令,以便所述源主机响应于所述启动指令启动所述第一虚拟机。
其中,所述装置还包括:
数据判断模块:用于若所述第二虚拟机启动成功,判断加载得到的所述vTPM封装数据是否完整;
删除指令发送模块:用于若加载得到的所述vTPM封装数据完整,向所述源主机发送删除指令,以便所述源主机响应于所述删除指令删除所述第一虚拟机的vTPM数据。
最后,本发明还提供了一种基于Qemu动态迁移vTPM数据的装置,应用于源主机端,包括:
复制模块:用于在源主机的第一虚拟机运行过程中,复制所述第一虚拟机的vTPM数据,得到vTPM数据副本;
封装模块:用于对所述vTPM数据副本进行封装,得到vTPM封装数据;
发送模块:用于将所述vTPM封装数据发送到目的主机,以便所述目的主机对所述vTPM封装数据进行解封装得到所述vTPM数据副本,向所述源主机发送暂停指令,并将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,启动所述第二虚拟机以完成动态迁移。
本发明所提供的一种基于Qemu动态迁移vTPM数据的方法,应用于目的主机端,在源主机的第一虚拟机运行过程中,加载所述源主机发送的所述第一虚拟机的vTPM封装数据,然后对所述vTPM封装数据进行解封装,得到vTPM数据副本,再向所述源主机发送暂停指令,以便所述第一虚拟机响应于所述暂停指令暂停运行,最后将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,启动所述第二虚拟机以完成动态迁移。
可见,本发明提供的基于Qemu动态迁移vTPM数据的方法,能够在源主机上的第一虚拟机运行过程中,将第一虚拟机的vTPM数据迁移到目的主机上,保证了虚拟机工作的连续性,满足了更多的实际应用需求。
此外,本发明还提供了一种应用于目的主机端的基于Qemu动态迁移vTPM数据的装置,以及一种应用于源主机端的基于Qemu动态迁移vTPM数据的方法及装置,其作用与上述应用于目的主机端的基于Qemu动态迁移vTPM数据的方法的作用相对应,这里不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种应用于目的主机端的基于Qemu动态迁移vTPM数据的方法实施例一的实现流程图;
图2为本发明提供的一种应用于目的主机端的基于Qemu动态迁移vTPM数据的方法实施例二的实现流程图;
图3为本发明提供的一种应用于源主机端的基于Qemu动态迁移vTPM数据的方法实施例三的实现流程图;
图4为本发明提供的一种应用于目的主机端的基于Qemu动态迁移vTPM数据的装置的结构示意图;
图5为本发明提供的一种应用于源主机端的基于Qemu动态迁移vTPM数据的装置的结构示意图。
具体实施方式
本发明的核心是提供一种应用于目的主机端的基于Qemu动态迁移vTPM数据的方法及装置,和一种应用于源主机端的基于Qemu动态迁移vTPM数据的方法及装置,实现了在源主机上的第一虚拟机运行过程中,将第一虚拟机的vTPM数据迁移到目的主机上的目的,保证了虚拟机工作的连续性,满足了更多的实际应用需求。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面开始详细介绍本发明提供的一种基于Qemu动态迁移vTPM数据的方法实施例一,应用于目的主机端,参见图1,实施例一具体包括:
步骤S101:在源主机的第一虚拟机运行过程中,加载所述源主机发送的所述第一虚拟机的vTPM封装数据。
本发明中提及的源主机指的是待迁移设备数据原本存储在的物理主机,相应的,本发明中提及到的目的主机指的是待迁移设备数据将要迁移到的物理主机。这里,我们将源主机上配置了待迁移设备的虚拟机成为第一虚拟机,将目的主机上将要配置待迁移设备的虚拟机称为第二虚拟机,以下均按照上述名称来进行描述。
vTPM指的是应用于虚拟机上的虚拟的TPM,这里加载的是vTPM封装数据,也就是在源主机端经过封装的vTPM数据。具体的,可以是通过通信链路,例如SSH或SSL,来加载vTPM封装数据。
加载的动作可以通过Qemu来执行,具体的,可以在常规的Qemu中增加TIS模块和Libtpms模块。其中,TIS模块可以作为vTPM的接口层,负责将vTPM注册到Qemu中,而Libtpms模块可以作为vTPM的功能模块,负责指令的响应处理。TIS模块代码为Qemu的新增代码,例如数据保存函数Save和数据加载函数Load,分别用于接收和发送Libtpms模块的内存数据。在Libtpms模块内部添加了内存数据的封装函数和解封装函数,用于内存数据的打包和恢复,具体的,libtpms模块可以以动态库形式提供。
因此步骤S101具体可以为,目的主机上的Qemu中TIS模块执行数据加载函数Load,在源主机的第一虚拟机运行过程中,从通信链路中加载第一虚拟机的vTPM封装函数。
步骤S102:对所述vTPM封装数据进行解封装,得到vTPM数据副本。
具体的,可以为目的主机上的Qemu中Libtpms模块获取TIS模块中的vTPM封装数据,调用解封装函数,对vTPM封装数据进行解封装,最后得到vTPM数据副本。
步骤S103:向所述源主机发送暂停指令,以便所述第一虚拟机响应于所述暂停指令暂停运行。
目的主机上的Qemu完成解封装后,可以通过通信链路向源主机发送暂停指令,源主机接收到暂停指令后,可以暂停第一虚拟机的运行。
步骤S104:将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,并启动所述第二虚拟机以完成动态迁移。
这里的所述第一虚拟机的相关设备数据副本可以为预先迁移的相关设备数据副本,也就是说,在源主机发起向目的主机动态迁移第一虚拟机的请求之后,Qemu可以将第一虚拟机的各个设备数据迁移到目的主机,本发明实现的是对vTPM数据的动态迁移,对其他设备数据的动态迁移过程,这里不做详解,此外,对于vTPM数据和其他设备数据的迁移先后顺序,本发明不做限定。步骤S104指的是,在第一虚拟机的各个设备数据动态迁以完成后,将各个设备数据,也就是所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到目的主机上的第二虚拟机,并启动第二虚拟机完成动态迁移的过程。
需要说明的是,理论上讲,暂停第一虚拟机和启动第二虚拟机的作用是在一瞬间完成的,因此本发明不限定步骤S103和步骤S104的先后顺序。
在步骤S104之后,还可以进一步判断所述第二虚拟机是否启动成功,如果所述第二虚拟机启动失败,意味着动态迁移的过程中可能发生了错误,这时可以向所述源主机发送启动指令,以便所述源主机响应于所述启动指令启动所述第一虚拟机,从而不免虚拟机暂停运行。如果所述第二虚拟机启动成功,可以进一步判断加载得到的所述vTPM封装数据是否完整,若加载得到的所述vTPM封装数据完整,可以通过Qemu向所述源主机发送删除指令,以便所述源主机响应于所述删除指令删除所述第一虚拟机的vTPM数据,甚至源主机可以响应于所述删除指令删除第一虚拟机的各个设备数据。
本实施例公开了一种基于Qemu动态迁移vTPM数据的方法,应用于目的主机端,在源主机的第一虚拟机运行过程中,加载源主机发送的第一虚拟机的vTPM封装数据,然后对vTPM封装数据进行解封装,得到vTPM数据副本,暂停第一虚拟机的运行,将vTPM数据副本和第一虚拟机的相关设备数据同步到目的主机的第二虚拟机,启动第二虚拟机以完成动态迁移。可见,本实施例提供的方法能够在源主机的第一虚拟机运行过程中,将第一虚拟机的vTPM数据迁移到目的主机上,保证了虚拟机工作的连续性,满足了更多的实际应用需求。
实施例一提供的应用于目的主机端的基于Qemu动态迁移vTPM数据的方法,实现了在源主机的第一虚拟机运行过程中,将第一虚拟机的vTPM数据迁移到目的主机上,保证了虚拟机工作的连续性,满足了更多的实际应用需求。但是,考虑到实际应用中,目的主机可能为不可靠的主机,甚至发起动态迁移的源主机是不可靠的主机,因此可能会造成恶意代码的植入,对服务器进行恶意攻击等行为。基于这种考虑,本发明还提供了一种应用于目的主机端的基于Qemu动态迁移vTPM数据的方法实施例二。
下面开始详细介绍本发明提供的基于Qemu动态迁移vTPM数据的方法实施例二,应用于目的主机端,参见图2,实施例二包括:
步骤S201:从主机管理端获取源主机的可信状态。
所述主机管理端保存有多个物理主机的可信状态,在源主机与目的主机之间进行数据传输之前,可以通过主机管理端取查询对方的可信状态。
步骤S202:判断所述可信状态是否为可信,如果所述可信状态为可信,则进入步骤S203。
在确认双方的可信状态均为可信以后,主机管理器可以向源主机和目的主机下发指令,从而在源主机与目的主机之间建立通信连接。
如果所述可信状态为不可信,则拒绝源主机发起的动态迁移请求。
步骤S203:在源主机的第一虚拟机运行过程中,加载所述源主机发送的第一虚拟机的vTPM封装数据。
步骤S204:对所述vTPM封装数据进行解封装,得到vTPM数据副本。
步骤S205:向所述源主机发送暂停指令,以便所述第一虚拟机响应于所述暂停指令暂停运行。
步骤S206:将vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到目的主机上的第二虚拟机,并启动所述第二虚拟机以完成动态迁移。
步骤S207:判断所述第二虚拟机是否启动成功,若所述第二虚拟机启动失败,则进入步骤S208,否则进入步骤S209。
步骤S208:向所述源主机发送启动指令,以便所述源主机响应于所述启动指令启动所述第一虚拟机。
步骤S209:判断加载得到的所述vTPM封装数据是否完整,若所述vTPM封装数据完整,则进入步骤S210。
步骤S210:向所述源主机发送删除指令,以便所述源主机响应于所述删除指令删除所述第一虚拟机的vTPM数据。
所述源主机可以响应于删除指令删除第一虚拟机的vTPM数据,还可以进而删除第一虚拟机的其他设备数据。
本实施例提供的一种基于Qemu动态迁移vTPM数据的方法,应用于目的主机端,不仅仅实现了在源主机的第一虚拟机运行过程中,将第一虚拟机的vTPM数据迁移到目的主机上,保证虚拟机工作的连续性,满足更多的实际应用需求。而且在实施例一的基础上,增加了判断源主机可信状态的过程,从而提高了动态迁移vTPM数据的过程的安全性,更加适用于实际应用场景。
下面开始介绍本发明提供的基于Qemu动态迁移vTPM数据的方法实施例三,应用于源主机端,参见图3,实施例三具体包括:
步骤S301:在源主机的第一虚拟机运行过程中,复制所述第一虚拟机的vTPM数据,得到vTPM数据副本。
在步骤S301之前,可以从主机管理端获取目的主机的可信状态,并判断所述可信状态是否为可信,在确认所述可信状态为可信之后,再执行步骤S301。
步骤S302:对所述vTPM数据副本进行封装,得到vTPM封装数据。
参见实施例一,可以在Qemu中的TIS模块添加数据保存函数Save和数据加载函数Load,用于接收和发送Libtpms的内存数据。在Libtpms模块添加了内存数据的封装和解封装函数,用于内存数据的打包和恢复。步骤S302具体可以为通过接口层TIS向功能层Libtpms发送封装指令,然后Libtpms响应于所述封装指令,对所述vTPM数据副本进行封装,得到vTPM封装数据,完成数据打包,最后将vTPM封装数据返回给TIS。
步骤S303:将所述vTPM封装数据发送到目的主机,以便所述目的主机对所述vTPM封装数据进行解封装得到所述vTPM数据副本,向所述源主机发送暂停指令,并将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,启动所述第二虚拟机以完成动态迁移。
具体的源主机响应于所述暂停指令会暂停第一虚拟机的运行。在步骤S303之后,目的主机可以判断第二虚拟机是否启动成功,如果第二虚拟机启动失败,目的主机可以向源主机发送启动指令,所述源主机响应于所述启动指令再次启动所述第一虚拟机。如果第二虚拟机启动成功,目的主机可以向源主机发送删除指令,所述源主机响应于所述删除指令删除第一虚拟机的vTPM数据,甚至删除第一虚拟机的其他设备数据。
可见,本实施例提供的基于Qemu动态迁移vTPM数据的方法,应用于源主机端,与前述实施例一和实施例二描述的应用于目的主机端的基于Qemu动态迁移vTPM数据的方法相配合,实现了在源主机的第一虚拟机运行过程中,将第一虚拟机的vTPM数据迁移到目的主机的目的,保证了虚拟机工作的连续性,满足了更多的实际应用需求。
下面对本发明实施例提供的应用于目的主机端的基于Qemu动态迁移vTPM数据的装置进行介绍,下文描述的基于Qemu动态迁移vTPM数据的装置,与上文实施例一和实施例二描述的应用于目的主机端的基于Qemu动态迁移vTPM数据的方法可相互对应参照。
图4为本发明实施例提供的装置的结构框图,参照图4,该装置包括:
加载模块401:用于在源主机的第一虚拟机运行过程中,加载所述源主机发送的所述第一虚拟机的vTPM封装数据;
解封装模块402:用于对所述vTPM封装数据进行解封装,得到vTPM数据副本;
暂停指令发送模块403:用于向所述源主机发送暂停指令,以便所述第一虚拟机响应于所述暂停指令暂停运行;
第二虚拟机启动模块404:用于将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,并启动所述第二虚拟机以完成动态迁移。
所述装置还可以包括:
启动判断模块:用于判断所述第二虚拟机是否启动成功;
启动指令发送模块:用于若所述第二虚拟机启动失败,向所述源主机发送启动指令,以便所述源主机响应于所述启动指令启动所述第一虚拟机。
此外,所述装置还可以包括:
数据判断模块:用于若所述第二虚拟机启动成功,判断加载得到的所述vTPM封装数据是否完整;
删除指令发送模块:用于若加载得到的所述vTPM封装数据完整,向所述源主机发送删除指令,以便所述源主机响应于所述删除指令删除所述第一虚拟机的vTPM数据。
最后,所述装置还可以包括:
可信状态获取模块:用于从主机管理端获取源主机的可信状态;
可信状态判断模块:用于判断所述可信状态是否为可信;
通信链路建立模块:用于若所述可信状态为可信,则建立与所述源主机之间的通信链路。
本实施例提供的应用于目的主机端的基于Qemu动态迁移vTPM数据的装置,用于实现前述的应用于目的主机端的基于Qemu动态迁移vTPM数据的方法,因此该装置中的具体实施方式可见前文中的应用于目的主机端的基于Qemu动态迁移vTPM数据的方法的实施例部分。例如,加载模块401,解封装模块402,暂停指令发送模块403,第二虚拟机启动模块404,分别用于实现上述实施例一中步骤S101,S102,S103和S104,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再详细描述。
由于本实施例提供的应用于目的主机端的基于Qemu动态迁移vTPM数据的装置,用于实现前述的应用于目的主机端的基于Qemu动态迁移vTPM数据的方法,因此本实施例的作用可以与前述实施例一和实施例二的提供的方法的作用相互参照,这里不再赘述。
最后,本发明还提供了一种基于Qemu动态迁移vTPM数据的装置,应用于源主机端,参见图5,该装置包括:
复制模块501:用于在源主机的第一虚拟机运行过程中,复制所述第一虚拟机的vTPM数据,得到vTPM数据副本;
封装模块502:用于对所述vTPM数据副本进行封装,得到vTPM封装数据;
发送模块503:用于将所述vTPM封装数据发送到目的主机,以便所述目的主机对所述vTPM封装数据进行解封装得到所述vTPM数据副本,向所述源主机发送暂停指令,并将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,启动所述第二虚拟机以完成动态迁移。
所述装置还可以包括:
启动模块:用于响应于启动指令启动所述第一虚拟机。
此外,所述装置还可以包括:
删除模块:用于响应于删除指令删除所述第一虚拟机的vTPM数据。
最后,所述装置还可以包括:
第二可信状态获取模块:用于从主机管理端获取目的主机的可信状态;
第二可信状态判断模块:用于判断所述可信状态是否为可信;
第二通信链路建立模块:用于若所述可信状态为可信,则建立与所述目的主机之间的通信链路。
本实施例提供的应用于源主机端的基于Qemu动态迁移vTPM数据的装置,用于实现前述的应用于源主机端的基于Qemu动态迁移vTPM数据的方法,因此该装置中的具体实施方式可见前文中的应用于源主机端的基于Qemu动态迁移vTPM数据的方法的实施例部分。例如,复制模块501,封装模块502,发送模块503,分别用于实现上述实施例三中步骤S301,S302,S303,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
由于本实施例提供的应用于源主机端的基于Qemu动态迁移vTPM数据的装置,用于实现前述的应用于源主机端的基于Qemu动态迁移vTPM数据的方法,因此本实施例的作用可以与前述实施例三的提供的方法的作用相互参照,这里不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的应用于目的主机端的基于Qemu动态迁移vTPM数据的方法及装置、和应用于源主机端的基于Qemu动态迁移vTPM数据的方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种基于Qemu动态迁移vTPM数据的方法,应用于目的主机端,其特征在于,包括:
在源主机的第一虚拟机运行过程中,加载所述源主机发送的所述第一虚拟机的vTPM封装数据;
对所述vTPM封装数据进行解封装,得到vTPM数据副本;
向所述源主机发送暂停指令,以便所述第一虚拟机响应于所述暂停指令暂停运行;
将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,并启动所述第二虚拟机以完成动态迁移。
2.如权利要求1所述的方法,其特征在于,在所述将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,并启动所述第二虚拟机以完成动态迁移之后,还包括:
判断所述第二虚拟机是否启动成功;
若所述第二虚拟机启动失败,则向所述源主机发送启动指令,以便所述源主机响应于所述启动指令启动所述第一虚拟机。
3.如权利要求2所述的方法,其特征在于,在所述判断所述第二虚拟机是否启动成功之后,还包括:
若所述第二虚拟机启动成功,则判断加载得到的所述vTPM封装数据是否完整;
若加载得到的所述vTPM封装数据完整,则向所述源主机发送删除指令,以便所述源主机响应于所述删除指令删除所述第一虚拟机的vTPM数据。
4.如权利要求1-3任意一项所述的方法,其特征在于,在所述在源主机的第一虚拟机运行过程中,加载所述源主机发送的所述第一虚拟机的vTPM封装数据之前,还包括:
从主机管理端获取源主机的可信状态;
判断所述可信状态是否为可信;
若所述可信状态为可信,则建立与所述源主机之间的通信链路。
5.一种基于Qemu动态迁移vTPM数据的方法,应用于源主机端,其特征在于,包括:
在源主机的第一虚拟机运行过程中,复制所述第一虚拟机的vTPM数据,得到vTPM数据副本;
对所述vTPM数据副本进行封装,得到vTPM封装数据;
将所述vTPM封装数据发送到目的主机,以便所述目的主机对所述vTPM封装数据进行解封装得到所述vTPM数据副本,向所述源主机发送暂停指令,并将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,启动所述第二虚拟机以完成动态迁移。
6.如权利要求5所述的方法,其特征在于,所述对所述vTPM数据副本进行封装,得到vTPM封装数据包括:
通过Qemu接口层向Qemu功能层发送封装指令;
所述Qemu功能层响应于所述封装指令,对所述vTPM数据副本进行封装,得到vTPM封装数据。
7.一种基于Qemu动态迁移vTPM数据的装置,应用于目的主机端,其特征在于,包括:
加载模块:用于在源主机的第一虚拟机运行过程中,加载所述源主机发送的所述第一虚拟机的vTPM封装数据;
解封装模块:用于对所述vTPM封装数据进行解封装,得到vTPM数据副本;
暂停指令发送模块:用于向所述源主机发送暂停指令,以便所述第一虚拟机响应于所述暂停指令暂停运行;
第二虚拟机启动模块:用于将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,并启动所述第二虚拟机以完成动态迁移。
8.如权利要求7所述的装置,其特征在于,还包括:
启动判断模块:用于判断所述第二虚拟机是否启动成功;
启动指令发送模块:用于若所述第二虚拟机启动失败,向所述源主机发送启动指令,以便所述源主机响应于所述启动指令启动所述第一虚拟机。
9.如权利要求8所述的装置,其特征在于,还包括:
数据判断模块:用于若所述第二虚拟机启动成功,判断加载得到的所述vTPM封装数据是否完整;
删除指令发送模块:用于若加载得到的所述vTPM封装数据完整,向所述源主机发送删除指令,以便所述源主机响应于所述删除指令删除所述第一虚拟机的vTPM数据。
10.一种基于Qemu动态迁移vTPM数据的装置,应用于源主机端,其特征在于,包括:
复制模块:用于在源主机的第一虚拟机运行过程中,复制所述第一虚拟机的vTPM数据,得到vTPM数据副本;
封装模块:用于对所述vTPM数据副本进行封装,得到vTPM封装数据;
发送模块:用于将所述vTPM封装数据发送到目的主机,以便所述目的主机对所述vTPM封装数据进行解封装得到所述vTPM数据副本,向所述源主机发送暂停指令,并将所述vTPM数据副本和所述第一虚拟机的相关设备数据副本同步到所述目的主机上的第二虚拟机,启动所述第二虚拟机以完成动态迁移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711385999.6A CN108121592A (zh) | 2017-12-20 | 2017-12-20 | 基于Qemu动态迁移vTPM数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711385999.6A CN108121592A (zh) | 2017-12-20 | 2017-12-20 | 基于Qemu动态迁移vTPM数据的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108121592A true CN108121592A (zh) | 2018-06-05 |
Family
ID=62230604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711385999.6A Pending CN108121592A (zh) | 2017-12-20 | 2017-12-20 | 基于Qemu动态迁移vTPM数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108121592A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086118A (zh) * | 2018-07-25 | 2018-12-25 | 浪潮(北京)电子信息产业有限公司 | 基于KVM的vTPM虚拟机迁移方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617070A (zh) * | 2013-11-27 | 2014-03-05 | 华为技术有限公司 | 虚拟机迁移方法及装置 |
US8953807B2 (en) * | 2005-05-13 | 2015-02-10 | Intel Corporation | Method and apparatus for remotely provisioning software-based security coprocessors |
US20160065589A1 (en) * | 2014-09-03 | 2016-03-03 | Virtustream, Inc. | Systems and methods for securely provisioning the geographic location of physical infrastructure elements in cloud computing environments |
CN106598713A (zh) * | 2016-11-24 | 2017-04-26 | 上海交通大学 | 虚拟机安全动态迁移的方法及系统 |
CN106610863A (zh) * | 2015-10-21 | 2017-05-03 | 华为技术有限公司 | 虚拟机可信迁移方法及装置 |
-
2017
- 2017-12-20 CN CN201711385999.6A patent/CN108121592A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8953807B2 (en) * | 2005-05-13 | 2015-02-10 | Intel Corporation | Method and apparatus for remotely provisioning software-based security coprocessors |
CN103617070A (zh) * | 2013-11-27 | 2014-03-05 | 华为技术有限公司 | 虚拟机迁移方法及装置 |
US20160065589A1 (en) * | 2014-09-03 | 2016-03-03 | Virtustream, Inc. | Systems and methods for securely provisioning the geographic location of physical infrastructure elements in cloud computing environments |
CN106610863A (zh) * | 2015-10-21 | 2017-05-03 | 华为技术有限公司 | 虚拟机可信迁移方法及装置 |
CN106598713A (zh) * | 2016-11-24 | 2017-04-26 | 上海交通大学 | 虚拟机安全动态迁移的方法及系统 |
Non-Patent Citations (1)
Title |
---|
黄宇晴等: "一种基于KVM的vTPM虚拟机动态迁移方案", 《山东大学学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086118A (zh) * | 2018-07-25 | 2018-12-25 | 浪潮(北京)电子信息产业有限公司 | 基于KVM的vTPM虚拟机迁移方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169173B2 (en) | Preserving management services with distributed metadata through the disaster recovery life cycle | |
US9575789B1 (en) | Systems and methods for enabling migratory virtual machines to expedite access to resources | |
US10079850B1 (en) | Systems and methods for provisioning cyber security simulation exercises | |
US9871851B2 (en) | Migrating private infrastructure services to a cloud | |
US9244676B2 (en) | Virtual machine based controller and upgrade mechanism | |
JP6186374B2 (ja) | 仮想化されたプラットフォームへ安全に移行するためのシステム及び方法 | |
EP3200393B1 (en) | Method and device for virtual network function management | |
WO2016121830A1 (ja) | 仮想ネットワークファンクション管理装置、システム、ヒーリング方法及びプログラム | |
US11422843B2 (en) | Virtual machine migration method and apparatus having automatic user registration at a destination virtual machine | |
CN108469986B (zh) | 一种数据迁移方法及装置 | |
CN107357660A (zh) | 一种虚拟资源的分配方法及装置 | |
CN107526626A (zh) | 一种基于CRIU的Docker容器热迁移方法及系统 | |
EP3462671B1 (en) | Virtual network function resource management method and device | |
CN103324532B (zh) | 虚拟机的动态迁移方法及系统 | |
US20140007094A1 (en) | Method and apparatus to replicate stateful virtual machines between clouds | |
CN106528327A (zh) | 一种数据处理方法以及备份服务器 | |
CN109168328B (zh) | 虚拟机迁移的方法、装置和虚拟化系统 | |
WO2016045439A1 (zh) | 一种vnfm容灾保护的方法、装置和nfvo、存储介质 | |
CN106569876A (zh) | 一种基于直接设备访问模型的虚拟机迁移的方法及装置 | |
CN109086118A (zh) | 基于KVM的vTPM虚拟机迁移方法、装置及设备 | |
CN103019847B (zh) | 对虚拟机数据进行迁移的方法及系统 | |
CN109857464A (zh) | 用于平台部署与操作移动操作系统的系统及其方法 | |
CN107391226A (zh) | 一种开放堆栈Openstack平台下备份虚拟机的方法和装置 | |
CN112099916B (zh) | 虚拟机数据的迁移方法、装置、计算机设备及存储介质 | |
CN107402839A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180605 |