CN116909689A - 虚拟机热迁移方法、装置、存储介质和电子设备 - Google Patents

虚拟机热迁移方法、装置、存储介质和电子设备 Download PDF

Info

Publication number
CN116909689A
CN116909689A CN202311186201.0A CN202311186201A CN116909689A CN 116909689 A CN116909689 A CN 116909689A CN 202311186201 A CN202311186201 A CN 202311186201A CN 116909689 A CN116909689 A CN 116909689A
Authority
CN
China
Prior art keywords
virtual machine
value
memory
partition
exchange partition
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.)
Granted
Application number
CN202311186201.0A
Other languages
English (en)
Other versions
CN116909689B (zh
Inventor
周凯
张栋
王宪良
王怀亮
刘桦烁
朱纯国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AVIC INTERNATIONAL E-BUSINESS Inc
Original Assignee
AVIC INTERNATIONAL E-BUSINESS Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by AVIC INTERNATIONAL E-BUSINESS Inc filed Critical AVIC INTERNATIONAL E-BUSINESS Inc
Priority to CN202311186201.0A priority Critical patent/CN116909689B/zh
Publication of CN116909689A publication Critical patent/CN116909689A/zh
Application granted granted Critical
Publication of CN116909689B publication Critical patent/CN116909689B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

虚拟机热迁移方法、装置、存储介质和电子设备
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种虚拟机热迁移方法、装置、存储介质和电子设备。
背景技术
交换分区(Swap)是一种用于Linux系统的虚拟内存技术,其是在操作系统的物理内存不够用的情况下,将硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。而那些被释放的空间可能来自一些很长时间没有什么操作的程序,此时操作系统会将这些被释放的空间临时保存到交换分区中,直至那些程序要运行时,再从交换分区中恢复保存的数据到物理内存中。
但在云平台中,当虚拟机发生在线迁移的时候,源主机和目的主机会将虚拟机中的内存文件进行交互,如果内存都在物理内存的话,其访问速度是纳秒级(约),但是当虚拟机中的内存部分或者很多落盘在交换分区上时,源主机就需要读取磁盘上的数据虚拟为内存与目的主机进行交换,且其访问速度仅是微秒级(约/>)。也就是说,整体实时在线迁移的速度会因为虚拟机的内存文件从交换分区中读取而大大增加,且整体增加的时间也会受到虚拟机内存文件在物理机交换分区中所占比例而有所增加。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种虚拟机热迁移方法、装置、存储介质和电子设备,以至少解决相关技术在虚拟机热迁移时,源物理机直接访问交换分区导致整体迁移速度较慢的技术问题。
根据本申请实施例的一个方面,提供了一种虚拟机热迁移方法,包括:确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
可选地,确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,包括:确定单个虚拟机所属的源物理机的内核版本信息;在内核版本信息满足预设版本要求时,获取源物理机上单个虚拟机的进程信息;基于单个虚拟机的进程信息确定单个虚拟机的多个线程在源物理机的第一交换分区内的占用值。
可选地,获取源物理机上单个虚拟机的进程信息,包括:通过查找源物理机内的/proc/PID/smaps文件,获取源物理机上单个虚拟机的进程信息。
可选地,分别获取第一交换分区的区域总值、区域空闲值以及源物理机的物理内存的内存空闲值,包括:通过查找源物理机内的/proc/meminfo文件,分别获取区域总值、区域空闲值以及物理内存的内存空闲值。
可选地,创建与第一交换分区相同大小的第二交换分区,包括:创建与源物理机的第一交换分区的区域总值大小相等的块,并将块格式化为源物理机的第二交换分区。
可选地,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移,包括:取消将第一交换分区作为源物理机的交换分区,并将第一交换分区内存储的每个虚拟机的第一虚拟机数据放入源物理机的物理内存进行迁移;判断存入各个虚拟机的第一虚拟机数据后的内存空闲值是否小于物理内存阈值;在存入各个虚拟机的第一虚拟机数据后的内存空闲值小于物理内存阈值的情况下,将第二交换分区作为源物理机的交换分区,并将目标数量的睡眠线程对应的第二虚拟机数据存放至第二交换分区;将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
可选地,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移,包括:取消将第二交换分区作为源物理机的交换分区,并将第二交换分区内的第二虚拟机数据放入源物理机的物理内存进行迁移;将第一交换分区重新作为源物理机的交换分区。
根据本申请实施例的另一方面,还提供了一种虚拟机热迁移装置,包括:确定模块,用于确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;获取模块,用于在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;创建模块,用于将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;迁移模块,用于在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的计算机程序,其中,非易失性存储介质所在设备通过运行该计算机程序执行上述的虚拟机热迁移方法。
根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括:存储器和处理器,其中,存储器中存储有计算机程序,处理器被配置为通过计算机程序执行上述的虚拟机热迁移方法。
在本申请实施例中,确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
通过上述方案,可以在进行虚拟机热迁移时,通过将存入第一交换分区的第一虚拟机数据后的物理内存的部分数据存入在新创建的第二交换分区,以避免物理内存过满导致传输的内存数据量增多,致使虚拟机热迁移过慢或失败,同时将第一虚拟机数据从第一交换分区移动到源物理机的物理内存中,将第二虚拟机数据从第二交换分区移动到源物理机的物理内存中,进而虚拟机数据从源物理机的物理内存发送至目的物理机的物理内存,有效提升迁移速度,从而实现了提升虚拟机热迁移速度的技术效果,进而解决了相关技术在虚拟机热迁移时,源物理机直接访问交换分区导致整体迁移速度较慢技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现虚拟机热迁移方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种可选的虚拟机热迁移方法的流程示意图;
图3是根据本申请实施例的一种可选的虚拟机热迁移装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,本申请所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
实施例1
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现虚拟机热迁移方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的虚拟机热迁移方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的虚拟机热迁移方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请实施例还提供了一种虚拟机热迁移的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本申请实施例的一种可选的虚拟机热迁移方法的流程示意图,如图2所示,该方法至少包括步骤S202-S208,其中:
步骤S202,确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区。
在步骤S202提供的技术方案中,虚拟机的线程可以理解为虚拟机进程中运行的并发执行的任务单元,每个线程可以同时执行不同的代码块,实现多任务的并发执行,且各个线程之间可以共享进程的资源。同时,由于交换分区是用于将暂时不用的内存从物理内存移到磁盘上,以释放物理内存空间供其他线程使用,因而本申请实施例中单个虚拟机的多个线程是具体指虚拟机进程下部分暂未运行的线程,因而,所确定的占用值可以理解为,单个虚拟机的暂未运行的多个线程在源物理机的各个子交换分区内所占用的空间值,其中,本申请实施例中将源物理机的多个子交换分区整体看作上述第一交换分区。
其中,上述虚拟机(Virtual Machine,VM)是一种虚拟机化技术,它是在一套物理计算机(即物理机)上创建并运行多个虚拟计算机的环境,每个虚拟机都可以被视为一台完整的计算机系统,可以运行独立的操作系统,并在其上安装和运行应用程序。
步骤S204,在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、区域空闲值以及源物理机的物理内存的内存空闲值。
在步骤S204提供的技术方案中,当单个虚拟机在第一交换分区内的占用值大于预设的占用阈值时,说明单个虚拟机的占用值较大,此时在虚拟机热迁移时直接将磁盘上存储的交换分区的数据虚拟为内存直接进行交换时,可能会因为磁盘读写速度较慢导致热迁移效率较低,因此,本申请实施例中需要对源物理机的交换分区进行步骤S206-S208的特殊处理。其中,上述占用阈值优选为512Mib,此处仅作示例进行说明,对占用阈值的选取不做具体限制。另外,还需要获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值,其中,区域总值是指磁盘上用于存储临时数据的空间大小;区域空闲值是指交换区域内尚未被使用的空间大小;内存空闲值是指源物理机上物理内存中未被使用的空间大小。
步骤S206,将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区。
在步骤S206提供的技术方案中,上述占用总值是指第一交换分区内已用的空间大小,其可以是区域总值与区域空闲值相减得到,该占用总值中至少包括与源物理机上多个虚拟机进程下多个线程所占用的占用值之和。在得到占用总值后,比较占用总值与内存空闲值的大小,在内存空闲值较大时,说明源物理机的物理内存中还有富余容纳当前第一交换分区内的数据,此时可以创建一个与第一交换分区大小相等的第二交换分区,用于后续在进行虚拟机热迁移时,暂时作为源物理机的交换分区。
步骤S208,在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
在步骤S208提供的技术方案中,在源物理机上的多个虚拟机进行热迁移时,可以先将第一交换分区内存储的各个虚拟机的第一虚拟机数据线存入物理内存并进行迁移;并将第二交换分区作为源物理机的交换分区,存放物理内存中暂未运行的部分睡眠线程对应的第二虚拟机数据,在完成后再将第二交换分区内的第二虚拟机数据存入源物理机的物理内存中进行迁移,从而使得整个迁移过程都是直接从物理内存中访问,访问速度可达纳米级,进而使得实时迁移速度更快。
基于上述步骤S202至步骤S208所限定的方案,可以获知,在实施例中,确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
由此可见,通过本申请实施例的技术方案,达到了直接从物理内存中访问数据并进行迁移的目的,实现了高效提升虚拟机热迁移速度的技术效果,从而解决了相关技术在虚拟机热迁移时,源物理机直接访问交换分区导致整体迁移速度较慢的技术问题。
下面将对本申请实施例的上述方法进行进一步地介绍。
作为一种可选的实施方式,在上述步骤S202提供的技术方案中,该方法可以包括:确定单个虚拟机所属的源物理机的内核版本信息;在内核版本信息满足预设版本要求时,获取源物理机上单个虚拟机的进程信息;基于单个虚拟机的进程信息确定单个虚拟机的多个线程在源物理机的第一交换分区内的占用值。
在该实施例中,首先获取虚拟机的源物理机的内核版本信息,如操作系统内核的版本号uname –r,在内核版本信息达到预设版本要求时,例如,在uname –r高于3.19.0时才能进行后续的交换分区与物理内存间的数据交换,这是因为若内核版本信息不满足要求时,进行后续的交换处理可能会造成系统不稳定。在内核版本信息达到预设要求时,获取源物理机上单个虚拟机的进程信息,即PID,并通过进程信息便可以查找进程下所有线程所占用的虚拟内存空间以及在第一交换分区内的占用值。其中,该虚拟内存区域是指操作系统为每个进程分配的一块连续的虚拟地址空间,进程下的每个线程都有自己的栈空间、堆空间和代码段等,从而各个线程都能独立地访问和管理自己的内存。
其中,内核是操作系统的核心组件,负责管理计算机的硬件资源和提供各种系统服务。内核版本号是一个由数字和点组成的字符串,用于标识内核的不同版本。每个操作系统发行版通常都有自己的内核版本号,不同版本的内核可能会有不同的功能和修复了不同的漏洞。
可选地,可以通过查找源物理机内的/proc/PID/smaps文件,获取源物理机上单个虚拟机的进程信息。
其中,上述/proc/PID/smaps文件是基于/proc/PID/maps 的扩展,其用于展示运行时进程的内存情况,相比于同一目录下的maps文件,该文件可以更为详细地展示进程的虚拟机内存区域(Virtual Machine Area,VMA)以及进程下的多个线程在第一交换分区内的占用值。
作为一种可选的实施方式,在上述步骤S204提供的技术方案中,该方法可以包括:通过查找源物理机内的/proc/meminfo文件,分别获取区域总值、区域空闲值以及物理内存的内存空闲值。
其中,上述/proc/meminfo文件用于展示系统内存使用状况的主要存储位置,其可以通过“free”、“vmstat”等命令获取数据,其中,该文件中包括如下重要字段:MemTotal,表示所有可用的内存大小,即物理内存减去预留位和内核使用;MenFree,表示系统尚未使用的内存;MemAvailable,表示系统真正的可用内存,系统中虽然有些内存被使用但还是可用回收,将这部分可回收的内存加上MenFree才是系统可用的内存。
作为一种可选的实施方式,在上述步骤S206提供的技术方案中,该方法可以包括:创建与源物理机的第一交换分区的区域总值大小相等的块,并将块格式化为源物理机的第二交换分区。
其中,创建交换分区的技术方案为现有技术方案,此处对创建第二交换分区的具体过程不做赘述。
作为一种可选的实施方式,在上述步骤S208提供的技术方案中,该方法可以包括:取消将第一交换分区作为源物理机的交换分区,并将第一交换分区内存储的每个虚拟机的第一虚拟机数据放入源物理机的物理内存进行迁移;判断存入各个虚拟机的第一虚拟机数据后的内存空闲值是否小于物理内存阈值;在存入各个虚拟机的第一虚拟机数据后的内存空闲值小于物理内存阈值的情况下,将第二交换分区作为源物理机的交换分区,并将目标数量的睡眠线程对应的第二虚拟机数据存放至第二交换分区;将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
在上述实施例中,在多个虚拟机进行热迁移时,需要先取消将第一交换分区作为源物理机的交换分区,并将第一交换分区内存储的每个虚拟机的第一虚拟机数据放入源物理机的物理内存进行迁移。为了确保通过迁移速度,不能使存入第一虚拟机数据后的内存空闲值较小,一旦内存空闲值较小则说明物理内存中存入的数据较多,在迁移过程中会致使迁移速度较慢,因此本申请实施例中需要在存入各个虚拟机的第一虚拟机数据后的内存空闲值小于物理内存阈值的情况下,将第二交换分区暂时作为源物理机的交换分区,将目标数量的睡眠线程(即暂未运行的线程)对应的第二虚拟机数据存入第二交换分区内,完成交换分区的交换后,再将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移,整个迁移过程均是从内存中数据进行交换,从而确保迁移速度。
可选地,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移,包括:取消将第二交换分区作为源物理机的交换分区,并将第二交换分区内的第二虚拟机数据放入源物理机的物理内存进行迁移;将第一交换分区重新作为源物理机的交换分区。
也就是说,取消将第二交换分区作为源物理机的交换分区,这时需要将第二交换分区内的第二虚拟机数据放入源物理机的物理内存中进行迁移,完成迁移后,继续将第一交换分区作为源物理机的交换分区。
通过上述方案,可以在进行虚拟机热迁移时,通过将存入第一交换分区的第一虚拟机数据后的物理内存的部分数据存入在新创建的第二交换分区,以避免物理内存过满导致传输的内存数据量增多,致使虚拟机热迁移过慢或失败,同时源物理机通过存入第一虚拟机数据后的物理内存访问数据,以及存入第二虚拟机数据后的物理内存访问数据与目的物理机进行交换,有效提升迁移速度,从而实现了提升虚拟机热迁移速度的技术效果,进而解决了相关技术在虚拟机热迁移时,源物理机直接访问交换分区导致整体迁移速度较慢技术问题。
实施例2
基于本申请实施例1,还提供了一种虚拟机热迁移装置的实施例,该装置运行时执行上述实施例的上述虚拟机热迁移方法。其中,图3是根据本申请实施例的一种可选的虚拟机热迁移装置的结构示意图,如图3所示,该虚拟机热迁移装置中至少包括确定模块31,获取模块32,创建模块33和迁移模块34,其中:
确定模块31,用于确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区。
作为一种可选的实施方式,确定模块31可以按照如下方式得到占用值:确定单个虚拟机所属的源物理机的内核版本信息;在内核版本信息满足预设版本要求时,获取源物理机上单个虚拟机的进程信息;基于单个虚拟机的进程信息确定单个虚拟机的多个线程在源物理机的第一交换分区内的占用值。
可选地,确定模块31可以通过查找源物理机内的/proc/PID/smaps文件,获取源物理机上单个虚拟机的进程信息。
获取模块32,用于在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值。
作为一种可选的实施方式,获取模块32可以通过查找源物理机内的/proc/meminfo文件,分别获取区域总值、区域空闲值以及物理内存的内存空闲值。
创建模块33,用于将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区。
作为一种可选的实施方式,创建模块33可以创建与源物理机的第一交换分区的区域总值大小相等的块,并将块格式化为源物理机的第二交换分区。
迁移模块34,用于在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
作为一种可选的实施方式,迁移模块34可以按照如下步骤实现热迁移:取消将第一交换分区作为源物理机的交换分区,并将第一交换分区内存储的每个虚拟机的第一虚拟机数据放入源物理机的物理内存进行迁移;判断存入各个虚拟机的第一虚拟机数据后的内存空闲值是否小于物理内存阈值;在存入各个虚拟机的第一虚拟机数据后的内存空闲值小于物理内存阈值的情况下,将第二交换分区作为源物理机的交换分区,并将目标数量的睡眠线程对应的第二虚拟机数据存放至第二交换分区;将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
可选地,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移,可以理解为,取消将第二交换分区作为源物理机的交换分区,并将第二交换分区内的第二虚拟机数据放入源物理机的物理内存进行迁移;将第一交换分区重新作为源物理机的交换分区。
通过上述方案,可以在进行虚拟机热迁移时,通过将存入第一交换分区的第一虚拟机数据后的物理内存的部分数据存入在新创建的第二交换分区,以避免物理内存过满导致传输的内存数据量增多,致使虚拟机热迁移过慢或失败,同时将第一虚拟机数据从第一交换分区移动到源物理机的物理内存中,将第二虚拟机数据从第二交换分区移动到源物理机的物理内存中,进而虚拟机数据从源物理机的物理内存发送至目的物理机的物理内存,有效提升迁移速度,从而实现了提升虚拟机热迁移速度的技术效果,进而解决了相关技术在虚拟机热迁移时,源物理机直接访问交换分区导致整体迁移速度较慢技术问题。
需要说明的是,上述虚拟机热迁移装置中的各个模块可以是程序模块(例如是实现某种特定功能的程序指令集合),也可以是硬件模块,对于后者,其可以表现为以下形式,但不限于此:上述各个模块的表现形式均为一个处理器,或者,上述各个模块的功能通过一个处理器实现。
实施例3
根据本申请实施例,还提供了一种非易失性存储介质,该非易失性存储介质中存储有程序,其中,在程序运行时控制非易失性存储介质所在设备执行实施例1中的虚拟机热迁移方法。
可选地,非易失性存储介质所在设备通过运行该程序执行实现以下步骤:确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
根据本申请实施例,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行实施例1中的虚拟机热迁移方法。
可选地,程序运行时执行实现以下步骤:确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
根据本申请实施例,还提供了一种电子设备,其中,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述实施例1中的虚拟机热迁移方法。
可选地,处理器被配置为通过计算机程序执行实现以下步骤:确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,其中,第一交换分区中包括源物理机的多个子交换分区;在占用值大于预设的占用阈值时,分别获取第一交换分区的区域总值、 区域空闲值以及源物理机的物理内存的内存空闲值;将区域总值和区域空闲值的差值作为源物理机的第一交换分区的占用总值,并在占用总值小于内存空闲值的情况下,创建与第一交换分区相同大小的第二交换分区;在多个虚拟机进行热迁移时,将第一交换分区内存储的每个虚拟机的第一虚拟机数据存入物理内存进行迁移,并采用第二交换分区存放物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将第二交换分区内的第二虚拟机数据存入物理内存中进行迁移。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种虚拟机热迁移方法,其特征在于,包括:
确定单个虚拟机的多个线程在所属源物理机的第一交换分区内的占用值,其中,所述第一交换分区中包括所述源物理机的多个子交换分区;
在所述占用值大于预设的占用阈值时,分别获取所述第一交换分区的区域总值、 区域空闲值以及所述源物理机的物理内存的内存空闲值;
将所述区域总值和所述区域空闲值的差值作为所述源物理机的第一交换分区的占用总值,并在所述占用总值小于所述内存空闲值的情况下,创建与所述第一交换分区相同大小的第二交换分区;
在多个所述虚拟机进行热迁移时,将所述第一交换分区内存储的每个所述虚拟机的第一虚拟机数据存入所述物理内存进行迁移,并采用所述第二交换分区存放所述物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将所述第二交换分区内的第二虚拟机数据存入所述物理内存中进行迁移。
2.根据权利要求1所述的方法,其特征在于,确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值,包括:
确定单个所述虚拟机所属的所述源物理机的内核版本信息;
在所述内核版本信息满足预设版本要求时,获取所述源物理机上单个所述虚拟机的进程信息;
基于单个所述虚拟机的进程信息确定单个所述虚拟机的多个线程在所述源物理机的第一交换分区内的占用值。
3.根据权利要求2所述的方法,其特征在于,获取所述源物理机上单个所述虚拟机的进程信息,包括:
通过查找所述源物理机内的/proc/PID/smaps文件,获取所述源物理机上单个所述虚拟机的进程信息。
4.根据权利要求1所述的方法,其特征在于,分别获取所述第一交换分区的区域总值、区域空闲值以及所述源物理机的物理内存的内存空闲值,包括:
通过查找所述源物理机内的/proc/meminfo文件,分别获取所述区域总值、所述区域空闲值以及所述物理内存的内存空闲值。
5.根据权利要求1所述的方法,其特征在于,创建与所述第一交换分区相同大小的第二交换分区,包括:
创建与所述源物理机的第一交换分区的区域总值大小相等的块,并将所述块格式化为所述源物理机的第二交换分区。
6.根据权利要求1所述的方法,其特征在于,将所述第一交换分区内存储的每个所述虚拟机的第一虚拟机数据存入所述物理内存进行迁移,并采用所述第二交换分区存放所述物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将所述第二交换分区内的第二虚拟机数据存入所述物理内存中进行迁移,包括:
取消将所述第一交换分区作为所述源物理机的交换分区,并将所述第一交换分区内存储的每个所述虚拟机的第一虚拟机数据放入所述源物理机的物理内存进行迁移;
判断存入各个所述虚拟机的第一虚拟机数据后的所述内存空闲值是否小于所述物理内存阈值;
在存入各个所述虚拟机的第一虚拟机数据后的所述内存空闲值小于所述物理内存阈值的情况下,将所述第二交换分区作为所述源物理机的交换分区,并将目标数量的睡眠线程对应的第二虚拟机数据存放至所述第二交换分区;
将所述第二交换分区内的第二虚拟机数据存入所述物理内存中进行迁移。
7.根据权利要求6所述的方法,其特征在于,将所述第二交换分区内的第二虚拟机数据存入所述物理内存中进行迁移,包括:
取消将所述第二交换分区作为所述源物理机的交换分区,并将所述第二交换分区内的所述第二虚拟机数据放入所述源物理机的物理内存进行迁移;
将所述第一交换分区重新作为所述源物理机的交换分区。
8.一种虚拟机热迁移装置,其特征在于,包括:
确定模块,用于确定单个虚拟机的多个线程占用所属源物理机的第一交换分区的占用值;
获取模块,用于在所述占用值大于预设的占用阈值时,分别获取所述第一交换分区的区域总值、 区域空闲值以及所述源物理机的物理内存的内存空闲值;
创建模块,用于将所述区域总值和所述区域空闲值的差值作为所述源物理机的第一交换分区的占用总值,并在所述占用总值小于所述内存空闲值的情况下,创建与所述第一交换分区相同大小的第二交换分区;
迁移模块,用于在多个所述虚拟机进行热迁移时,将所述第一交换分区内存储的每个所述虚拟机的第一虚拟机数据存入所述物理内存进行迁移,并采用所述第二交换分区存放所述物理内存中目标数量的睡眠线程对应的第二虚拟机数据,将所述第二交换分区内的第二虚拟机数据存入所述物理内存中进行迁移。
9.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至7中任意一项所述的虚拟机热迁移方法。
10.一种电子设备,其特征在于,包括:存储器和处理器,所述处理器用于运行存储在所述存储器中的程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的虚拟机热迁移方法。
CN202311186201.0A 2023-09-14 2023-09-14 虚拟机热迁移方法、装置、存储介质和电子设备 Active CN116909689B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311186201.0A CN116909689B (zh) 2023-09-14 2023-09-14 虚拟机热迁移方法、装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311186201.0A CN116909689B (zh) 2023-09-14 2023-09-14 虚拟机热迁移方法、装置、存储介质和电子设备

Publications (2)

Publication Number Publication Date
CN116909689A true CN116909689A (zh) 2023-10-20
CN116909689B CN116909689B (zh) 2024-01-16

Family

ID=88353557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311186201.0A Active CN116909689B (zh) 2023-09-14 2023-09-14 虚拟机热迁移方法、装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN116909689B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103558992A (zh) * 2011-02-24 2014-02-05 泰若考特股份有限公司 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统
US20170147227A1 (en) * 2014-09-16 2017-05-25 Kove Ip, Llc External memory for virtualization
CN109992350A (zh) * 2017-12-29 2019-07-09 北京华胜天成科技股份有限公司 云计算系统的资源池中虚拟机的迁移方法及装置
CN114968477A (zh) * 2022-04-21 2022-08-30 京东科技信息技术有限公司 容器热迁移方法及容器热迁移装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103558992A (zh) * 2011-02-24 2014-02-05 泰若考特股份有限公司 堆外直接内存数据存储器,创建和/或管理堆外直接内存数据存储器的方法,和/或包括堆外直接内存数据存储器的系统
US20170147227A1 (en) * 2014-09-16 2017-05-25 Kove Ip, Llc External memory for virtualization
CN109992350A (zh) * 2017-12-29 2019-07-09 北京华胜天成科技股份有限公司 云计算系统的资源池中虚拟机的迁移方法及装置
CN114968477A (zh) * 2022-04-21 2022-08-30 京东科技信息技术有限公司 容器热迁移方法及容器热迁移装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王德胜;张伟哲;郝萌;鲁刚钊;白恩慈;: "云计算环境中虚拟机内存自适应调节算法研究", 计算机科学与探索, no. 01 *

Also Published As

Publication number Publication date
CN116909689B (zh) 2024-01-16

Similar Documents

Publication Publication Date Title
US8751785B2 (en) Memory tagging and preservation during a hot upgrade
CN107209683B (zh) 备份映像恢复
US9454397B2 (en) Data processing systems
CN103034524A (zh) 半虚拟化的虚拟gpu
CN104714846A (zh) 资源处理方法、操作系统及设备
WO2019028682A1 (zh) 一种多系统共享内存的管理方法及装置
CN108139937B (zh) 多根i/o虚拟化系统
CN102413183B (zh) 云智能交换机及其处理方法、系统
US10719333B2 (en) BIOS startup method and apparatus
CN111104219A (zh) 虚拟核心与物理核心的绑定方法、装置、设备及存储介质
CN111984557A (zh) 数据处理方法、装置和系统
CN110647359A (zh) 半导体装置、其操作方法和具有其的层叠存储装置
CN111078353A (zh) 存储设备的操作方法及物理服务器
CN110162396A (zh) 内存回收方法、装置、系统和存储介质
US11321109B2 (en) Container engine for selecting driver based on container metadata
CN104714792A (zh) 多进程共享数据处理方法和装置
CN116560803B (zh) 基于sr-iov的资源管理方法及相关装置
CN111666036B (zh) 一种迁移数据的方法、装置及系统
CN116909689B (zh) 虚拟机热迁移方法、装置、存储介质和电子设备
US20120066676A1 (en) Disabling circuitry from initiating modification, at least in part, of state-associated information
US8688889B2 (en) Virtual USB key for blade server
CN112860595B (zh) Pci设备或pcie设备、数据存取方法及相关组件
CN114281516A (zh) 一种基于numa属性的资源分配方法及装置
CN116069451B (zh) 一种虚拟化方法、装置、设备、介质、加速器及系统
US9436488B2 (en) Program redundancy among virtual machines and global management information and local resource information arrangement

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100176 101, Floor 1-8, Building 8, Yard 13, Ronghua South Road, Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang Cluster, High end Industrial Area, Beijing Pilot Free Trade Zone)

Applicant after: AVIC International Golden Net (Beijing) Technology Co.,Ltd.

Address before: Building 8, No.13 Ronghua South Road, Daxing District Economic and Technological Development Zone, Beijing, 100176

Applicant before: AVIC INTERNATIONAL E-BUSINESS Inc.

GR01 Patent grant
GR01 Patent grant