CN117742962A - 一种虚拟机资源的管理方法、装置、设备及存储介质 - Google Patents

一种虚拟机资源的管理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117742962A
CN117742962A CN202311775252.7A CN202311775252A CN117742962A CN 117742962 A CN117742962 A CN 117742962A CN 202311775252 A CN202311775252 A CN 202311775252A CN 117742962 A CN117742962 A CN 117742962A
Authority
CN
China
Prior art keywords
virtual machine
resource
machine
target
virtual
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.)
Pending
Application number
CN202311775252.7A
Other languages
English (en)
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.)
Kedong Guangzhou Software Technology Co Ltd
Original Assignee
Kedong Guangzhou Software Technology 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 Kedong Guangzhou Software Technology Co Ltd filed Critical Kedong Guangzhou Software Technology Co Ltd
Priority to CN202311775252.7A priority Critical patent/CN117742962A/zh
Publication of CN117742962A publication Critical patent/CN117742962A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种虚拟机资源的管理方法、装置、设备及存储介质,所述方法包括:根据第一虚拟机的资源配置文件配置第一虚拟机的硬件资源,每个虚拟机的资源配置文件在离线主机上提前创建,包括该虚拟机对目标机内核的第一共享资源中各比特位的读写权限;把该读写权限注册到第一虚拟机的内存映射I O总线上,利用第一虚拟机的资源描述文件启动第一虚拟机;当第一虚拟机对第一共享资源访问时陷入到目标机内核中,目标机内核根据所述读写权限访问第一共享资源相应的比特位。本发明实施例通过离线生成虚拟机的资源配置文件,在近似裸机上配置虚拟机的资源,还实现不同虚拟机在共享资源上位隔离,降低了目标机上第一共享资源虚拟化的资源消耗。

Description

一种虚拟机资源的管理方法、装置、设备及存储介质
技术领域
本发明嵌入式操作系统领域,尤其涉及一种虚拟机资源的管理方法、装置、设备及存储介质。
背景技术
现有type1型虚拟化技术,如xen、acrn、xvisor,其主要由服务器虚拟化技术发展演变而来。包含完整的虚拟化层级和架构(包含vbios、vcpu、虚拟内存、虚拟中断控制器、虚拟设备等),其内容详尽结构层次清晰,同时代码量也庞大。
在嵌入式平台上,由于硬件资源限制,或基于成本的考虑,对虚拟机管理程序所消耗的计算资源和存储资源有较高的要求。
type1虚拟化技术发展了很久,且技术相对成熟,但在嵌入式领域中使用起来较为困难,其体现在两个方面,一是其代码体量较大,适配维护难度较高,二是type1虚拟机管理程序对计算机资源有一定消耗,在低成本硬件平台上type1使用资源占比较高。
发明内容
有鉴于此,本发明实施例提供了一种虚拟机资源的管理方法、装置、设备及存储介质,本发明实施例的技术方案用于在基于type1虚拟化的嵌入式目标机上管理虚拟机的资源,通过离线生成虚拟机的资源配置文件,并在该资源配置文件中包括虚拟机的硬件资源配置信息、对目标机内核中的第一共享资源中分配给该虚拟机读写权限的比特位,从在近似裸机上配置虚拟机的资源,而且在第一虚拟机运行时实现不同虚拟机在共享资源上位隔离,降低了目标机上第一共享资源虚拟化的资源消耗。
第一方面,本发明实施例提供了一种虚拟机资源的管理方法,用于在基于type1虚拟化的目标机上管理虚拟机的资源,包括:根据第一虚拟机的资源配置文件配置第一虚拟机的硬件资源,每个虚拟机的资源配置文件在离线主机上提前创建,其至少包括该虚拟机的硬件资源在目标机的资源描述文件中的配置信息、该虚拟机对目标机内核的第一共享资源中各比特位的读写权限;把第一虚拟机的所述读写权限注册到第一虚拟机的内存映射IO总线上;在第一虚拟机的硬件资源上根据第一虚拟机的资源描述文件启动第一虚拟机的镜像,该资源描述文件在离线主机上提前创建;当第一虚拟机对第一共享资源访问时陷入到目标机内核中,目标机内核根据所述读写权限访问所述第一共享资源相应的比特位,并反馈访问结果至第一虚拟机。
由上,通过离线生成虚拟机的资源配置文件,并在该资源配置文件中包括虚拟机的硬件资源配置信息、对目标机内核中的第一共享资源中分配给该虚拟机读写权限的比特位,从在近似裸机上配置虚拟机的资源,而且在第一虚拟机运行时实现不同虚拟机在共享资源上位隔离,降低了目标机上第一共享资源虚拟化的资源消耗。
在第一方面的一种可能实施方式中,所述共享资源至少包括下列之一:各虚拟机共享的时钟、电源和芯片管脚。
由上,通过在共享的时钟、电源和芯片管脚的同一地址下各位的读写权限分配给相应的虚拟机,实现对时钟、电源和芯片管脚的共享。
在第一方面的一种可能实施方式中,第一虚拟机的资源配置文件包括第一虚拟机共享的每个第一共享资源的地址寄存器、位使能寄存器和数据寄存器,该数据寄存器用于缓存第一共享资源的访问结果,通过该位使能寄存器包括所述读写权限。
由上,通过配置每个第一共享资源的寄存器,实现对共享资源的管理和按照权限进行访问。
在第一方面的一种可能实施方式中,还包括:每个虚拟机的硬件资源包括其独立硬件资源,该硬件独立资源包括该虚拟机的独立内存和物理设备,每个虚拟机的资源配置文件还包括该虚拟机的MMU页表,用于配置该虚拟机的独立内存和物理设备的地址映射;在创建虚拟机时,在目标机的物理内存的页表区域写入各虚拟机的MMU页表。
由上,通过离线生成每个虚拟机的独立资源配置MMU页表,降低了目标机上独立资源虚拟化的资源消耗,提高了虚拟机的工作效率。
在第一方面的一种可能实施方式中,所述MMU页表为stage2页表。
由上,通过离线生成的stage2页表降低了目标机上独立资源虚拟化的资源消耗,提高了虚拟机的工作效率。
在第一方面的一种可能实施方式中,每个虚拟机的独立硬件资源还包括该虚拟机的独立CPU核;在创建每个虚拟机时,在该虚拟机的独立CPU核上启动该虚拟机的镜像。
由上,通过为每个虚拟机分配物理CPU核,从而降低了目标机上CPU核虚拟化的资源消耗,且提高CPU核的响应速度。
在第一方面的一种可能实施方式中,每个虚拟机的硬件资源还包括虚拟硬件资源,每个虚拟硬件资源对应于目标机内核中第二共享资源,每个虚拟机具有其每个虚拟硬件资源的所有比特位的读写权限。
由上,通过每个虚拟机的硬件资源还包括虚拟硬件资源,每个虚拟机可以具有目标机内核中第二共享资源的全部权限。
在第一方面的一种可能实施方式中,在配置第一虚拟机的硬件资源之前,还包括:根据目标机内核的资源配置文件配置目标机内核的硬件资源,并在其上启动目标机内核的镜像,该资源配置文件在离线主机上提前创建,其包括目标机内核的硬件资源在目标机的资源描述文件中的配置信息。
由上,根据提前获得目标机内核的资源配置文件配置目标机内核的硬件资源,从而降低目标机内核虚拟化对目标机的资源消耗。
在第一方面的一种可能实施方式中,还包括:在离线主机上,从目标机的资源描述文件中抽象出可分配的硬件资源,并分配到目标机内核和各虚拟机;在离线主机上,根据目标机内核和各虚拟机分配的硬件资源,创建目标机内核的资源配置文件、各虚拟机的资源配置文件和资源描述文件,目标机内核和各虚拟机的每个硬件资源在资源配置文件中通过配置结构体包括该硬件资源在目标机的资源描述文件中的信息,并在每个虚拟机的资源配置文件中添加该虚拟机的所述读写权限。
由上,根据目标机的资源描述文件进行资源分配,从而根据分配的资源利用目标机的资源描述文件中的信息可以获得准确和全面的资源配置文件及资源描述文件,而且降低讲话目标机资源虚拟化的流程,在配置较低的目标机上就能完成目标机资源虚拟化。
在第一方面的一种可能实施方式中,在离线主机上创建每个虚拟机的资源描述文件,包括:为每个虚拟机复制一份目标机的资源描述文件,把该复制的资源描述文件中该虚拟机未分配的硬件资源设置为无效状态,获得该虚拟机的资源描述文件。
由上,根据复制目标机的资源描述文件获得每个虚拟机的资源描述文件,使每个虚拟机的资源描述文件的准确且全面。
在第一方面的一种可能实施方式中,每个资源描述文件包括设备树或APC I表。
由上,通过资源描述文件包括设备树或APC I表,使本发明的资源管理方法支持基于各种芯片的计算机系统的硬件资源虚拟化。
第二方面,本发明实施例提供了一种虚拟机资源的管理装置,包括:资源配置模块,用于根据第一虚拟机的资源配置文件配置第一虚拟机的硬件资源,每个虚拟机的资源配置文件在离线主机上提前创建,其至少包括该虚拟机的硬件资源在目标机的资源描述文件中的信息、该虚拟机对目标机内核的第一共享资源中各比特位的读写权限;共享注册模块,用于把第一虚拟机的所述读写权限,注册到第一虚拟机的内存映射IO总线上;虚拟机创建模块,用于在第一虚拟机的硬件资源上根据第一虚拟机的资源描述文件启动第一虚拟机的镜像,该资源配置文件在离线主机上提前创建;共享资源访问模块,用于当第一虚拟机对其一共享硬件资源访问时陷入到目标机内核中,目标机内核根据所述读写权限访问所述第一共享资源相应的比特位,并反馈访问结果至第一虚拟机。
由上,通过离线生成虚拟机的资源配置文件,并在该资源配置文件中包括虚拟机的硬件资源配置信息、对目标机内核中的第一共享资源中分配给该虚拟机读写权限的比特位,从在近似裸机上配置虚拟机的资源,而且在第一虚拟机运行时实现不同虚拟机在共享资源上位隔离,降低了目标机上第一共享资源虚拟化的资源消耗。
在第二方面的一种可能实施方式中,所述共享资源至少包括下列之一:各虚拟机共享的时钟、电源和芯片管脚。
由上,通过在共享的时钟、电源和芯片管脚的同一地址下各位的读写权限分配给相应的虚拟机,实现对时钟、电源和芯片管脚的共享。
在第二方面的一种可能实施方式中,第一虚拟机的资源配置文件包括第一虚拟机共享的每个第一共享资源的地址寄存器、位使能寄存器和数据寄存器,该数据寄存器用于缓存第一共享资源的访问结果,通过该位使能寄存器包括所述读写权限。
由上,通过配置每个第一共享资源的寄存器,实现对共享资源的管理和按照权限进行访问。
在第二方面的一种可能实施方式中,每个虚拟机的硬件资源包括其独立硬件资源,该硬件独立资源包括该虚拟机的独立内存和物理设备,每个虚拟机的资源配置文件还包括该虚拟机的MMU页表,用于配置该虚拟机的独立内存和物理设备的地址映射;还包括:MMU映射配置模块用于在创建虚拟机时,在目标机的物理内存的页表区域写入各虚拟机的MMU页表。
由上,通过离线生成每个虚拟机的独立资源配置MMU页表,降低了目标机上独立资源虚拟化的资源消耗,提高了虚拟机的工作效率。
在第二方面的一种可能实施方式中,所述MMU页表为stage2页表。
由上,通过离线生成的stage2页表降低了目标机上独立资源虚拟化的资源消耗,提高了虚拟机的工作效率。
在第二方面的一种可能实施方式中,每个虚拟机的独立硬件资源还包括该虚拟机的独立CPU核;在创建每个虚拟机时,在该虚拟机的独立CPU核上启动该虚拟机的镜像。
由上,通过为每个虚拟机分配物理CPU核,从而降低了目标机上CPU核虚拟化的资源消耗,且提高CPU核的响应速度。
在第二方面的一种可能实施方式中,每个虚拟机的硬件资源还包括虚拟硬件资源,每个虚拟硬件资源对应于目标机内核中第二共享资源,每个虚拟机具有其每个虚拟硬件资源的所有比特位的读写权限。
由上,通过每个虚拟机的硬件资源还包括虚拟硬件资源,每个虚拟机可以具有目标机内核中第二共享资源的全部权限。
在第二方面的一种可能实施方式中,还包括:内核启动模块。用于在配置第一虚拟机的硬件资源之前,根据目标机内核的资源配置文件配置目标机内核的硬件资源,并在其上启动目标机内核的镜像,该资源配置文件在离线主机上提前创建,其包括目标机内核的硬件资源在目标机的资源描述文件中的配置信息。
由上,根据提前获得目标机内核的资源配置文件配置目标机内核的硬件资源,从而降低目标机内核虚拟化对目标机的资源消耗。
在第二方面的一种可能实施方式中,在离线主机上包括:资源划分模块,用于从目标机的资源描述文件中抽象出可分配的硬件资源,并分配到目标机内核和各虚拟机;配置生成模块,用于在离线主机上,根据目标机内核和各虚拟机分配的硬件资源,创建目标机内核的资源配置文件、各虚拟机的资源配置文件,目标机内核和各虚拟机的每个硬件资源在资源配置文件中通过配置结构体包括该硬件资源在目标机的资源描述文件中的信息;共享配置模块用于,在每个虚拟机的资源配置文件中添加该虚拟机的所述读写权限;描述生成模块用于在离线主机上,根据各虚拟机分配的硬件资源创建各虚拟机的资源描述文件。
由上,根据目标机的资源描述文件进行资源分配,从而根据分配的资源利用目标机的资源描述文件中的信息可以获得准确和全面的资源配置文件及资源描述文件,而且降低讲话目标机资源虚拟化的流程,在配置较低的目标机上就能完成目标机资源虚拟化。
在第二方面的一种可能实施方式中,描述生成模块具体用于为每个虚拟机复制一份目标机的资源描述文件,把该复制的资源描述文件中该虚拟机未分配的硬件资源设置为无效状态,获得该虚拟机的资源描述文件。
由上,根据复制目标机的资源描述文件获得每个虚拟机的资源描述文件,使每个虚拟机的资源描述文件的准确且全面。
在第二方面的一种可能实施方式中,每个资源描述文件包括设备树或APC I表。
由上,通过资源描述文件包括设备树或APC I表,使本发明的资源管理方法支持基于各种芯片的计算机系统的硬件资源虚拟化。
第三方面,本发明实施例提供了一种操作系统,其被配置为运行第一方面任一实施方式所述方法。
第四方面,本发明实施例提供了一种计算设备,包括:总线;通信接口,其与所述总线连接;至少一个处理器,其与所述总线连接;以及至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行本发明第一方面任一所述实施方式。
第五方面,本发明实施例提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行本发明第一方面任一所述实施方式。
附图说明
图1为本发明的一种虚拟机资源的管理方法实施例一的流程示意图;
图2A为本发明的一种虚拟机资源的管理方法实施例二的资源划分与离线文件生成方法的流程示意图;
图2B为本发明的一种虚拟机资源的管理方法实施例二中为虚拟机vm1和虚拟机vm2分配的硬件资源的示意图
图3为本发明的一种虚拟机资源的管理方法实施例二中的第一共享资源的配置示意图;
图4A为本发明的一种虚拟机资源的管理方法实施例二的资源配置与虚拟机启动方法的流程示意图;
图4B为本发明的一种虚拟机资源的管理方法实施例二的资源配置与虚拟机启动方法实施后的目标机架构示意图;
图5A为本发明的一种虚拟机资源的管理方法实施例二的资源访问方法的流程示意图;
图5B为本发明的一种虚拟机资源的管理方法实施例二的共享资源访问流程的示意图
图6为本发明的一种虚拟机资源的管理装置实施例一的结构示意图;
图7A为本发明的一种虚拟机资源的管理装置实施例二的资源划分与文件生成装置的结构示意图;
图7B为本发明的一种虚拟机资源的管理装置实施例二的资源配置与虚拟机启动装置的结构示意图;
图7C为本发明的一种虚拟机资源的管理装置实施例二的资源访问装置的结构示意图;
图8为本发明的计算设备的结构示意图。
具体实施方式
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三等”或模块A、模块B、模块C等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
本发明实施例提供了一种虚拟机资源的管理方法、装置、设备及存储介质,所述方法包括:根据第一虚拟机的资源配置文件配置第一虚拟机的硬件资源,每个虚拟机的资源配置文件在离线主机上提前创建,其至少包括该虚拟机的硬件资源在目标机的资源描述文件中的信息、对目标机内核的第一共享资源中各比特位的读写权限;把第一虚拟机的所述读写权限注册到第一虚拟机的内存映射IO总线上;在第一虚拟机的硬件资源上根据第一虚拟机的资源描述文件启动第一虚拟机的镜像,该资源配置文件在离线主机上提前创建;当第一虚拟机对第一共享资源访问时陷入到目标机内核中,目标机内核根据所述读写权限访问所述第一共享资源相应的比特位,并反馈访问结果至第一虚拟机。
本发明实施例的技术方案用于在基于type1虚拟化的嵌入式目标机上管理虚拟机的资源,通过离线生成虚拟机的资源配置文件,并在该资源配置文件中包括虚拟机的硬件资源配置信息、对目标机内核中的第一共享资源中分配给该虚拟机读写权限的比特位,从在近似裸机上配置虚拟机的资源,而且在第一虚拟机运行时实现不同虚拟机在共享资源上位隔离,降低了目标机上第一共享资源虚拟化的资源消耗。
下面结合附图介绍本发明的各实施例。首先结合图1介绍一种虚拟机资源的管理方法实施例一。
一种虚拟机资源的管理方法实施例一用于在基于type1虚拟化的目标机上访问管理虚拟机的资源,目标机上运行嵌入式操作系统。
图1示出了一种虚拟机资源的管理方法实施例一的流程,包括步骤S110至S140。
为了便于描述,以目标机上第一虚拟机为例,第一虚拟机为任一待创建虚拟机,在实际场景中,可以对多个虚拟机同时管理。
S110:根据第一虚拟机的资源配置文件配置第一虚拟机的硬件资源。
其中,每个虚拟机的资源配置文件在离线主机上提前创建并加载到目标机中,其至少包括该虚拟机的硬件资源在目标机的资源描述文件中的配置信息,从而可以根据虚拟机的资源配置文件在近似裸机上配置虚拟机资源和启动虚拟机,降低资源虚拟化对目标机的资源消耗。
其中,每个虚拟机的资源配置文件还包括对目标机内核的第一共享资源中各比特位的读写权限,即不同虚拟机对第一共享资的不同比特位具有的读写权限,用于在虚拟机运行时实现不同虚拟机在共享资源上位隔离,降低了目标机上第一共享资源虚拟化的资源消耗。
其中,当各虚拟机只被分配第一共享资源的同一地址下的一位的读写权限时,第一共享资源的同一地址下不同位的读写权限分配给不同的虚拟机分配给相应的虚拟机时;当每个虚拟机在第一共享资源对应的地址下分配一个8个位的读写权限,第一共享资源的同一地址下不同字段的读写权限分配给不同的虚拟机。
其中,目标机和离线主机为不同计算机系统,目标机内核为目标机的hypervisor,又称hypervisor。
其中,目标机的资源描述文件为其设备树或APCI表,无论是设备树还是APCI表包括相关系统的详细硬件资源描述信息,内容较多。示例地,在ARM芯片的计算系统中资源描述文件为其设备树,各硬件资源的标识为节点标识,在x86芯片的计算系统中资源描述文件为其APCI表,其支持UEFI(Unified Extensible Firmware Interface)直接从B IOS读取ACP I表。
其中,每个虚拟机的资源配置文件通过配置结构体包括该虚拟机的硬件资源在目标机的资源描述文件中的信息,可以在近似裸机上配置虚拟机的硬件资源,配置该虚拟机的CPU核(包括独立CPU核和共享CPU核)对应逻辑CPU核,分配独立内存,配置物理设备(包括其中断),配置虚拟硬件资源(包括其中断)。
在一些实施例中,第一共享资源至少包括下列之一:各虚拟机共享的时钟、电源和芯片管脚。时钟和电源为各虚拟机的相关物理设备共享,一个虚拟机管理自身物理设备的时钟或电源不能影响另一个虚拟机管理自身物理设备的时钟或电源,共享管脚为目标机的SOC芯片的管脚。
在一些实施例中,每个虚拟机的硬件资源包括其独立硬件资源,该硬件独立资源包括该虚拟机的独立CPU核、独立内存和物理设备。
在一些实施例中,每个虚拟机的资源配置文件还包括该虚拟机的MMU页表,用于配置该虚拟机的独立内存和物理设备的地址映射。
在一些实施例中,每个虚拟机的硬件资源还包括虚拟硬件资源,每个虚拟硬件资源对应于目标机内核中第二共享资源,每个虚拟机具有其每个第二虚拟硬件资源的所有比特位的读写权限。目标机内核的硬件资源包括其物理CPU核、内存区间、第一共享资源和第二共享资源。
在一些实施例中,一种虚拟机资源的管理方法实施例一由目标机内核执行,在配置第一虚拟机的硬件资源之前,还包括:根据目标机内核的资源配置文件配置目标机内核的硬件资源,并在其上启动目标机内核的镜像,该资源配置文件在离线主机上提前创建,其包括目标机内核的硬件资源在目标机的资源描述文件中的信息。因为目标机内核的资源配置文件在目标机的裸机上配置目标机内核的硬件资源,从而可以在裸机上直接配置目标机内核的硬件资源,启动目标机内核,减少内核虚拟化的资源消耗。
在一些实施例中,在离线主机上,从目标机的资源描述文件中抽象出可分配的硬件资源,并分配到目标机内核和各虚拟机;在离线主机上,根据目标机内核和各虚拟机分配的硬件资源,创建目标机内核的资源配置文件、各虚拟机的资源配置文件和资源描述文件,目标机内核和各虚拟机的每个硬件资源在资源配置文件中通过配置结构体包括该硬件资源在目标机的资源描述文件中的信息,并在每个虚拟机的资源配置文件中添加该虚拟机的所述读写权限。由上,根据目标机的资源描述文件进行资源分配和创建目标机内核和各虚拟机的资源配置文件,使资源配置文件包括所有的配置信息,可以直接在裸机上配置为目标机内核和各虚拟机配置资源。
S120:把第一虚拟机的对每个第一共享资源的读写权限注册到第一虚拟机的内存映射IO总线上。
其中,把每个虚拟机对第一共享资源的各比特位的读写权限,以模拟设备的方式注册到第一虚拟机的内存映射IO(MM IO)总线上,使第一共享资源的地址映射到虚拟机的内存地址和使虚拟机知晓该地址和读写权限。
在一些实施例中,第一虚拟机的资源配置文件包括第一虚拟机共享的每个第一共享资源的地址寄存器、位使能寄存器和数据寄存器,该位使能寄存器设置该第一共享资源各比特位的读写权限、该数据寄存器用于缓存第一共享资源的访问结果。每个虚拟机通过其每个第一共享资源的地址寄存器、位使能寄存器和数据寄存器,实现对各第一共享资源的访问。在目标机内核的内存中存放这三个寄存器,在虚拟机的虚拟硬件资源中虚拟内存模拟这三个寄存器。
在一些实施例中,每个虚拟机的资源配置文件还包括该虚拟机的MMU页表时,在目标机的物理内存设置页表区域,并MMU页表填入该区域,用于配置该虚拟机的独立内存和物理设备的地址映射,未映射的区域通过目标机内核访问。
S130:在第一虚拟机的硬件资源上根据第一虚拟机的资源描述文件启动第一虚拟机的镜像。
其中,第一虚拟机的硬件资源包括其独立硬件资源,该硬件独立资源包括该虚拟机的独立CPU核、独立内存核物理设备,可以在配置的第一虚拟机的硬件资源直接启动第一虚拟机。
在一些实施例中,每个虚拟机可以在其独立CPU核启动虚拟机。
其中,每个虚拟机的资源描述文件在离线主机上提前配置且加载到目标机中,在一些实施例中,为每个虚拟机复制一份目标机的资源描述文件,把该复制的资源描述文件中该虚拟机的资源信息文件未分配的硬件资源设置为无效状态,获得该虚拟机的资源描述文件。
S140:当第一虚拟机对其第一共享资源访问时陷入到目标机内核中,目标机内核根据相应的读写权限访问第一共享资源相应的比特位,并反馈访问结果至第一虚拟机。
在一些实施例中,在第一虚拟机运行时,根据第一虚拟机的MMU映射表对第一虚拟机的独立资源中独立内核核物理设备进行访问。
在一些实施例中,在第一虚拟机运行时,第一虚拟机通过目标机内核访问该虚拟机的虚拟硬件资源的全部信息。
综上,一种虚拟机资源的管理方法实施例一用于在基于type1虚拟化的嵌入式目标机上管理虚拟机的资源,通过离线生成虚拟机的资源配置文件,并在该资源配置文件中包括虚拟机的硬件资源配置信息、对目标机内核中的第一共享资源中分配给该虚拟机读写权限的比特位,从在近似裸机上配置虚拟机的资源,而且在第一虚拟机运行时实现不同虚拟机在共享资源上位隔离,降低了目标机上第一共享资源虚拟化的资源消耗。
下面结合图2A至图5B介绍一种虚拟机资源的管理方法实施例二。
一种虚拟机资源的管理方法实施例二是一种虚拟机资源的管理方法实施例一的具体实施方式,具有其一切优点。
一种虚拟机资源的管理方法实施例二用于在基于type1虚拟化的目标机上访问管理虚拟机的资源,其包括资源划分与离线文件生成方法、资源配置与虚拟机启动方法和资源访问方法。
为了便于说明,以在目标机上管理虚拟机vm1和虚拟机vm2为例。
先结合图2A至图3介绍一种虚拟机资源的管理方法实施例二的资源划分与离线文件生成方法。
图2A示出了一种虚拟机资源的管理方法实施例二的资源划分与离线文件生成方法的流程,包括:步骤S2110至S2150。
S2110:在离线主机上为目标机内核和每个虚拟机分配硬件资源。
其中,离线主机与目标机是不同的计算机,离线主机上具有IDE,用于实现目标机的硬件资源划分
其中,每个虚拟机分配硬件资源包括独立硬件资源和虚拟机硬件资源,对目标机的硬件资源进行资源分区,创建虚拟机时,将硬件资源分区的独立资源与虚拟机绑定,每个虚拟机的独立资源包括其独立CPU核、独立内存、物理设备。该虚拟机硬件资源对应于目标机内核的第二共享资源。目标机内核的硬件资源包括其CPU核、内存区间、第一共享资源和第二共享资源。
其中,对目标机的硬件资源进行资源分区,还划分每个虚拟机对目标机内核的第一共享资源的读写权限,将同一地址区内的不同位配置给指定虚拟机访问,实现同一地址空间能同时被多个虚拟机访问且相互不影响。第一共享资源至少包括下列之一:共享的时钟、电源和芯片管脚。
其中,虚拟机直接运行在其分配的独立cpu核上,无需维护vcpu数据结构和逻辑。
其中,每个虚拟机通过目标机内核具有其第二虚拟硬件资源的地址下全部比特位的读写权限。
图2B示出了为虚拟机vm1和虚拟机vm2分配的独立CPU核、独立内存、物理设备和虚拟硬件资源的示意图。
其中,每个虚拟机中的vmem用于管理该虚拟机对第一共享资源的读写权限,每个虚拟机中的vdev为该虚拟机的虚拟硬件资源,每个虚拟机中的分区资源包括其独立CPU核、独立内存和物理设备dev。
其中,图2B中各种资源的个数等信息只是示例,实际场景中可以根据需求设置。
其中,从目标机的资源描述文件中抽象出目标机的可分配物理资源;根据各虚拟机的硬件资源需求从可分配硬件资源中为各虚拟机分配硬件资源,获得目标机内核和各虚拟机的资源信息文件,虚拟机的资源信息文件包括其独立硬件资源和虚拟硬件资源在目标机的资源描述文件的标识,目标机内核的资源信息文件包括其硬件资源在目标机的资源描述文件的标识。目标机的资源描述文件为设备树或APCI表。
S2120:在离线主机上为目标机内核和每个虚拟机生成资源配置文件。
其中,目标机内核的资源配置文件包括目标机内核的每个资源的配置结构体,目标机内核的资源配置文件包括CPU核、独立内存、第一共享资源和第二共享资源的配置结构体,还包括中断配置结构体,其包括第一共享资源和第二共享资源的中断号,每个资源通过其对应的配置结构体包括其在目标机的资源描述文件中信息。
其中,每个虚拟机的资源配置文件包括每个资源的配置结构体,每个虚拟机的资源配置文件包括虚拟机的独立CPU核、独立内存、物理设备和虚拟硬件资源的配置结构体,分别包括相应资源在目标机的资源描述文件中的信息,还包括中断配置结构体,其包括物理设备和虚拟硬件资源的中断号。
S2130:在离线主机上根据每个虚拟机分配的硬件资源为每个虚拟机生成地址空间信息,并添加到该虚拟机的资源配置文件中。
其中,每个虚拟机的地址空间信息包括该虚拟机在目标机上物理内存上的地址空间、MMU页表。每个虚拟机的地址空间包括其独立内存地址空间、物理设备对应的地址空间、每个虚拟机的MMU页表为stage2(2阶段)MMU页表,包括该虚拟机的独立内存和物理设备的MMU页表,实现虚拟机的物理地址与目标机上物理地址的映射。未映射地址空间,虚拟机在访问时会异常陷入到目标机内核hypervisor管理程序。
示例地,虚拟机vm1和虚拟机vm2的地址空间信息vm1_aspace和vm2_aspace。
S2140:在离线主机上根据每个虚拟机分配第一共享资源的比特位的读写权限,获得共享资源配置文件,并添加到该虚拟机的资源配置文件中。
其中,每个虚拟机的资源配置文件包括该虚拟机的共享资源配置文件,每个虚拟机的共享资源配置文件包括该虚拟机的第一虚拟硬件资源的配置信息,也就是相应的第一共享资源在该虚拟机中配置信息,主要是时钟clock、电源power和共享管脚pinctrl的配置信息。虚拟机的物理设备使用系统时钟、电源或共享管脚与共享资源配置文件中配置信息一一对应。第一共享资源的比特位的读写权限通过配置工具的IDE配置。
其中,每个虚拟机的共享资源配置文件包括该虚拟机共享的每个第一共享资源的地址寄存器、位使能寄存器和数据寄存器,每个虚拟机共享的每个第一共享资源的位使能寄存器设置该虚拟机对该第一共享资源各位的读写权限、每个虚拟机的每个第一共享资源的数据寄存器用于缓存第一拟机对该第一共享资源的访问结果。
示例地,虚拟机vm1和虚拟机vm2的共享资源配置文件为VM1_syscfg_、vm2_syscfg。
图3示出了以虚拟机vm1的第一共享资源中时钟clock和电源power为例的虚拟机共享资源的配置示意图。
其中,物理设备dev1(emmc)和物理设备dev2(gmac)分配给虚拟机vm1,物理设备dev(emmc)时钟配置地址寄存器addr、位使能寄存器mask和数据寄存器value,地址包括各时钟寄存器基地址clock cfg base和dev1(emmc)的时钟offset;物理设备dev2(gmac)的电源配置地址寄存器addr、位使能寄存器mask和数据寄存器value,地址包括各电源寄存器基地址power cfg base和dev2(gmac)的电源offset。
S2150:为每个虚拟机复制一份目标机的资源描述文件,把该复制的资源描述文件中该虚拟机的资源信息文件不包括的硬件资源设置为无效状态,获得该虚拟机的资源描述文件。
其中,根据复制的目标机的资源描述文件生成每个虚拟机的资源描述文件,该方式最快且准确。
其中,利用资源划分与离线文件生成方法获得目标机内核的资源配置文件、每个虚拟机的资源配置文件和资源描述文件均提前加载到目标机中。
下面结合图4A至图4B介绍一种虚拟机资源的管理方法实施例二的资源配置与虚拟机启动方法。
图4A示出了一种虚拟机资源的管理方法实施例二的资源配置与虚拟机启动方法的流程,包括:步骤S2210至S2250。
为了便于说明,以虚拟机vm1为例。
S2210:根据目标机内核的资源配置文件配置其硬件资源,并在其上启动目标机内核的镜像。
其中,配置目标机内核的硬件资源包括配置目标机的CPU核、目标机内核的内存、第一共享资源和第二共享资源,从而便于各虚拟机访问第一共享资源的对应的比特位和虚拟硬件资源。
S2220:根据虚拟机vm1的资源配置文件配置虚拟机vm1的硬件资源。
其中,包括配置虚拟机vm1的独立CPU,分配独立内存区间,分配物理设备的内存和配置中断等其他信息,分配虚拟硬件资源的模拟空间和配置虚拟中断等其他信息,还为虚拟机vm1分配模拟第一共享资源的虚拟内存,用于存放虚拟机vm1关于第一共享资源的地址寄存器、位使能寄存器和数据寄存器。
其中,在配置虚拟机vm1的资源时,无需执行虚拟硬件资源的虚拟化过程,直接根据资源配置文件配置完成,降低了对目标机的硬件资源消耗。
图4B示出了本发明的一种虚拟机资源的管理方法实施例二的资源配置后的虚拟机目标机架构。
S2230:根据虚拟机vm1的资源配置文件中地址空间信息初始化该虚拟机vm1的stage2(2阶段)mmu映射。
其中,从虚拟机vm1的地址空间信息获得其独立内存的空间和物理设备的空间,还从获取虚拟机vm1的页表,然后根据该页表为虚拟机vm1的独立内存的空间和物理设备的空间建立该虚拟机stage2(2阶段)mmu映射。
其中,虚拟机vm1访问映射地址空间时虚拟机通过stage2(2阶段)mmu映射直接访问,虚拟机vm1访问未映射地址空间时虚拟机在访问时会异常陷入到目标机内核hypervisor管理程序。
S2240:根据虚拟机vm1的共享资源配置文件配置该虚拟机对第一共享资源的权限访问,以模拟设备的方式注册到该虚拟机的内存映射IO(又称mmio)总线上。
其中,在目标机的虚拟化时无需执行共享资源的虚拟化过程,降低了对目标机的硬件资源消耗,并实现虚拟机在共享资源的位隔离。
S2250:使用虚拟机vm1独立cpu核利用虚拟机vm1的资源描述文件启动虚拟机镜像,虚拟机vm1开始正常启动。
其中,通过在虚拟机vm1独立cpu核启动虚拟机镜像,从而不影响其他虚拟机。
下面结合图5A和图5B介绍一种虚拟机资源的管理方法实施例二的资源访问方法。
图5A示出了一种虚拟机资源的管理方法实施例二的资源访问方法的流程,包括:步骤S2310至S2330,各步骤并行执行,无先后顺序。
S2310:每个虚拟机对第一共享资源的地址访问时,陷入到目标机内核中,以通过目标机内核根据对第一共享资源的相应比特位的读写权限访问共享资源。
图5B示出了以虚拟机vm1访问时钟资源为例的共享资源访问流程的示意图。
其中,虚拟机vm1访问时钟资源时,陷入到目标机内核,通过虚拟机vm1的mmio根据clk相关寄存器进行访问。
S2320:每个虚拟机对独立内存和物理设备的地址访问时,根据各虚拟机的MMU页表进行访问。
其中,每个虚拟机对独立内存和物理设备的内存地址进行了MMU映射,访问时不陷入目标机内核,根据MMU页表直接进行访问。
S2330:每个虚拟机对虚拟硬件资源访问时,陷入到目标机内核中,以通过目标机内核对第二共享资源进行访问。
其中,虚拟硬件资源未进行MMU映射,访问时陷入目标机内核,通过目标机内核进行访问。
下面基于图6介绍本发明的一种虚拟机资源的管理装置实施例一。
一种虚拟机资源的管理装置实施例一运行一种虚拟机资源的管理方法实施例一所述方法,具有其一切优点。
图6示出了一种虚拟机资源的管理装置实施例一的结构,包括:资源配置模块610、共享注册模块620、虚拟机启动模块630和共享资源访问模块640。
资源配置模块610用于根据第一虚拟机的资源配置文件配置第一虚拟机的硬件资源。其工作原理和优点请参考一种虚拟机资源的管理方法实施例一的步骤S110。
共享注册模块620用于把第一虚拟机的对每个第一共享资源的读写权限注册到第一虚拟机的内存映射IO总线上。其工作原理和优点请参考一种虚拟机资源的管理方法实施例一的步骤S120。
虚拟机启动模块630用于在第一虚拟机的硬件资源上根据第一虚拟机的资源描述文件启动第一虚拟机。其工作原理和优点请参考一种虚拟机资源的管理方法实施例一的步骤S130。
共享资源访问模块640用于当第一虚拟机对其第一共享资源访问时陷入到目标机内核中,目标机内核根据相应的读写权限访问第一共享资源相应的比特位,并反馈访问结果至第一虚拟机。其工作原理和优点请参考一种虚拟机资源的管理方法实施例一的步骤S140。
下面基于图7A至图7C介绍本发明的一种虚拟机资源的管理装置实施例二。
一种虚拟机资源的管理装置实施例二运行一种虚拟机资源的管理方法实施例二所述方法,具有其一切优点。
一种虚拟机资源的管理装置实施例二包括资源划分与文件生成装置、资源配置与虚拟机启动装置和资源访问装置,分别执行资源划分与离线文件生成方法、资源配置与虚拟机启动方法和资源访问方法。
图7A示出了一种虚拟机资源的管理装置实施例二的资源划分与文件生成装置的结构,包括:资源划分模块7110、配置生成模块7120、页表生成模块7130、共享配置模块7140、描述生成模块7150。
资源划分模块7110用于在离线主机上为目标机内核和每个虚拟机分配硬件资源。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的资源划分与文件生成方法的步骤S2110。
配置生成模块7120用于在离线主机上为目标机内核和每个虚拟机生成资源配置文件。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的资源划分与文件生成方法的步骤S2120。
页表生成模块7130用于在离线主机上根据每个虚拟机分配的硬件资源为每个虚拟机生成地址空间信息,并添加到该虚拟机的资源配置文件中。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的资源划分与文件生成方法的步骤S2130。
共享配置模块7140用于在离线主机上根据每个虚拟机分配第一共享资源的比特位的读写权限,获得共享资源配置文件,并添加到该虚拟机的资源配置文件中。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的资源划分与文件生成方法的步骤S2140。
描述生成模块7150用于为每个虚拟机复制一份目标机的资源描述文件,把该复制的资源描述文件中该虚拟机的资源信息文件不包括的硬件资源设置为无效状态,获得该虚拟机的资源描述文件。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的资源划分与文件生成方法的步骤S2150。
图7B示出了一种虚拟机资源的管理装置实施例二的资源配置与虚拟机启动装置的结构,包括:内核启动模块7210、资源配置模块7220、MMU映射配置模块7230、共享注册模块7240、虚拟机创建模块7250。
内核启动模块7210用于根据目标机内核的资源配置文件配置其硬件资源,并在其上启动目标机内核的镜像。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的源配置与虚拟机启动的步骤S2210。
资源配置模块7220用于根据虚拟机vm1的资源配置文件配置虚拟机vm1的硬件资源。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的源配置与虚拟机启动的步骤S2220。
MMU映射配置模块7230用于根据虚拟机vm1的资源配置文件中地址空间信息初始化该虚拟机vm1的stage2(2阶段)mmu映射。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的源配置与虚拟机启动的步骤S2230。
共享注册模块7240用于根据虚拟机vm1的共享资源配置文件配置该虚拟机对第一共享资源的权限访问,以模拟设备的方式注册到该虚拟机的内存映射IO(又称mmi o)总线上。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的源配置与虚拟机启动的步骤S2240。
虚拟机创建模块7250用于使用虚拟机vm1独立cpu核根据虚拟机vm1的资源描述文件启动虚拟机镜像,虚拟机vm1开始正常启动。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的源配置与虚拟机启动的步骤S2250。
图7C示出了一种虚拟机资源的管理装置实施例二的资源访问装置的结构,包括:共享资源访问模块7310、独立资源访问模块7320、虚拟资源访问模块7330。
共享资源访问模块7310用于每个虚拟机对第一共享资源的地址访问时,陷入到目标机内核中,以通过目标机内核根据对第一共享资源的相应比特位的读写权限访问共享资源。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的资源访问方法的步骤S2310。
独立资源访问模块7320用于每个虚拟机对独立内存和物理设备的地址访问时,根据各虚拟机的MMU页表进行访问。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的资源访问方法的步骤S2320。
虚拟资源访问模块7330用于每个虚拟机对虚拟硬件资源访问时,陷入到目标机内核中,以通过目标机内核对第二共享资源进行访问。其工作原理和优点请参考一种虚拟机资源的管理方法实施例二的资源访问方法的步骤S2330。
本发明实施例还提供了一种操作系统,其被配置为运行一种虚拟机资源的管理方法实施例一或一种虚拟机资源的管理方法实施例二所述方法,其被配置为包括一种虚拟机资源的管理方法实施例一或一种虚拟机资源的管理方法实施例二所述装置。
本发明实施例还提供了一种计算设备,下面图8详细介绍。
该计算设备800包括,处理器810、存储器820、通信接口830、总线840。
应理解,该图所示的计算设备800中的通信接口830可以用于与其他设备之间进行通信。
其中,该处理器810可以与存储器820连接。该存储器820可以用于存储该程序代码和数据。因此,该存储器820可以是处理器810内部的存储单元,也可以是与处理器810独立的外部存储单元,还可以是包括处理器810内部的存储单元和与处理器810独立的外部存储单元的部件。
可选的,计算设备800还可以包括总线840。其中,存储器820、通信接口830可以通过总线840与处理器810连接。总线840可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(EFStended Industry StandardArchitecture,EISA)总线等。所述总线840可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本发明实施例中,该处理器810可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器810采用一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
该存储器820可以包括只读存储器和随机存取存储器,并向处理器810提供指令和数据。处理器810的一部分还可以包括非易失性随机存取存储器。例如,处理器810还可以存储设备类型的信息。
在计算设备800运行时,所述处理器810执行所述存储器820中的计算机执行指令执行各方法实施例的操作步骤。
应理解,根据本发明实施例的计算设备800可以对应于执行根据本发明各实施例的方法中的相应主体,并且计算设备800中的各个模块的上述和其它操作和/或功能分别为了实现本方法实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本方法实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述译码方法的全部或部分步骤。而前述的存储介质包括,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行各方法实施例的操作步骤。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括,具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,均属于本发明保护范畴。

Claims (13)

1.一种虚拟机资源的管理方法,其特征在于,包括:
根据第一虚拟机的资源配置文件配置第一虚拟机的硬件资源,每个虚拟机的资源配置文件在离线主机上提前创建,其至少包括该虚拟机的硬件资源在目标机的资源描述文件中的配置信息、该虚拟机对目标机内核的第一共享资源中各比特位的读写权限;
把第一虚拟机的所述读写权限注册到第一虚拟机的内存映射IO总线上;
在第一虚拟机的硬件资源上根据第一虚拟机的资源描述文件启动第一虚拟机的镜像,该资源描述文件在离线主机上提前创建;
当第一虚拟机对第一共享资源访问时陷入到目标机内核中,目标机内核根据所述读写权限访问所述第一共享资源相应的比特位,并反馈访问结果至第一虚拟机。
2.根据权利要求1所述方法,其特征在于,第一虚拟机的资源配置文件包括第一虚拟机共享的每个第一共享资源的地址寄存器、位使能寄存器和数据寄存器,该数据寄存器用于缓存第一共享资源的访问结果,通过该位使能寄存器包括所述读写权限。
3.根据权利要求1所述方法,其特征在于,所述第一共享资源至少包括下列之一:各虚拟机共享的时钟、电源和芯片管脚。
4.根据权利要求1所述方法,其特征在于,每个虚拟机的硬件资源包括其独立硬件资源,该硬件独立资源包括该虚拟机的独立内存和物理设备,每个虚拟机的资源配置文件还包括该虚拟机的MMU页表,用于配置该虚拟机的独立内存和物理设备的地址映射;
在创建虚拟机时,在目标机的物理内存的页表区域写入各虚拟机的MMU页表。
5.根据权利要求4所述方法,其特征在于,每个虚拟机的独立硬件资源还包括该虚拟机的独立CPU核;
在创建每个虚拟机时,在该虚拟机的独立CPU核上启动该虚拟机的镜像。
6.根据权利要求1所述方法,其特征在于,每个虚拟机的硬件资源还包括虚拟硬件资源,每个虚拟硬件资源对应于目标机内核中第二共享资源,每个虚拟机具有其每个虚拟硬件资源的所有比特位的读写权限。
7.根据权利要求1所述方法,其特征在于,在配置第一虚拟机的硬件资源之前,还包括:
根据目标机内核的资源配置文件配置目标机内核的硬件资源,并在其上启动目标机内核的镜像,该资源配置文件在离线主机上提前创建,其包括目标机内核的硬件资源在目标机的资源描述文件中的配置信息。
8.根据权利要求7所述方法,其特征在于,还包括:
在离线主机上,从目标机的资源描述文件中抽象出可分配的硬件资源,并分配到目标机内核和各虚拟机;
在离线主机上,根据目标机内核和各虚拟机分配的硬件资源,创建目标机内核的资源配置文件、各虚拟机的资源配置文件和资源描述文件,目标机内核和各虚拟机的每个硬件资源在资源配置文件中通过配置结构体包括该硬件资源在目标机的资源描述文件中的信息,并在每个虚拟机的资源配置文件中添加该虚拟机的所述读写权限。
9.根据权利要求8所述方法,其特征在于,
在离线主机上创建每个虚拟机的资源描述文件,包括:为每个虚拟机复制一份目标机的资源描述文件,把该复制的资源描述文件中该虚拟机未分配的硬件资源设置为无效状态,获得该虚拟机的资源描述文件。
10.根据权利要求1所述方法,其特征在于,每个资源描述文件包括设备树或APC I表。
11.一种虚拟机资源的管理装置,其特征在于,包括:
资源配置模块,用于根据第一虚拟机的资源配置文件配置第一虚拟机的硬件资源,每个虚拟机的资源配置文件在离线主机上提前创建,其至少包括该虚拟机的硬件资源在目标机的资源描述文件中的信息、该虚拟机对目标机内核的第一共享资源中各比特位的读写权限;
共享注册模块,用于把第一虚拟机的所述读写权限,注册到第一虚拟机的内存映射IO总线上;
虚拟机创建模块,用于在第一虚拟机的硬件资源上根据第一虚拟机的资源描述文件启动第一虚拟机的镜像,该资源配置文件在离线主机上提前创建;
共享资源访问模块,用于当第一虚拟机对其一共享硬件资源访问时陷入到目标机内核中,目标机内核根据所述读写权限访问所述第一共享资源相应的比特位,并反馈访问结果至第一虚拟机。
12.一种计算设备,其特征在于,包括:
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;
以及至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1至10任一所述方法。
13.一种计算机可读存储介质,其特征在于,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行权利要求1至10任一所述方法。
CN202311775252.7A 2023-12-21 2023-12-21 一种虚拟机资源的管理方法、装置、设备及存储介质 Pending CN117742962A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311775252.7A CN117742962A (zh) 2023-12-21 2023-12-21 一种虚拟机资源的管理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311775252.7A CN117742962A (zh) 2023-12-21 2023-12-21 一种虚拟机资源的管理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117742962A true CN117742962A (zh) 2024-03-22

Family

ID=90254289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311775252.7A Pending CN117742962A (zh) 2023-12-21 2023-12-21 一种虚拟机资源的管理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117742962A (zh)

Similar Documents

Publication Publication Date Title
CN102541619B (zh) 虚拟机管理装置和方法
Chen et al. Enabling FPGAs in the cloud
TWI512479B (zh) 針對記憶體映射組態分派處理器之技術
JP5214611B2 (ja) 仮想マシン環境におけるゲスト間での情報の共有
US20210216453A1 (en) Systems and methods for input/output computing resource control
US10133504B2 (en) Dynamic partitioning of processing hardware
KR20210024195A (ko) 구성 가능한 스토리지를 이용한 NVMe 직접 가상화
US9495172B2 (en) Method of controlling computer system and computer system
US10061701B2 (en) Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility
JP2009110518A (ja) 仮想マシンデバイスの動的割り当て
US9875132B2 (en) Input output memory management unit based zero copy virtual machine to virtual machine communication
US10430221B2 (en) Post-copy virtual machine migration with assigned devices
Goglin Exposing the locality of heterogeneous memory architectures to HPC applications
JP6242502B2 (ja) 仮想計算機システムの制御方法及び仮想計算機システム
US10719333B2 (en) BIOS startup method and apparatus
JP2008021252A (ja) 計算機システム及びアドレス割当方法
US9015418B2 (en) Self-sizing dynamic cache for virtualized environments
JP5492731B2 (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
CN117742962A (zh) 一种虚拟机资源的管理方法、装置、设备及存储介质
CN113485789B (zh) 资源配置方法、装置及计算机架构
CN117762562A (zh) 一种虚拟机内存管理的方法、装置、设备及存储介质
US11893408B2 (en) Protection of balloon inflated memory using temporary loan pages
CN117742890A (zh) 一种虚拟机的创建方法、装置、设备及存储介质
WO2022222977A1 (zh) 用于运行云业务实例的物理服务器的内存管理方法和装置
US11714753B2 (en) Methods and nodes for handling memory

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