虚拟机启动方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:26342142 阅读:50 留言:0更新日期:2020-11-13 20:30
本申请实施例提供一种虚拟机启动方法、装置、设备及计算机可读存储介质,所述方法包括:将虚拟机系统进行拆分,得到包括多个模块的模块集合,其中,每个模块对应一个独立的功能;将所述模块集合中的各个模块进行动态加载,以将所述模块集合部署在同一个模块服务中;当获取到客户端发送的进行虚拟机实例化的请求消息时,根据所述请求消息获取虚拟主板的配置信息,所述虚拟主板的配置信息至少包括目标模块标识;启动所述目标模块标识对应的目标模块,以获取对应的虚拟化能力;基于获取到的虚拟化能力启动虚拟机实例。可以实现根据用户的虚拟机实例化请求,启动与请求对应虚拟机实例,无须开发和维护不同的Hypervisor版本,实现可定制化。

【技术实现步骤摘要】
虚拟机启动方法、装置、设备及计算机可读存储介质
本申请实施例涉及计算机
,涉及但不限于一种虚拟机启动方法、装置、设备及计算机可读存储介质。
技术介绍
传统的虚拟机监视器(VMM,VirtualMachineMonitor)是面向数据中心解决的,虚拟机监视器又可以称为Hypervisor,没有资源开销的担忧,因此会将Hypervisor所有的功能模块都链接到一个系统中,然后编译运行。在边缘计算以及物联网(IOT,InternetOfThings)场景中中央处理器(CPU,CentralProcessingUnit)、内存、输入/输出(I/O,Input/Output)等物理资源受限,需要一些轻量化的方案。目前的做法都是对Hypervisor进行简单裁剪,针对不同使用场景会裁剪出合适的版本,但是这样的方法与传统Hypervisor本质上并没有什么区别,虚拟机每次启动的时候都会将Hypervisor所有的功能加载到内存中,浪费系统资源,而且裁剪不同的版本也给开发、测试以及维护带来很大的挑战。
技术实现思路
有鉴于此,本申请实施例提供一种虚拟机启动方法、装置、设备及计算机可读存储介质。本申请实施例的技术方案是这样实现的:本申请实施例中提供一种虚拟机启动方法,所述方法包括:将虚拟机系统进行拆分,得到包括多个模块的模块集合,其中,每个模块对应一个独立的功能;将所述模块集合中的各个模块进行动态加载,以将所述模块集合部署在同一个模块服务中;当获取到客户端发送的进行虚拟机实例化的请求消息时,根据所述请求消息获取虚拟主板的配置信息,所述虚拟主板的配置信息至少包括目标模块标识;启动所述目标模块标识对应的目标模块,以获取对应的虚拟化能力;基于获取到的虚拟化能力启动虚拟机实例。本申请实施例提供一种虚拟机启动装置,所述装置包括:拆分模块,用于将虚拟机系统进行拆分,得到包括多个模块的模块集合,其中,每个模块对应一个独立的功能;加载模块,用于将所述模块集合中的各个模块进行动态加载,以将所述模块集合部署在同一个模块服务中;第一获取模块,用于当获取到客户端发送的进行虚拟机实例化的请求消息时,根据所述请求消息获取虚拟主板的配置信息,所述虚拟主板的配置信息至少包括目标模块标识;第一启动模块,用于启动所述目标模块标识对应的目标模块,以获取对应的虚拟化能力;第二启动模块,用于基于获取到的虚拟化能力启动虚拟机实例。本申请实施例提供一种虚拟机启动设备,所述设备至少包括:处理器;以及存储器,用于存储可在所述处理器上运行的计算机程序;其中,所述计算机程序被处理器执行时实现所述的虚拟机启动方法的步骤。本申请实施例提供一种计算机可读存储介质,所述计算机存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行所述的虚拟机启动方法的步骤。本申请实施例提供的一种虚拟机启动方法、装置、设备及计算机可读存储介质,其中,将传统的虚拟机系统拆分成多个独立的模块,然后将各个模块进行动态加载,将其部署在同一个模块服务中,当接收到虚拟机实例化请求时,根据虚拟机主板的配置信息,启动对应的目标模块,进而启动虚拟机实例,如此,可以实现根据用户的虚拟机实例化请求,启动与请求对应虚拟机实例,无须开发和维护不同的Hypervisor版本,实现可定制化。附图说明在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。图1为本申请实施例提供的一种虚拟机启动方法一种实现流程示意图;图2为本申请实施例提供的一种系统符号表示意图;图3为本申请实施例提供的进行动态加载的流程示意图;图4为本申请实施例提供的一种ELF文件的结构示意图;图5为本申请实施例提供的另一种ELF文件的结构示意图;图6为本申请实施例提供的另一种虚拟机启动方法的实现流程示意图;图7为本申请实施例提供的虚拟机启动系统的结构示意图;图8为本申请实施例提供的一种虚拟机启动装置结构示意图;图9为本申请实施例提供的虚拟机启动设备的组成结构示意图。具体实施方式为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。如果申请文件中出现“第一\第二\第三”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。本申请实施例提供一种虚拟机启动方法,所述方法应用于虚拟机启动设备,所述虚拟机启动设备可以集成在服务器上,本实施例提供的方法可以通过计算机程序来实现,该计算机程序在执行的时候,完成本实施例提供的方法中各个步骤。在一些实施例中,该计算机程序可以被虚拟机启动设备中的处理器执行。图1为本申请实施例提供的一种虚拟机启动方法一种实现流程示意图,如图1所示,所述方法包括:步骤S101,将虚拟机系统进行拆分,得到包括多个模块的模块集合,其中,每个模块对应一个独立的功能。本申请实施例中,所述虚拟机系统可以是现有的任意一个虚拟机系统,本申请实施例中,可以通过解耦的方式将虚拟机系统中各个模块拆分成多个模块,拆分后的各个模块具有独立的功能,运行其中任意一个模块不会影响其他模块的运行或编辑。示例性地,将虚拟机系统按功能拆分为键盘、视频和鼠标(KVM,KeyboardVideoMouse)模块、高级配置和电源管理接口(ACPI,AdvancedConfigurationandPowerManagementInterface)模块、可信计算组织(TCG,TrustedComputingGroup)模块、I/O半虚拟化(virtio)模块等。本申请实施例中,各个模块文件的格式采用可执行与可链接(ELT,ExecutableandLinkableFormat)文件格式。本申请实施例中,模块集合包括操作系统模块集合和功能模块集合,所述功能模块集合为除操作系统模块集合外的其他模块的集合。本申请实施例中,可以对各个模块增加标识,所述标识可以是序号,也可以是名称。示例性地,将各个模块增加序号,如模本文档来自技高网
...

【技术保护点】
1.一种虚拟机启动方法,包括:/n将虚拟机系统进行拆分,得到包括多个模块的模块集合,其中,每个模块对应一个独立的功能;/n将所述模块集合中的各个模块进行动态加载,以将所述模块集合部署在同一个模块服务中;/n当获取到客户端发送的进行虚拟机实例化的请求消息时,根据所述请求消息获取虚拟主板的配置信息,所述虚拟主板的配置信息至少包括目标模块标识;/n启动所述目标模块标识对应的目标模块,以获取对应的虚拟化能力;/n基于获取到的虚拟化能力启动虚拟机实例。/n

【技术特征摘要】
1.一种虚拟机启动方法,包括:
将虚拟机系统进行拆分,得到包括多个模块的模块集合,其中,每个模块对应一个独立的功能;
将所述模块集合中的各个模块进行动态加载,以将所述模块集合部署在同一个模块服务中;
当获取到客户端发送的进行虚拟机实例化的请求消息时,根据所述请求消息获取虚拟主板的配置信息,所述虚拟主板的配置信息至少包括目标模块标识;
启动所述目标模块标识对应的目标模块,以获取对应的虚拟化能力;
基于获取到的虚拟化能力启动虚拟机实例。


2.根据权利要求1所述的方法,所述模块集合包括操作系统模块集合和功能模块集合,所述将所述模块集合中的各个模块进行动态加载,包括:
加载并执行所述操作系统模块集合,以创建虚拟机的操作系统;
生成所述操作系统对应的系统符号表;
加载所述功能模块集合,获取所述功能模块集合中各个功能模块包括的函数和全局变量;
将所述各个功能模块包括的符号和全局变量添加至所述系统符号表中。


3.根据权利要求2所述的方法,所述启动所述目标模块标识对应的目标模块,包括:
根据目标模块标识在所述系统符号表中查找目标模块;
确定所述目标模块的内存地址;
基于所述内存地址启动所述目标模块。


4.根据权利要求2所述的方法,所述方法还包括:
获取所述各个功能模块包括的函数和全局变量的内存地址,并获取所述各个功能模块包括的函数和全局变量在所述系统符号表中的虚拟地址;
建立所述各个功能模块包括的函数和全局变量的内存地址与对应的虚拟地址之间的映射关系。


5.根据权利要求4所述的方法,所述获取所述各个功能模块包括的函数和全局变量的内存地址,包括:
对所述各个功能模块进行解析,获取所述各个功能模块的头文件信息;
根据所述各个功能模块的头文件信息获取所述各个功能模块的起始地址;...

【专利技术属性】
技术研发人员:李蕾郭双拴杨杰
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:北京;11

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

1