CN107426258B - 一种镜像文件的上传和下载方法及装置 - Google Patents

一种镜像文件的上传和下载方法及装置 Download PDF

Info

Publication number
CN107426258B
CN107426258B CN201610346020.3A CN201610346020A CN107426258B CN 107426258 B CN107426258 B CN 107426258B CN 201610346020 A CN201610346020 A CN 201610346020A CN 107426258 B CN107426258 B CN 107426258B
Authority
CN
China
Prior art keywords
image file
fragment
layer
management server
identifier
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.)
Active
Application number
CN201610346020.3A
Other languages
English (en)
Other versions
CN107426258A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610346020.3A priority Critical patent/CN107426258B/zh
Publication of CN107426258A publication Critical patent/CN107426258A/zh
Application granted granted Critical
Publication of CN107426258B publication Critical patent/CN107426258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Abstract

本发明实施例提供一种镜像文件的上传和下载方法及装置,涉及虚拟化技术领域,能够解决大镜像文件上传和下载速度偏慢的问题。本发明将镜像文件的各镜像层以分片的形式存储在各个存储服务器中,这样当宿主机上传或下载镜像文件对应的镜像层时,可以通过管理服务器并行地将镜像层以分片的形式快速地存储至各个存储服务器中,或通过管理服务器并行地从存储服务器中获取到待下载的镜像层的分片。本发明实施例用于上传和下载容器的镜像文件。

Description

一种镜像文件的上传和下载方法及装置
技术领域
本发明涉及虚拟化技术领域,尤其涉及一种镜像文件的上传和下载方法及装置。
背景技术
容器(container)是一种内核虚拟化技术,可以提供轻量级的虚拟化,在操作系统层次上为进程提供虚拟的执行环境。一个虚拟的执行环境被称为一个容器。一个容器可以绑定特定的中央处理器(central processing unit,CPU)和内存(memory)节点,分配特定比例的CPU时间以及输入/输出(input/output,I/O)时间,限制可以使用的内存大小,提供设备(device)访问控制。
当前应用容器技术的解决方案,典型的有Docker、Rocket等。Docker和Rocket提供了分层镜像服务,即在镜像操作系统上可以叠加不同层次的镜像服务。但是Docker和Rocket的并不关注分层镜像文件的存储。目前业界提供的第三方存储服务主要有本地文件系统(local filesystem)、简单存储服务(Simple Storage Service,S3)和Swift等,其中,第三方存储是指将镜像文件存储在存储服务提供商的服务器上。但是,目前的第三方存储服务都只提供了数据分布的算法却没有提供高性能的存储引擎,这样,当容器产生大量文件时就会存在性能问题,例如会使得容器的镜像文件上传和下载速度偏慢。
发明内容
本发明实施例提供一种镜像文件的上传和下载方法及装置,能够解决大镜像文件上传和下载速度偏慢的问题。
本发明第一方面提供一种镜像文件的上传方法,包括:
管理服务器接收宿主机发送的上传镜像文件的上传请求,上传请求包括镜像文件的标识;管理服务器向宿主机发送与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;管理服务器接收宿主机根据元数据确定的镜像文件待上传的镜像层;管理服务器对镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为分片确定的存储服务器。
存储服务器可以设置在管理服务器中,也可以与管理服务器独立存储。
由此,管理服务器在接收到待上传的镜像层的数据后,通过对镜像层进行切割,得到切割后的分片,使得分片可以并行上传至确定的存储服务器中,实现了镜像文件的分布式存储,可以加快大镜像文件的上传速度。
在一种可能的设计中,管理服务器对镜像层进行切割,得到固定大小的多个分片,并为每个分片分配索引;管理服务器根据分布式算法,确定多个分片中每个分片对应的存储服务器;管理服务器将多个分片中的每个分片通过超文本传送协议HTTP请求并行上传,以将每个分片上传至为分片确定的存储服务器,对于每个分片,HTTP请求包括镜像文件的标识、待上传的镜像层的标识、分片、分片的索引以及分片的大小。
由此,管理服务器将各镜像层切割得到的多个分片按照分布式算法并行上传并存储在各个存储服务器时,可使得镜像文件上传速度加快,每个分片都与镜像文件的标识、镜像层的标识对应,并分配有索引,这样在下载镜像文件的镜像层时,可根据该分片对应的信息下载所需的镜像层的分片。
在一种可能的设计中,方法还包括:对于每个分片,管理服务器接收分片的存储信息,存储信息包括镜像文件的标识、镜像层的标识、分片的索引、分片在存储服务器中的位置信息以及分片的大小,存储位置包括存储分片的存储服务器以及分片在存储服务器上的存储位置。
由此,每个分片都与其所属的镜像层的标识、镜像文件的标识对应,并保存有分片在存储服务器中的位置信息,可以使得分片在下载时根据其对应的位置信息从各个存储服务器中获取到。
本发明第二方面提供一种镜像文件的上传方法,包括:
宿主机向管理服务器发送上传镜像文件的上传请求,上传请求包括镜像文件的标识;宿主机接收管理服务器发送的与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;宿主机根据镜像文件的标识对应的元数据确定镜像文件待上传的镜像层;宿主机向管理服务器上传镜像层。
由此,宿主机通过与管理服务器交互,可确定待上传的镜像文件中待上传的镜像层,并将镜像层上传至管理服务器,以便管理服务器对上传的镜像层进行切割得到分片,使得分片分布式存储在各个存储服务器中,以实现镜像文件的分布式存储,加快镜像文件的上传和下载速度。
在一种可能的设计中,宿主机根据镜像文件的元数据确定镜像文件待上传的镜像层包括:宿主机将镜像文件的每个镜像层的元数据与本地保存的镜像层的元数据进行比较,确定镜像层文件的每个镜像层的元数据中除宿主机本地保存的元数据以外的元数据对应的镜像层为待上传的镜像层。
由此,如果镜像文件是保存在宿主机本地服务器中,可不需要上传已保存在本地服务器中的镜像层,以节省本地服务器的存储空间。
本发明第三方面提供一种镜像文件的下载方法,包括:
管理服务器接收宿主机发送的下载镜像文件的下载请求,下载请求包括镜像文件的标识;管理服务器向宿主机发送与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;管理服务器接收宿主机根据镜像文件的标识对应的元数据确定的镜像文件待下载的镜像层的标识;待下载的镜像层包括多个分片;管理服务器根据镜像层的标识确定多个分片中每个分片所在的存储服务器;管理服务器从每个分片所在的存储服务器中获取多个分片,并将多个分片发送给宿主机。
其中,各个存储服务器可以部署在管理服务器中,也可以与管理服务器独立存储,本发明不做限定。
由此,当管理服务器根据待下载的镜像层的标识确定待下载的镜像层所在的各个存储服务器时,可并行从各个存储服务器中获取镜像层的分片,以在镜像层的分布式存储的情况下,快速下载大镜像文件。
在一种可能的设计中,管理服务器可以根据镜像层的标识与镜像层的每个分片的存储信息确定镜像层的每个分片所在的存储服务器,存储信息包括镜像文件的标识、镜像层的标识、分片的索引、分片的存储位置以及分片的大小,存储位置包括存储分片的存储服务器以及分片在存储服务器上的存储位置。
由此,每个分片都与其所属的镜像层的标识、镜像文件的标识对应,以便根据对应关系下载待下载的镜像层的分片。
在一种可能的设计中,管理服务器从各个存储服务器中获取镜像层的分片,并将分片发送给宿主机包括:管理服务器根据多个分片的索引对多个分片进行排序,并按多个分片的顺序将多个分片发送给宿主机。
由此,管理服务器在根据存储信息并行地从各个存储服务器中获取待下载的镜像层的分片后,可根据其索引按顺序将分片发送给宿主机,以实现大镜像文件的快速下载。
本发明第四方面提供一种镜像文件的下载方法,包括:
宿主机向管理服务器发送下载镜像文件的第一下载请求,第一下载请求包括镜像文件的标识;宿主机接收管理服务器发送的与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;宿主机根据镜像文件的标识对应的元数据确定镜像文件待下载的镜像层的标识,并将待下载的镜像层的标识发送给管理服务器,以获取待下载的镜像层的分片。
由此,宿主机在将待下载的镜像层的标识发送给管理服务器后,可用于管理服务器根据镜像层的标识并行地从各个存储服务器中获取待下载的镜像层的分片,并发送给宿主机。
在一种可能的设计中,宿主机根据镜像文件的标识对应的元数据确定镜像文件待下载的镜像层的标识包括:
宿主机将镜像文件的每个镜像层的元数据与本地保存的镜像层的元数据进行比较,确定镜像文件的每个镜像层的元数据中除宿主机本地保存的元数据以外的元数据对应的镜像层为待下载的镜像层。
在一种可能的设计中,宿主机可以接收管理服务器发送的待下载的镜像层的分片;
在一种可能的设计中,宿主机接收管理服务器发送的第一响应,第一响应包括另一宿主机的地址和另一宿主机需下载的镜像层的标识;宿主机确定另一宿主机需下载的镜像层的标识中是否包括待下载的镜像层的标识;若另一宿主机需下载的镜像层的标识中包括待下载的镜像层的标识,且宿主机与另一宿主机属于同一局域网,则宿主机向另一宿主机发送第二下载请求,第二下载请求包括待下载的镜像层的标识;宿主机在另一宿主机下载完待下载的镜像层的分片后,接收另一宿主机发送的待下载的镜像层的分片。
由此,如果处于同一局域网中的有两个宿主机都需要下载同一镜像文件,即待下载的镜像文件具有相同的标识,如果另一宿主机已经下载了该镜像文件,宿主机可以不需要向远程的管理服务器获取待下载的镜像层,而是可以向另一宿主机请求下载,可以降低大量的大镜像文件远程下载的网络拥塞概率。
本发明第五方面提供一种管理服务器,包括用于实现第一方面及第一方面的各个实现方式中的方法的多个单元,所述多个单元包括:
接收单元,用于接收宿主机发送的上传镜像文件的上传请求,上传请求包括镜像文件的标识;发送单元,用于向宿主机发送与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;接收单元,还用于接收宿主机根据元数据确定的镜像文件待上传的镜像层;处理单元,用于对镜像层进行切割;发送单元,还用于将切割后得到的多个分片并行上传,以将每个分片上传至为分片确定的存储服务器。
本发明第六方面提供一种宿主机,包括用于实现第二方面及第二方面的各个实现方式中的方法的多个单元,所述多个单元包括:
发送单元,用于向管理服务器发送上传镜像文件的上传请求,上传请求包括镜像文件的标识;接收单元,用于接收管理服务器发送的与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;处理单元,用于根据镜像文件的标识对应的元数据确定镜像文件待上传的镜像层;发送单元,还用于向管理服务器上传镜像层。
本发明第七方面提供一种管理服务器,包括用于实现第三方面及第三方面的各个实现方式中的方法的多个单元,所述多个单元包括:
接收单元,用于接收宿主机发送的下载镜像文件的下载请求,下载请求包括镜像文件的标识;发送单元,用于向宿主机发送与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;接收单元,还用于接收宿主机根据镜像文件的标识对应的元数据确定的镜像文件待下载的镜像层的标识;待下载的镜像层包括多个分片;处理单元,用于根据镜像层的标识确定多个分片中每个分片所在的存储服务器;处理单元,还用于从每个分片所在的存储服务器中获取多个分片;发送单元,还用于将多个分片发送给宿主机。
第八方面,提供一种宿主机,包括用于实现第四方面及第四方面的各个实现方式中的方法的多个单元,所述多个单元包括:
发送单元,用于向管理服务器发送下载镜像文件的第一下载请求,第一下载请求包括镜像文件的标识;接收单元,用于接收管理服务器发送的与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;处理单元,用于根据镜像文件的标识对应的元数据确定镜像文件待下载的镜像层的标识;发送单元,还用于将待下载的镜像层的标识发送给管理服务器;接收单元,还用于获取待下载的镜像层的分片。
本发明第一方面和第三方面的方法可以由同一个管理服务器实现,也可以由不同的管理服务器来实现。类似地,第五方面的管理服务器和第七方面的管理服务器可以是同一个管理服务器,也可以是不同的管理服务器。
本发明第二方面和第四方面的方法可以由同一个宿主机实现,也可以由不同的宿主机来实现。类似地,第六方面的宿主机和第八方面的宿主机可以是同一个宿主机,也可以是不同的宿主机。
本发明第九方面提供了一种设备,包括存储器和处理器,所述存储器用于存储指令,所述处理器用于调用所述指令,以实现所述第一至第四方面中任意一方面的方法。
本发明实施例提供一种镜像文件的上传方法和装置,宿主机向管理服务器发送上传镜像文件的上传请求,上传请求包括镜像文件的标识,管理服务器向宿主机发送与镜像文件的标识对应的元数据,镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据,宿主机根据镜像文件的标识对应的元数据确定镜像文件待上传的镜像层,管理服务器接收宿主机根据元数据确定的镜像文件待上传的镜像层,管理服务器对镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为分片确定的存储服务器,这样,通过管理服务器将从宿主机接收到的镜像文件以镜像层为单位进行切割,得到切割后的分片,并将所有分片并行上传,以将每个分片上传至为分片确定的存储服务器,可以实现镜像文件的分布式存储,加快容器的大镜像文件的上传速度;以及
本发明实施例提供一种镜像文件的下载方法和装置,宿主机向管理服务器发送下载镜像文件的第一下载请求,第一下载请求包括镜像文件的标识,管理服务器向宿主机发送与镜像文件的标识对应的元数据,镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;宿主机根据镜像文件的标识对应的元数据确定镜像文件待下载的镜像层的标识,待下载的镜像层包括多个分片,并将待下载的镜像层的标识发送给管理服务器,管理服务器根据镜像层的标识确定多个分片中每个分片所在的存储服务器,管理服务器从每个分片所在的存储服务器中获取多个分片,将多个分片发送给宿主机,由此,通过将镜像文件以分片的形式存储在各个存储服务器中,宿主机在下载镜像文件时,可以从各个存储服务器中并行地获取待下载的镜像层的分片,可以加快大镜像文件的下载速度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种镜像层的结构示意图;
图2为本发明实施例提供的另一种镜像层的结构示意图;
图3为本发明实施例提供的再一种镜像层的结构示意图;
图4为本发明实施例提供的一种镜像服务管理的架构示意图;
图5为本发明实施例提供的另一种镜像服务管理的架构示意图;
图6为本发明实施例提供的一种镜像文件的上传方法的流程示意图;
图7为本发明实施例提供的一种镜像文件的下载方法的流程示意图;
图8为本发明实施例提供的一种管理服务器的结构示意图;
图9为本发明实施例提供的一种宿主机的结构示意图;
图10为本发明实施例提供的另一种管理服务器的结构示意图;
图11为本发明实施例提供的另一种宿主机的结构示意图;
图12为本发明实施例提供的另一种管理服务器的结构示意图;
图13为本发明实施例提供的再一种宿主机的结构示意图;
图14为本发明实施例提供的再一种管理服务器的结构示意图;
图15为本发明实施例提供的再一种宿主机的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
容器的镜像文件包括多个只读的(read-only)镜像层(image layer)、最上层的可读写的应用容器的层以及底层组件。镜像层可以将容器中零星的数据整合起来,图1为本发明实施例提供的一种镜像层的结构示意图,通常一个镜像层包括该镜像层对应的元数据(metadata,MD)、该镜像层的标识(identifier,ID)以及一个指向父层的指针(point toparent layer)。元数据为该镜像层的描述信息,包括在使用该镜像层构建容器和/或运行容器时需要使用的信息,还包括该镜像层的父层的信息或者该镜像层的子层的信息,图2为本发明实施例提供的另一种镜像层的结构示意图,只读层和读写层(read-write layer)都包含元数据。如果一个层没有指针,说明该层处于最底层,图3为本发明实施例提供的再一种镜像层的结构示意图,ID为70618b6e8070的只读层为最底层。
当前的镜像服务管理的主要架构如图4所示,为本发明实施例提供的一种镜像服务管理的架构示意图,包括客户端(client)、容器的守护进程(daemon)以及注册表(registry)。daemon运行在宿主机上,是容器的守护进程,用户可以通过client与daemon进行交互;client是用户使用容器的界面,client与daemon通信并将通信结果返回给用户,client也可以通过socket或者RESTful api访问远程的daemon;registry用于共享和管理镜像文件,用户可以向registry上传镜像文件或者下载registry中的镜像文件。registry一般由管理服务器维护。
当需要上传镜像文件时,用户可以通过client的push命令发起上传镜像文件的操作,daemon会进行多次与后端存储系统的交互,最后一次交互可以上传镜像文件的镜像层的数据到registry。如果镜像文件使用默认的本地存储,registry可以将镜像文件写入宿主机本地的磁盘中,如果使用远程存储,registry可以分布式存储该镜像文件。
当需要下载镜像文件时,用户可通过client的pull命令请求下载镜像文件,daemon会和registry进行交互,将镜像文件从registry逐层下载至daemon,使得daemon根据云数据完成镜像的组合,以运行该镜像启动容器。
但是,当容器的镜像产生大量的文件时就会存在上传或下载镜像文件速度偏慢的问题,且当前并没有提供高性能的存储引擎。本发明设计了一种利用镜像文件分层的结构,对各个镜像层进行切割得到分片并存储在各个存储服务器中,可实现镜像文件分布式的快速存储,这样在下载时可以先获取镜像文件的元数据以及各分片的存储位置,并行快速的从各个存储服务器中获取到镜像层的分片,以快速的获取到完整的镜像文件。
本发明的镜像服务管理的架构可以包括宿主机、管理服务器和存储服务器,宿主机可以包括上述cilent和daemon,管理服务器可以包括上述registry。可选的,图5为本发明实施例提供的另一种镜像服务管理的架构示意图,包括上述client、daemon和registry,还可以包括镜像服务器(image server)、存储服务器(storage server)、中心服务器(storage master)以及元服务器(meta server),其中image server、storage server、storage master以及meta server可以分别独立部署在不同的服务器中,也可以其中的多个部署在同一服务器或上述管理服务器中。例如当用户访问量少,容器数量较少时,可以将image server、storage master和meta server均部署在管理服务器中;当用户访问量大,容器的数量多时,为了提升镜像文件上传和下载的处理效率,可以将image server、storage master和meta server均独立部署,以降低管理服务器的访问压力。image server可以理解为一个代理服务器,相当于存储服务的接入层,可选地,registry中可以有插件(plugin),当registry接收到上传镜像文件的请求或下载镜像文件的请求时,可以通过该插件将该请求发送给image server。Image Server中缓存有storage server的信息,storage server中存储有镜像层的分片,一个image server可以与一个或多个storageserver通信,image server可以根据网络带宽、存储距离以及分布式算法等多种因素,动态地选择storage server完成镜像文件的上传或下载。storage Server与storage master可组成一个通用的对象存储服务,storage master是中心节点,可以缓存所有storageserver的信息,storage server是最终镜像文件的存储服务器。一个或多个storageserver上的数据可以构成一个组数据,即一个镜像层的数据,该组数据拥有唯一的ID,与镜像文件的每个镜像层的ID对应。
图6所示为本发明实施例提供的一种镜像文件的上传方法的流程示意图,包括:
601、宿主机向管理服务器发送上传镜像文件的上传请求,上传请求包括镜像文件的标识。
宿主机中包括上述client和daemon,用户需要上传镜像文件时,通过client发起push命令,即发送上传镜像文件的上传请求,该上传请求中包括镜像文件的标识(imageID),该上传请求由client发送给宿主机中容器的守护进程daemon,daemon会和管理服务器中的registry进行交互,daemon将该上传请求发送给管理服务器中的registry。
如果daemon部署在宿主机上,daemon也可以理解为本地服务器。
602、管理服务器向宿主机发送与镜像文件的标识对应的元数据。
管理服务器中的registry在接收到上传请求后,会根据上传请求中的image ID获取该镜像文件的元数据,并将该元数据发送给宿主机,其中,image ID对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据。一个镜像层的元数据包括镜像层的描述信息。
603、宿主机根据镜像文件的标识对应的元数据确定镜像文件待上传的镜像层。
daemon在接收到管理服务器的registry发送的元数据之后,由于不同的镜像文件中可能存在相同的镜像层,相同的镜像层对应的元数据相同,因此,当镜像文件是需要上传至宿主机本地服务器时,从registry获取到的元数据中如果存在与本地保存的元数据相同的元数据,则相同的元数据对应的镜像层则可以不需要上传,即daemon可以将镜像文件的每个image ID对应的元数据与本地保存的镜像层的元数据进行比较,确定镜像文件的每个image ID对应的元数据中除宿主机本地保存的元数据以外的元数据对应的镜像层为待上传的镜像层。
604、管理服务器接收宿主机根据元数据确定的镜像文件待上传的镜像层。
当daemon确定待上传的镜像层之后,daemon将待上传的镜像层上传至管理服务器的registry。其中,daemon在上传待上传的镜像层时,可并行将所有待上传的镜像层上传至registry,而不需要等待前面的镜像层是否传输完毕再上传下一镜像层。
605、管理服务器对镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为分片确定的存储服务器。
registry中可设置plugin,该plugin可以对上传过来的镜像层进行切割,得到固定大小的分片(block),并为每个分片分配索引,用于表征分片的顺序。而后,registry可以并行地将分片分成固定大小的分片组,并将分片组分别上传至对应的image server,即这里的image server可以有多个,每个image server接收到不同的分片组,具体可以通过向各个image server发送超文本传送协议(Hypertext Transfer Protocol,HTTP)请求,对于每个分片,该HTTP请求中携带该分片的存储信息,该存储信息具体包括image ID、镜像层的标识(layer ID)、分片、分片的大小以及分片的索引,还可以包括存储的位置信息,该位置信息用于指示将该分片所属的镜像层存储至宿主机本地服务器中还是存储至第三方的存储服务器中。一个HTTP请求中可以携带一个分片的信息,也可以携带多个分片的信息。
image Sever在接收到该HTTP请求后,可以先向storage master发送同步请求,以从storage master中获取到storage server的信息,例如该信息中指示了各个storageserver的存储状况、网络带宽以及与registry的存储距离等,image server在接收到storage master返回的信息后,可以根据分布式算法确定一组storage server,而后将接收到的多个分片通过HTTP消息上传至为每个分片确定的storage server中,storageserver在为接收到的分片分配存储位置并存储完毕后,可以将携带分片在storage server中的位置信息的存储信息返回给image server,该存储信息中还包括分片的位置信息对应的分片的索引、分片的大小、镜像层的标识、镜像文件的标识等,image server在接收到该存储信息后,可以将存储信息通过HTTP消息提交给meta server保存,同时,image server还可以向registry返回上传成功响应,使得registry再向宿主机中的daemon返回上传成功响应,以通知用户镜像文件上传成功。其中,meta server保存存储信息,可以使得用户在下载镜像文件时,通过registry向meta server获取到待下载的镜像文件的存储信息,以便根据存储信息从相应的storage server中下载镜像文件。
需要说明的是,本发明中对各镜像层进行切割以得到分片不限于在管理服务器中实现,也可以是宿主机在上传待上传的镜像层之前,宿主机对各镜像层进行切割得到分片,再将分片发送至管理服务器中,本发明不做限定。
需要说明的是,上述registry与image server之间的交互、image server与storage server之间的交互不限于HTTP消息格式,也可以是HTTP的安全版(Hyper TextTransfer Protocol over Secure Socket Layer,HTTPS)消息格式或者其它的自定义消息格式,本发明不做限定。
因此,本发明实施例提供一种镜像文件的上传方法,宿主机向管理服务器发送上传镜像文件的上传请求,上传请求包括镜像文件的标识,管理服务器向宿主机发送与镜像文件的标识对应的元数据,宿主机根据镜像文件的标识对应的元数据确定镜像文件待上传的镜像层,管理服务器接收宿主机根据元数据确定的镜像文件待上传的镜像层,管理服务器对镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为分片确定的存储服务器,这样,通过管理服务器将从宿主机接收到的镜像文件以镜像层为单位进行切割,得到切割后的多个分片,并将所有分片并行上传,以将每个分片上传至为分片确定的存储服务器,可以实现镜像文件的分布式存储,加快容器的大镜像文件的上传速度。
图7为本发明实施例提供的一种镜像文件的下载方法的流程示意图,包括:
701、宿主机向管理服务器发送下载镜像文件的第一下载请求,第一下载请求包括镜像文件的标识。
用户可通过宿主机中的client发送第一下载请求即pull请求给宿主机中的daemon,daemon会和管理服务器中的registry进行交互,将pull请求中的image ID发送给管理服务器中的registry,以获取镜像文件对应的元数据。
702、管理服务器向宿主机发送与镜像文件的标识对应的元数据。
管理服务器中的registry在接收到第一下载请求后,会根据第一下载请求中的image ID获取该镜像文件的元数据,并将该元数据发送给宿主机。image ID对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据。一个镜像层的元数据包括镜像层的描述信息。
703、宿主机根据镜像文件的标识对应的元数据确定镜像文件待下载的镜像层的标识,待下载的镜像层包括多个分片,并将待下载的镜像层的标识发送给管理服务器。
daemon在接收到管理服务器的registry发送的元数据之后,由于不同的镜像文件中可能存在相同的镜像层,相同的镜像层对应的元数据相同,因此,如果从registry获取到的元数据中如果存在与本地保存的元数据相同的元数据,则相同的元数据对应的镜像层可以不需要下载,即daemon可以将镜像文件的每个image ID对应的元数据与本地保存的镜像层的元数据进行比较,确定镜像文件的每个image ID对应的元数据中除宿主机本地保存的元数据以外的元数据对应的镜像层为待下载的镜像层,并将确定的待下载的镜像层的标识(layer-ID)发送给管理服务器。
704、管理服务器根据镜像层的标识确定多个分片中每个分片所在的存储服务器。
管理服务器中的registry在获知待下载的镜像层的layer-ID后,可以将待下载的镜像层的layer-ID发送给meta server,由于meta server中保存有各个镜像层的layer-ID对应的image server的地址信息,即registry可以从meta server中获知与各镜像层对应的image server的地址信息。registry将获取到的image server的地址信息通知给宿主机,宿主机中的daemon可以根据image server的地址信息并行地向对应的image server发送下载请求,该下载请求中携带待下载的镜像层的layer-ID,image server在收到该下载请求后,从meta server中获取各镜像层的每个分片的存储信息,存储信息包括image ID、layer-ID、分片的索引、分片的存储位置以及分片的大小,该存储位置包括存储分片的storage server的地址信息以及分片在storage server上的存储位置。
705、管理服务器从每个分片所在的存储服务器中获取多个分片。
image server在接收到镜像层的分片的存储信息后,可以根据获取的storageserver的地址信息并行地向各个storage server发送分片下载请求,该分片下载请求中包括该存储信息,以获取根据该存储信息确定的待下载的镜像层的多个分片。image server在接收到对应的storage server返回的多个分片后,可以按照多个分片的索引将多个分片进行排序,以便按照多个分片的顺序将多个分片发送给宿主机。
706、管理服务器将多个分片发送给宿主机。
宿主机在接收到待下载的镜像层的分片后,下载流程结束。由于本发明将容器的镜像文件以分片的形式分布式存储在多个storage server中,在下载镜像文件时,可以并行从多个storage server中下载得到镜像文件各镜像层的分片,加快了容器的大镜像文件的下载速度。
此外,如果处于同一局域网中的有两个宿主机都需要下载同一镜像文件,即待下载的镜像文件具有相同的image ID,如果另一宿主机已经下载了该镜像文件,宿主机可以不需要向远程的管理服务器获取待下载的镜像层,而是可以向另一宿主机请求下载,可以降低大量的大镜像文件远程下载的网络拥塞概率。
示例性的,宿主机在将待下载的镜像层的标识发送给管理服务器后,如果管理服务器确定有另一宿主机正在下载或已下载完宿主机所需的镜像文件,管理服务器可以向宿主机发送第一响应,第一响应包括另一宿主机的地址和另一宿主机需下载的镜像层的标识,宿主机确定另一宿主机需下载的镜像层的标识中是否包括宿主机待下载的镜像层的标识,若另一宿主机需下载的镜像层的标识中包括待下载的镜像层的标识,说明另一宿主机下载了宿主机需下载的镜像层,如果宿主机确定与另一宿主机属于同一局域网,宿主机可以不需要向远程的第三服务器请求下载待下载的镜像层,而是可以向另一宿主机发送第二下载请求,第二下载请求中包括待下载的镜像层的标识,以在另一宿主机下载完待下载的镜像层的分片后,接收另一宿主机发送的待下载的镜像层的分片。或者,宿主机已经下载了镜像文件的前n层,管理服务器通知宿主机使得宿主机获知另一宿主机已经下载完镜像文件,宿主机便可以从另一宿主机下载剩余的m-n层(镜像文件总层数为m),以实现本地镜像文件的资源共享,降低了大量大镜像文件远程下载的网络拥塞概率。
需要说明的是,本发明的方案不仅适用于Docker和Rocket的容器,也适用于基于叠加文件系统(如aufs或overlay文件系统)的所有的容器。
因此,本发明实施例提供一种镜像文件的下载方法,宿主机向管理服务器发送下载镜像文件的第一下载请求,第一下载请求包括镜像文件的标识,管理服务器向宿主机发送与镜像文件的标识对应的元数据,宿主机根据镜像文件的标识对应的元数据确定镜像文件待下载的镜像层的标识,待下载的镜像层包括多个分片,并将待下载的镜像层的标识发送给管理服务器,管理服务器根据镜像层的标识确定多个分片中每个分片所在的存储服务器,管理服务器从每个分片所在的存储服务器中获取多个分片,将多个分片发送给宿主机,由此,通过将镜像文件以分片的形式存储在各个存储服务器中,宿主机在下载镜像文件时,可以从各个存储服务器中并行地获取待下载的镜像层的分片,可以加快大镜像文件的下载速度。
图8为本发明实施例提供的一种管理服务器08的结构示意图,包括:
接收单元081,用于接收宿主机发送的上传镜像文件的上传请求,上传请求包括镜像文件的标识;
发送单元082,用于向宿主机发送与镜像文件的标识对应的元数据,镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;
接收单元081,还用于接收宿主机根据元数据确定的镜像文件待上传的镜像层;
处理单元083,用于对镜像层进行切割;
发送单元082,还用于将切割后得到的多个分片并行上传,以将每个分片上传至为分片确定的存储服务器。
可选的,处理单元083用于:对镜像层进行切割,得到固定大小的多个分片,并为每个分片分配索引;
根据分布式算法,确定多个分片中每个分片对应的存储服务器;
发送单元082,用于将多个分片中的每个分片通过超文本传送协议HTTP请求上传至各自对应的存储服务器,对于每个分片,HTTP请求包括镜像文件的标识、待上传的镜像层的标识、分片、分片的索引以及分片的大小。
可选的,接收单元081还用于:对于每个分片,接收分片的存储信息,存储信息包括镜像文件的标识、镜像层的标识、分片的索引、分片在存储服务器中的位置信息以及分片的大小。
可选的,发送单元082还用于:在确定多个分片被成功存储后,向宿主机发送上传成功响应。
本发明实施例提供一种管理服务器,管理服务器接收宿主机发送的上传镜像文件的上传请求,上传请求包括镜像文件的标识,而后接收宿主机根据管理服务器发送的镜像文件的标识对应的元数据确定的镜像文件待上传的镜像层,管理服务器对镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为分片确定的存储服务器,这样,通过管理服务器将从宿主机接收到的镜像文件以镜像层为单位进行切割,得到切割后的分片,并将所有分片并行上传,以将每个分片上传至为分片确定的存储服务器,可以实现镜像文件的分布式存储,加快容器的大镜像文件的上传速度。
图9为本发明实施例提供的一种宿主机09的结构示意图,包括:
发送单元091,用于向管理服务器发送上传镜像文件的上传请求,上传请求包括镜像文件的标识;
接收单元092,用于接收管理服务器发送的与镜像文件的标识对应的元数据,镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;
处理单元093,用于根据镜像文件的标识对应的元数据确定镜像文件待上传的镜像层;
发送单元091,还用于向管理服务器上传镜像层。
可选的,处理单元093可以用于:将镜像文件的每个镜像层的元数据与本地保存的镜像层的元数据进行比较,确定镜像文件的每个镜像层的元数据中除宿主机本地保存的元数据以外的元数据对应的镜像层为待上传的镜像层。
可选的,接收单元092还用于:接收管理服务器发送的上传成功响应。
由此,宿主机通过与管理服务器交互,可确定待上传的镜像文件中待上传的镜像层,并将镜像层上传至管理服务器,以便管理服务器对上传的镜像层进行切割得到分片,使得分片分布式存储在各个存储服务器中,以实现镜像文件的分布式存储,加快镜像文件的上传和下载速度。
图10为本发明实施例提供的另一种管理服务器10的结构示意图,包括:
接收单元101,用于接收宿主机发送的下载镜像文件的下载请求,下载请求包括镜像文件的标识;
发送单元102,用于向宿主机发送与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;
接收单元101,还用于接收宿主机根据镜像文件的标识对应的元数据确定的镜像文件待下载的镜像层的标识;待下载的镜像层包括多个分片;
处理单元103,用于根据镜像层的标识确定多个分片中每个分片所在的存储服务器;
处理单元103,还用于从每个分片所在的存储服务器中获取多个分片;
发送单元102,还用于将分片发送给宿主机。
可选的,处理单元103可以用于:根据镜像层的标识与镜像层的每个分片的存储信息确定镜像层的每个分片所在的存储服务器,存储信息包括镜像文件的标识、镜像层的标识、分片的索引、分片的存储位置以及分片中每个分片的大小,存储位置包括存储分片的存储服务器以及分片在存储服务器上的存储位置。
可选的,处理单元103用于:根据存储信息从各个存储服务器中获取多个分片;根据多个分片的索引对多个分片进行排序;
发送单元102可以用于:按多个分片的顺序将多个分片发送给宿主机。
由此,当管理服务器根据待下载的镜像层的标识确定待下载的镜像层的分片所在的各个存储服务器时,可并行从各个存储服务器中获取镜像层的分片,以在镜像层的分布式存储的情况下,快速下载大镜像文件。
图11为本发明实施例提供的另一种宿主机11的结构示意图,包括:
发送单元111,用于向管理服务器发送下载镜像文件的第一下载请求,第一下载请求包括镜像文件的标识;
接收单元112,用于接收管理服务器发送的与镜像文件的标识对应的元数据,镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;
处理单元113,用于根据镜像文件的标识对应的元数据确定镜像文件待下载的镜像层的标识;
发送单元111,还用于将待下载的镜像层的标识发送给管理服务器;
接收单元112,还用于获取待下载的镜像层对应的分片。
可选的,处理单元113可以用于:将镜像文件的每个镜像层的元数据与本地保存的镜像层的元数据进行比较,确定镜像文件的每个镜像层的元数据中除宿主机本地保存的元数据以外的元数据对应的镜像层为待下载的镜像层。
可选的,接收单元112可以用于:接收管理服务器发送的待下载的镜像层对应的分片。
可选的,接收单元112可以用于:接收管理服务器发送的第一响应,第一响应包括另一宿主机的地址和另一宿主机需下载的镜像层的标识;
处理单元113可以用于:确定另一宿主机需下载的镜像层的标识中是否包括待下载的镜像层的标识;
发送单元111用于:若另一宿主机需下载的镜像层的标识中包括待下载的镜像层的标识,且宿主机确定与另一宿主机属于同一局域网,则向另一宿主机发送第二下载请求,第二下载请求包括待下载的镜像层的标识;
接收单元112用于:在另一宿主机下载完待下载的镜像层的分片后,接收另一宿主机发送的待下载的镜像层对应的分片。
由此,宿主机在将待下载的镜像层的标识发送给管理服务器后,可用于管理服务器根据镜像层的标识并行地从各个存储服务器中获取待下载的镜像层的分片,并发送给宿主机。
图12为本发明实施例提供的另一种管理服务器12的结构示意图,包括:存储器121、处理器122、接收器123以及发射器124。处理器122用于对管理服务器的动作进行控制管理。例如,发射器124用于支持管理服务器执行图6中的过程602,接收器123用于支持管理服务器执行图6中的过程604,处理器122用于支持管理服务器执行图6中的过程605,和/或用于本发明实施例中所描述的技术的其它过程。存储器121用于存储管理服务器的程序代码和数据。网络接口用于支持管理服务器与其它网络实体的通信,包括接收器123和发射器124。例如,网络接口用于支持管理服务器与其它服务器以及宿主机进行通信。
具体地,接收器123执行本发明实施例可用于接收宿主机发送的上传镜像文件的上传请求,上传请求包括镜像文件的标识;发射器124执行本发明实施例可用于向宿主机发送与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;接收器123执行本发明实施例可用于接收宿主机根据元数据确定的镜像文件待上传的镜像层;处理器102执行本发明实施例可用于对镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为分片确定的存储服务器。
处理器122相当于图8所示的实施例中的处理单元083,其具体实现方式可参见处理单元083,接收器123相当于图8所示的实施例中的接收单元081,其具体实现方式可参见接收单元081,发射器124相当于图8所示的实施例中的发送单元082,其具体实现方式可参见发送单元082。
本发明实施例提供一种管理服务器,管理服务器接收宿主机发送的上传镜像文件的上传请求,上传请求包括镜像文件的标识,而后接收宿主机根据管理服务器发送的镜像文件的标识对应的元数据确定的镜像文件待上传的镜像层,管理服务器对镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为分片确定的存储服务器,这样,通过管理服务器将从宿主机接收到的镜像文件以镜像层为单位进行切割,得到切割后的分片,并将所有分片并行上传,以将每个分片上传至为分片确定的存储服务器,可以实现镜像文件的分布式存储,加快容器的大镜像文件的上传速度。
图13为本发明实施例提供的再一种宿主机13的结构示意图,包括:存储器131、处理器132、接收器133以及发射器134。处理器132用于对管理服务器的动作进行控制管理。例如,处理器132用于支持宿主机执行图6中的过程601和603,和/或用于本发明实施例中所描述的技术的其它过程。存储器131用于存储宿主机的程序代码和数据。网络接口用于支持宿主机与其它网络实体的通信,包括接收器133和发射器134。例如,网络接口用于支持宿主机与其它服务器以及管理服务器进行通信。
具体地,发射器134执行本发明实施例可用于向管理服务器发送上传镜像文件的上传请求,上传请求包括镜像文件的标识;接收器133执行本发明实施例可用于接收管理服务器发送的与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;处理器132执行本发明实施例可用于根据镜像文件的标识对应的元数据确定镜像文件待上传的镜像层;发射器134执行本发明实施例可用于向管理服务器上传镜像层。
处理器132相当于图9所示的实施例中的处理单元093,其具体实现方式可参见处理单元093,接收器133相当于图9所示的实施例中的接收单元092,其具体实现方式可参见接收单元092,发射器134相当于图9所示的实施例中的发送单元091,其具体实现方式可参见发送单元091。
由此,宿主机通过与管理服务器交互,可确定待上传的镜像文件中待上传的镜像层,并将镜像层上传至管理服务器,以便管理服务器对上传的镜像层进行切割得到分片,使得分片分布式存储在各个存储服务器中,以实现镜像文件的分布式存储,加快镜像文件的上传和下载速度。
图14为本发明实施例提供的再一种管理服务器14的结构示意图,包括:存储器141、处理器142、接收器143以及发射器144。处理器142用于对管理服务器的动作进行控制管理。例如,处理器142用于支持管理服务器执行图7中的过程702、704、705和706,和/或用于本发明实施例中所描述的技术的其它过程。存储器141用于存储管理服务器的程序代码和数据。网络接口用于支持管理服务器与其它网络实体的通信,包括接收器143和发射器144。例如,网络接口用于支持管理服务器与其它服务器以及宿主机进行通信。
具体地,接收器143执行本发明实施例可用于接收宿主机发送的下载镜像文件的下载请求,下载请求包括镜像文件的标识;发射器144执行本发明实施例可用于向宿主机发送与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;接收器143执行本发明实施例可用于接收宿主机根据镜像文件的标识对应的元数据确定的镜像文件待下载的镜像层的标识;待下载的镜像层包括多个分片;处理器142执行本发明实施例可用于根据镜像层的标识确定多个分片中每个分片所在的存储服务器;处理器142执行本发明实施例可用于从每个分片所在的存储服务器中获取多个分片;发射器144执行本发明实施例可用于将多个分片发送给宿主机。
处理器142相当于图10所示的实施例中的处理单元103,其具体实现方式可参见处理单元103,接收器143相当于图10所示的实施例中的接收单元101,其具体实现方式可参见接收单元101,发射器144相当于图10所示的实施例中的发送单元102,其具体实现方式可参见发送单元102。
由此,当管理服务器根据待下载的镜像层的标识确定待下载的镜像层的分片所在的各个存储服务器时,可并行从各个存储服务器中获取镜像层的分片,以在镜像层的分布式存储的情况下,快速下载大镜像文件。
图15为本发明实施例提供的再一种宿主机15的结构示意图,包括:存储器151、处理器152、接收器153以及发射器154。处理器152用于对宿主机的动作进行控制管理。例如,处理器152用于支持宿主机执行图7中的过程701和703,和/或用于本发明实施例中所描述的技术的其它过程。存储器151用于存储宿主机的程序代码和数据。网络接口用于支持宿主机与其它网络实体的通信,包括接收器153和发射器154。例如,网络接口用于支持宿主机与其它服务器以及管理服务器进行通信。
具体地,发射器154执行本发明实施例可用于向管理服务器发送下载镜像文件的第一下载请求,第一下载请求包括镜像文件的标识;接收器153执行本发明实施例可用于接收管理服务器发送的与镜像文件的标识对应的元数据;镜像文件的标识对应的元数据包括管理服务器中存储的镜像文件的每个镜像层的元数据;处理器152执行本发明实施例可用于根据镜像文件的标识对应的元数据确定镜像文件待下载的镜像层的标识;发射器154执行本发明实施例可用于将待下载的镜像层的标识发送给管理服务器;接收器153执行本发明实施例可用于获取待下载的镜像层对应的分片。
处理器152相当于图11所示的实施例中的处理单元113,其具体实现方式可参见处理单元113,接收器153相当于图11所示的实施例中的接收单元112,其具体实现方式可参见接收单元112,发射器154相当于图11所示的实施例中的发送单元111,其具体实现方式可参见发送单元111。
由此,宿主机在将待下载的镜像层的标识发送给管理服务器后,可用于管理服务器根据镜像层的标识并行地从各个存储服务器中获取待下载的镜像层的分片,并发送给宿主机。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,简称ROM)、随机存取存储器(random access memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (26)

1.一种镜像文件的上传方法,其特征在于,包括:
管理服务器接收宿主机发送的上传镜像文件的上传请求,所述上传请求包括所述镜像文件的标识;
所述管理服务器向所述宿主机发送与所述镜像文件的标识对应的元数据,所述镜像文件的标识对应的元数据包括所述管理服务器中存储的所述镜像文件的每个镜像层的元数据;
所述管理服务器接收所述宿主机根据所述元数据确定的所述镜像文件待上传的镜像层;
所述管理服务器对所述镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为所述分片确定的存储服务器。
2.根据权利要求1所述的方法,其特征在于,所述管理服务器对所述镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为所述分片确定的存储服务器包括:
所述管理服务器对所述镜像层进行切割,得到固定大小的多个分片,并为每个分片分配索引;
所述管理服务器根据分布式算法,确定所述多个分片中每个分片对应的存储服务器;
所述管理服务器将所述多个分片中的每个分片通过超文本传送协议HTTP请求并行上传至各自对应的存储服务器,对于每个分片,所述HTTP请求包括所述镜像文件的标识、所述待上传的镜像层的标识、所述分片、所述分片的索引以及所述分片的大小。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
对于每个分片,所述管理服务器接收所述分片的存储信息,所述存储信息包括所述镜像文件的标识、所述镜像层的标识、所述分片的索引、所述分片的存储位置以及所述分片的大小,所述存储位置包括存储所述分片的存储服务器以及所述分片在所述存储服务器上的存储位置。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述管理服务器在确定所述多个分片被成功存储后,向所述宿主机发送上传成功响应。
5.一种镜像文件的上传方法,其特征在于,包括:
宿主机向管理服务器发送上传镜像文件的上传请求,所述上传请求包括所述镜像文件的标识;
所述宿主机接收所述管理服务器发送的与所述镜像文件的标识对应的元数据,所述镜像文件的标识对应的元数据包括所述管理服务器中存储的所述镜像文件的每个镜像层的元数据;
所述宿主机根据所述镜像文件的标识对应的元数据确定所述镜像文件待上传的镜像层;
所述宿主机向所述管理服务器上传所述镜像层,以使所述管理服务器接收所述宿主机根据所述元数据确定的所述镜像文件待上传的镜像层,并对所述镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为所述分片确定的存储服务器。
6.根据权利要求5所述的方法,其特征在于,所述宿主机根据所述镜像文件的标识对应的元数据确定所述镜像文件待上传的镜像层包括:
所述宿主机将所述镜像文件的每个镜像层的元数据与本地保存的镜像层的元数据进行比较,确定所述镜像文件的每个镜像层的元数据中除所述宿主机本地保存的元数据以外的元数据对应的镜像层为所述待上传的镜像层。
7.一种镜像文件的下载方法,其特征在于,所述方法包括:
管理服务器接收宿主机发送的下载镜像文件的下载请求,所述下载请求包括所述镜像文件的标识;
所述管理服务器向所述宿主机发送与所述镜像文件的标识对应的元数据;所述镜像文件的标识对应的元数据包括所述管理服务器中存储的所述镜像文件的每个镜像层的元数据;
所述管理服务器接收所述宿主机根据所述镜像文件的标识对应的元数据确定的所述镜像文件待下载的镜像层的标识;所述待下载的镜像层包括多个分片;
所述管理服务器根据所述镜像层的标识确定所述多个分片中每个分片所在的存储服务器;
所述管理服务器从所述每个分片所在的存储服务器中获取所述多个分片,并将所述多个分片发送给所述宿主机。
8.根据权利要求7所述的方法,其特征在于,所述管理服务器根据所述镜像层的标识确定所述多个分片中每个分片所在的存储服务器包括:
所述管理服务器根据所述镜像层的标识与所述镜像层的每个分片的存储信息确定所述镜像层的每个分片所在的存储服务器,所述存储信息包括所述镜像文件的标识、所述镜像层的标识、所述分片的索引、所述分片的存储位置以及所述分片的大小,所述存储位置包括存储所述分片的存储服务器以及所述分片在所述存储服务器上的存储位置。
9.根据权利要求8所述的方法,其特征在于,所述将所述多个分片发送给所述宿主机包括:
所述管理服务器根据所述多个分片的索引对所述多个分片进行排序,并按所述多个分片的顺序将所述多个分片发送给所述宿主机。
10.一种镜像文件的下载方法,其特征在于,包括:
宿主机向管理服务器发送下载镜像文件的第一下载请求,所述第一下载请求包括所述镜像文件的标识;
所述宿主机接收所述管理服务器发送的与所述镜像文件的标识对应的元数据,所述镜像文件的标识对应的元数据包括所述管理服务器中存储的所述镜像文件的每个镜像层的元数据;
所述宿主机根据所述镜像文件的标识对应的元数据确定所述镜像文件待下载的镜像层的标识,并将所述待下载的镜像层的标识发送给所述管理服务器,以获取所述待下载的镜像层的分片,以使所述管理服务器接收所述宿主机根据所述元数据确定的所述镜像文件待上传的镜像层,并对所述镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为所述分片确定的存储服务器。
11.根据权利要求10所述的方法,其特征在于,所述宿主机根据所述镜像文件的标识对应的元数据确定所述镜像文件待下载的镜像层的标识包括:
所述宿主机将所述镜像文件的每个镜像层的元数据与本地保存的镜像层的元数据进行比较,确定所述镜像文件的每个镜像层的元数据中除所述宿主机本地保存的元数据以外的元数据对应的镜像层为所述待下载的镜像层。
12.根据权利要求10或11所述的方法,其特征在于,所述获取所述待下载的镜像层的分片包括:所述宿主机接收所述管理服务器发送的所述待下载的镜像层的分片。
13.根据权利要求10或11所述的方法,其特征在于,所述获取所述待下载的镜像层的分片包括:
所述宿主机接收所述管理服务器发送的第一响应,所述第一响应包括另一宿主机的地址和所述另一宿主机需下载的镜像层的标识;
所述宿主机确定所述另一宿主机需下载的镜像层的标识中是否包括所述待下载的镜像层的标识;
若所述另一宿主机需下载的镜像层的标识中包括所述待下载的镜像层的标识,且所述宿主机与所述另一宿主机属于同一局域网,则所述宿主机向所述另一宿主机发送第二下载请求,所述第二下载请求包括所述待下载的镜像层的标识;
所述宿主机在所述另一宿主机下载完所述待下载的镜像层的分片后,接收所述另一宿主机发送的所述待下载的镜像层的分片。
14.一种管理服务器,其特征在于,包括:
接收单元,用于接收宿主机发送的上传镜像文件的上传请求,所述上传请求包括所述镜像文件的标识;
发送单元,用于向所述宿主机发送与所述镜像文件的标识对应的元数据,所述镜像文件的标识对应的元数据包括所述管理服务器中存储的所述镜像文件的每个镜像层的元数据;
所述接收单元,还用于接收所述宿主机根据所述元数据确定的所述镜像文件待上传的镜像层;
处理单元,用于对所述镜像层进行切割;
所述发送单元,还用于将切割后得到的多个分片并行上传,以将每个分片上传至为所述分片确定的存储服务器。
15.根据权利要求14所述的管理服务器,其特征在于,所述处理单元用于:对所述镜像层进行切割,得到固定大小的多个分片,并为每个分片分配索引;
根据分布式算法,确定所述多个分片中每个分片对应的存储服务器;
所述发送单元,用于将所述多个分片中的每个分片通过超文本传送协议HTTP请求并行上传至各自对应的存储服务器,对于每个分片,所述HTTP请求包括所述镜像文件的标识、所述待上传的镜像层的标识、所述分片、所述分片的索引以及所述分片的大小。
16.根据权利要求14或15所述的管理服务器,其特征在于,所述接收单元还用于:对于每个分片,接收所述分片的存储信息,所述存储信息包括所述镜像文件的标识、所述镜像层的标识、所述分片的索引、所述分片的存储位置以及所述分片的大小,所述存储位置包括存储所述分片的存储服务器以及所述分片在所述存储服务器上的存储位置。
17.根据权利要求16所述的管理服务器,其特征在于,所述发送单元还用于:在确定所述多个分片被成功存储后,向所述宿主机发送上传成功响应。
18.一种宿主机,其特征在于,包括:
发送单元,用于向管理服务器发送上传镜像文件的上传请求,所述上传请求包括所述镜像文件的标识;
接收单元,用于接收所述管理服务器发送的与所述镜像文件的标识对应的元数据,所述镜像文件的标识对应的元数据包括所述管理服务器中存储的所述镜像文件的每个镜像层的元数据;
处理单元,用于根据所述镜像文件的标识对应的元数据确定所述镜像文件待上传的镜像层;
发送单元,还用于向所述管理服务器上传所述镜像层,以使所述管理服务器接收所述宿主机根据所述元数据确定的所述镜像文件待上传的镜像层,并对所述镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为所述分片确定的存储服务器。
19.根据权利要求18所述的宿主机,其特征在于,所述处理单元用于:
将所述镜像文件的每个镜像层的元数据与本地保存的镜像层的元数据进行比较,确定所述镜像文件的每个镜像层的元数据中除所述宿主机本地保存的元数据以外的元数据对应的镜像层为所述待上传的镜像层。
20.一种管理服务器,其特征在于,包括:
接收单元,用于接收宿主机发送的下载镜像文件的下载请求,所述下载请求包括所述镜像文件的标识;
发送单元,用于向所述宿主机发送与所述镜像文件的标识对应的元数据;所述镜像文件的标识对应的元数据包括所述管理服务器中存储的所述镜像文件的每个镜像层的元数据;
所述接收单元,还用于接收所述宿主机根据所述镜像文件的标识对应的元数据确定的所述镜像文件待下载的镜像层的标识;所述待下载的镜像层包括多个分片;
处理单元,用于根据所述镜像层的标识确定所述多个分片中每个分片所在的存储服务器;
所述处理单元,还用于从所述每个分片所在的存储服务器中获取所述多个分片;
所述发送单元,还用于将所述多个分片发送给所述宿主机。
21.根据权利要求20所述的管理服务器,其特征在于,所述处理单元用于:根据所述镜像层的标识与所述镜像层的每个分片的存储信息确定所述镜像层的每个分片所在的存储服务器,所述存储信息包括所述镜像文件的标识、所述镜像层的标识、所述分片的索引、所述分片的存储位置以及所述分片的大小,所述存储位置包括存储所述分片的存储服务器以及所述分片在所述存储服务器上的存储位置。
22.根据权利要求21所述的管理服务器,其特征在于,所述处理单元用于:根据所述存储信息从所述各个存储服务器中获取所述多个分片;根据所述多个分片的索引对所述多个分片进行排序;
所述发送单元用于:按所述多个分片的顺序将所述多个分片发送给所述宿主机。
23.一种宿主机,其特征在于,包括:
发送单元,用于向管理服务器发送下载镜像文件的第一下载请求,所述第一下载请求包括所述镜像文件的标识;
接收单元,用于接收所述管理服务器发送的与所述镜像文件的标识对应的元数据,所述镜像文件的标识对应的元数据包括所述管理服务器中存储的所述镜像文件的每个镜像层的元数据;
处理单元,用于根据所述镜像文件的标识对应的元数据确定所述镜像文件待下载的镜像层的标识;
所述发送单元,还用于将所述待下载的镜像层的标识发送给所述管理服务器;
所述接收单元,还用于获取所述待下载的镜像层的分片,以使所述管理服务器接收所述宿主机根据所述元数据确定的所述镜像文件待上传的镜像层,并对所述镜像层进行切割,并将切割后得到的多个分片并行上传,以将每个分片上传至为所述分片确定的存储服务器。
24.根据权利要求23所述的宿主机,其特征在于,所述处理单元用于:将所述镜像文件的每个镜像层的元数据与本地保存的镜像层的元数据进行比较,确定所述镜像文件的每个镜像层的元数据中除所述宿主机本地保存的元数据以外的元数据对应的镜像层为所述待下载的镜像层。
25.根据权利要求23或24所述的宿主机,其特征在于,所述接收单元用于:接收所述管理服务器发送的所述待下载的镜像层的分片。
26.根据权利要求23或24所述的宿主机,其特征在于,所述接收单元用于:接收所述管理服务器发送的第一响应,所述第一响应包括另一宿主机的地址和所述另一宿主机需下载的镜像层的标识;
所述处理单元用于:确定所述另一宿主机需下载的镜像层的标识中是否包括所述待下载的镜像层的标识;
所述发送单元用于:若所述另一宿主机需下载的镜像层的标识中包括所述待下载的镜像层的标识,且所述宿主机与所述另一宿主机属于同一局域网,则向所述另一宿主机发送第二下载请求,所述第二下载请求包括所述待下载的镜像层的标识;
所述接收单元用于:在所述另一宿主机下载完所述待下载的镜像层的分片后,接收所述另一宿主机发送的所述待下载的镜像层的分片。
CN201610346020.3A 2016-05-23 2016-05-23 一种镜像文件的上传和下载方法及装置 Active CN107426258B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610346020.3A CN107426258B (zh) 2016-05-23 2016-05-23 一种镜像文件的上传和下载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610346020.3A CN107426258B (zh) 2016-05-23 2016-05-23 一种镜像文件的上传和下载方法及装置

Publications (2)

Publication Number Publication Date
CN107426258A CN107426258A (zh) 2017-12-01
CN107426258B true CN107426258B (zh) 2020-04-28

Family

ID=60422362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610346020.3A Active CN107426258B (zh) 2016-05-23 2016-05-23 一种镜像文件的上传和下载方法及装置

Country Status (1)

Country Link
CN (1) CN107426258B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960461A (zh) * 2017-12-25 2019-07-02 上海盛霄云计算技术有限公司 一种镜像文件管理系统
CN108200211B (zh) * 2018-02-12 2020-10-09 华为技术有限公司 集群中镜像文件下载的方法、节点和查询服务器
WO2019165573A1 (zh) * 2018-02-27 2019-09-06 深圳中兴力维技术有限公司 一种基于Docker的镜像同步方法、装置及系统
CN110198330B (zh) * 2018-03-27 2022-03-22 腾讯科技(深圳)有限公司 镜像下载方法和装置
CN108958752B (zh) * 2018-07-09 2023-01-24 迈普通信技术股份有限公司 单片机在线升级系统及方法
CN108933837A (zh) * 2018-08-07 2018-12-04 郑州云海信息技术有限公司 一种镜像文件的传输方法及装置
CN109450962B (zh) * 2018-08-30 2021-08-10 百度在线网络技术(北京)有限公司 数据传输方法、打包服务器、存储服务器及可读存储介质
CN110912955B (zh) * 2018-09-17 2022-04-05 阿里巴巴集团控股有限公司 容器镜像下载、上传方法及装置
CN112565325B (zh) * 2019-09-26 2022-09-23 华为云计算技术有限公司 镜像文件管理方法、装置及系统、计算机设备、存储介质
CN110933138A (zh) * 2019-10-31 2020-03-27 北京浪潮数据技术有限公司 一种镜像上传的方法、装置、设备及系统
CN111367869A (zh) * 2020-02-26 2020-07-03 北京三快在线科技有限公司 镜像文件处理方法、装置、存储介质及电子设备
CN113391875A (zh) * 2020-03-13 2021-09-14 华为技术有限公司 容器部署方法与装置
CN113411363A (zh) * 2020-03-16 2021-09-17 华为技术有限公司 一种镜像文件的上传方法、相关设备及计算机存储介质
CN111629058A (zh) * 2020-05-27 2020-09-04 广东浪潮大数据研究有限公司 一种镜像上传方法、装置、系统和后端设备
CN113420292A (zh) * 2020-08-13 2021-09-21 北京小佑科技有限公司 一种容器镜像的分层快速扫描方法
CN114650281B (zh) * 2020-12-17 2023-08-11 腾讯科技(深圳)有限公司 基于复杂网络的文件下载方法、装置、设备及存储介质
CN112714163B (zh) * 2020-12-22 2022-06-10 北京百度网讯科技有限公司 数据传输方法、装置、电子设备和介质
CN113900720B (zh) * 2021-10-15 2023-08-08 抖音视界有限公司 操作系统启动方法、装置和电子设备
CN114490544B (zh) * 2022-04-18 2022-06-28 梯度云科技(北京)有限公司 一种新加入主机下载容器镜像的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581216B (zh) * 2012-07-20 2017-12-19 中国电信股份有限公司 分片数据存储的方法、设备和系统
CN103731451B (zh) * 2012-10-12 2018-10-19 腾讯科技(深圳)有限公司 一种文件上传的方法及系统
CN103812939B (zh) * 2014-02-17 2017-02-08 大连云动力科技有限公司 一种大数据存储系统
US9396391B2 (en) * 2014-06-17 2016-07-19 Digitalglobe, Inc. Automated geospatial image mosaic generation with multiple zoom level support
CN105045656B (zh) * 2015-06-30 2018-11-30 深圳清华大学研究院 基于虚拟容器的大数据存储与管理方法
CN105119749B (zh) * 2015-09-07 2018-12-28 烽火通信科技股份有限公司 一种家庭网关本地批量升级的方法和系统

Also Published As

Publication number Publication date
CN107426258A (zh) 2017-12-01

Similar Documents

Publication Publication Date Title
CN107426258B (zh) 一种镜像文件的上传和下载方法及装置
US9607071B2 (en) Managing a distributed database across a plurality of clusters
US9417811B2 (en) Efficient inline data de-duplication on a storage system
US11296940B2 (en) Centralized configuration data in a distributed file system
US8806489B2 (en) Virtual machine image distribution network
CN102708165B (zh) 分布式文件系统中的文件处理方法及装置
US10210191B2 (en) Accelerated access to objects in an object store implemented utilizing a file storage system
US9189169B2 (en) Common contiguous memory region optimized virtual machine migration within a workgroup
WO2015067117A1 (zh) 一种云上传方法及系统、调度设备、客户端
CN108027828B (zh) 与无状态同步节点的托管文件同步
US8694685B2 (en) Migrating virtual machines with adaptive compression
CN111033459B (zh) 针对广域网优化的基于微服务的去重
CN111033487A (zh) 基于微服务的去重
US11221993B2 (en) Limited deduplication scope for distributed file systems
US9215294B2 (en) Management of communications between a client equipment and a server equipment providing to the client equipment computer resources represented according to a file system
US20170315928A1 (en) Coarse-grained cache replacement scheme for a cloud-backed deduplication storage system
US20180107404A1 (en) Garbage collection system and process
US10430602B2 (en) Tape processing offload to object storage
US20150378993A1 (en) System and method for implementing a quota system in a distributed file system
US20090327303A1 (en) Intelligent allocation of file server resources
US20150317407A1 (en) System and method for adaptive data placement within a distributed file system
CN116848517A (zh) 使用基于数据指纹的数据地址的高速缓存编索引
US11290532B2 (en) Tape reconstruction from object storage
US20170124107A1 (en) Data deduplication storage system and process
US20170315930A1 (en) Cache scoring scheme for a cloud-backed deduplication storage system

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
GR01 Patent grant
GR01 Patent grant