虚拟机热迁移方法、装置、存储介质和电子设备制造方法及图纸

技术编号:39141859 阅读:10 留言:0更新日期:2023-10-23 14:55
本申请公开了一种虚拟机热迁移方法、装置、存储介质和电子设备。包括:确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值;在占用值大于占用阈值时,获取第一交换分区的区域总值、区域空闲值以及物理内存的内存空闲值;将区域总值和区域空闲值之差作为第一交换分区的占用总值,并在占用总值小于内存空闲值时,创建第二交换分区;在多个虚拟机进行热迁移时,将第一交换分区内的第一虚拟机数据存入物理内存中进行迁移,并采用第二交换分区存放物理内存的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。本申请解决了相关技术在虚拟机热迁移时,源物理机直接访问交换分区导致整体迁移速度较慢的技术问题。速度较慢的技术问题。速度较慢的技术问题。

【技术实现步骤摘要】
虚拟机热迁移方法、装置、存储介质和电子设备


[0001]本申请涉及计算机
,具体而言,涉及一种虚拟机热迁移方法、装置、存储介质和电子设备。

技术介绍

[0002]交换分区(Swap)是一种用于Linux系统的虚拟内存技术,其是在操作系统的物理内存不够用的情况下,将硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。而那些被释放的空间可能来自一些很长时间没有什么操作的程序,此时操作系统会将这些被释放的空间临时保存到交换分区中,直至那些程序要运行时,再从交换分区中恢复保存的数据到物理内存中。
[0003]但在云平台中,当虚拟机发生在线迁移的时候,源主机和目的主机会将虚拟机中的内存文件进行交互,如果内存都在物理内存的话,其访问速度是纳秒级(约),但是当虚拟机中的内存部分或者很多落盘在交换分区上时,源主机就需要读取磁盘上的数据虚拟为内存与目的主机进行交换,且其访问速度仅是微秒级(约)。也就是说,整体实时在线迁移的速度会因为虚拟机的内存文件从交换分区中读取而大大增加,且整体增加的时间也会受到虚拟机内存文件在物理机交换分区中所占比例而有所增加。
[0004]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0005]本申请实施例提供了一种虚拟机热迁移方法、装置、存储介质和电子设备,以至少解决相关技术在虚拟机热迁移时,源物理机直接访问交换分区导致整体迁移速度较慢的技术问题。
[0006]根据本申请实施例的一个方面,提供了一种虚拟机热迁移方法,包括:确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
[0007]可选地,确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,包括:确定单个虚拟机所属的源物理机的内核版本信息;在内核版本信息满足预设版本要求时,获取源物理机上单个虚拟机的进程信息;基于单个虚拟机的进程信息确定单个虚拟机的多个线程在源物理机的第一交换分区内的占用值。
[0008]可选地,获取源物理机上单个虚拟机的进程信息,包括:通过查找源物理机内的/
proc/PID/smaps文件,获取源物理机上单个虚拟机的进程信息。
[0009]可选地,分别获取第一交换分区的区域总值、区域空闲值以及源物理机的物理内存的内存空闲值,包括:通过查找源物理机内的/proc/meminfo文件,分别获取区域总值、区域空闲值以及物理内存的内存空闲值。
[0010]可选地,创建与第一交换分区相同大小的第二交换分区,包括:创建与源物理机的第一交换分区的区域总值大小相等的块,并将块格式化为源物理机的第二交换分区。
[0011]可选地,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移,包括:取消将第一交换分区作为源物理机的交换分区,并将第一交换分区内存储的每个虚拟机的第一虚拟机数据放入源物理机的物理内存进行迁移;判断存入各个虚拟机的第一虚拟机数据后的内存空闲值是否小于物理内存阈值;在存入各个虚拟机的第一虚拟机数据后的内存空闲值小于物理内存阈值的情况下,将第二交换分区作为源物理机的交换分区,并将目标数量的睡眠线程对应的第二虚拟机数据存放至第二交换分区;将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
[0012]可选地,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移,包括:取消将第二交换分区作为源物理机的交换分区,并将第二交换分区内的第二虚拟机数据放入源物理机的物理内存进行迁移;将第一交换分区重新作为源物理机的交换分区。
[0013]根据本申请实施例的另一方面,还提供了一种虚拟机热迁移装置,包括:确定模块,用于确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;获取模块,用于在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;创建模块,用于将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;迁移模块,用于在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
[0014]根据本申请实施例的另一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,非易失性存储介质所在设备通过运行该计算机程序执行上述的虚拟机热迁移方法。
[0015]根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括:存储器和处理器,其中,存储器中存储有计算机程序,处理器被配置为通过计算机程序执行上述的虚拟机热迁移方法。
[0016]在本申请实施例中,确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;
在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
[0017]通过上述方案,可以在进行虚拟机热迁移时,通过将存入第一交换分区的第一虚拟机数据后的物理内存的部分数据存入在新创建的第二交换分区,以避免物理内存过满导致传输的内存数据量增多,致使虚拟机热迁移过慢或失败,同时将第一虚拟机数据从第一交换分区移动到源物理机的物理内存中,将第二虚拟机数据从第二交换分区移动到源物理机的物理内存中,进而虚拟机数据从源物理机的物理内存发送至目的物理机的物理内存,有效提升迁移速度,从而实现了提升虚拟机热迁移速度的技术效果,进而解决了相关技术在虚拟机热迁移时,源物理机直接访问交换分区导致本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟机热迁移方法,其特征在于,包括:确定单个虚拟机的多个线程在所属源物理机的第一交换分区内的占用值,其中,所述第一交换分区中包括所述源物理机的多个子交换分区;在所述占用值大于预设的占用阈值时,分别获取所述第一交换分区的区域总值、 区域空闲值以及所述源物理机的物理内存的内存空闲值;将所述区域总值和所述区域空闲值的差值作为所述源物理机的第一交换分区的占用总值,并在所述占用总值小于所述内存空闲值的情况下,创建与所述第一交换分区相同大小的第二交换分区;在多个所述虚拟机进行热迁移时,将所述第一交换分区内存储的每个所述虚拟机的第一虚拟机数据存入所述物理内存进行迁移,并采用所述第二交换分区存放所述物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将所述第二交换分区内的第二虚拟机数据存入所述物理内存中进行迁移。2.根据权利要求1所述的方法,其特征在于,确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,包括:确定单个所述虚拟机所属的所述源物理机的内核版本信息;在所述内核版本信息满足预设版本要求时,获取所述源物理机上单个所述虚拟机的进程信息;基于单个所述虚拟机的进程信息确定单个所述虚拟机的多个线程在所述源物理机的第一交换分区内的占用值。3.根据权利要求2所述的方法,其特征在于,获取所述源物理机上单个所述虚拟机的进程信息,包括:通过查找所述源物理机内的/proc/PID/smaps文件,获取所述源物理机上单个所述虚拟机的进程信息。4.根据权利要求1所述的方法,其特征在于,分别获取所述第一交换分区的区域总值、区域空闲值以及所述源物理机的物理内存的内存空闲值,包括:通过查找所述源物理机内的/proc/meminfo文件,分别获取所述区域总值、所述区域空闲值以及所述物理内存的内存空闲值。5.根据权利要求1所述的方法,其特征在于,创建与所述第一交换分区相同大小的第二交换分区,包括:创建与所述源物理机的第一交换分区的区域总值大小相等的块,并将所述块格式化为所述源物理机的第二交换分区。6.根据权利要求1所述的方法,其特征在于,将所述第一交换分区内存储的每个所述虚拟机的第一虚拟机数据存入所述物理内存进行迁移,并采用所述第二交换分区存放所述物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将所述第二交换分...

【专利技术属性】
技术研发人员:周凯张栋王宪良王怀亮刘桦烁朱纯国
申请(专利权)人:中航金网北京电子商务有限公司
类型:发明
国别省市:

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

1