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

技术编号:38469694 阅读:13 留言:0更新日期:2023-08-11 14:46
本发明专利技术公开了一种基于虚拟机负载的虚拟机自适应热迁移方法及系统,本发明专利技术包括在收到目标虚拟机的热迁移命令时,获取目标虚拟机的CPU利用率和内存利用率并选择热迁移优化方式:若CPU利用率超过第一设定阈值,则启动auto

【技术实现步骤摘要】
一种基于虚拟机负载的虚拟机自适应热迁移方法及系统


[0001]本专利技术涉及虚拟机领域,具体涉及一种基于虚拟机负载的虚拟机自适应热迁移方法及系统。

技术介绍

[0002]虚拟机的热迁移是指将运行在宿主机A上的虚拟机平滑的迁移到宿主机B上运行以保证虚拟机热迁移过程中用户服务正常运行,实际上会有短暂的毫秒(ms)级别停机服务,但是对用户感知影响较小。虚拟机热迁移时需要迁移两部分数据:磁盘和内存数据。一般情况下磁盘数据的迁移不会导致迁移失败,迁移失败多数场景发生在内存的迁移,这里只研究虚拟机内存数据的迁移的情况。内存迁移的过程有两种实现方式,分别是预拷贝(pre

copy)和提交拷贝(post

copy),post

copy方式热迁移有一定的生产风险,因此一般采用基于pre

copy热迁移方式。为简化迁移过程,可采用虚拟机磁盘采用共享存储的方式,虚拟机在进行热迁移的过程中,不需要迁移磁盘数据,直接进行内存数据的迁移。
[0003]内存数据的迁移受限于网络带宽,一般情况下采用管理网进行迁移,管理网一般是千兆或者万兆网卡,在此网络带宽下进行虚拟机热迁移。虚拟机热迁移目的主要目的是在不影响用户虚拟机正常运行的前提下,实现对内核和虚拟机化组件软件修复以及硬件故障修复。在管理网络带宽不高,虚拟机实际负载却很高的情况下,进行热迁移操作,热迁移就有可能出现大概率迁移失败的场景,因此需要对热迁移技术进行技术优化。
[0004]目前虚拟机热迁移,qemu社区已经实现auto

converge(自动收敛)功能和XBZRLE功能两种热迁移优化方式:开启auto

converge功能后,可以在传输过程中不断降低vcpu被实际调度上生成数据脏页,具有良好的收敛功能,最终可以使虚拟机在规定的迁移时间内,把内存脏页全部迁移到目的端;开启XBZRLE功能后,在迭代迁移的时候需要将新产生的脏页数据和原始数据进行异或操作,只传输发生变化的内存脏页,极大的减少了内存数据的重复传输,如果是内存密集型虚拟机提升了传输的效率,将数据进过压缩处理,然后传输到目的端,目的端的虚机接受到内存数据,最终完成热迁移操作。然后在实际使用的情况下,通过libvirt下发qmp命令(基于JSON格式的传输协议,用于与qemu虚拟机实例进行交互,例如查询虚拟机的相关状态等),一旦确定了一台计算节点上虚拟机热迁移的方式和优化方法,就不能进行更改。而在一台计算节点上虚拟机数量可能有几十台。每一台虚拟机的实际运行负载情况还不一样,即要考虑迁移的平稳性,对用户业务的影响减少到最小,又要考虑热迁移的成功率。

技术实现思路

[0005]研究发现,开启XBZRLE功能后,如果CPU密集性的虚拟机,此时虚拟机内存脏页无法收敛,会导致迁移大概率失败。如果是内存密集型虚拟机,而迁移时开启auto

converge功能后,降低了vcpu(虚拟处理器)的运行频率,然后内存还是源源不断的动态内存分配(malloc),也会导致迁移失败。本专利技术要解决的技术问题:针对上述发现,提供一种基于虚
拟机负载的虚拟机自适应热迁移方法及系统,本专利技术旨在根据目标虚拟机的CPU利用率和内存利用率识别目标虚拟机的负载情况,从而在XBZRLE功能和auto

converge功能两者中自动选择最适合迁移优化手段,以避免由于负载差异所导致的虚拟机热迁移失败的概率。
[0006]为了解决上述技术问题,本专利技术采用的技术方案为:一种基于虚拟机负载的虚拟机自适应热迁移方法,包括:S101,在收到目标虚拟机的热迁移命令时,跳转步骤S102;S102,获取目标虚拟机的CPU利用率和内存利用率;S103,根据目标虚拟机的CPU利用率和内存利用率为目标虚拟机选择所需的热迁移优化方式:若CPU利用率超过第一设定阈值,则启动auto

converge功能定期削减vcpu的执行时间以减少脏页内存的产生量直至热迁移完成;否则,若内存利用率超过第二设定阈值,则启动XBZRLE功能进行内存脏页传输直至热迁移完成。
[0007]可选地,步骤S102中获取目标虚拟机的CPU利用率包括:获取虚拟机进程的进程标识符pid以及目标虚拟机对应线程的线程标识符tid,根据进程标识符pid和线程标识符tid确定目标虚拟机的状态文件的路径,并按照指定的间隔读取目标虚拟机在该路径下的状态文件并获取目标虚拟机的用户态时间utime和内核态时间stime,并根据用户态时间utime和内核态时间stime计算目标虚拟机的CPU利用率。
[0008]可选地,所述计算目标虚拟机的CPU利用率的函数表达式为:cpuUsage =((utime + stime)

(lastutime + laststime))/100,上式中,cpuUsage表示目标虚拟机的CPU利用率,utime表示目标虚拟机本次的用户态时间,stime表示目标虚拟机本次的内核态时间,lastutime表示目标虚拟机上一次的用户态时间,laststime表示目标虚拟机上一次的内核态时间。
[0009]可选地,步骤S102中,获取目标虚拟机的内存利用率包括:利用部署在目标虚拟机中的代理服务获取目标虚拟机的总内存大小memTotal、可用内存大小memFree 、缓冲区大小Buffer、缓存大小Cached以及Slab内存的可回收部分大小SReclaimable;然后根据目标虚拟机的总内存大小memTotal、可用内存大小memFree 、缓冲区大小Buffer、缓存大小Cached以及Slab内存的可回收部分大小SReclaimable计算目标虚拟机的内存利用率。
[0010]可选地,所述计算目标虚拟机的内存利用率的函数表达式为:memUtil=(memTotal

(memFree + Buffer + Cached + SReclaimable))/memTotal
×
100上式中,memUtil表示目标虚拟机的内存利用率,memTotal表示目标虚拟机的总内存大小,memFree表示目标虚拟机的可用内存大小,Buffer表示目标虚拟机的缓冲区大小,Cached表示目标虚拟机的缓存大小,SReclaimable表示目标虚拟机的Slab内存的可回收部分大小。
[0011]可选地,步骤S101~S103的执行主体为快速仿真器qemu,步骤S101中收到目标虚拟机的热迁移命令是指快速仿真器qemu收到虚拟化平台libvirt通过qmp协议下发的目标虚拟机的热迁移命令。
[0012]可选地,步骤S101包括:快速仿真器qemu收到虚拟化平台libvirt通过qmp协议下发的目标虚拟机的热迁移命令,首先判断热迁移命令中是否包含指定的自适应参数,若包含指定的自适应参数则跳转步骤S102;否则,直接目标虚拟机的热迁移命令直至热迁移完
成。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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=...

【专利技术属性】
技术研发人员:夏纪冬张铎陈章黄伟
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

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

1