拉取虚拟机镜像文件的方法和装置的制造方法

文档序号:9506039阅读:867来源:国知局
拉取虚拟机镜像文件的方法和装置的制造方法
【技术领域】
[0001]本申请涉及计算机技术领域,具体涉及虚拟机技术领域,尤其涉及拉取虚拟机镜像文件的方法和装置。
【背景技术】
[0002]在现有技术中,云计算平台架构(例如开源的云计算管理平台架构OpenStack)创建虚拟机时,云计算平台架构中的虚拟机管理模块(例如OpenStack中的运算组件nova)可以通过虚拟机镜像管理模块(例如OpenStack中的虚拟机镜像查找及检索组件glance)检索镜像文件并从镜像服务器拉取镜像文件以创建虚拟机。
[0003]以基于硬件虚拟化技术KVM虚拟机为例,虚拟机系统盘的镜像文件可以为raw或者qcow2格式,大小通常为G bytes量级,若虚拟机系统盘采用Windows操作系统,则该操作系统的镜像文件能到将近10G量级。
[0004]然而,上述云计算平台架构中的虚拟机管理模块通过虚拟机镜像管理模块检索镜像文件并拉取镜像文件以创建虚拟机,由于每次创建虚拟机都通过虚拟机镜像管理模块从镜像服务器拉取,对虚拟机镜像管理模块所在的服务器以及镜像服务器的负载会非常大,并且创建虚拟机的速度较慢。

【发明内容】

[0005]本申请的目的在于提出一种拉取虚拟机镜像文件的方法和装置,来解决以上【背景技术】部分提到的技术问题。
[0006]第一方面,本申请提供了一种拉取虚拟机镜像文件的方法,所述方法包括:获取镜像拉取指令,其中,所述镜像拉取指令包括拉取的镜像文件的时间戳;判断所述拉取指令是否为仅拉取基础镜像文件的指令;若是,则从本地获取预先分发至各物理机的基础镜像文件;否则,从本地获取预先分发至各物理机的基础镜像文件,从本地或镜像服务器中获取满足所述拉取的镜像文件的时间戳的增量文件。
[0007]在一些实施例中,所述从本地或镜像服务器中获取满足所述拉取的镜像文件的时间戳的增量文件包括:判断本地物理机上是否已存储有满足所述拉取指令的增量文件;若本地物理机上已存储有所述增量文件,则从本地物理机上获取所述增量文件,否则,向存储有镜像文件依赖链的数据库发送增量文件查询指令,并基于查询结果,从镜像服务器中拉取所述增量文件。
[0008]在一些实施例中,所述向存储有镜像文件依赖链的数据库发送增量文件查询指令,并基于查询结果,从镜像服务器中拉取所述增量文件可以包括:向所述数据库查询所述增量文件的依赖关系,并基于所述依赖关系查询本地物理机中是否已存储所述增量文件的依赖文件;若未存储,则从所述镜像服务器中拉取所述依赖文件。
[0009]在一些实施例中,所述方法还包括:检查所述预先分发至各物理机的基础镜像文件是否被虚拟机所引用;若引用,则保留检查的基础镜像文件,并将所述检查的基础镜像文件的时间戳更新为检查时的时间戳;若未引用,且所述检查的基础镜像文件的时间戳所指示的时间距当前时间的间隔超过预设时间间隔,删除所述检查的基础镜像文件。
[0010]在一些实施例中,所述方法还包括:间隔预定时间更新所述预先分发至各物理机的基础镜像文件。
[0011]在一些实施例中,所述基础镜像文件包括:原始镜像文件;或原始镜像文件及原始镜像文件的补丁文件。
[0012]在一些实施例中,所述基础镜像文件包括:原始镜像文件及原始镜像文件的一个补丁文件。
[0013]在一些实施例中,所述增量文件为创建虚拟机镜像文件时根据虚拟机磁盘文件的顶层文件生成的镜像文件。
[0014]在一些实施例中,所述虚拟机镜像文件采用qcow2链式结构。
[0015]第二方面,本申请提供了一种加速拉取虚拟机镜像文件的装置,所述装置包括:第一获取单元,用于获取镜像拉取指令,其中,所述镜像拉取指令包括拉取的镜像文件的时间戳;判断单元,用于判断所述拉取指令是否为仅拉取基础镜像文件的指令;第二获取单元,用于若所述拉取指令是仅拉取基础镜像文件的指令,则从本地获取预先分发至各物理机的基础镜像文件;第三获取单元,用于若所述拉取指令并非仅拉取基础镜像文件的指令,从本地获取预先分发至各物理机的基础镜像文件,从本地或镜像服务器中获取满足所述拉取的镜像文件的时间戳的增量文件。
[0016]在一些实施例中,所述第三获取单元包括:判断子单元,用于判断本地物理机上是否已存储有满足所述拉取指令的增量文件;第一获取子单元,用于若本地物理机上已存储有所述增量文件,则从本地物理机上获取所述增量文件;第一拉取子单元,用于若本地物理机上未存储有所述增量文件,向存储有镜像文件依赖链的数据库发送增量文件查询指令,并基于查询结果,从镜像服务器中拉取所述增量文件。
[0017]在一些实施例中,所述第一拉取子单元包括:查询子单元,用于向所述数据库查询所述增量文件的依赖关系,并基于所述依赖关系查询本地物理机中是否已存储所述增量文件的依赖文件;第二拉取子单元,用于若本地物理机中未存储所述增量文件的依赖文件,则从所述镜像服务器中拉取所述依赖文件。
[0018]在一些实施例中,所述装置还包括:检查单元,用于检查所述预先分发至各物理机的基础镜像文件是否被虚拟机所引用;第一更新单元,用于若所述预先分发至各物理机的基础镜像文件引用被虚拟机所引用,则保留检查的基础镜像文件,并将所述检查的基础镜像文件的时间戳更新为检查时的时间戳;删除单元,用于若所述预先分发至各物理机的基础镜像文件未被虚拟机所引用,且所述检查的基础镜像文件的时间戳所指示的时间距当前时间的间隔超过预设时间间隔,删除所述检查的基础镜像文件。
[0019]在一些实施例中,所述装置还包括:第二更新单元,用于间隔预定时间更新所述预先分发至各物理机的基础镜像文件。
[0020]在一些实施例中,所述装置中的所述基础镜像文件包括:原始镜像文件;或原始镜像文件及原始镜像文件的补丁文件。
[0021]在一些实施例中,所述装置中的所述基础镜像文件包括:原始镜像文件及原始镜像文件的一个补丁文件。
[0022]在一些实施例中,所述装置中的所述增量文件为创建虚拟机镜像文件时根据虚拟机磁盘文件的顶层文件生成的镜像文件。
[0023]在一些实施例中,所述装置中的所述虚拟机镜像文件采用qcow2链式结构。
[0024]本申请提供的拉取虚拟机镜像文件的方法和装置,首先获取镜像拉取指令,之后判断所述拉取指令是否为仅拉取基础镜像文件的指令,而后若拉取指令为仅拉取基础镜像文件的指令,则从本地获取预先分发至各物理机的基础镜像文件,若所述拉取指令并非仅拉取基础镜像文件的指令,从本地获取预先分发至各物理机的基础镜像文件,从本地或镜像服务器中获取满足所述拉取的镜像文件的时间戳的增量文件,从而有效减少创建虚拟机时拉取的镜像文件的数据量,减少了拉取镜像文件的时间,减轻了虚拟机镜像管理模块所在服务器及镜像服务器的负载,从而可以加快虚拟机的创建速度,使虚拟机能够提供快速交付服务。
【附图说明】
[0025]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0026]图1示出了可以应用本申请实施例的拉取虚拟机镜像文件的方法和装置的示例性系统架构;
[0027]图2示出了根据本申请的拉取虚拟机镜像文件的方法的一个实施例的示意性流程图;
[0028]图3示出了根据本申请实施例的基础镜像文件的结构图;
[0029]图4示出了根据本申请实施例的拉取虚拟机镜像文件的方法的一个应用场景的示意图;
[0030]图5示出了根据本申请实施例的提高物理机磁盘空间利用效率的方法的一个实施例的流程;
[0031]图6示出了根据本申请实施例的拉取虚拟机镜像文件的装置的一个示例性结构图;
[0032]图7示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
【具体实施方式】
[0033]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
[0034]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0035]图1示出了可以应用本申请实施例的拉取虚拟机镜像文件的方法和装置的示例性系统架构100。
[0036]如图1所示,系统架构100可以包括但不限于:终端设备101和102,由服务器103、104和105组成的云计算平台,以及网络106。其中,网络10
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1