基于异构CPU的虚拟机迁移方法与流程

文档序号:24377563发布日期:2021-03-23 11:11阅读:408来源:国知局
基于异构CPU的虚拟机迁移方法与流程

本发明属于计算机技术领域,尤其涉及一种基于异构cpu的虚拟机迁移方法。



背景技术:

虚拟化技术在云计算和集群服务中的作用越来越重要,而虚拟机迁移技术是虚拟化技术应用的重要组成部分。虚拟机的迁移功能可以提升系统运行的稳定性,优化集群中的负载不均衡问题。为了在应用上提供更多的优势,需要在异构cpu的虚拟机适配迁移技术。

完整的虚拟机迁移主要包括虚拟机状态的迁移,内存的迁移等。虚拟机迁移中的主要技术难点在于虚拟机状态的保留和恢复工作。现有虚拟机现场的保留和恢复发生在虚拟机线程在进出虚拟机时。cpu硬件支持指令进行切换cpu运行模式,可以在虚拟机模式和宿主机模式间切换。虚拟机在退出虚拟机模式进入宿主机模式时,宿主机完成对虚拟机的状态的保留。但是这个技术方案建立在虚拟机线程模型下。如果虚拟机在使用cpu硬件资源时,不采用虚拟机线程模型,现有的技术就无法生效。



技术实现要素:

本发明目的在于提供一种基于异构cpu的虚拟机迁移方法,该虚拟机迁移方法在支持通用虚拟机迁移技术相关接口的基础上,解决了异构架构虚拟机的计算核上进程的迁移问题。

为达到上述目的,本发明采用的技术方案是:一种基于异构cpu的虚拟机迁移方法,所述异构cpu进一步包括:管控核、计算核、虚拟机操作系统、宿主机操作系统和虚拟机管理模块,所述管控核负责操作系统运行和计算核的运行,所述计算核负责提供计算能力,所述虚拟机操作系统负责计算核状态保留恢复,所述宿主机操作系统负责虚拟机操作系统的保留恢复,所述虚拟机管理模块负责状态的传输工作;

所述虚拟机迁移方法包括以下步骤:

s1、虚拟机迁移开始,虚拟机的管控核向计算核发送暂停命令,当计算核暂停成功时,计算核的状态维持不变;

s2、虚拟机操作系统将计算核的状态存入指定的内存中,所述计算核的状态为寄存器状态、存储器状态和系统调用状态;

s3、虚拟机管理模块发出虚拟机暂停命令,虚拟机暂停成功后,虚拟机状态维持不变;

s4、发送端虚拟机管理模块向接收端虚拟机管理模块传输发送端虚拟机的管控核的寄存器状态、内存状态和计算核的存器状态、存储器状态和系统调用状态;

s5、接受端虚拟机管理模块接收并恢复发送端虚拟机的管控核寄存器、内存和计算核的存器状态、存储器状态和系统调用状态;

s6、虚拟机管理模块发出虚拟机运行命令,使恢复虚拟机操作系统的运行;

s7、虚拟机操作系统恢复计算核状态,此计算核状态为寄存器状态、存储器状态和系统调用状态;

s8、虚拟机的管控核向计算核发送运行命令,恢复计算核的运行;

所述s1~s4的虚拟机现场保留步骤进一步包括以下步骤:

s11、虚拟机操作系统通过管控核对计算核发送状态保留异步命令,完成计算核的暂停和计算核寄存器状态、存储器状态和系统调用状态保存,此步骤由以下几个子步骤完成:

s111、管控核向计算核运行状态控制io寄存器写入运行停止命令,停止计算核运行;

s112、计算核进入暂停状态后,管控核通过读取计算核运行状态io寄存器数值,根据该数值判定计算核是否处于系统调用状态,计算核为系统调用状态是,该寄存器必为某一个固定数值,该数值由系统开发者决定,如果是,则记录从核系统调用状态(包括系统调用类型,输入变量值)到指定内存中;

s113、完成系统调用状态保留后,管控核读取计算核寄存器状态io寄存器,记录计算核所有寄存器的数值到指定内存中;

s114、完成寄存器状态保留后,管控核读取计算核存储器状态io寄存器,记录计算核存储器状态到指定内存中;

s12、完成s11步骤后,虚拟机管理模块发出虚拟机暂停命令;

s13、虚拟机暂停后,宿主机操作系统记录管控核的寄存器状态和内存状态,并将其传输给虚拟机管理模块;

s14、接收端虚拟机管理模块接收到管控核的寄存器状态和内存状态后,通过tcp网络协议将管控核的寄存器状态和内存状态以及计算核的寄存器状态,存储器状态,系统调用状态发送给接收端虚拟机管理模块;

所述s5~s8的虚拟机的恢复步骤:

s21、接收端虚拟机管理模块接收到发送端虚拟机管理模块传输的内存状态,并将直接写入接收端虚拟机申请的内存中;

s22、接收端虚拟机管理模块接收到发送端虚拟机管理模块传输的管控核寄存器状态后,虚拟机管理模块控制宿主机操作系统恢复虚拟机操作系统的管控核寄存器状态;

s23、虚拟机操作系统寄存器状态和内存状态恢复后,虚拟机管理模块发出运行命令,虚拟机操作系统开始运行;

s24、虚拟机操作系统读取指定的内存地址,获取发送端计算核状态信息,通过管控核对计算核发送状态恢复异步命令,恢复计算核的寄存器状态、存储器状态和系统调用状态,并使计算核重新运行,此功能由以下几个子步骤完成:

s241、管控核将发送端计算核存储器状态写回计算核存储器状态io寄存器,完成计算核存储器状态恢复;

s242、管控核将发送端计算核寄存器状态写回计算核寄存器状态io寄存器,完成计算核寄存器状态恢复;

s243、计算核存储器状态和寄存器状态恢复后,判定发送端计算核系统调用状态,如果处于系统调用状态,则根据虚拟机操作系统控制管控核根据计算核系统调用状态(系统调用类型,输入变量值)代理完成系统调用功能;

s244、计算核状态恢复后,管控核通过向计算核运行状态控制io寄存器写入运行命令,恢复计算核的运行。

由于上述技术方案的运用,本发明与现有技术相比具有下列优点:

本发明基于异构cpu的虚拟机迁移方法,实现了基于异构cpu的虚拟机迁移技术,实现了异构cpu中非通用的计算核的状态管理和迁移功能,给异构cpu虚拟机的应用上提供更多的优势;采用分级的异构cpu虚拟机状态管理架构,功能扩展性强;兼容通用虚拟机迁移流程,可以共用通用虚拟机迁移的先进技术。

附图说明

附图1为本发明异构cpu的虚拟机架构框图;

附图2为本发明虚拟机迁移方法的流程图;

附图3为本发明虚拟机状态保留流程图;

附图4为本发明虚拟机状态恢复流程图。

具体实施方式

下面结合实施例对本发明作进一步描述:

实施例:一种基于异构cpu的虚拟机迁移方法,所述异构cpu进一步包括:管控核、计算核、虚拟机操作系统、宿主机操作系统和虚拟机管理模块,所述管控核负责操作系统运行和计算核的运行,所述计算核负责提供计算能力,所述虚拟机操作系统负责计算核状态保留恢复,所述宿主机操作系统负责虚拟机操作系统的保留恢复,所述虚拟机管理模块负责状态的传输工作;

所述虚拟机迁移方法包括以下步骤:

s1、虚拟机迁移开始,虚拟机的管控核向计算核发送暂停命令,当计算核暂停成功时,计算核的状态维持不变;

s2、虚拟机操作系统将计算核的状态存入指定的内存中,所述计算核的状态为寄存器状态、存储器状态和系统调用状态;

s3、虚拟机管理模块发出虚拟机暂停命令,虚拟机暂停成功后,虚拟机状态维持不变;

s4、发送端虚拟机管理模块向接收端虚拟机管理模块传输发送端虚拟机的管控核的寄存器状态、内存状态和计算核的存器状态、存储器状态和系统调用状态;

s5、接受端虚拟机管理模块接收并恢复发送端虚拟机的管控核寄存器、内存和计算核的存器状态、存储器状态和系统调用状态;

s6、虚拟机管理模块发出虚拟机运行命令,使恢复虚拟机操作系统的运行;

s7、虚拟机操作系统恢复计算核状态,此计算核状态为寄存器状态、存储器状态和系统调用状态;

s8、虚拟机的管控核向计算核发送运行命令,恢复计算核的运行;

异构cpu的虚拟机的迁移流程扩展和融入了标准虚拟机迁移流程(图中虚拟机迁移部分),新增了计算核的状态保留、迁移和恢复流程,采用宿主机管理虚拟机状态,虚拟机的管控核管理虚拟机的计算核状态的三级架构,解决了标准虚拟机迁移技术无法在计算核上使用的问题;

所述s1~s4的虚拟机现场保留步骤进一步包括以下步骤:

s11、虚拟机操作系统通过管控核对计算核发送状态保留异步命令,完成计算核的暂停和计算核寄存器状态、存储器状态和系统调用状态保存,此步骤由以下几个子步骤完成:

s111、管控核向计算核运行状态控制io寄存器写入运行停止命令,停止计算核运行;

s112、计算核进入暂停状态后,管控核通过读取计算核运行状态io寄存器数值,根据该数值判定计算核是否处于系统调用状态,计算核为系统调用状态是,该寄存器必为某一个固定数值,如果是,则记录从核系统调用状态(包括系统调用类型,输入变量值)到指定内存中;

s113、完成系统调用状态保留后,管控核读取计算核寄存器状态io寄存器,记录计算核所有寄存器的数值到指定内存中;

s114、完成寄存器状态保留后,管控核读取计算核存储器状态io寄存器,记录计算核存储器状态到指定内存中;

s12、完成s11步骤后,虚拟机管理模块发出虚拟机暂停命令;

s13、虚拟机暂停后,宿主机操作系统记录管控核的寄存器状态和内存状态,并将其传输给虚拟机管理模块;

s14、接收端虚拟机管理模块接收到管控核的寄存器状态和内存状态后,通过tcp网络协议将管控核的寄存器状态和内存状态以及计算核的寄存器状态,存储器状态,系统调用状态发送给接收端虚拟机管理模块;

所述s5~s8的虚拟机的恢复步骤:

s21、接收端虚拟机管理模块接收到发送端虚拟机管理模块传输的内存状态,并将直接写入接收端虚拟机申请的内存中;

s22、接收端虚拟机管理模块接收到发送端虚拟机管理模块传输的管控核寄存器状态后,虚拟机管理模块控制宿主机操作系统恢复虚拟机操作系统的管控核寄存器状态;

s23、虚拟机操作系统寄存器状态和内存状态恢复后,虚拟机管理模块发出运行命令,虚拟机操作系统开始运行;

s24、虚拟机操作系统读取指定的内存地址,获取发送端计算核状态信息,通过管控核对计算核发送状态恢复异步命令,恢复计算核的寄存器状态、存储器状态和系统调用状态,并使计算核重新运行,此功能由以下几个子步骤完成:

s241、管控核将发送端计算核存储器状态写回计算核存储器状态io寄存器,完成计算核存储器状态恢复;

s242、管控核将发送端计算核寄存器状态写回计算核寄存器状态io寄存器,完成计算核寄存器状态恢复;

s243、计算核存储器状态和寄存器状态恢复后,判定发送端计算核系统调用状态,如果处于系统调用状态,则根据虚拟机操作系统控制管控核根据计算核系统调用状态(系统调用类型,输入变量值)代理完成系统调用功能;

s244、计算核状态恢复后,管控核通过向计算核运行状态控制io寄存器写入运行命令,恢复计算核的运行。

采用上述基于异构cpu的虚拟机迁移方法时,实现了基于异构cpu的虚拟机迁移技术,实现了异构cpu中非通用的计算核的状态管理和迁移功能,给异构cpu虚拟机的应用上提供更多的优势;采用分级的异构cpu虚拟机状态管理架构,功能扩展性强;兼容通用虚拟机迁移流程,可以共用通用虚拟机迁移的先进技术。

上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1