CN112540824B - 基于异构cpu的虚拟机迁移方法 - Google Patents
基于异构cpu的虚拟机迁移方法 Download PDFInfo
- Publication number
- CN112540824B CN112540824B CN201910891125.0A CN201910891125A CN112540824B CN 112540824 B CN112540824 B CN 112540824B CN 201910891125 A CN201910891125 A CN 201910891125A CN 112540824 B CN112540824 B CN 112540824B
- Authority
- CN
- China
- Prior art keywords
- state
- virtual machine
- core
- register
- memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution 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)
- Hardware Redundancy (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了种基于异构CPU的虚拟机迁移方法,所述异构CPU进一步包括:管控核、计算核、虚拟机操作系统、宿主机操作系统和虚拟机管理模块;包括以下步骤:虚拟机迁移开始,虚拟机的管控核向计算核发送暂停命令,当计算核暂停成功时,计算核的状态维持不变;虚拟机操作系统将计算核的状态存入指定的内存中,所述计算核的状态为寄存器状态、存储器状态和系统调用状态;虚拟机管理模块发出虚拟机暂停命令,虚拟机暂停成功后,虚拟机状态维持不变。本发明虚拟机迁移方法在支持通用虚拟机迁移技术相关接口的基础上,解决了异构架构虚拟机的计算核上进程的迁移问题。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种基于异构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虚拟机状态管理架构,功能扩展性强;兼容通用虚拟机迁移流程,可以共用通用虚拟机迁移的先进技术。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种基于异构CPU的虚拟机迁移方法,其特征在于:所述异构CPU进一步包括:管控核、计算核、虚拟机操作系统、宿主机操作系统和虚拟机管理模块,所述管控核负责操作系统运行和计算核的运行,所述计算核负责提供计算能力,所述虚拟机操作系统负责计算核状态保留恢复,所述宿主机操作系统负责虚拟机操作系统的保留恢复,所述虚拟机管理模块负责状态的传输工作;
所述虚拟机迁移方法包括以下步骤:
S1、虚拟机迁移开始,虚拟机的管控核向计算核发送暂停命令,当计算核暂停成功时,计算核的状态维持不变;
S2、虚拟机操作系统将计算核的状态存入指定的内存中,所述计算核的状态为寄存器状态、存储器状态和系统调用状态;
S3、虚拟机管理模块发出虚拟机暂停命令,虚拟机暂停成功后,虚拟机状态维持不变;
S4、发送端虚拟机管理模块向接收端虚拟机管理模块传输发送端虚拟机的管控核的寄存器状态、内存状态和计算核的存器状态、存储器状态和系统调用状态;
S5、接受端虚拟机管理模块接收并恢复发送端虚拟机的管控核寄存器、内存和计算核的存器状态、存储器状态和系统调用状态;
S6、虚拟机管理模块发出虚拟机运行命令,使恢复虚拟机操作系统的运行;
S7、虚拟机操作系统恢复计算核状态,此计算核状态为寄存器状态、存储器状态和系统调用状态;
S8、虚拟机的管控核向计算核发送运行命令,恢复计算核的运行;
虚拟机现场保留步骤进一步包括:
S11、虚拟机操作系统通过管控核对计算核发送状态保留异步命令,完成计算核的暂停和计算核寄存器状态、存储器状态和系统调用状态保存,此步骤由以下几个子步骤完成:
S111、管控核向计算核运行状态控制IO寄存器写入运行停止命令,停止计算核运行;
S112、计算核进入暂停状态后,管控核通过读取计算核运行状态IO寄存器数值,根据该数值判定计算核是否处于系统调用状态,如果是,则记录从核系统调用状态到指定内存中;
S113、完成系统调用状态保留后,管控核读取计算核寄存器状态IO寄存器,记录计算核所有寄存器的数值到指定内存中;
S114、完成寄存器状态保留后,管控核读取计算核存储器状态IO寄存器,记录计算核存储器状态到指定内存中;
S12、完成S11步骤后,虚拟机管理模块发出虚拟机暂停命令;
S13、虚拟机暂停后,宿主机操作系统记录管控核的寄存器状态和内存状态,并将其传输给虚拟机管理模块;
S14、接收端虚拟机管理模块接收到管控核的寄存器状态和内存状态后,通过TCP网络协议将管控核的寄存器状态和内存状态以及计算核的寄存器状态,存储器状态,系统调用状态发送给接收端虚拟机管理模块;
虚拟机的恢复步骤进一步包括:
S21、接收端虚拟机管理模块接收到发送端虚拟机管理模块传输的内存状态,并将直接写入接收端虚拟机申请的内存中;
S22、接收端虚拟机管理模块接收到发送端虚拟机管理模块传输的管控核寄存器状态后,虚拟机管理模块控制宿主机操作系统恢复虚拟机操作系统的管控核寄存器状态;
S23、虚拟机操作系统寄存器状态和内存状态恢复后,虚拟机管理模块发出运行命令,虚拟机操作系统开始运行;
S24、虚拟机操作系统读取指定的内存地址,获取发送端计算核状态信息,通过管控核对计算核发送状态恢复异步命令,恢复计算核的寄存器状态、存储器状态和系统调用状态,并使计算核重新运行,此功能由以下几个子步骤完成:
S241、管控核将发送端计算核存储器状态写回计算核存储器状态IO寄存器,完成计算核存储器状态恢复;
S242、管控核将发送端计算核寄存器状态写回计算核寄存器状态IO寄存器,完成计算核寄存器状态恢复;
S243、计算核存储器状态和寄存器状态恢复后,判定发送端计算核系统调用状态,如果处于系统调用状态,则根据虚拟机操作系统控制管控核根据计算核系统调用状态代理完成系统调用功能;
S244、计算核状态恢复后,管控核通过向计算核运行状态控制IO寄存器写入运行命令,恢复计算核的运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910891125.0A CN112540824B (zh) | 2019-09-20 | 2019-09-20 | 基于异构cpu的虚拟机迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910891125.0A CN112540824B (zh) | 2019-09-20 | 2019-09-20 | 基于异构cpu的虚拟机迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112540824A CN112540824A (zh) | 2021-03-23 |
CN112540824B true CN112540824B (zh) | 2022-07-12 |
Family
ID=75012413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910891125.0A Active CN112540824B (zh) | 2019-09-20 | 2019-09-20 | 基于异构cpu的虚拟机迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112540824B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485790B (zh) * | 2021-06-30 | 2024-01-23 | 海光信息技术股份有限公司 | 一种虚拟机的重启方法、迁移方法和相关设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797878A (zh) * | 2016-09-06 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 虚拟机热迁移处理方法及系统 |
CN109522087B (zh) * | 2018-09-13 | 2020-07-28 | 上海交通大学 | 基于国产申威处理器的虚拟机构建方法和系统 |
-
2019
- 2019-09-20 CN CN201910891125.0A patent/CN112540824B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112540824A (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016145738A1 (zh) | 一种基于虚拟上位机的数控系统 | |
CN103942178A (zh) | 多核处理器上实时操作系统与非实时操作系统之间的通信方法 | |
WO2018054081A1 (zh) | 故障处理方法、虚拟架构管理系统和业务管理系统 | |
CN110677305A (zh) | 一种云计算环境下的自动伸缩方法和系统 | |
US20110107344A1 (en) | Multi-core apparatus and load balancing method thereof | |
CN110716793B (zh) | 一种分布式事务的执行方法、装置、设备及存储介质 | |
WO2019223599A1 (zh) | 数据采集系统、方法、节点设备及存储介质 | |
WO2021104383A1 (zh) | 数据备份的方法和装置、设备和存储介质 | |
CN105187327A (zh) | 一种分布式消息队列中间件 | |
CN107704310B (zh) | 一种实现容器集群管理的方法、装置和设备 | |
US10452402B2 (en) | Operation instruction response control method and terminal for human-machine interface | |
WO2020147544A1 (zh) | 应用程序恢复运行的方法、装置及计算机 | |
CN110958311A (zh) | 一种基于yarn的共享集群弹性伸缩系统及方法 | |
CN112540824B (zh) | 基于异构cpu的虚拟机迁移方法 | |
Wang et al. | A cluster autoscaler based on multiple node types in kubernetes | |
CN107329842B (zh) | 基于Qt信号槽机制的获取数据的方法及终端 | |
CN109062857A (zh) | 一种能高速实现多处理器间通信的新型消息控制器及其通信方法 | |
CN109361653B (zh) | 一种powerlink主站 | |
CN111917588A (zh) | 边缘设备管理方法、装置、边缘网关设备和存储介质 | |
CN114268670B (zh) | 基于时间触发的以太网异步消息处理系统及方法 | |
US12019909B2 (en) | IO request pipeline processing device, method and system, and storage medium | |
JPH09274608A (ja) | マルチプロセッサシステムにおけるプロセッサ間の負荷配分制御方法 | |
CN107479945B (zh) | 一种虚拟机资源调度方法及装置 | |
CN112527760A (zh) | 数据存储方法、装置、服务器及介质 | |
CN112395079B (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 |