CN116560802A - 一种基于虚拟机负载的虚拟机自适应热迁移方法及系统 - Google Patents

一种基于虚拟机负载的虚拟机自适应热迁移方法及系统 Download PDF

Info

Publication number
CN116560802A
CN116560802A CN202310813470.9A CN202310813470A CN116560802A CN 116560802 A CN116560802 A CN 116560802A CN 202310813470 A CN202310813470 A CN 202310813470A CN 116560802 A CN116560802 A CN 116560802A
Authority
CN
China
Prior art keywords
virtual machine
target virtual
memory
utilization rate
migration
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
CN202310813470.9A
Other languages
English (en)
Other versions
CN116560802B (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.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
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 Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202310813470.9A priority Critical patent/CN116560802B/zh
Publication of CN116560802A publication Critical patent/CN116560802A/zh
Application granted granted Critical
Publication of CN116560802B publication Critical patent/CN116560802B/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于虚拟机负载的虚拟机自适应热迁移方法及系统,本发明包括在收到目标虚拟机的热迁移命令时,获取目标虚拟机的CPU利用率和内存利用率并选择热迁移优化方式:若CPU利用率超过第一设定阈值,则启动auto‑converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;否则若内存利用率超过第二设定阈值,则启动XBZRLE功能进行内存脏页传输直至热迁移完成。本发明旨在根据目标虚拟机的CPU利用率和内存利用率识别目标虚拟机的负载情况,在XBZRLE功能和auto‑converge功能两者中自动选择最适合迁移优化手段,以避免由于负载差异所导致的虚拟机热迁移失败的概率。

Description

一种基于虚拟机负载的虚拟机自适应热迁移方法及系统
技术领域
本发明涉及虚拟机领域,具体涉及一种基于虚拟机负载的虚拟机自适应热迁移方法及系统。
背景技术
虚拟机的热迁移是指将运行在宿主机A上的虚拟机平滑的迁移到宿主机B上运行以保证虚拟机热迁移过程中用户服务正常运行,实际上会有短暂的毫秒(ms)级别停机服务,但是对用户感知影响较小。虚拟机热迁移时需要迁移两部分数据:磁盘和内存数据。一般情况下磁盘数据的迁移不会导致迁移失败,迁移失败多数场景发生在内存的迁移,这里只研究虚拟机内存数据的迁移的情况。内存迁移的过程有两种实现方式,分别是预拷贝(pre-copy)和提交拷贝(post-copy),post-copy方式热迁移有一定的生产风险,因此一般采用基于pre-copy热迁移方式。为简化迁移过程,可采用虚拟机磁盘采用共享存储的方式,虚拟机在进行热迁移的过程中,不需要迁移磁盘数据,直接进行内存数据的迁移。
内存数据的迁移受限于网络带宽,一般情况下采用管理网进行迁移,管理网一般是千兆或者万兆网卡,在此网络带宽下进行虚拟机热迁移。虚拟机热迁移目的主要目的是在不影响用户虚拟机正常运行的前提下,实现对内核和虚拟机化组件软件修复以及硬件故障修复。在管理网络带宽不高,虚拟机实际负载却很高的情况下,进行热迁移操作,热迁移就有可能出现大概率迁移失败的场景,因此需要对热迁移技术进行技术优化。
目前虚拟机热迁移,qemu社区已经实现auto-converge(自动收敛)功能和XBZRLE功能两种热迁移优化方式:开启auto-converge功能后,可以在传输过程中不断降低vcpu被实际调度上生成数据脏页,具有良好的收敛功能,最终可以使虚拟机在规定的迁移时间内,把内存脏页全部迁移到目的端;开启XBZRLE功能后,在迭代迁移的时候需要将新产生的脏页数据和原始数据进行异或操作,只传输发生变化的内存脏页,极大的减少了内存数据的重复传输,如果是内存密集型虚拟机提升了传输的效率,将数据进过压缩处理,然后传输到目的端,目的端的虚机接受到内存数据,最终完成热迁移操作。然后在实际使用的情况下,通过libvirt下发qmp命令(基于JSON格式的传输协议,用于与qemu虚拟机实例进行交互,例如查询虚拟机的相关状态等),一旦确定了一台计算节点上虚拟机热迁移的方式和优化方法,就不能进行更改。而在一台计算节点上虚拟机数量可能有几十台。每一台虚拟机的实际运行负载情况还不一样,即要考虑迁移的平稳性,对用户业务的影响减少到最小,又要考虑热迁移的成功率。
发明内容
研究发现,开启XBZRLE功能后,如果CPU密集性的虚拟机,此时虚拟机内存脏页无法收敛,会导致迁移大概率失败。如果是内存密集型虚拟机,而迁移时开启auto-converge功能后,降低了vcpu(虚拟处理器)的运行频率,然后内存还是源源不断的动态内存分配(malloc),也会导致迁移失败。本发明要解决的技术问题:针对上述发现,提供一种基于虚拟机负载的虚拟机自适应热迁移方法及系统,本发明旨在根据目标虚拟机的CPU利用率和内存利用率识别目标虚拟机的负载情况,从而在XBZRLE功能和auto-converge功能两者中自动选择最适合迁移优化手段,以避免由于负载差异所导致的虚拟机热迁移失败的概率。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于虚拟机负载的虚拟机自适应热迁移方法,包括:
S101,在收到目标虚拟机的热迁移命令时,跳转步骤S102;
S102,获取目标虚拟机的CPU利用率和内存利用率;
S103,根据目标虚拟机的CPU利用率和内存利用率为目标虚拟机选择所需的热迁移优化方式:若CPU利用率超过第一设定阈值,则启动auto-converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;否则,若内存利用率超过第二设定阈值,则启动XBZRLE功能进行内存脏页传输直至热迁移完成。
可选地,步骤S102中获取目标虚拟机的CPU利用率包括:获取虚拟机进程的进程标识符pid以及目标虚拟机对应线程的线程标识符tid,根据进程标识符pid和线程标识符tid确定目标虚拟机的状态文件的路径,并按照指定的间隔读取目标虚拟机在该路径下的状态文件并获取目标虚拟机的用户态时间utime和内核态时间stime,并根据用户态时间utime和内核态时间stime计算目标虚拟机的CPU利用率。
可选地,所述计算目标虚拟机的CPU利用率的函数表达式为:
cpuUsage =((utime + stime)-(lastutime + laststime))/100,
上式中,cpuUsage表示目标虚拟机的CPU利用率,utime表示目标虚拟机本次的用户态时间,stime表示目标虚拟机本次的内核态时间,lastutime表示目标虚拟机上一次的用户态时间,laststime表示目标虚拟机上一次的内核态时间。
可选地,步骤S102中,获取目标虚拟机的内存利用率包括:利用部署在目标虚拟机中的代理服务获取目标虚拟机的总内存大小memTotal、可用内存大小memFree 、缓冲区大小Buffer、缓存大小Cached以及Slab内存的可回收部分大小SReclaimable;然后根据目标虚拟机的总内存大小memTotal、可用内存大小memFree 、缓冲区大小Buffer、缓存大小Cached以及Slab内存的可回收部分大小SReclaimable计算目标虚拟机的内存利用率。
可选地,所述计算目标虚拟机的内存利用率的函数表达式为:
memUtil=(memTotal-(memFree + Buffer + Cached + SReclaimable))/memTotal×100
上式中,memUtil表示目标虚拟机的内存利用率,memTotal表示目标虚拟机的总内存大小,memFree表示目标虚拟机的可用内存大小,Buffer表示目标虚拟机的缓冲区大小,Cached表示目标虚拟机的缓存大小,SReclaimable表示目标虚拟机的Slab内存的可回收部分大小。
可选地,步骤S101~S103的执行主体为快速仿真器qemu,步骤S101中收到目标虚拟机的热迁移命令是指快速仿真器qemu收到虚拟化平台libvirt通过qmp协议下发的目标虚拟机的热迁移命令。
可选地,步骤S101包括:快速仿真器qemu收到虚拟化平台libvirt通过qmp协议下发的目标虚拟机的热迁移命令,首先判断热迁移命令中是否包含指定的自适应参数,若包含指定的自适应参数则跳转步骤S102;否则,直接目标虚拟机的热迁移命令直至热迁移完成。
此外,本发明还提供一种基于虚拟机负载的虚拟机自适应热迁移方法,包括:
S201,在收到目标虚拟机的热迁移命令时,跳转步骤S202;
S202,获取目标虚拟机的CPU利用率和内存利用率以确定目标虚拟机的类型;若CPU利用率超过第一设定阈值,则判定目标虚拟机的类型为CPU密集型的虚拟机;否则,若内存利用率超过第二设定阈值,则判定目标虚拟机的类型为内存密集型的虚拟机;
S203,根据目标虚拟机的类型为目标虚拟机选择所需的热迁移优化方式:若目标虚拟机的类型为CPU密集型的虚拟机,则启动auto-converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;若目标虚拟机的类型为内存密集型的虚拟机,则启动XBZRLE功能进行内存脏页传输直至热迁移完成。
此外,本发明还提供一种基于虚拟机负载的虚拟机自适应热迁移系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于虚拟机负载的虚拟机自适应热迁移方法。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述基于虚拟机负载的虚拟机自适应热迁移方法。
和现有技术相比,本发明主要具有下述优点:本发明包括在收到目标虚拟机的热迁移命令时,获取目标虚拟机的CPU利用率和内存利用率并选择热迁移优化方式:若CPU利用率超过第一设定阈值,则启动auto-converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;否则若内存利用率超过第二设定阈值,则启动XBZRLE功能进行内存脏页传输直至热迁移完成,本发明通过根据目标虚拟机的CPU利用率和内存利用率识别目标虚拟机的负载情况,能够在XBZRLE功能和auto-converge功能两者中自动选择最适合迁移优化手段,从而可以避免由于负载差异所导致的虚拟机热迁移失败的概率,提升虚拟机热迁移的成功概率,既能最大程度保证用户业务的连续性,又能提升热迁移的成功率,提升用户使用满意度。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中的热迁移优化流程示意图。
具体实施方式
实施例一:
如图1所示,本实施例提供一种基于虚拟机负载的虚拟机自适应热迁移方法,包括:
S101,在收到目标虚拟机的热迁移命令时,跳转步骤S102;
S102,获取目标虚拟机的CPU利用率和内存利用率;
S103,根据目标虚拟机的CPU利用率和内存利用率为目标虚拟机选择所需的热迁移优化方式:若CPU利用率超过第一设定阈值,则启动auto-converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;否则,若内存利用率超过第二设定阈值,则启动XBZRLE功能进行内存脏页传输直至热迁移完成。
一般而言,获取目标虚拟机的CPU利用率和内存利用率,一般做法是在虚拟化平台libvirt管理和统计虚拟机的CPU利用率和内存利用率。但是,在虚拟化平台libvirt管理和统计虚拟机的CPU利用率和内存利用率实现起来相对比较困难。作为一种可选的实施方式,本实施例中步骤S102中获取目标虚拟机的CPU利用率包括:获取虚拟机进程的进程标识符pid以及目标虚拟机对应线程的线程标识符tid,根据进程标识符pid和线程标识符tid确定目标虚拟机的状态文件的路径,并按照指定的间隔(可根据需要设定,例如本实施例中取值为1s)读取目标虚拟机在该路径下的状态文件并获取目标虚拟机的用户态时间utime和内核态时间stime,并根据用户态时间utime和内核态时间stime计算目标虚拟机的CPU利用率。本实施例中,获取虚拟机进程的进程标识符pid为80857,目标虚拟机对应线程的线程标识符tid为80880,则目标虚拟机的状态文件的路径/proc/[pid]/task/[tid]/stat具体为:
/proc/80857/task/80880/stat
状态文件中信息较多,本实施例中主要关注第15、16列的值,分别表示目标虚拟机的用户态时间utime和内核态时间stime,时间单位是clock tick。例如,本实施例中用户态时间utime值为2544,和内核态时间stime值为727。
本实施例中,计算目标虚拟机的CPU利用率的函数表达式为:
cpuUsage =((utime + stime)-(lastutime + laststime))/100,
上式中,cpuUsage表示目标虚拟机的CPU利用率,utime表示目标虚拟机本次的用户态时间,stime表示目标虚拟机本次的内核态时间,lastutime表示目标虚拟机上一次的用户态时间,laststime表示目标虚拟机上一次的内核态时间。
作为一种可选的实施方式,本实施例中将获取目标虚拟机的CPU利用率封装为函数get_guest_cpu_util以便于使用。
本实施例步骤S102中,获取目标虚拟机的内存利用率包括:利用部署在目标虚拟机中的代理服务(本实施例中记为qemu-guest-agent服务)获取目标虚拟机的总内存大小memTotal、可用内存大小memFree 、缓冲区大小Buffer、缓存大小Cached以及Slab内存的可回收部分大小SReclaimable,上述信息可从内存信息文件“/proc/meminfo”中获取;然后根据目标虚拟机的总内存大小memTotal、可用内存大小memFree 、缓冲区大小Buffer、缓存大小Cached以及Slab内存的可回收部分大小SReclaimable计算目标虚拟机的内存利用率。本实施例中,通过在虚拟机内部部署qemu-guest-agent服务,qemu启动虚拟机的时候,提供一个串口模拟和数据交换的通道,在虚拟机中呈现一个串口设备和宿主机上的函数get_guest_ mem _util进行unix socket通信来获取目标虚拟机的内存信息。
本实施例中,计算目标虚拟机的内存利用率的函数表达式为:
memUtil=(memTotal-(memFree + Buffer + Cached + SReclaimable))/memTotal×100
上式中,memUtil表示目标虚拟机的内存利用率,memTotal表示目标虚拟机的总内存大小,memFree表示目标虚拟机的可用内存大小,Buffer表示目标虚拟机的缓冲区大小,Cached表示目标虚拟机的缓存大小,SReclaimable表示目标虚拟机的Slab内存的可回收部分大小。
作为一种可选的实施方式,本实施例中将获取目标虚拟机的内存利用率封装为qga/commands-posix.c中的函数get_guest_ mem _util以便于使用。且函数get_guest_mem _util为对qga(qemu-guest-agent)进行功能扩展实现,在qapi-schema.json文件中定义的功能名称、输入输出数据类型如下:
{ 'command': ' guest-get-mem-util',
'data': { 'path': 'str' },
'returns': ' memUtil ' }
通过上述定义,下发qga guest-get-mem-util给虚拟机,即可调用get_guest_mem _util函数获取虚拟机内存利用率memUtil。
本实施例中,步骤S101~S103的执行主体为快速仿真器qemu,步骤S101中收到目标虚拟机的热迁移命令是指快速仿真器qemu收到虚拟化平台libvirt通过qmp协议下发的目标虚拟机的热迁移命令。
本实施例中,步骤S101包括:快速仿真器qemu收到虚拟化平台libvirt通过qmp协议下发的目标虚拟机的热迁移命令(live migrate),首先判断热迁移命令中是否包含指定的自适应参数(可根据需要进行指定,例如如图2所示,本实施例中定义为“auto-adapt”),若包含指定的自适应参数则跳转步骤S102;否则,直接目标虚拟机的热迁移命令直至热迁移完成。
本实施例在libvirt client命令行中定义自适应参数“auto-adapt”的方法如下:
{.name = "auto-adapt",
.type = VSH_OT_BOOL,
.help = N_("force auto-adapt during live migration")
},
if (vshCommandOptBool(cmd, "auto-converge")) {
flags |= VIR_MIGRATE_AUTO_CONVERGE;
flags |= VIR_MIGRATE_COMPRESSED;
}
其中,.name表示自适应参数的名称,.type表示自适应参数的类型(真假),.help表示自适应参数的帮助说明,vshCommandOptBool表示如果libvirt client命令行中带有可选的参数"auto-converge",标识flags表示标识,VIRMIGRATEAUTOCONVERGE表示自动收敛配置项功能开启;VIRMIGRATECOMPRESSED表示压缩算法功能开启。
libvirt中执行的主要command命令如下,其他参数的设置和XBZRLE功能和auto-converge功能设置一致。
virsh migrate --domain<string>--destruri<string>--live -- auto-adapt
其中,virsh表示libvirt 端命令控制;migrate表示迁移,domain 表示虚拟机标识符;destruri 表示目标地址标识符;<string>表示热迁移目标地址;--live表示热迁移;auto-adapt表示自适应参数。
如图2所示,通过qmp协议下发迁移命令到qemu后,qemu正式接管启动热迁移流程,进入内存脏页迭代传输过程。qemu获取通过get_guest_cpu_util函数获取虚拟机cpu利用率cpu_util。qemu通过下发qga guest-get-mem-util给虚拟机,进而调用get_guest_ mem_util函数获取虚拟机内存利用率memUtil。
为了保持兼容原生社区的方案,保持migrate_use_xbzrle和migrate_auto_converge原生的处理逻辑,需要重写一套针对自适应热迁移优化的方案。如图2所示,本实施例中在auto-converge功能(migrate_auto-converge)和XBZRLE功能(migrate_use_xbzrle())后分别添加了逻辑:migrate_use_self_adaptive函数,通过重新定义一个统一的migrate_use_self_adaptive函数来实现根据当前虚拟机负载来选择热迁移优化方式,同时migrate_use_self_adaptive函数还会根据需要生成返回值:
如果是正常负载,返回值为0,
如果是CPU密集型虚拟机,返回值为1,
如果是内存密集型虚拟机,返回值为2,
如果即是CPU密集型又是内存密集型虚拟机,返回值为3。
需要说明的是,第一设定阈值和第二设定阈值可根据实际需要进行指定,例如如图2所示,本实施例中第一设定阈值和第二设定阈值均取值为60%,若CPU利用率超过60%,则启动auto-converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;否则,若内存利用率超过60%,则启动XBZRLE功能进行内存脏页传输直至热迁移完成。
综上所述,本实施例基于虚拟机负载的虚拟机自适应热迁移方法包括从qemu进程获取虚拟机cpu利用率,qemu进程获取虚拟机内存使用率:在libvirt侧新增自适应热迁移配置参数接口,libvirt client下发自适应热迁移,更加方便的管理虚拟机热迁移过程。本实施例基于虚拟机负载的虚拟机自适应热迁移方法解决的难点在于qemu线程中如何获取虚拟机的负载情况,针对虚拟机系统cpu使用率,采用了收集qemu进程下proc内存文件系统收集的utime和stime两次时间差值来计算得出。而针对内存使用率,则使用qga的方式,通过qemu向虚拟机下发guest-get-mem-util,进而调用get_guest_cpu_util,获取虚拟机内存使用率。尤其关键的是,当前的热迁移技术无法根据负载情况选择合适的热迁移优化技术,开启auto-converge功能的热迁移无法迁移内存密集型的虚拟机,开启XBZRLE功能的虚拟机无法迁移cpu密集型的虚拟机,而同时开启auto-converge功能和XBZRLE功能的虚拟机对正常虚拟机的服务又有一定的影响,本实施例基于虚拟机负载的虚拟机自适应热迁移方法是根据获取的cpu和内存使用率情况,选择是否启动auto-converge功能和XBZRLE功能,即最大限度的保证了迁移成功率,由不会对正常虚拟机的业务产生影响,既能最大程度保证用户业务的连续性,又能提升热迁移的成功率,提升用户使用满意度。
此外,本实施例还提供一种基于虚拟机负载的虚拟机自适应热迁移系统,包括相互连接的微处理器和存储器,微处理器被编程或配置以执行所述基于虚拟机负载的虚拟机自适应热迁移方法。此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,计算机程序用于被微处理器编程或配置以执行所述基于虚拟机负载的虚拟机自适应热迁移方法。
实施例二:
本实施例与实施例一基本相同,其主要区别为:本实施例中并非是直接根据目标虚拟机的CPU利用率和内存利用率为目标虚拟机选择所需的热迁移优化方式,而是采用了先获取目标虚拟机的CPU利用率和内存利用率以确定目标虚拟机的类型、根据目标虚拟机的类型为目标虚拟机选择所需的热迁移优化方式。
具体地,本实施例基于虚拟机负载的虚拟机自适应热迁移方法包括:
S201,在收到目标虚拟机的热迁移命令时,跳转步骤S202;
S202,获取目标虚拟机的CPU利用率和内存利用率以确定目标虚拟机的类型;若CPU利用率超过第一设定阈值,则判定目标虚拟机的类型为CPU密集型的虚拟机;否则,若内存利用率超过第二设定阈值,则判定目标虚拟机的类型为内存密集型的虚拟机;
S203,根据目标虚拟机的类型为目标虚拟机选择所需的热迁移优化方式:若目标虚拟机的类型为CPU密集型的虚拟机,则启动auto-converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;若目标虚拟机的类型为内存密集型的虚拟机,则启动XBZRLE功能进行内存脏页传输直至热迁移完成。
需要说明的是,本实施例中获取目标虚拟机的CPU利用率和内存利用率与实施例一中采用的方法相同。此外,也可以根据需要采用其他获取目标虚拟机的CPU利用率和内存利用率的方式,或者进一步根据需要采用其他确定目标虚拟机的类型为CPU密集型的虚拟机还是内存密集型的虚拟机的方式,在此不再赘述。
此外,本实施例还提供一种基于虚拟机负载的虚拟机自适应热迁移系统,包括相互连接的微处理器和存储器,微处理器被编程或配置以执行所述基于虚拟机负载的虚拟机自适应热迁移方法。此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,计算机程序用于被微处理器编程或配置以执行所述基于虚拟机负载的虚拟机自适应热迁移方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于虚拟机负载的虚拟机自适应热迁移方法,其特征在于,包括:
S101,在收到目标虚拟机的热迁移命令时,跳转步骤S102;
S102,获取目标虚拟机的CPU利用率和内存利用率;
S103,根据目标虚拟机的CPU利用率和内存利用率为目标虚拟机选择所需的热迁移优化方式:若CPU利用率超过第一设定阈值,则启动auto-converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;否则,若内存利用率超过第二设定阈值,则启动XBZRLE功能进行内存脏页传输直至热迁移完成。
2.根据权利要求1所述的基于虚拟机负载的虚拟机自适应热迁移方法,其特征在于,步骤S102中获取目标虚拟机的CPU利用率包括:获取虚拟机进程的进程标识符pid以及目标虚拟机对应线程的线程标识符tid,根据进程标识符pid和线程标识符tid确定目标虚拟机的状态文件的路径,并按照指定的间隔读取目标虚拟机在该路径下的状态文件并获取目标虚拟机的用户态时间utime和内核态时间stime,并根据用户态时间utime和内核态时间stime计算目标虚拟机的CPU利用率。
3.根据权利要求2所述的基于虚拟机负载的虚拟机自适应热迁移方法,其特征在于,所述计算目标虚拟机的CPU利用率的函数表达式为:
cpuUsage =((utime + stime)-(lastutime + laststime))/100,
上式中,cpuUsage表示目标虚拟机的CPU利用率,utime表示目标虚拟机本次的用户态时间,stime表示目标虚拟机本次的内核态时间,lastutime表示目标虚拟机上一次的用户态时间,laststime表示目标虚拟机上一次的内核态时间。
4. 根据权利要求1所述的基于虚拟机负载的虚拟机自适应热迁移方法,其特征在于,步骤S102中,获取目标虚拟机的内存利用率包括:利用部署在目标虚拟机中的代理服务获取目标虚拟机的总内存大小memTotal、可用内存大小memFree 、缓冲区大小Buffer、缓存大小Cached以及Slab内存的可回收部分大小SReclaimable;然后根据目标虚拟机的总内存大小memTotal、可用内存大小memFree 、缓冲区大小Buffer、缓存大小Cached以及Slab内存的可回收部分大小SReclaimable计算目标虚拟机的内存利用率。
5. 根据权利要求4所述的基于虚拟机负载的虚拟机自适应热迁移方法,其特征在于,所述计算目标虚拟机的内存利用率的函数表达式为:
memUtil=(memTotal-(memFree + Buffer + Cached + SReclaimable))/memTotal×100
上式中,memUtil表示目标虚拟机的内存利用率,memTotal表示目标虚拟机的总内存大小,memFree表示目标虚拟机的可用内存大小,Buffer表示目标虚拟机的缓冲区大小,Cached表示目标虚拟机的缓存大小,SReclaimable表示目标虚拟机的Slab内存的可回收部分大小。
6.根据权利要求1所述的基于虚拟机负载的虚拟机自适应热迁移方法,其特征在于,步骤S101~S103的执行主体为快速仿真器qemu,步骤S101中收到目标虚拟机的热迁移命令是指快速仿真器qemu收到虚拟化平台libvirt通过qmp协议下发的目标虚拟机的热迁移命令。
7.根据权利要求6所述的基于虚拟机负载的虚拟机自适应热迁移方法,其特征在于,步骤S101包括:快速仿真器qemu收到虚拟化平台libvirt通过qmp协议下发的目标虚拟机的热迁移命令,首先判断热迁移命令中是否包含指定的自适应参数,若包含指定的自适应参数则跳转步骤S102;否则,直接目标虚拟机的热迁移命令直至热迁移完成。
8.一种基于虚拟机负载的虚拟机自适应热迁移方法,其特征在于,包括:
S201,在收到目标虚拟机的热迁移命令时,跳转步骤S202;
S202,获取目标虚拟机的CPU利用率和内存利用率以确定目标虚拟机的类型;若CPU利用率超过第一设定阈值,则判定目标虚拟机的类型为CPU密集型的虚拟机;否则,若内存利用率超过第二设定阈值,则判定目标虚拟机的类型为内存密集型的虚拟机;
S203,根据目标虚拟机的类型为目标虚拟机选择所需的热迁移优化方式:若目标虚拟机的类型为CPU密集型的虚拟机,则启动auto-converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;若目标虚拟机的类型为内存密集型的虚拟机,则启动XBZRLE功能进行内存脏页传输直至热迁移完成。
9.一种基于虚拟机负载的虚拟机自适应热迁移系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要求1~8中任意一项所述基于虚拟机负载的虚拟机自适应热迁移方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~8中任意一项所述基于虚拟机负载的虚拟机自适应热迁移方法。
CN202310813470.9A 2023-07-05 2023-07-05 一种基于虚拟机负载的虚拟机自适应热迁移方法及系统 Active CN116560802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310813470.9A CN116560802B (zh) 2023-07-05 2023-07-05 一种基于虚拟机负载的虚拟机自适应热迁移方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310813470.9A CN116560802B (zh) 2023-07-05 2023-07-05 一种基于虚拟机负载的虚拟机自适应热迁移方法及系统

Publications (2)

Publication Number Publication Date
CN116560802A true CN116560802A (zh) 2023-08-08
CN116560802B CN116560802B (zh) 2023-09-26

Family

ID=87500386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310813470.9A Active CN116560802B (zh) 2023-07-05 2023-07-05 一种基于虚拟机负载的虚拟机自适应热迁移方法及系统

Country Status (1)

Country Link
CN (1) CN116560802B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117076137A (zh) * 2023-10-16 2023-11-17 麒麟软件有限公司 虚拟化下的cpu动态调频方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227578A (zh) * 2016-07-12 2016-12-14 腾讯科技(深圳)有限公司 一种虚拟机热迁移的方法、设备及系统
CN108121589A (zh) * 2016-11-30 2018-06-05 中标软件有限公司 一种虚拟机的在线迁移自动收敛的方法
US20190138349A1 (en) * 2017-11-09 2019-05-09 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for migrating virtual machine
CN112181594A (zh) * 2020-09-27 2021-01-05 北京浪潮数据技术有限公司 一种虚拟机热迁移方法、装置、设备及存储介质
CN113886012A (zh) * 2021-09-29 2022-01-04 济南浪潮数据技术有限公司 一种自动选择虚拟机热迁移加速方案的方法、装置、设备
CN114443212A (zh) * 2021-12-22 2022-05-06 天翼云科技有限公司 热迁移管理方法、装置、设备及存储介质
WO2022143717A1 (zh) * 2020-12-29 2022-07-07 华为云计算技术有限公司 一种虚拟机迁移方法、装置及系统
CN115480867A (zh) * 2022-07-29 2022-12-16 天翼云科技有限公司 一种热迁移耗时的预估方法、装置及计算机设备
WO2023274027A1 (zh) * 2021-06-28 2023-01-05 华为技术有限公司 用户态中断请求的处理方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227578A (zh) * 2016-07-12 2016-12-14 腾讯科技(深圳)有限公司 一种虚拟机热迁移的方法、设备及系统
CN108121589A (zh) * 2016-11-30 2018-06-05 中标软件有限公司 一种虚拟机的在线迁移自动收敛的方法
US20190138349A1 (en) * 2017-11-09 2019-05-09 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for migrating virtual machine
CN112181594A (zh) * 2020-09-27 2021-01-05 北京浪潮数据技术有限公司 一种虚拟机热迁移方法、装置、设备及存储介质
WO2022143717A1 (zh) * 2020-12-29 2022-07-07 华为云计算技术有限公司 一种虚拟机迁移方法、装置及系统
WO2023274027A1 (zh) * 2021-06-28 2023-01-05 华为技术有限公司 用户态中断请求的处理方法及装置
CN113886012A (zh) * 2021-09-29 2022-01-04 济南浪潮数据技术有限公司 一种自动选择虚拟机热迁移加速方案的方法、装置、设备
CN114443212A (zh) * 2021-12-22 2022-05-06 天翼云科技有限公司 热迁移管理方法、装置、设备及存储介质
CN115480867A (zh) * 2022-07-29 2022-12-16 天翼云科技有限公司 一种热迁移耗时的预估方法、装置及计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HANDONG LI, GUANGRONG XIAO, YULEI ZHANG, PING GAO, QIUMIN LU, AND JIANGUO YAO: "Adaptive Live Migration of Virtual Machines under Limited Network Bandwidth", 《PROCEEDINGS OF THE 17TH ACM SIGPLAN/SIGOPS INTERNATIONAL CONFERENCE ON VIRTUAL EXECUTION ENVIRONMENTS (VEE ’21)》 *
徐钦桂;杨桃栏;: "比较教学法在操作系统教学中的应用与实践", 计算机教育, no. 10 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117076137A (zh) * 2023-10-16 2023-11-17 麒麟软件有限公司 虚拟化下的cpu动态调频方法
CN117076137B (zh) * 2023-10-16 2024-01-26 麒麟软件有限公司 虚拟化下的cpu动态调频方法

Also Published As

Publication number Publication date
CN116560802B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
US20210058338A1 (en) Method and system for managing applications
US8332845B2 (en) Compile timing based on execution frequency of a procedure
US10817386B2 (en) Virtual machine recovery method and virtual machine management device
US9594522B2 (en) Backup method and information processing apparatus
CN105468362A (zh) 应用部署方法和云计算系统
CN116560802B (zh) 一种基于虚拟机负载的虚拟机自适应热迁移方法及系统
US10467106B2 (en) Data processing method, data processing system, and non-transitory computer program product for controlling a workload delay time
CN113067850B (zh) 一种多云场景下的集群编排系统
CN112612214B (zh) 用于功能界面生成的方法、系统和电子设备
CN110825495A (zh) 一种容器云平台的恢复方法、装置、设备及可读存储介质
CN111064626B (zh) 配置更新方法、装置、服务器及可读存储介质
JP6962138B2 (ja) 情報処理装置、情報処理システム及びプログラム
US11934665B2 (en) Systems and methods for ephemeral storage snapshotting
CN112783570A (zh) 基于服务网格的应用迁移方法、系统和介质
CN115904520A (zh) 基于pcie拓扑状态变更的配置保存方法及相关设备
CN112783605B (zh) 虚拟机的热迁移方法、装置、设备及存储介质
CN116991546B (zh) 一种跨平台存储热迁移方法及装置
CN112631994A (zh) 数据迁移方法及系统
US20220229689A1 (en) Virtualization platform control device, virtualization platform control method, and virtualization platform control program
CN117215721A (zh) 虚拟系统的管理方法、装置、电子设备及存储介质
WO2017000586A1 (zh) 虚拟网元的升级方法、装置和计算机存储介质
CN108932149B (zh) 数据传输方法及装置
CN115562805A (zh) 一种资源迁移的方法、装置及电子设备
CN114553859A (zh) 一种bmc配置管理方法、装置、电子设备及存储介质
CN114489930A (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
GR01 Patent grant
GR01 Patent grant