一种虚拟机迁移方法以及设备技术

技术编号:27464614 阅读:56 留言:0更新日期:2021-03-02 17:26
一种虚拟机迁移方法以及设备,用以提高虚拟机内存数据的迁移效率,本申请中,第一设备接收第二设备发送的迁移指令,根据迁移指令创建第一设备中的待迁移虚拟机的目标虚拟机,之后,第一设备接收第二设备发送的待迁移虚拟机内存位图,该内存位图可以指示待迁移虚拟机的内存中每个内存单元的数据存储于非易失性内存,还是易失性内存。在虚拟机迁移过程中,第一设备将第二设备发送的待迁移虚拟机的内存中的数据,根据内存位图将待迁移虚拟机的内存中的数据存储至目标虚拟机的易失性内存及非易失性内存中。这样,使得目标虚拟机中非易失性内存可以存储较少的活跃数据,提高虚拟机内存数据的迁移效率,能够保证目标虚拟机在恢复运行后的运行速度。行后的运行速度。行后的运行速度。

【技术实现步骤摘要】
一种虚拟机迁移方法以及设备


[0001]本申请涉及存储
,尤其涉及一种虚拟机迁移方法以及设备。

技术介绍

[0002]虚拟机迁移是指将虚拟机从一台主机迁移到另一台主机中,虚拟机迁移过程可以分为两部分,分别为处理器状态的迁移(例如寄存器的存储状态)以及虚拟机的内存数据的迁移,其中,处理器状态的迁移瞬间可以完成。
[0003]虚拟机的内存数据的迁移则通常采用在线迁移的方式,也就是在保持虚拟机在源主机正常运行的过程中,将虚拟机的内存数据从源主机的存储器迁移至目的主机中,完成虚拟机内存数据的跨主机迁移。
[0004]目前,主机使用的内存包括两种不同性能的存储器,例如易失性内存和非易失性内存。这样,虚拟机的内存数据保存在源主机的两个不同的存储器中,如虚拟机中的活跃数据(如一些需要经常读写的数据)存储在源主机的易失性内存中,而一些不活跃的数据(如一些不需要经常读写的内存数据)在源主机的非易失性内存中。采用在线迁移的方式迁移虚拟机的内存数据时,源主机并不区分不活跃数据和活跃数据,而是直接进行数据打包,将打包后的数据发送至目的主机,目的主机在接收到数据后,将接收到的数据保存到目的主机中易失性内存中。随着源主机持续将虚拟机的内存数据发送至目的主机,目的主机中的易失性内存中空闲的存储空间会逐渐减少,当易失性内存中无空闲的存储空间时,目的主机可以按照数据接收的前后顺序,将最先接收到的虚拟机的内存数据存储至目的主机中的非易失性内存中。
[0005]这将导致目的主机中的非易失性内存中会存储的活跃数据,在虚拟机迁移至目的主机后,对需要从目的主机的非易失性内存中访问一些活跃的数据,从而影响数据的访问时延。

技术实现思路

[0006]本申请提供一种虚拟机迁移方法以及设备,用以提高虚拟机内存数据的迁移效率。
[0007]第一方面,本申请提供了一种虚拟机迁移方法,由第一设备执行,该方法包括:第一设备可以接收第二设备发送的迁移指令,该迁移指令可以用于指示第一设备创建第一设备中的待迁移虚拟机对应的目标虚拟机,该迁移指令中可以携带虚拟机迁移的时间,还可以携带待迁移虚拟机的配置信息,这样,第一设备可以根据迁移指令创建第一设备中的待迁移虚拟机的目标虚拟机,待迁移虚拟机和目标虚拟机的配置相同,待迁移虚拟机和目标虚拟机均包括非易失性内存和易失性内存。之后,第一设备还可以接收第二设备发送的待迁移虚拟机内存位图,该内存位图可以指示待迁移虚拟机的内存中的每个内存单元的数据存储于非易失性内存中,还是易失性内存中。
[0008]在虚拟机迁移过程中,第一设备接收第二设备发送的待迁移虚拟机的内存中的数
据;还可以根据内存位图将待迁移虚拟机的内存中的数据存储至目标虚拟机的易失性内存及非易失性内存中。
[0009]通过上述方法,第一设备和第二设备在进行虚拟机迁移后,第一设备中的目标虚拟机的内存数据在易失性内存及非易失性内存的分布情况能够接近与第二设备中待迁移虚拟机的内存数据在易失性内存及非易失性内存的分布情况,目标虚拟机的非易失性内存可以存储较少的活跃数据,可以提高虚拟机内存数据的迁移效率,能够保证目标虚拟机在恢复运行后的运行速度。
[0010]在一种可能的实现方式中,第一设备在根据内存位图将待迁移虚拟机的内存中的数据存储至目标虚拟机的易失性内存及非易失性内存中时,可以按照内存位图的指示,将待迁移虚拟机存储在易失性内存的内存数据存储至目标虚拟机的易失性内存;将待迁移虚拟机存储在非易失性内存的内存数据存储至目标虚拟机的非易失性内存中。
[0011]例如,第一设备每当接收到第二设备传输的数据包时,根据内存位图确定数据包中包括的各个内存单元的数据存储在易失性内存中,还是非易失性内存中;之后,将数据包中内存位图指示的存储于易失性内存的内存单元的数据存储在目标虚拟机的易失性内存;将数据包中内存位图指示的存储于非易失性内存的内存单元的数据存储在目标虚拟机的非易失性内存。
[0012]通过上述方法,可以使得第一设备中的目标虚拟机的内存数据在易失性内存及非易失性内存的分布情况与第二设备中待迁移虚拟机的内存数据在易失性内存及非易失性内存的分布情况基本一致,目标虚拟机的非易失性内存可以存储较少的活跃数据;目标虚拟机在恢复运行之后,目标虚拟机的运行状态能够与迁移前待迁移虚拟机的运行状态一致。
[0013]在一种可能的实现方式中,第一设备在根据内存位图将待迁移虚拟机的内存中的数据存储至目标虚拟机的易失性内存及非易失性内存中时,也可以先将待迁移虚拟机的内存数据依次迁入易失性内存中;在迁移到易失性内存的过程中,判断易失性内存中的数据是否大于等于阈值;在易失性内存中的数据大于等于阈值的情况下,根据内存位图,将当前存储在目标虚拟机的易失性内存,但在内存位图中指示存储于非易失性内存的数据迁移至目标虚拟机的非易失性内存。
[0014]通过上述方法,可以使得目标虚拟机中的非易失性内存存储的内存数据为待迁移虚拟机的存储在非易失性内存的内存数据,目标虚拟机中的易失性内存存储的内存数据为待迁移虚拟机的存储在易失性内存的内存数据;目标虚拟机在恢复运行之后,目标虚拟机的运行状态较好。
[0015]在一种可能的实现方式中,第一设备在根据内存位图将待迁移虚拟机的内存中的数据存储至目标虚拟机的易失性内存及非易失性内存时,还可以接收第二设备发送的在迁移待迁移虚拟机的内存中的数据时的内存改写数据、内存改写数据所写入的内存单元在所述内存位图中的位置信息;可选的还可以接收内存位图的更新比特位,更新比特位用于指示内存改写数据存储于非易失性内存中,还是非易失性内存中;之后,第一设备可以根据内存改写数据所写入的内存单元在所述内存位图中的位置信息将内存改写数据更新至目标虚拟机的易失性内存或非易失性内存中;并根据内存位图的更新比特位对内存位图中对应的比特位进行更新。
[0016]通过上述方法,第一设备能够从第二设备接收内存中被改写的数据,以及内存位图的更新比特位,可以使得第一设备可以接收到第二设备待迁移虚拟机的较为完整的内存数据,内存位图的更新也可以使得内存位图可以较为准确的指示待迁移虚拟机的内存数据的存储位置,第一设备之后可以根据更新后的内存位图在第一设备内部迁移目标虚拟机的内存数据。
[0017]在一种可能的实现方式中,第一设备在根据内存位图将待迁移虚拟机的内存中的数据存储至目标虚拟机的易失性内存及非易失性内存时,还可以接收第二设备发送的在迁移待迁移虚拟机的内存中的数据时的内存写入数据、内存写入数据所写入的内存单元在所述内存位图中的位置信息以及内存位图的更新比特位,更新比特位可以指示内存写入数据存储于非易失性内存中,还是非易失性内存中;之后,第一设备可以根据内存写入数据所写入的内存单元在所述内存位图中的位置信息将内存写入数据存储至目标虚拟机的易失性内存或非易失性内存中;并在内存位图中增加内存位图的更新比特位。
[0018]通过上述方法,第一设备能够从第二设备接收内存中新写入的数据,以及内存位图的更新比特位,可以使得第一设备可以接收到第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟机迁移方法,由第一设备执行,其特征在于,该方法包括:接收第二设备发送的迁移指令,根据所述迁移指令创建所述第一设备中的待迁移虚拟机的目标虚拟机;接收第二设备发送的所述待迁移虚拟机内存位图,所述内存位图用于指示所述待迁移虚拟机的内存中的每个内存单元的数据存储于非易失性内存中,还是非易失性内存中,其中所述待迁移虚拟机和所述目标虚拟机都包括非易失性内存和易失性内存;接收所述第二设备发送的所述待迁移虚拟机的内存中的数据;根据所述内存位图将所述待迁移虚拟机的内存中的数据存储至所述目标虚拟机的易失性内存及非易失性内存中。2.如权利要求1所述的方法,其特征在于,所述根据所述内存位图将所述待迁移虚拟机的内存中的数据存储至所述目标虚拟机的易失性内存及非易失性内存中,包括:将所述待迁移虚拟机的内存中的数据依次迁入所述目标虚拟机的易失性内存中;判断所述易失性内存中的数据是否大于等于预设阈值;当所述易失性内存中的数据大于等于所述预设阈值时,根据所述内存位图,将当前存储在所述目标虚拟机的易失性内存,但在所述内存位图中指示存储于所述非易失性内存的数据迁移至所述目标虚拟机的非易失性内存。3.如权利要求1所述的方法,其特征在于,所述根据所述内存位图将所述待迁移虚拟机的内存数据存储至所述目标虚拟机的易失性内存及非易失性内存中,包括:每当接收到所述第二设备传输的数据包时,根据所述内存位图确定所述数据包中包括的各个内存单元的数据存储在所述易失性内存中,还是所述非易失性内存中;将所述数据包中所述内存位图指示的存储于所述易失性内存的内存单元的数据存储在所述目标虚拟机的易失性内存;将所述数据包中所述内存位图指示的存储于所述非易失性内存的内存单元的数据存储在所述目标虚拟机的非易失性内存。4.如权利要求1~3任一所述的方法,其特征在于,所述根据所述内存位图将所述待迁移虚拟机的内存中的数据存储至所述目标虚拟机的易失性内存及非易失性内存中,包括:接收所述第二设备发送的在迁移所述待迁移虚拟机的内存中的数据时的内存改写数据、所述内存改写数据所写入的内存单元在所述内存位图中的位置信息以及所述内存位图的更新比特位,所述更新比特位用于指示所述内存改写数据存储于所述非易失性内存中,还是所述非易失性内存中;根据所述内存改写数据所写入的内存单元在所述内存位图中的位置信息将所述内存改写数据更新至所述目标虚拟机的易失性内存或非易失性内存中;根据所述内存位图的更新比特位对所述内存位图中对应的比特位进行更新。5.如权利要求1~3任一所述的方法,其特征在于,所述根据所述内存位图将所述待迁移虚拟机的内存数据存储至所述目标虚拟机的易失性内存及非易失性内存中,包括:接收所述第二设备发送的在迁移所述待迁移虚拟机的内存中的数据时的内存写入数据、所述内存写入数据所写入的内存单元在所述内存位图中的位置信息以及所述内存位图的更新比特位,所述更新比特位用于指示所述内存写入数据存储于所述非易失性内存中,还是所述非易失性内存中;
根据所述内存写入数据所写入的内存单元在所述内存位图中的位置信息将所述内存写入数据存储至所述目标虚拟机的易失性内存或非易失性内存中;在所述内存位图中增加所述内存位图的更新比特位。6.一种虚拟机迁移方法,由第二设备执行,其特征在于,该方法包括:向第一设备发送迁移指令,所述迁移指令用于指示所述第一设备创建所述第一设备中的待迁移虚拟机对应的目标虚拟机;向所述第一设备发送待迁移虚拟机的内存位图,所述内存位图用于指示所述待迁移虚拟机的内存中的每个内存单元的数据存储于非易失性内存中,还是非易失性内存中,其中,所述待迁移虚拟机包括非易失性内存和易失性内存;向所述第一设备发送所述待迁移虚拟机的内存中的数据。7.如权利要求6所述的方法,其特征在于,所述向所述第一设备发送所述待迁移虚拟机内存位图之前,还包括:根据所述待迁移虚拟机的内存中每个内存单元的数据的存储地址确定所述待迁移虚拟机的内存中的每个内存单元的数据存储于所述非易失性内存中,还是所述非易失性内存中,生成所述待迁移虚拟机内存位图。8.如权利要求6或7所述的方法,其特征在于,所述向所述第一设备发送所述待迁移虚拟机的内存中的数据,包括:在向所述第一设备发送所述待迁移虚拟机的内存中的数据的过程中,记录所述待迁移虚拟机的内存改写数据,以及所述内存改写数据所写入的内存单元的位置信息;生成所述内存位图的更新比特位,所述更新比特位用于指示所述内存改写数据存储于所述非易失性内存中,还是所述非易失性内存中;向所述第一设备发送所述内存改写数据、所述内存改写数据所写入的内存单元在所述内存位图中的位置信息以及所述内存位图的更新比特位。9.如权利要求6或7所述的方法,其特征在于,所述向所述第一设备发送所述待迁移虚拟机的内存数据,包括:在向所述第一设备发送所述待迁移虚拟机的内存中的数据的过程中,记录所述待迁移虚拟机的内存写入数据,以及所述内存写入数据所写入的内存单元在所述内存位图中的位置信息;生成所述内存位图的更新比特位,所述更新比特位用于指示所述内存写入数据存储于所述非易失性内存中,还是所述非易失性内存中;向所述第一设备发送所述内存写入数据、所述内存写入数据所写入的内存单元的位置信息以及所述内存位图的更新比特位。10.一种设备,其特征在于,该设备包括接收单元、处理单元:所述接收单元,用于接收第二设备发送的迁移指令;以及接收第二设备发送的...

【专利技术属性】
技术研发人员:冯宇波
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1