发明内容
鉴于此,本申请的目的在于提供一种虚拟机迁移方法、处理器及电子设备,以解决现有的在安全虚拟化技术中的虚拟机迁移效率较低的问题。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种虚拟机迁移方法,应用于虚拟机迁出设备,所述方法包括:获取待迁移虚拟机的加密密钥,并向虚拟机迁入设备发送所述加密密钥;获取所述待迁移虚拟机的内存页信息对应的待迁移数据,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥加密的数据;向所述虚拟机迁入设备发送所述待迁移数据。本申请实施例中,虚拟机迁出设备将待迁移虚拟机的加密密钥发送给对端实现密钥共享,使得在迁移的过程中,可以直接发送基于该加密密钥加密的待迁移数据,而无需先对待迁移数据进行解密再加密之后才发送给对端,通过共享虚拟机加密密钥,减少基于安全虚拟化技术的虚拟机迁移过程中需要先对待迁移数据进行解密再加密带来的时间开销,从而提升虚拟机迁移效率。
结合第一方面实施例的一种可能的实施方式,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述待迁移虚拟机的虚拟机物理地址的方式加密的数据,所述方法还包括:向所述虚拟机迁入设备发送所述虚拟机物理地址。本申请实施例中,在将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密,以保证数据的安全性,保证在虚拟机迁移过程中的数据不被攻击或者篡改,相应地,虚拟机迁出设备还向对端发送加扰时所使用的虚拟机物理地址,以使对端基于该虚拟机物理地址对该待迁移数据进行解扰,保证方案的可行性。
结合第一方面实施例的一种可能的实施方式,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述虚拟机迁出设备的主机物理地址的方式加密的数据,所述方法还包括:向所述虚拟机迁入设备发送所述主机物理地址。本申请实施例中,在将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆虚拟机迁出设备的主机物理地址的方式加密,以保证数据的安全性,保证在虚拟机迁移过程中的数据不被攻击或者篡改,相应地,虚拟机迁出设备还向对端发送加扰时所使用的主机物理地址,以使对端基于该主机物理地址对该待迁移数据进行解扰,保证方案的可行性。
结合第一方面实施例的一种可能的实施方式,向虚拟机迁入设备发送所述加密密钥,包括:对所述加密密钥加密,向所述虚拟机迁入设备发送加密后的所述加密密钥,其中,对所述加密密钥加密时所使用的密钥为所述虚拟机迁入设备和所述虚拟机迁出设备之间约定的密钥。本申请实施例中,为了保证加密密钥的安全性,在传输时,对该加密密钥使用双方约定的密钥进行加密,使得只有约定的对端才能正常解密。
第二方面,本申请实施例还提供了一种虚拟机迁移方法,应用于虚拟机迁入设备,所述方法包括:接收虚拟机迁出设备发送的待迁移数据和加密密钥,所述待迁移数据为将待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥加密的数据;将所述待迁移数据写入所述虚拟机迁入设备的物理内存,其中,所述加密密钥还用于所述虚拟机迁入设备在访问所述待迁移数据时,对所述待迁移数据进行解密。本申请实施例中,通过使虚拟机迁入设备共享虚拟机迁出设备的加密密钥,使得虚拟机迁入设备在接收到对端发送的待迁移数据时,可以直接将该待迁移数据写入虚拟机迁入设备的物理内存中,而无需对该待迁移数据先解密再加密之后才写入物理内存,在后续访问该待迁移数据时,可基于该加密密钥对待迁移数据进行解密,省去了基于安全虚拟化技术的虚拟机迁移过程中需要先对待迁移数据进行解密再加密带来的时间开销,以及省去了在迁入端对待迁移数据先解密再加密带来的时间开销,从而提升虚拟机迁移效率。
结合第二方面实施例的一种可能的实施方式,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述待迁移虚拟机的虚拟机物理地址的方式加密的数据,所述方法还包括:接收虚拟机迁出设备发送所述虚拟机物理地址,其中,所述虚拟机物理地址用于所述虚拟机迁入设备在访问所述待迁移数据时,对其进行解扰。本申请实施例中,若该待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密的数据时,虚拟机迁入设备接收对端发送的对待迁移虚拟机的数据加扰时所使用的虚拟机物理地址,使得虚拟机迁入设备可以直接将该待迁移数据直接写入物理内存,在后续虚拟机迁入设备访问该待迁移数据时,基于该虚拟机物理地址对该待迁移数据进行解扰,在保证方案的可实施的前提下,又增强了虚拟机数据的安全性。
结合第二方面实施例的一种可能的实施方式,接收虚拟机迁出设备发送的加密密钥,包括:接收所述虚拟机迁出设备发送的已加密密钥;通过解密所述已加密密钥,得到所述加密密钥。本申请实施例中,为了保证加密密钥的安全性,在传输时,对该加密密钥使用双方约定的密钥进行加密,使得只有约定的对端才能正常解密。
第三方面,本申请实施例还提供了一种虚拟机迁移方法,应用于虚拟机迁入设备,所述方法包括:接收虚拟机迁出设备发送的待迁移数据、主机物理地址和加密密钥,所述待迁移数据为将待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述主机物理地址的方式加密的数据;利用所述加密密钥和所述主机物理地址对所述待迁移数据进行解密和解扰,得到所述待迁移虚拟机的数据;将所述待迁移虚拟机的数据写入所述虚拟机迁入设备的物理内存。本申请实施例中,若待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆主机物理地址的方式加密的数据时,则在迁移过程中,虚拟机迁出设备需要向对端发送待迁移数据、主机物理地址和加密密钥,以便对端基于该加密密钥和主机物理地址对该待迁移数据进行解密和解扰,得到待迁移虚拟机的数据,然后再将该待迁移虚拟机的数据写入虚拟机迁入设备的物理内存,在保证方案的可实施的前提下,通过使用主机物理地址对待迁移虚拟机的数据进行加扰,以增强虚拟机数据的安全性;同时,虚拟机迁出设备将待迁移虚拟机的加密密钥发送给对端实现密钥共享,使得在迁移的过程中,可以直接发送基于该加密密钥和混淆主机物理地址的方式加密的待迁移数据,而无需先对待迁移数据进行解密再加密之后才发送给对端,通过共享虚拟机加密密钥,减少基于安全虚拟化技术的虚拟机迁移过程中需要先对待迁移数据进行解密再加密带来的时间开销,从而提升虚拟机迁移效率。
第四方面,本申请实施例还提供了一种处理器,应用于虚拟机迁出设备,所述处理器包括:内核和安全处理器,所述内核上部署有虚拟机监视器;所述安全处理器,用于获取待迁移虚拟机的加密密钥,并将所述加密密钥发送给所述虚拟机监视器;所述虚拟机监视器,用于获取所述待迁移虚拟机的内存页信息对应的待迁移数据,以及向虚拟机迁入设备发送所述待迁移数据和所述加密密钥,所述待迁移数据为将所述待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用所述加密密钥加密的数据。
结合第四方面实施例的一种可能的实施方式,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述待迁移虚拟机的虚拟机物理地址的方式加密的数据,所述虚拟机监视器,还用于向所述虚拟机迁入设备发送所述虚拟机物理地址。
结合第四方面实施例的一种可能的实施方式,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述虚拟机迁出设备的主机物理地址的方式加密的数据,所述虚拟机监视器,还用于向所述虚拟机迁入设备发送所述主机物理地址。
结合第四方面实施例的一种可能的实施方式,所述安全处理器,还用于对所述加密密钥加密,得到加密后的加密密钥,其中,对所述加密密钥加密时所使用的密钥为所述虚拟机迁入设备和所述虚拟机迁出设备之间约定的密钥。
第五方面,本申请实施例还提供了一种处理器,虚拟机迁入设备,所述处理器包括:内核,所述内核上部署有虚拟机监视器;所述虚拟机监视器,用于接收虚拟机迁出设备发送的待迁移数据和加密密钥,所述待迁移数据为将待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥加密的数据;所述虚拟机监视器,还用于将所述利用所述加密密钥加密的数据写入所述虚拟机迁入设备的物理内存,其中,所述加密密钥还用于所述虚拟机迁入设备在访问所述待迁移数据时,对所述待迁移数据进行解密。
结合第五方面实施例的一种可能的实施方式,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述待迁移虚拟机的虚拟机物理地址的方式加密的数据,所述虚拟机监视器,还用于接收虚拟机迁出设备发送所述虚拟机物理地址,以及将所述利用所述加密密钥和混淆所述待迁移虚拟机的虚拟机物理地址的方式加密的数据写入所述虚拟机迁入设备的物理内存;其中,所述虚拟机物理地址,用于所述虚拟机迁入设备在访问所述利用所述加密密钥和混淆所述待迁移虚拟机的虚拟机物理地址的方式加密的数据时,对其进行解扰。
结合第五方面实施例的一种可能的实施方式,所述虚拟机迁出设备发送的加密密钥为所述虚拟机迁入设备利用所述虚拟机迁入设备和所述虚拟机迁出设备之间约定的密钥加密的已加密密钥,所述处理器,还包括:安全处理器,所述安全处理器,用于解密所述已加密密钥,保存解密得到的加密密钥。
第六方面,本申请实施例还提供了一种处理器,虚拟机迁入设备,所述处理器包括:内核和安全处理器,所述内核上部署有虚拟机监视器;所述虚拟机监视器,用于接收虚拟机迁出设备发送的待迁移数据、主机物理地址和加密密钥,所述待迁移数据为将待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述主机物理地址的方式加密的数据;所述安全处理器,用于利用所述加密密钥和所述主机物理地址对所述待迁移数据进行解密和解扰,得到所述待迁移虚拟机的数据;所述安全处理器,还用于将所述待迁移虚拟机的数据写入所述虚拟机迁入设备的物理内存。
第七方面,本申请实施例还提供了一种电子设备,包括:内存和如上述第四方面实施例和/或结合第四方面实施例的任一种可能的实施方式提供的所述处理器,或者,如上述第五方面实施例和/或结合第五方面实施例的任一种可能的实施方式提供的所述处理器,或者,如上述第六方面实施例提供的所述处理器。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
如图1所示,为本申请实施例提供的一种基于安全虚拟化的虚拟机迁移系统,包括:虚拟机迁入设备和虚拟机迁出设备。虚拟机迁入设备和虚拟机迁出设备之间通过共享虚拟机加密密钥,减少基于安全虚拟化技术的虚拟机迁移过程中,虚拟机迁入设备中的虚拟机监视器与安全处理器的频繁交互带来的时间开销,同时也节约了安全处理器本身处理内存页需要的时间开销,从而提升虚拟机迁移效率。以下将结合附图来详细描述本申请的实施例及其优点。
当部署在虚拟机迁出设备上的虚拟机需要迁移时,该虚拟机迁出设备获取待迁移虚拟机的加密密钥,并向虚拟机迁入设备发送该加密密钥,以便虚拟机迁入设备保存该加密密钥,以备后续使用。此外,考虑到传输过程中的加密密钥的安全性,避免被攻击者轻易获取,该虚拟机迁出设备还可以对获取到的待迁移虚拟机的加密密钥进行加密,然后向虚拟机迁入设备发送加密的加密密钥,虚拟机迁入设备在接收到加密的加密密钥后,对其进行解密。其中,对加密密钥加密时所使用的密钥为虚拟机迁入设备和虚拟机迁出设备之间约定的密钥,该密钥可以通过协商、预置或者其他方式获得。
该虚拟机迁出设备扫描待迁移虚拟机的内存页信息,获取对应的待迁移数据,并将该待迁移数据发送给虚拟机迁入设备。其中,该待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥加密的数据。虚拟机迁入设备在接收到该待迁移数据时,直接将待迁移数据(利用加密密钥加密的数据)写入虚拟机迁入设备的物理内存,当后续在访问该物理内存中的利用加密密钥加密的数据时,利用保存的加密密钥对该数据进行解密。
作为一种实施方式,为了进一步增加数据的安全性,保障在虚拟机迁移过程中的数据不被攻击或者篡改,在将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中除了利用加密密钥对其加密外,还可以通过混淆物理地址(待迁移虚拟机的虚拟机物理地址,或者虚拟机迁出设备的主机物理地址)的方式对待迁移虚拟机的数据或者对加密密钥进行加扰。其可以是,在待迁移虚拟机的数据中混淆该物理地址形成新的数据,然后再利用加密密钥对形成的新数据加密;当然也可以是,在加密密钥中混淆该物理地址形成新的密钥,再利用该新的密钥对待迁移虚拟机的数据进行加密。
其中,当待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密的数据时,虚拟机迁出设备还需要向虚拟机迁入设备发送加扰时所使用的虚拟机物理地址,以便虚拟机迁入设备在访问待迁移数据(此时为利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密的数据)基于该虚拟机物理地址对待迁移数据进行解扰。由于加扰所使用的是虚拟机物理地址,因此,虚拟机迁入设备在接收到该待迁移数据(此时为利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密的数据)时,可以直接将其写入自身的物理内存中。
当待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆虚拟机迁出设备的主机物理地址的方式加密的数据时,虚拟机迁出设备还需要向虚拟机迁入设备发送加扰时所使用的主机物理地址,以便虚拟机迁入设备基于该主机物理地址和待迁移虚拟机的加密密钥对该待迁移虚拟机(此时为利用加密密钥和混淆虚拟机迁出设备的主机物理地址的方式加密的数据)进行解密和解扰,得到待迁移虚拟机的数据(未加密),然后将该待迁移虚拟机的数据写入虚拟机迁入设备的物理内存,在这个过程中,由内存控制器对该待迁移虚拟机的数据进行加密。此时,加密所使用的密钥可以是待迁移虚拟机的加密密钥,也可以是其他的加密密钥。
虚拟机迁出设备不断的扫描需要迁移的内存页信息,并将该内存页信息对应的待迁移数据发送给对端,直到虚拟机迁出设备判断满足迁移结束条件的时候,完成收尾工作后结束迁移流程。例如虚拟机迁出设备发送完所有需要迁移的内存页信息对应的待迁移数据时,则满足迁移结束条件。虚拟机迁入设备不断的将获取到的待迁移数据写入内存中,直到虚拟机迁入设备判断满足迁移结束条件的时候,完成收尾工作后结束迁移流程。例如虚拟机迁入设备在预设时长内未接收到虚拟机迁出设备发送的待迁移数据,或者,接收到对端发送的迁移结束标识,则表征满足迁移结束条件。
其中,需要说明的是,处理器或控制器在访问内存中的数据时,均是通过内存控制器来进行访问的,即通过内存控制器向内存写入数据,或者,通过内存控制器从内存中读取数据。其中,内存控制器用于基于物理地址向内存中写入数据,或者从内存中读出数据。内存控制器在写入数据的过程中,若需要对该数据进行加密或加扰,则内存控制器会对该数据进行加密或加扰处理;内存控制器在从内存中读取数据的过程中,若需要对该数据进行解密或解扰,则内存控制器会对读取的数据进行解密或解扰。内存控制器对写入内存的数据进行加密或加扰或内存控制器对从内存中读取的数据进行解密或解的具体过程已经为本领域技术人员所熟知,此处不作过多介绍。
此外,除了在将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用混淆物理地址的方式对其加扰外(此时,获取到的待迁移数据即为加扰后的数据),还可以是在传输的过程中,对传输的数据(此时,该数据仅加密未加扰)进行加扰,也即虚拟机迁出设备在获取到未加扰的待迁移数据后,对其进行加扰(如通过混淆物理地址的方式进行加扰),然后将加扰后的待迁移数据(利用加密密钥加密的数据)发送给虚拟机迁入设备,同时还需要将加扰所使用的信息(如待迁移虚拟机的虚拟机物理地址,或者虚拟机迁出设备的主机物理地址)发给虚拟机迁入设备,虚拟机迁入设备在接收到该加扰信息后,利用该加扰信息对加扰后的利用加密密钥加密的数据进行解扰,得到利用加密密钥加密的数据。
其中,需要说的是,虚拟机迁出设备在迁移待迁移虚拟机的过程中,除了向对端发送待迁移数据外,还需要发送待迁移虚拟机的其他信息,如迁移的数据长度、校验值以及虚拟机物理地址等,以便于用于恢复虚拟机内存,以及用于校验数据的完整性和一致性。该部分内容已经为本领域技术人员所熟知的内容,为了避免累赘,此处不在介绍。
其中,示例性的,上述的加密或解密所用到的算法包括但不限于:数字签名算法(Digital Signature Algorithm,DSA)、高级加密标准(Advanced Encryption Standard,AES)、数据加密标准(Data Encryption Standard,DES)、MD5算法等。
如图1所示,该虚拟机迁出设备,包括:处理器和内存。该处理器包括:内核(处理器核)和安全处理器。其中,内核上部署有虚拟机监视器(Virtual Machine Monitor VMM),在硬件虚拟化技术中,使用VMM来隔离虚拟系统与宿主硬件。VMM也可称为虚拟机管理器,其可直接运行在系统硬件上,也可以运行在宿主操作系统上。VMM实现了从虚拟资源到物理资源的映射,并利用本地物理资源进行计算。当虚拟系统访问系统资源时,VMM将接管这个请求,并将处理结果返回给虚拟机系统,这样就实现了多个硬件设备的虚拟,保证虚拟系统的有效隔离。
由于基于安全虚拟化技术的虚拟机内存使用了虚拟机加密密钥进行加密,因此在迁移开始的时候,该虚拟机监视器向安全处理器发送密钥获取请求,其中,该密钥获取请求中携带有待迁移虚拟机的识别号,安全处理器响应该密钥获取请求,获取该识别号对应的待迁移虚拟机的加密密钥,然后将该加密密钥返回给虚拟机监视器。若该密钥获取请求中还携带有加密标识,则安全处理器在获取到迁移虚拟机的加密密钥,还对其进行加密,得到加密的加密密钥,其中,对加密密钥加密时所使用的密钥为虚拟机迁入设备和虚拟机迁出设备之间约定的密钥。
虚拟机监视器,用于获取待迁移虚拟机的内存页信息对应的待迁移数据,以及向虚拟机迁入设备发送待迁移数据和加密密钥,待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥加密的数据,以使虚拟机迁入设备在接收到该待迁移数据时,直接将待迁移数据(利用加密密钥加密的数据)写入虚拟机迁入设备的物理内存,以及保存该加密密钥,当后续在访问该物理内存中的利用加密密钥加密的数据时,利用保存的加密密钥对该数据进行解密。
作为一种实施方式,待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密的数据,虚拟机监视器,还用于向虚拟机迁入设备发送虚拟机物理地址。以便虚拟机迁入设备在访问待迁移数据(此时为利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密的数据)基于该虚拟机物理地址对待迁移数据进行解扰。
作为一种实施方式,待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆虚拟机迁出设备的主机物理地址的方式加密的数据,虚拟机监视器,还用于向虚拟机迁入设备发送主机物理地址。以便虚拟机迁入设备基于该主机物理地址和待迁移虚拟机的加密密钥对该待迁移虚拟机(此时为利用加密密钥和混淆虚拟机迁出设备的主机物理地址的方式加密的数据)进行解密和解扰,得到待迁移虚拟机的数据(未加密),然后将该待迁移虚拟机的数据写入虚拟机迁入设备的物理内存,在这个过程中,由内存控制器对该待迁移虚拟机的数据进行加密。
其中,在该应用场景中的实施流程中,实施流程中涉及到的各个步骤的详细实施方式在前述系统实施例中已经作了详细介绍,为了说明书的简洁,在此不再重复介绍。
如图1所示,该虚拟机迁入设备,包括:处理器和内存。该处理器包括:内核(处理器核)。其中,内核上部署有虚拟机监视器(软件)。
其中,虚拟机监视器,用于接收虚拟机迁出设备发送的待迁移数据和加密密钥,待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥加密的数据。虚拟机监视器,还用于将待迁移数据写入虚拟机迁入设备的物理内存。其中,加密密钥还用于虚拟机迁入设备在访问待迁移数据时,对待迁移数据进行解密。
作为一种实施方式,当待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密的数据时,虚拟机监视器,还用于接收虚拟机迁出设备发送虚拟机物理地址,以及将待迁移数据(此时为利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密的数据)写入虚拟机迁入设备的物理内存。其中,虚拟机物理地址,用于虚拟机迁入设备在访问待迁移数据(利用加密密钥和混淆待迁移虚拟机的虚拟机物理地址的方式加密的数据)时,对其进行解扰。
作为一种实施方式,虚拟机迁出设备发送的加密密钥为虚拟机迁入设备利用虚拟机迁入设备和虚拟机迁出设备之间约定的密钥加密的已加密密钥,该处理器,还包括:安全处理器,安全处理器,用于解密已加密密钥,保存解密得到的加密密钥。也即,虚拟机监视器在接收到虚拟机迁出设备发送的已加密密钥时,将该已加密密钥发送给安全处理器,由安全处理器对其进行解密,得到待迁移虚拟机的加密密钥。
作为一种实施方式,当待迁移数据为将待迁移虚拟机的数据写入虚拟机迁出设备的物理内存的过程中利用加密密钥和混淆主机物理地址的方式加密的数据时,此时,虚拟机迁出设备除了向虚拟机迁入设备的虚拟机监视器发送待迁移数据和加密密钥外,还需要向其发送加扰使所使用的主机物理地址(虚拟机迁出设备的主机物理地址),由于该待迁移数据为混淆虚拟机迁出设备的主机物理地址进行加扰的数据,因此虚拟机监视器不能直接将其写入物理内存中,此时,虚拟机监视器在接收到虚拟机迁出设备发送的待迁移数据、主机物理地址和加密密钥时,需要将该待迁移数据转交给安全处理器进行处理,进一步地,安全处理器,用于利用加密密钥和主机物理地址对待迁移数据进行解密和解扰,得到待迁移虚拟机的数据;以及将待迁移虚拟机的数据写入虚拟机迁入设备的物理内存。在这个过程中,由内存控制器对该待迁移虚拟机的数据进行加密。此时,加密所使用的密钥可以是待迁移虚拟机的加密密钥,也可以是其他的加密密钥。其中,需要说明的是,控制器或处理器(如上述的安全处理器或内核)在访问物理内存中的数据时,均是通过内存控制器来进行访问的,即通过内存控制器向内存写入数据,或者,通过内存控制器从内存中读取数据。
其中,上述的处理器可以是中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、加速处理器(Accelerated Processing Unit)等,也还可以是其他类型的处理器,如网络处理器(Network Processor,NP)、应用处理器,当然在某些产品中,应用处理器就是CPU。
上述的内存用于暂时存放处理器需要的运算数据,以及与硬盘等外部存储器交换的数据,该内存可以是双倍速率同步动态随机存储器(Double Data Rate,DDR),也还可以是其他的存储器,如随机存取存储器(Random Access Memory,RAM),动态随机存储器(Dynamic Random Access Memory,DRAM)等。
其中,需要说明的是,本申请实施例中,虚拟机迁出设备以及虚拟机迁入设备中的处理器的内核的数量为至少一个,以提高运算能力及提高系统的稳定性等,即便是某个处理器核损坏时,也能保证稳定运行。至少一个处理器核上部署有虚拟机(软件)和虚拟机监视器(软件)。
其中,在该应用场景中的实施流程中,实施流程中涉及到的各个步骤的详细实施方式在前述系统实施例中已经作了详细介绍,为了说明书的简洁,在此不再重复介绍。
请参阅图2为本申请实施例提供的一种应用于基于安全虚拟化的虚拟机迁移系统中的虚拟机迁移方法,下面将结合图2对其所包含的步骤进行说明。
步骤S101:虚拟机迁出设备获取待迁移虚拟机的加密密钥以及获取待迁移虚拟机的内存页信息对应的待迁移数据。
步骤S102:虚拟机迁出设备向虚拟机迁入设备发送所述待迁移数据和加密密钥。
步骤S103:虚拟机迁入设备将所述待迁移数据写入所述虚拟机迁入设备的物理内存以及保存所述加密密钥。
其中,作为一种实施方式,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥加密的数据,相应地,虚拟机迁入设备将待迁移数据写入所述虚拟机迁入设备的物理内存的实质为:虚拟机迁入设备将利用所述加密密钥加密的数据写入所述虚拟机迁入设备的物理内存。
作为又一种实施方式,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述待迁移虚拟机的虚拟机物理地址的方式加密的数据,此时,虚拟机迁出设备还需要向所述虚拟机迁入设备发送所述虚拟机物理地址,相应地,虚拟机迁入设备将待迁移数据写入所述虚拟机迁入设备的物理内存的实质为:虚拟机迁入设备将利用所述加密密钥和混淆所述待迁移虚拟机的虚拟机物理地址的方式加密的数据写入所述虚拟机迁入设备的物理内存。
此外,虚拟机迁出设备还可以对加密密钥采用所述虚拟机迁入设备和所述虚拟机迁出设备之间约定的密钥进行加密后发送,此时虚拟机迁入设备在接收到加密的加密密钥后,对其进行解密,然后将其保存。
为了便于理解虚拟机迁移过程中虚拟机迁出设备以及虚拟机迁入设备中的虚拟机监视器和安全处理器的交互过程,可以参阅图3所示的流程图。其中,需要说明的是,图3所示的流程图仅是众多实施例中的一种,因此不能将其理解成是对本申请的限制。
请参阅图4,为本申请实施例提供的一种应用于基于安全虚拟化的虚拟机迁移系统中的虚拟机迁移方法,下面将结合图4对其所包含的步骤进行说明。
步骤S201:虚拟机迁出设备获取待迁移虚拟机的加密密钥、待迁移数据以及主机物理地址。
其中,所述待迁移数据为将所述待迁移虚拟机的数据写入所述虚拟机迁出设备的物理内存的过程中利用所述加密密钥和混淆所述主机物理地址的方式加密的数据。
步骤S202:虚拟机迁出设备向虚拟机迁入设备发送所述待迁移数据、所述加密密钥和所述主机物理地址。
步骤S203:虚拟机迁入设备基于所述加密密钥和所述主机物理地址对所述待迁移数据进行解密和解扰,得到待迁移虚拟机的数据。
步骤S204:虚拟机迁入设备将所述待迁移虚拟机的数据写入所述虚拟机迁入设备的物理内存。
为了便于理解虚拟机迁移过程中虚拟机迁出设备以及虚拟机迁入设备中的虚拟机监视器和安全处理器的交互过程,可以参阅图5所示的流程图。其中,需要说明的是,图5所示的流程图仅是众多实施例中的一种,因此不能将其理解成是对本申请的限制。
本申请实施例所提供的虚拟机迁移方法,其实现原理及产生的技术效果和前述装置实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述装置实施例中相应内容。
本申请实施例还提供了一种非易失性计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的电子设备200运行时,执行上述方法实施例所示的虚拟机迁移方法。该存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。