一种云环境下获取镜像的方法、装置和系统制造方法及图纸

技术编号:14770616 阅读:62 留言:0更新日期:2017-03-08 14:30
本发明专利技术涉及一种云环境下获取镜像的方法和设备。公开了从远程镜像中心获取指定镜像的描述信息,指定镜像的描述信息包括指定镜像包含的各个镜像层的标识以及指定镜像的每个镜像层是否为允许共享的镜像层的指示信息;根据指定镜像的描述信息,确定虚拟机的镜像层信息表中不存在第一镜像层文件的存储地址,其中,第一镜像层为指定镜像包含的且允许共享的镜像层;从宿主物理机获取第一镜像层文件在宿主物理机的共享存储中的存储地址,并将第一镜像层的标识和第一镜像层文件在宿主物理机的共享存储中的存储地址记录到虚拟机的镜像层信息表中。本发明专利技术获取镜像的方法,有效的减少了物理机上的虚拟机对镜像文件的重复下载,提升容器部署速度。

【技术实现步骤摘要】

本专利技术涉及云计算领域,尤其涉及一种云环境下获取镜像的方法、装置和系统
技术介绍
云计算是一种服务的交付和消费模式。云服务供应商(CloudServiceProvider,CSP)将大量计算资源用网络连接起来并进行统一的管理、分配和调度,构成一个巨大的计算资源池向用户提供服务。一般来说,云服务大致可分为3个层次,即基础设施即服务(IaaS,也称为I层)、平台即服务(PaaS,也称为P层)和软件即服务(SaaS,也称为S层)。目前,业界最多的为I层供应商(如Amazon的AWS平台)。I层主要为用户提供计算、存储、网络传输等基础设施能力,是以虚拟机技术为核心构建的应用运行平台。随着以docker为代表的容器技术的兴起,业界出现了一种以docker容器作为应用程序运行形态的趋势。docker技术的初衷,是实现一个应用程序构建、分发、运行的统一平台,docker容器镜像则是对应用程序及其运行环境的一个标准化封装。应用程序随其运行环境、依赖、配置等打包成统一的容器镜像格式后,可以直接运行在任何安装有docker的操作系统环境中,无需进行其他的操作。相比传统应用程序部署方式,省去了切换运行环境后,需要重新进行依赖安装、环境配置等繁琐操作,因此,docker技术特别适合应用快速部署的场景。一个完整的docker容器镜像包含两部分,一部分是镜像描述文件,描述了镜像的标识ID、镜像的大小、镜像的分层结构(每个镜像层的ID及镜像层之间的依赖关系)等信息。另一部分是镜像数据文件,也就是镜像的实际文件内容。镜像数据文件以分层的结构来保存,每个镜像层是一个单独的文件集合。例如一个完整的web应用镜像可能是由suse操作系统镜像层、apache软件镜像层以及app镜像层组成。当容器运行时,容器引擎会根据分层结构将各镜像层以只读模式从底层开始依次挂载到容器的运行环境中,并在最上层增加一个用于运行应用的可读写的层,容器运行时对镜像文件所有的修改都会写入可读写的层,原始的镜像文件不会做任何写操作。Docker容器是从镜像开始的,镜像可以是本地创建的、本地缓存的,或者是从远程镜像中心中下载的。远程镜像中心中一般会提供一些基础的镜像,如各种版本的操作系统镜像,apache等常用软件镜像。用户可以在这些已有镜像的基础上创建用户自己的应用镜像,并上传到远程镜像中心。容器部署的一个典型方式是,在一个物理机(PM)上安装虚拟机管理模块,虚拟机管理模块负责在这台PM上创建虚拟资源(计算、存储、网络等)。虚拟机管理模块会在PM上创建多台虚拟机(VM),每台VM作为实际运行容器的节点。每台VM上安装有容器管理模块,在VM上执行容器的创建、更新、删除等操作。在每台VM上还运行一个镜像管理模块,负责管理VM上的镜像。镜像管理模块保存了VM上的所有镜像的相关信息,一般包括镜像ID、镜像的分层结构、镜像数据文件地址等。镜像管理模块可以接收容器管理模块的镜像请求指令,从远程镜像中心下载相应镜像并保存到VM或者返回VM本地已保存镜像供容器管理模块使用。具体的,VM收到创建容器的请求,在检查本地没有创建容器需要的指定镜像后,会启动下载指定镜像的流程。整个下载流程包括:1、首先VM向远程镜像中心发送查询镜像的消息,消息中会包含要下载的指定镜像的标识。为了区分不同用户,消息中一般还会包含用户身份的标识,如预置的用户名密码或者token等;2、远程镜像中心验证用户身份信息合法后,会返回VM指定镜像的信息,包含镜像的大小、镜像分层结构以及各镜像层的id等。3、VM根据远程镜像中心返回的各镜像层的id,在VM本地已经存储的镜像层中查询哪些镜像层不存在。如果某些镜像层已经存在,则不需要下载这些已存在的镜像层;4、对于VM本地不存在的镜像层,VM把这些镜像层加入VM的下载队列,逐一从远程镜像库下载这些镜像层到VM本地存储。下载过程中,远程镜像中心会验证下载请求的身份信息以确保用户是合法下载。5、所有的镜像层都在本地存储存在以后,整个镜像的下载过程结束。由上述过程可知,下载指定镜像时,VM根据远程镜像中心返回的镜像分层结构,在VM本地查询各个镜像层是否已经存储,如果已经存储,则VM不再下载该已经存储的镜像层。但是当在同一PM上的多台VM要下载镜像时,虽然下载的可能是不同的镜像,但是这些不同的镜像很有可能包含了相同的镜像层,特别是像操作系统镜像层、数据库等基础软件镜像层,会在很多镜像中包含,因此,同一PM上的多台VM可能会同时下载或者重复下载同一个镜像层文件。这样就造成了冗余的网络流量,并且相互之间也影响镜像的下载速度,从而影响了容器部署速度。
技术实现思路
本专利技术提供了一种云环境下获取镜像的方法,有效的减少了物理机上的虚拟机对镜像文件的重复下载,提升容器部署速度。第一方面,本专利技术提供一种云环境下获取镜像的方法,包括:从远程镜像中心获取指定镜像的描述信息,所述指定镜像的描述信息包括所述指定镜像包含的各个镜像层的标识以及所述指定镜像的每个镜像层是否为允许共享的镜像层的指示信息;根据所述指定镜像的描述信息,确定虚拟机的镜像层信息表中不存在第一镜像层文件的存储地址,其中,所述第一镜像层为所述指定镜像包含的且允许共享的镜像层,所述虚拟机的镜像层信息表包括所述虚拟机获取的保存在本地的镜像层文件的存储地址和保存在所述虚拟机的宿主物理机的共享存储中的镜像层文件的存储地址;向所述宿主物理机发送获取第一镜像层的第一请求消息,所述获取第一镜像层的第一请求消息包括所述第一镜像层的标识;接收所述宿主物理机返回的第一镜像层文件在所述宿主物理机的共享存储中的存储地址,并将所述第一镜像层的标识和所述第一镜像层文件在所述宿主物理机的共享存储中的存储地址记录到所述虚拟机的镜像层信息表中。结合第一方面,在第一方面的第一种可能的实现方式中,根据所述指定镜像的信息,确定虚拟机的镜像层信息表中不存在第二镜像层文件的存储地址,其中,所述第二镜像层为所述指定镜像包含的且不允许共享的镜像层;向所述远程镜像中心发送获取第二镜像层的请求消息,所述获取第二镜像层的请求消息包括所述第二镜像层的标识;接收所述远程镜像中心返回的第二镜像层文件,在本地存储所述第二镜像层文件,并将所述第二镜像层的标识和所述第二镜像层文件的存储地址记录到所述虚拟机的镜像层信息表中。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,在所述从远程镜像中心获取指定镜像的描述信息之前,所述方法还包括:创建容器,确定所述虚拟机本地不存在所述指定镜像,其中所述指定镜像为创建所述容器所需的镜像。结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述共享存储为创建在所述宿主物理机上,以便于建立在所述宿主物理机上的虚拟机进行访问的存储空间。第二方面,提供了一种云环境下获取镜像的方法,所述方法应用于物理机上,包括:接收第一虚拟机发送的获取第一镜像层的第一请求消息,所述获取第一镜像层的第一请求消息包括第一镜像层的标识,其中,所述物理机为所述第一虚拟机的宿主物理机;根据所述第一镜像层的标识,确定物理机的镜像层信息表中不存在第一镜像层本文档来自技高网
...
一种云环境下获取镜像的方法、装置和系统

【技术保护点】
一种云环境下获取镜像的方法,其特征在于,包括:从远程镜像中心获取指定镜像的描述信息,所述指定镜像的描述信息包括所述指定镜像包含的各个镜像层的标识以及所述指定镜像的每个镜像层是否为允许共享的镜像层的指示信息;根据所述指定镜像的描述信息,确定虚拟机的镜像层信息表中不存在第一镜像层文件的存储地址,其中,所述第一镜像层为所述指定镜像包含的且允许共享的镜像层,所述虚拟机的镜像层信息表包括所述虚拟机获取的保存在本地的镜像层文件的存储地址和保存在所述虚拟机的宿主物理机的共享存储中的镜像层文件的存储地址;向所述宿主物理机发送获取第一镜像层的第一请求消息,所述获取第一镜像层的第一请求消息包括所述第一镜像层的标识;接收所述宿主物理机返回的第一镜像层文件在所述宿主物理机的共享存储中的存储地址,并将所述第一镜像层的标识和所述第一镜像层文件在所述宿主物理机的共享存储中的存储地址记录到所述虚拟机的镜像层信息表中。

【技术特征摘要】
1.一种云环境下获取镜像的方法,其特征在于,包括:从远程镜像中心获取指定镜像的描述信息,所述指定镜像的描述信息包括所述指定镜像包含的各个镜像层的标识以及所述指定镜像的每个镜像层是否为允许共享的镜像层的指示信息;根据所述指定镜像的描述信息,确定虚拟机的镜像层信息表中不存在第一镜像层文件的存储地址,其中,所述第一镜像层为所述指定镜像包含的且允许共享的镜像层,所述虚拟机的镜像层信息表包括所述虚拟机获取的保存在本地的镜像层文件的存储地址和保存在所述虚拟机的宿主物理机的共享存储中的镜像层文件的存储地址;向所述宿主物理机发送获取第一镜像层的第一请求消息,所述获取第一镜像层的第一请求消息包括所述第一镜像层的标识;接收所述宿主物理机返回的第一镜像层文件在所述宿主物理机的共享存储中的存储地址,并将所述第一镜像层的标识和所述第一镜像层文件在所述宿主物理机的共享存储中的存储地址记录到所述虚拟机的镜像层信息表中。2.如权利要求1所述的方法,其特征在于,所述方法还包括:根据所述指定镜像的信息,确定虚拟机的镜像层信息表中不存在第二镜像层文件的存储地址,其中,所述第二镜像层为所述指定镜像包含的且不允许共享的镜像层;向所述远程镜像中心发送获取第二镜像层的请求消息,所述获取第二镜像层的请求消息包括所述第二镜像层的标识;接收所述远程镜像中心返回的第二镜像层文件,在本地存储所述第二镜像层文件,并将所述第二镜像层的标识和所述第二镜像层文件的存储地址记录到所述虚拟机的镜像层信息表中。3.如权利要求1-2所述的方法,其特征在于,在所述从远程镜像中心获取指定镜像的描述信息之前,所述方法还包括:创建容器,确定所述虚拟机本地不存在所述指定镜像,其中所述指定镜像为创建所述容器所需的镜像。4.如权利要求1-3所述的方法,其特征在于,所述共享存储为创建在
\t所述宿主物理机上,以便于建立在所述宿主物理机上的虚拟机进行访问的存储空间。5.一种云环境下获取镜像的方法,所述方法应用于物理机上,其特征在于,接收第一虚拟机发送的获取第一镜像层的第一请求消息,所述获取第一镜像层的第一请求消息包括第一镜像层的标识,其中,所述物理机为所述第一虚拟机的宿主物理机;根据所述第一镜像层的标识,确定物理机的镜像层信息表中不存在第一镜像层文件的存储地址,其中所述物理机的镜像层信息表包括保存在所述物理机的共享存储中的镜像层文件的存储地址;向远程镜像中心发送获取第一镜像层的第二请求消息,所述获取第一镜像层的第二请求消息包括所述第一镜像层的标识;接收所述远程镜像中心返回第一镜像层文件,在所述共享存储中存储所述第一镜像层文件,并将所述第一镜像层的标识和所述第一镜像层文件的存储地址记录到所述物理机的镜像层信息表中;向所述第一虚拟机发送所述第一镜像层文件的存储地址。6.如权利要求5所述的方法,其特征在于,在所述共享存储中存储所述第一镜像层文件,并将所述第一镜像层的标识和所述第一镜像层文件的存储地址记录到所述物理机的镜像层信息表中之后,所述方法还包括:接收第二虚拟机发送的获取第一镜像层的第三请求消息,所述获取第一镜像层的第三请求消息包括所述第一镜像层的标识,其中,所述物理机为所述第二虚拟机的宿主物理机;根据所述第一镜像层的标识,确定物理机的镜像层信息表中存在所述第一镜像层文件的存储地址;将所述第一镜像层文件的存储地址发送给所述第二虚拟机。7.如权利要求5-6任一所述的方法,其特征在于,所述共享存储为创建在所述物理机上,以便于以所述物理机为宿主物理机的虚拟机进行访问的存储空间。8.一种云环境下获取镜像的虚拟机,其特征在于,包括容器镜像管理模块:其中,所述容器镜像管理模块,用于从远程镜像中心获取指定镜像的描述信息,所述指定镜像的描述信息包括所述指定镜像包含的各个镜像层的标识以及所述指定镜像的每个镜像层是否为允许共享的镜像层的指示信息;根据所述指定镜像的描述信息,确定虚拟机的镜像层信息表中不存在第一镜像层文件的存储地址,其中,所述第一镜像层为所述指定镜像包含的且允许共享的镜像层,所述虚拟机的镜像层信息表包括所述虚拟机获取的保存在本地的镜像层文件的存储地址和保存在所述虚拟机的宿主物理机的共享存储中的镜像层文件的存储地址;向所述宿主物理机发送获取第一镜像层的第一请求消息,所述获取第一镜像层的第一请求消息包括所述第一镜像层的标识;接收所述宿主物理机返回的第一镜像层文件在所述宿主物理机的共享存储中的存储地址,并将所述第一镜像层的标识和所述第一镜像层文件在所述宿主物理机的共享存储中的存储地址记录到所述虚拟机的镜像层信息表中。9.如权利要求8所述的虚拟机,其特征在于,所述虚拟机还包括私有存储,所述容器镜像管理模块,还用于根据所述指定镜像的信息,确定虚拟机的镜像层信息表中不存在第二镜像层文件的存储地址,其中,所述第二镜像层为所述指定镜像包含的且不允许共享的镜像层;向所述远程镜像中心发送获取第二镜像层的请求消息,所述获取第二镜像层的请求消息包括所述第二镜像层的标识;接收所述远程镜像中心返回的第二镜像层文件;所述私有存储,用于存储所述容器镜像管理模块接收的所述第二镜像层文件;所述容器镜像管理模块,还用于将所述第二镜像层的标识和所述第二镜像层文件在所述私有存储中的存储地址记录到所述虚拟机的镜像层信息表中。10.如权利要求8或9所述的虚拟机,其特征在于,所述虚拟机还包括容器管理模块,所述容器管理模块,用于创建容器,确定所述虚拟机本地不存在所述指定镜像,其中所述指定镜像为创建所述容器所需的镜像;向所述容器镜像管理模块发送获取指定镜像的请求,所述获取指定镜像的请求包括所述
\t指定镜像的名称;所...

【专利技术属性】
技术研发人员:姜耀国谢军安蒋飞虎胡瑞丰丁海洋
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1