虚拟机磁盘镜像模块化快速组装方法、装置和系统的制作方法

文档序号:10593789阅读:344来源:国知局
虚拟机磁盘镜像模块化快速组装方法、装置和系统的制作方法
【专利摘要】本发明提供一种虚拟机磁盘镜像模块化快速组装方法、装置和系统,其中,虚拟机磁盘镜像模块化快速组装方法包括:接收虚拟机磁盘镜像请求;根据操作系统类型和组件描述信息在组件数据库中获取与虚拟机磁盘镜像请求相对应的组件信息;根据组件标识检测各个组件标识对应的组件之间是否存在冲突;若否,则根据组件存储位置从组件存储库中获取组件,将组件组装为与虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。本发明提供的虚拟机磁盘镜像模块化快速组装方法,将虚拟机磁盘镜像文件以组件的形式进行组装,节省了文件存储空间,提升了虚拟机磁盘镜像文件的组装灵活性。
【专利说明】
虚拟机磁盘镜像模块化快速组装方法、装置和系统
技术领域
[0001]本发明涉及计算机技术领域,尤其涉及一种虚拟机磁盘镜像模块化快速组装方法、装置和系统。
【背景技术】
[0002]随着计算机技术的发展,计算资源得到极大的丰富和整合,但是,在可用计算资源增长的同时,资源利用不足的问题却日渐严重。以传统数据中心的计算资源为例,中央处理器(Central Processing Unit,简称CPU)的利用率还不到20%。因此,高效地整合利用资源成为十分重要的问题。
[0003]为了提升资源利用率,计算机技术中提出了虚拟化技术。虚拟化技术是一种资源管理技术,在计算机物理硬件和软件之间添加了虚拟化层,屏蔽了底层硬件的异构性,为上层的虚拟机提供了独立的运行环境,由于对硬件资源实现了共享与复用,因此提高了硬件资源的利用率。其中,虚拟机是运行在物理机之上的一个特殊软件,每个虚拟机都有自己的一套虚拟硬件,例如:虚拟化的磁盘、虚拟化的网卡,等等。其中,虚拟化的磁盘本质上是一个镜像文件,称为虚拟机磁盘镜像文件,镜像是一种文件形式,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用。
[0004]目前,虚拟机磁盘镜像文件通常存储有操作系统和各个软件的数据和配置,S卩,每一个虚拟机磁盘镜像文件都是从操作系统起将所有文件存储一遍形成的,这样导致了虚拟机磁盘镜像文件占据存储空间大,传输消耗大。

【发明内容】

[0005]本发明提供一种虚拟机磁盘镜像模块化快速组装方法、装置和系统,将虚拟机磁盘镜像文件以组件的形式进行组装,节省了文件存储空间,提升了虚拟机磁盘镜像文件的组装灵活性。
[0006]本发明提供的虚拟机磁盘镜像模块化快速组装方法,包括:
[0007]接收虚拟机磁盘镜像请求;所述虚拟机磁盘镜像请求包括:操作系统类型和组件描述信息;
[0008]根据所述操作系统类型和所述组件描述信息在组件数据库中获取与所述虚拟机磁盘镜像请求相对应的组件信息;其中,所述组件信息包括:至少一个组件标识和与每个组件标识相对应的组件存储位置;
[0009]根据所述组件标识检测各个所述组件标识对应的组件之间是否存在冲突;若否,则根据所述组件存储位置从组件存储库中获取组件,将所述组件组装为与所述虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。
[0010]本发明提供的虚拟机磁盘镜像模块化快速组装装置,包括:
[0011 ]组件管理模块,用于接收虚拟机磁盘镜像请求,所述虚拟机磁盘镜像请求包括操作系统类型和组件描述信息;根据所述操作系统类型和所述组件描述信息在组件数据库中获取与所述虚拟机磁盘镜像请求相对应的组件信息,将所述组件信息发送至组件组合模块;其中,所述组件信息包括:至少一个组件标识和与每个组件标识相对应的组件存储位置;
[0012]所述组件组合模块,用于根据所述组件标识检测各个所述组件标识对应的组件之间是否存在冲突;若否,则根据所述组件存储位置从组件存储库中获取组件,将所述组件组装为与所述虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。
[0013]本发明提供的虚拟机磁盘镜像模块化快速组装系统,包括:镜像管理模块和至少两个本发明任一实施例提供的虚拟机磁盘镜像模块化快速组装装置;
[0014]所述镜像管理模块用于:
[0015]接收镜像请求;其中,所述镜像请求包括所述虚拟机磁盘镜像请求和目标装置标识,所述目标装置标识用于指示至少一个第一虚拟机磁盘镜像模块化快速组装装置;
[0016]根据所述虚拟机磁盘镜像请求和所述目标装置标识搜索镜像数据库,判断所述第一虚拟机磁盘镜像模块化快速组装装置是否缺失与所述虚拟机磁盘镜像请求相对应的组件;
[0017]若所有所述第一虚拟机磁盘镜像模块化快速组装装置均缺失与所述虚拟机磁盘镜像请求相对应的组件,则向缺失组件的第二虚拟机磁盘镜像模块化快速组装装置发送组件查询请求,以使第二虚拟机磁盘镜像模块化快速组装装置根据所述组件查询请求确认是否缺失与所述虚拟机磁盘镜像请求相对应的组件;并接收所述第二虚拟机磁盘镜像模块化快速组装装置发送的查询确认消息,所述查询确认消息包括缺失指示或者非缺失指示;
[0018]若所述查询确认消息包括所述缺失指示,则根据所述缺失指示搜索所述镜像数据库,确定包括与所述缺失指示相对应的组件的第三虚拟机磁盘镜像模块化快速组装装置,并向所述第三虚拟机磁盘镜像模块化快速组装装置发送传输请求,以使所述第三虚拟机磁盘镜像模块化快速组装装置将与所述缺失指示相对应的组件发送至所述第二虚拟机磁盘镜像模块化快速组装装置;以及向所述第二虚拟机磁盘镜像模块化快速组装装置发送所述虚拟机磁盘镜像请求。
[0019 ]本发明提供了一种虚拟机磁盘镜像模块化快速组装方法、装置和系统,其中,虚拟机磁盘镜像模块化快速组装方法包括:接收虚拟机磁盘镜像请求,根据操作系统类型和组件描述信息在组件数据库中获取与虚拟机磁盘镜像请求相对应的组件信息,根据组件标识检测各个组件标识对应的组件之间是否存在冲突;若否,则根据组件存储位置从组件存储库中获取组件,将组件组装为与虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。本发明提供的虚拟机磁盘镜像模块化快速组装方法,将虚拟机磁盘镜像文件以组件的形式进行组装,节省了文件存储空间,提升了虚拟机磁盘镜像文件的组装灵活性。
【附图说明】
[0020]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021 ]图1为本发明实施例一提供的虚拟机磁盘镜像模块化快速组装方法的流程图;
[0022]图2为本发明实施例二提供的虚拟机磁盘镜像模块化快速组装方法的流程图;
[0023]图3为本发明实施例一提供的虚拟机磁盘镜像模块化快速组装装置的结构示意图;
[0024]图4为本发明实施例一提供的虚拟机磁盘镜像模块化快速组装系统的结构示意图。
【具体实施方式】
[0025]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026]图1为本发明实施例一提供的虚拟机磁盘镜像模块化快速组装方法的流程图。本实施例提供的虚拟机磁盘镜像模块化快速组装方法,执行主体可以为虚拟机磁盘镜像模块化快速组装装置,虚拟机磁盘镜像模块化快速组装装置可以设置于安装有虚拟机的任意设备上,例如,设置在云平台上,云平台可以为公有云平台或者为私有云平台。如图1所示,本实施例提供的虚拟机磁盘镜像模块化快速组装方法,可以包括:
[0027]步骤101、接收虚拟机磁盘镜像请求。
[0028]具体地,虚拟机磁盘镜像请求用于指示请求建立一个虚拟机磁盘镜像文件,本实施例对于虚拟机磁盘镜像请求的具体实现方式不加以限制,例如:虚拟机磁盘镜像请求可以是程序指令。
[0029]接收虚拟机磁盘镜像请求,可以通过不同的接收来源和接收方式,本实施例对此不加以限制,例如:虚拟机磁盘镜像请求可以是用户在人机交互界面上输入的,虚拟机磁盘镜像模块化快速组装装置通过前端页面请求的方式接收,虚拟机磁盘镜像请求还可以是通过其它云平台传递过来的,虚拟机磁盘镜像模块化快速组装装置接收该请求,等等。
[0030]其中,虚拟机磁盘镜像请求可以包括:操作系统类型和组件描述信息。
[0031]操作系统类型用于指示请求建立的虚拟机磁盘镜像文件所依赖的操作系统,例如:Windows操作系统、Iinux操作系统,等等。组件描述信息用于说明请求建立的虚拟机磁盘镜像文件所需要的组件,本实施例对于组件描述信息的具体实现方式不加以限制,例如:组件描述信息可以是描述组件功能的描述性语言信息,组件描述信息还可以是具体的组件名称,等等。
[0032]需要说明的是,本实施例中的组件,是指具备一项功能的软件包及其配置文件的集合,组件可能包括一个或者几个有依赖关系的软件包。其中,组件对应有组件标识,组件标识可以唯一区分不同的组件,每个软件包对应有软件包标识,软件包标识可以唯一区分组件中不同的软件包,本实施例对于组件标识和软件包标识的具体实现方式不加以限制,例如:组件标识可以为组件名称,组件名称可以为中文名称或者英文名称,组件标识也可以为由数字、字母、字符组成的一串字符串,软件包标识可以为软件包名称,软件包名称可以为中文名称或者英文名称,软件包标识也可以为由数字、字母、字符组成的一串字符串,等等。
[0033]步骤102、根据操作系统类型和组件描述信息在组件数据库中获取与虚拟机磁盘镜像请求相对应的组件信息。
[0034]其中,组件数据库中存储有组件的组件相关信息,本实施例对于组件相关信息的具体实现方式不加以限制,例如:组件相关信息可以包括:组件标识、组件存储位置、组件所依赖的其他组件的组件标识,等等。
[0035]组件存储位置用于指示组件的具体存放路径。组件中各个软件包之间的依赖关系用于表示组件中每个软件包与其它软件包之间的依赖关系,所谓依赖关系,是指在软件工程模型中两个模型元素之间的语义连接关系,模型元素可能是独立的,也可能是依赖于其它的模型元素,当一个模型元素依赖于另一个模型元素时,则这两个模型元素之间存在依赖关系,例如:软件包A需要在软件包B安装的前提下才能正常运行,则软件包A依赖于软件包B。组件对应的软件依赖树用于通过树形结构具体表示组件中各个软件包之间的依赖关系,软件依赖树中的每个节点表示一个软件包。
[0036]其中,组件信息可以包括:至少一个组件标识和与每个组件标识相对应的组件存储位置。
[0037]可见,通过本步骤,可以获取与虚拟机磁盘镜像请求相对应的所有组件的组件信息。
[0038]步骤103、根据组件标识检测各个组件标识对应的组件之间是否存在冲突;若否,则根据组件存储位置从组件存储库中获取组件,将组件组装为与虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。
[0039]具体地,在获取到与虚拟机磁盘镜像请求相对应的所有组件的组件信息后,需要检测各个组件之间是否有冲突。所谓冲突,是指在软件工程中,两个或者多个软件包同时运行时,程序之间存在的冲突导致其中一个或者多个软件不能正常工作的情况,例如:软件包A和软件包B不能同时运行,则软件包A和软件包B存在冲突。
[0040]当与虚拟机磁盘镜像请求相对应的所有组件均不存在冲突,则可以将所有组件组装成一个虚拟机磁盘镜像文件,具体的,根据各个组件的存储位置从组件存储库中获取组件,将组件组装为与虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。
[0041 ]其中,组件存储库中存储有各个组件。
[0042]可选的,虚拟机磁盘镜像文件可以是包括各个组件的实体文件,用户可以对该实体文件进行拷贝等操作,虚拟机磁盘镜像文件也可以是仅包括组件挂载位置的目录索引文件,云平台上的虚拟机可以运行该虚拟机磁盘镜像文件。
[0043]可见,本实施例提供的虚拟机磁盘镜像模块化快速组装方法,将操作系统和具有特定功能的软件以组件的形式预先存储在组件存储库中,当需要建立一个虚拟机磁盘镜像文件时,虚拟机磁盘镜像请求中明确所需的操作系统类型和组件描述信息,则虚拟机磁盘镜像模块化快速组装装置就可以选择相应的组件,将组件组装成与虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。由于是以组件为基本单元组成虚拟机磁盘镜像文件,不需要从操作系统起将所有文件存储一遍形成虚拟机磁盘镜像文件,因此,节省了文件存储空间,提升了虚拟机磁盘镜像文件的组装灵活性。
[0044]可选的,步骤103还可以包括:
[0045]若是,则发布告警信息,停止对组件的组装。
[0046]可选的,在步骤101,接收虚拟机磁盘镜像请求之前,还可以包括:
[0047]生成组件。
[0048]将组件存储至组件存储库中,将组件对应的组件标识和组件存储位置存储至组件数据库中。
[0049]需要说明的是,本实施例对于上述生成组件并存储组件的具体实现方式不加以限制,例如:生成组件可以是通过新的组件模板生成的新组件,也可以是将现有的组件及其信息存储至组件存储库和组件数据库中,等等。
[0050]本实施例提供了一种虚拟机磁盘镜像模块化快速组装方法,包括:接收虚拟机磁盘镜像请求,根据操作系统类型和组件描述信息在组件数据库中获取与虚拟机磁盘镜像请求相对应的组件信息,根据组件标识检测各个组件标识对应的组件之间是否存在冲突;若否,则根据组件存储位置从组件存储库中获取组件,将组件组装为与虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。本实施例提供的虚拟机磁盘镜像模块化快速组装方法,将虚拟机磁盘镜像文件以组件的形式进行组装,节省了文件存储空间,提升了虚拟机磁盘镜像文件的组装灵活性。
[0051]图2为本发明实施例二提供的虚拟机磁盘镜像模块化快速组装方法的流程图,本实施例在实施例一的基础上,提供了虚拟机磁盘镜像模块化快速组装方法的另一种实现方式。如图2所示,本实施例提供的虚拟机磁盘镜像模块化快速组装方法,其中,生成组件,将组件存储至组件存储库中,将组件对应的组件标识和组件存储位置存储至组件数据库中,可以包括:
[0052]步骤201、接收虚拟机磁盘镜像源文件。
[0053]其中,虚拟机磁盘镜像源文件是指现有的不是以组件为基本单元形成的虚拟机磁盘镜像文件,虚拟机磁盘镜像源文件通常为从操作系统起将所有文件存储一遍形成的实体文件。
[0054]步骤202、对虚拟机磁盘镜像源文件进行处理,获取软件包列表,软件包列表中包括多个软件包标识以及每个软件包标识对应的软件信息。根据软件包标识和软件信息计算各个软件包标识对应的软件包之间的依赖关系。根据依赖关系获取至少一个软件依赖树。
[0055]可选的,对虚拟机磁盘镜像源文件进行处理,获取软件包列表,一种实现方式可以为:
[0056]获取虚拟机磁盘镜像源文件中预设的软件包列表。
[0057]可选的,对虚拟机磁盘镜像源文件进行处理,获取软件包列表,另一种实现方式可以为:
[0058]扫描虚拟机磁盘镜像源文件中的所有文件生成文件列表,根据文件列表生成软件包列表。
[0059]其中,每个软件依赖树对应一个组件。
[0060]步骤203、依次判断每个软件依赖树在组件数据库中是否存在。
[0061]在本步骤中,需要判断通过虚拟机磁盘镜像源文件获取到的软件依赖树是否已经在组件数据库中存在。如果存在,则说明该软件依赖树对应的组件已经在组件存储库中和组件数据库中有存储,因此不需要对该软件依赖树对应的组件进行重复存储。如果不存在,则说明该软件依赖树对应的组件在组件存储库中和组件数据库中没有存储,该软件依赖树将对应一个新的组件,因此需要对该软件依赖树对应的组件进行存储。
[0062]步骤204、若不存在,则将软件依赖树存储至组件数据库中,根据软件依赖树生成组件,将组件存储至组件存储库中,将组件对应的组件标识和组件存储位置存储至组件数据库中。
[0063]可见,本实施例提供的虚拟机磁盘镜像模块化快速组装方法,主要提供了生成组件的一种具体实现方式,具体地,通过将现有的虚拟机磁盘镜像源文件进行拆分成更细粒度的软件依赖树,如果软件依赖树在组件数据库中不存在,说明该软件依赖树对应着一个新的组件,因此对该软件依赖树进行处理可以生成新的组件,并将组件标识和组件存储位置存储至组件数据库中,将组件存储至组件存储库中,进而逐渐完善组件库,基于该逐渐完善的组件库,当接收到虚拟机磁盘镜像请求,根据组件库中的组件可以建立新的虚拟机磁盘镜像文件,从而提升了虚拟机磁盘镜像文件的组装成功率。
[0064]可选的,步骤204中,根据软件依赖树生成组件,可以包括:
[0065]遍历软件依赖树中的所有节点,根据每个节点对应的软件包数据和配置文件生成组件。
[0066]本实施例提供了一种虚拟机磁盘镜像模块化快速组装方法,将虚拟机磁盘镜像文件以组件的形式进行组装,节省了文件存储空间,提升了虚拟机磁盘镜像文件的组装灵活性,并进一步提升虚拟机磁盘镜像文件的组装成功率。
[0067]图3为本发明实施例一提供的虚拟机磁盘镜像模块化快速组装装置的结构示意图,本实施例提供的虚拟机磁盘镜像模块化快速组装装置,用于执行图1或图2所示实施例提供的虚拟机磁盘镜像模块化快速组装方法。如图3所示,本实施例提供的虚拟机磁盘镜像模块化快速组装装置,可以包括:
[0068]组件管理模块11,用于接收虚拟机磁盘镜像请求,虚拟机磁盘镜像请求包括操作系统类型和组件描述信息。根据操作系统类型和组件描述信息在组件数据库12中获取与虚拟机磁盘镜像请求相对应的组件信息,将组件信息发送至组件组合模块13。其中,组件信息包括:至少一个组件标识和与每个组件标识相对应的组件存储位置。
[0069]组件组合模块13,用于根据组件标识检测各个组件标识对应的组件之间是否存在冲突。若否,则根据组件存储位置从组件存储库14中获取组件,将组件组装为与虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。
[0070]可选的,还可以包括:组件生成模块15。
[0071]组件生成模块15,用于生成组件,将组件存储至组件存储库14中。
[0072]组件管理模块11,用于将组件对应的组件标识和组件存储位置存储至组件数据库12中。
[0073]可选的,组件生成模块15具体用于:接收虚拟机磁盘镜像源文件。对虚拟机磁盘镜像源文件进行处理,获取软件包列表,软件包列表中包括多个软件包标识以及每个软件包标识对应的软件信息。根据软件包标识和软件信息计算各个软件包标识对应的软件包之间的依赖关系。根据依赖关系获取至少一个软件依赖树。
[0074]组件管理模块11具体用于,依次判断每个软件依赖树在组件数据库12中是否存在。若不存在,则将软件依赖树存储至组件数据库12中。
[0075]组件生成模块15还具体用于,若软件依赖树在组件数据库12中不存在,则根据软件依赖树生成组件。将组件存储至组件存储库14中,并将组件对应的组件标识和组件存储位置发送至组件管理模块11。
[0076]组件管理模块11还具体用于,将组件对应的组件标识和组件存储位置存储至组件数据库12中。
[0077]可选的,组件生成模块15具体用于:
[0078]遍历软件依赖树中的所有节点,根据每个节点对应的软件包数据和配置文件生成组件。
[0079]本实施例提供了一种虚拟机磁盘镜像模块化快速组装装置,包括:组件管理模块、组件组合模块、组件生成模块、组件数据库和组件存储库。本实施例提供的虚拟机磁盘镜像模块化快速组装装置,将虚拟机磁盘镜像文件以组件的形式进行组装,节省了文件存储空间,提升了虚拟机磁盘镜像文件的组装灵活性。
[0080]图4为本发明实施例一提供的虚拟机磁盘镜像模块化快速组装系统的结构示意图,本实施例提供的虚拟机磁盘镜像模块化快速组装系统,可以设置于具备跨平台管理虚拟机功能的任意设备上,例如,设置在混合云平台上。如图4所示,本实施例提供的虚拟机磁盘镜像模块化快速组装系统,可以包括:
[0081]镜像管理模块22和至少两个如图3所示实施例提供的虚拟机磁盘镜像模块化快速组装装置21。
[0082]镜像管理模块22用于:
[0083]接收镜像请求。
[0084]其中,镜像请求可以包括虚拟机磁盘镜像请求和目标装置标识,目标装置标识用于指示至少一个第一虚拟机磁盘镜像模块化快速组装装置。
[0085]其中,虚拟机磁盘镜像请求与本发明方法实施例和装置实施例中的原理类似,在此不再赘述。
[0086]可选的,目标装置标识可以包括:安全级别或者虚拟机磁盘镜像模块化快速组装装置的标识。
[0087]其中,安全级别用于标识虚拟机磁盘镜像模块化快速组装装置的安全程度,不同的安全级别分别与至少一个虚拟机磁盘镜像模块化快速组装装置相对应。例如:公有云平台上的虚拟机磁盘镜像模块化快速组装装置和私有云平台上的虚拟机磁盘镜像模块化快速组装装置,其安全级别不同。
[0088]其中,虚拟机磁盘镜像模块化快速组装装置的标识,用于唯一区分不同的虚拟机磁盘镜像模块化快速组装装置,不同的虚拟机磁盘镜像模块化快速组装装置的标识,仅与一个虚拟机磁盘镜像模块化快速组装装置相对应。本实施例对于虚拟机磁盘镜像模块化快速组装装置的标识的具体实现方式不加以限制,例如,虚拟机磁盘镜像模块化快速组装装置的标识可以为虚拟机磁盘镜像模块化快速组装装置的名称,也可以为虚拟机磁盘镜像模块化快速组装装置的序号,还可以是虚拟机磁盘镜像模块化快速组装装置的地址,等等。
[0089]在一种实现方式中,镜像管理模块22接收镜像请求,可以是用户在人机交互界面上输入的,镜像管理模块22通过前端页面请求的方式接收。具体的,镜像请求可以包括虚拟机磁盘镜像请求和安全级别。
[0090]在另一种实现方式中,镜像管理模块22接收镜像请求,可以是虚拟机磁盘镜像模块化快速组装系统中的任意一个虚拟机磁盘镜像模块化快速组装装置发送的,例如:当某云平台需要弹性扩张或者自主迀移虚拟机到其他云平台时的场景,具体的,若某云平台需要弹性扩张到其他云平台时,镜像请求可以包括虚拟机磁盘镜像请求和安全级别,若某云平台需要自主迀移虚拟机到其他云平台时,镜像请求可以包括虚拟机磁盘镜像请求和迀移目的云平台上的虚拟机磁盘镜像模块化快速组装装置的地址。
[0091 ]根据虚拟机磁盘镜像请求和目标装置标识搜索镜像数据库23,判断第一虚拟机磁盘镜像模块化快速组装装置是否缺失与虚拟机磁盘镜像请求相对应的组件。
[0092]其中,镜像数据库23中存储有各个虚拟机磁盘镜像模块化快速组装装置21上存储的组件的相关信息,可以通过镜像管理模块22与虚拟机磁盘镜像模块化快速组装装置21之间的交互实时更新。
[0093]若存在至少一个第一虚拟机磁盘镜像模块化快速组装装置包括与虚拟机磁盘镜像请求相对应的组件,则向包括与虚拟机磁盘镜像请求相对应的组件的第四虚拟机磁盘镜像模块化快速组装装置,发送虚拟机磁盘镜像请求。
[0094]需要说明的是,本实施例对于第四虚拟机磁盘镜像模块化快速组装装置的选择方式不加以限制,可以向所有的第四虚拟机磁盘镜像模块化快速组装装置发送虚拟机磁盘镜像请求,也可以向任意一个第四虚拟机磁盘镜像模块化快速组装装置发送虚拟机磁盘镜像请求。
[0095]若所有第一虚拟机磁盘镜像模块化快速组装装置均缺失与虚拟机磁盘镜像请求相对应的组件,则向缺失组件的第二虚拟机磁盘镜像模块化快速组装装置发送组件查询请求,以使第二虚拟机磁盘镜像模块化快速组装装置根据组件查询请求确认是否缺失与虚拟机磁盘镜像请求相对应的组件;并接收第二虚拟机磁盘镜像模块化快速组装装置发送的查询确认消息,查询确认消息包括缺失指示或者非缺失指示。
[0096]其中,缺失指示用于指示第二虚拟机磁盘镜像模块化快速组装装置缺失与虚拟机磁盘镜像请求相对应的组件,非缺失指示用于指示第二虚拟机磁盘镜像模块化快速组装装置包括与虚拟机磁盘镜像请求相对应的所有组件。
[0097]可选的,组件查询请求中可以包括缺失的组件的组件标识。
[0098]可选的,缺失指示中可以包括缺失的组件的组件标识。
[0099]若查询确认消息包括缺失指示,则根据缺失指示搜索镜像数据库23,确定包括与缺失指示相对应的组件的第三虚拟机磁盘镜像模块化快速组装装置,并向第三虚拟机磁盘镜像模块化快速组装装置发送传输请求,以使第三虚拟机磁盘镜像模块化快速组装装置根据传输请求将与缺失指示相对应的组件发送至第二虚拟机磁盘镜像模块化快速组装装置;以及向第二虚拟机磁盘镜像模块化快速组装装置发送虚拟机磁盘镜像请求。
[0100]可选的,传输请求中可以包括缺失的组件的组件标识。
[0101]需要说明的是,在本实施例中,向第三虚拟机磁盘镜像模块化快速组装装置发送传输请求,可以向所有的第三虚拟机磁盘镜像模块化快速组装装置发送传输请求,也可以向任意一个第三虚拟机磁盘镜像模块化快速组装装置发送传输请求。
[0102]若查询确认消息包括非缺失指示,则直接向第二虚拟机磁盘镜像模块化快速组装装置发送虚拟机磁盘镜像请求。
[0103]需要说明的是,本实施例中的第一、第二、第三和第四虚拟机磁盘镜像模块化快速组装装置,结构相同,均为如图3所示实施例提供的虚拟机磁盘镜像模块化快速组装装置,其中的“第一”、“第二”、“第三”和“第四”,仅是用于区分包括不同组件的虚拟机磁盘镜像模块化快速组装装置。具体的,将与目标装置标识相对应的虚拟机磁盘镜像模块化快速组装装置标记为第一虚拟机磁盘镜像模块化快速组装装置,将缺失与虚拟机磁盘镜像请求相对应的组件的虚拟机磁盘镜像模块化快速组装装置标记为第二虚拟机磁盘镜像模块化快速组装装置,将包括与缺失指示相对应的组件的虚拟机磁盘镜像模块化快速组装装置标记为第三虚拟机磁盘镜像模块化快速组装装置,将包括与虚拟机磁盘镜像请求相对应的所有组件的虚拟机磁盘镜像模块化快速组装装置标记为第四虚拟机磁盘镜像模块化快速组装装置。
[0104]需要说明的是,本实施例中的虚拟机磁盘镜像模块化快速组装装置,与本发明装置实施例中的原理类似,在此不再赘述。
[0105]本实施例提供的虚拟机磁盘镜像模块化快速组装系统,当需要跨云传输虚拟机磁盘镜像文件时,不需要将整个虚拟机磁盘镜像文件进行传输,只需要根据虚拟机磁盘镜像请求,传输缺失的组件即可,即,仅需要在不同的云平台之间传输虚拟机磁盘镜像请求中缺失的相应的组件,虚拟机磁盘镜像模块化快速组装装置就可以根据该虚拟机磁盘镜像请求建立虚拟机磁盘镜像文件,进而在跨云场景下快速组装虚拟机磁盘镜像文件,完成虚拟机的迀移或者弹性扩展,节约了网络带宽的利用率,使得网络服务更加流畅。
[0106]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种虚拟机磁盘镜像模块化快速组装方法,其特征在于,包括: 接收虚拟机磁盘镜像请求;所述虚拟机磁盘镜像请求包括:操作系统类型和组件描述信息; 根据所述操作系统类型和所述组件描述信息在组件数据库中获取与所述虚拟机磁盘镜像请求相对应的组件信息;其中,所述组件信息包括:至少一个组件标识和与每个组件标识相对应的组件存储位置; 根据所述组件标识检测各个所述组件标识对应的组件之间是否存在冲突;若否,则根据所述组件存储位置从组件存储库中获取组件,将所述组件组装为与所述虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。2.根据权利要求1所述的方法,其特征在于,在所述接收虚拟机磁盘镜像请求之前,还包括: 生成组件; 将所述组件存储至所述组件存储库中,将所述组件对应的组件标识和组件存储位置存储至所述组件数据库中。3.根据权利要求2所述的方法,其特征在于,所述生成组件,将所述组件存储至所述组件存储库中,将所述组件对应的组件标识和组件存储位置存储至所述组件数据库中,包括: 接收虚拟机磁盘镜像源文件; 对所述虚拟机磁盘镜像源文件进行处理,获取软件包列表,所述软件包列表中包括多个软件包标识以及每个所述软件包标识对应的软件信息;根据所述软件包标识和所述软件信息计算各个所述软件包标识对应的软件包之间的依赖关系;根据所述依赖关系获取至少一个软件依赖树; 依次判断每个所述软件依赖树在所述组件数据库中是否存在; 若不存在,则将所述软件依赖树存储至所述组件数据库中;根据所述软件依赖树生成所述组件;将所述组件存储至所述组件存储库中,将所述组件对应的组件标识和组件存储位置存储至所述组件数据库中。4.根据权利要求3所述的方法,其特征在于,所述根据所述软件依赖树生成所述组件,包括: 遍历所述软件依赖树中的所有节点,根据每个所述节点对应的软件包数据和配置文件生成所述组件。5.一种虚拟机磁盘镜像模块化快速组装装置,其特征在于,包括: 组件管理模块,用于接收虚拟机磁盘镜像请求,所述虚拟机磁盘镜像请求包括操作系统类型和组件描述信息;根据所述操作系统类型和所述组件描述信息在组件数据库中获取与所述虚拟机磁盘镜像请求相对应的组件信息,将所述组件信息发送至组件组合模块;其中,所述组件信息包括:至少一个组件标识和与每个组件标识相对应的组件存储位置; 所述组件组合模块,用于根据所述组件标识检测各个所述组件标识对应的组件之间是否存在冲突;若否,则根据所述组件存储位置从组件存储库中获取组件,将所述组件组装为与所述虚拟机磁盘镜像请求相对应的虚拟机磁盘镜像文件。6.根据权利要求5所述的装置,其特征在于,还包括:组件生成模块; 所述组件生成模块,用于生成组件,将所述组件存储至所述组件存储库中; 所述组件管理模块,用于将所述组件对应的组件标识和组件存储位置存储至所述组件数据库中。7.根据权利要求6所述的装置,其特征在于,所述组件生成模块具体用于:接收虚拟机磁盘镜像源文件;对所述虚拟机磁盘镜像源文件进行处理,获取软件包列表,所述软件包列表中包括多个软件包标识以及每个所述软件包标识对应的软件信息;根据所述软件包标识和所述软件信息计算各个所述软件包标识对应的软件包之间的依赖关系;根据所述依赖关系获取至少一个软件依赖树; 所述组件管理模块具体用于,依次判断每个所述软件依赖树在所述组件数据库中是否存在;若不存在,则将所述软件依赖树存储至所述组件数据库中; 所述组件生成模块还具体用于,若所述软件依赖树在所述组件数据库中不存在,则根据所述软件依赖树生成所述组件;将所述组件存储至所述组件存储库中,并将所述组件对应的组件标识和组件存储位置发送至所述组件管理模块; 所述组件管理模块还具体用于,将所述组件对应的组件标识和组件存储位置存储至所述组件数据库中。8.根据权利要求7所述的装置,其特征在于,所述组件生成模块具体用于: 遍历所述软件依赖树中的所有节点,根据每个所述节点对应的软件包数据和配置文件生成所述组件。9.一种虚拟机磁盘镜像模块化快速组装系统,其特征在于,包括:镜像管理模块和至少两个如权利要求5至8任一所述的虚拟机磁盘镜像模块化快速组装装置; 所述镜像管理模块用于: 接收镜像请求;其中,所述镜像请求包括所述虚拟机磁盘镜像请求和目标装置标识,所述目标装置标识用于指示至少一个第一虚拟机磁盘镜像模块化快速组装装置; 根据所述虚拟机磁盘镜像请求和所述目标装置标识搜索镜像数据库,判断所述第一虚拟机磁盘镜像模块化快速组装装置是否缺失与所述虚拟机磁盘镜像请求相对应的组件; 若所有所述第一虚拟机磁盘镜像模块化快速组装装置均缺失与所述虚拟机磁盘镜像请求相对应的组件,则向缺失组件的第二虚拟机磁盘镜像模块化快速组装装置发送组件查询请求,以使第二虚拟机磁盘镜像模块化快速组装装置根据所述组件查询请求确认是否缺失与所述虚拟机磁盘镜像请求相对应的组件;并接收所述第二虚拟机磁盘镜像模块化快速组装装置发送的查询确认消息,所述查询确认消息包括缺失指示或者非缺失指示; 若所述查询确认消息包括所述缺失指示,则根据所述缺失指示搜索所述镜像数据库,确定包括与所述缺失指示相对应的组件的第三虚拟机磁盘镜像模块化快速组装装置,并向所述第三虚拟机磁盘镜像模块化快速组装装置发送传输请求,以使所述第三虚拟机磁盘镜像模块化快速组装装置根据所述传输请求将与所述缺失指示相对应的组件发送至所述第二虚拟机磁盘镜像模块化快速组装装置;以及向所述第二虚拟机磁盘镜像模块化快速组装装置发送所述虚拟机磁盘镜像请求。10.根据权利要求9所述的系统,其特征在于,所述目标装置标识包括:安全级别或者虚拟机磁盘镜像模块化快速组装装置的标识。
【文档编号】G06F3/06GK105955674SQ201610431619
【公开日】2016年9月21日
【申请日】2016年6月16日
【发明人】沃天宇, 马晴, 孙杰, 秦晶杰, 侯冠群
【申请人】北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1