CN110198330A - 镜像下载方法和装置 - Google Patents
镜像下载方法和装置 Download PDFInfo
- Publication number
- CN110198330A CN110198330A CN201810256195.4A CN201810256195A CN110198330A CN 110198330 A CN110198330 A CN 110198330A CN 201810256195 A CN201810256195 A CN 201810256195A CN 110198330 A CN110198330 A CN 110198330A
- Authority
- CN
- China
- Prior art keywords
- downloading
- file
- layer
- node
- download
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出一种镜像下载方法和装置,其中,方法包括:从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值;根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合;将每个层文件分成多个数据块,并行下载多个数据块,其中,第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合;将镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。由此,丰富了镜像下载的节点种类,提高了镜像并发下载能力和效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种镜像下载方法和装置。
背景技术
目前,镜像由镜像元数据和层文件组成,为容器提供了应用程序的运行文件和配置环境,在容器运行之前,需要将镜像的元数据和层文件下载提前下载到宿主机上。其中,相关云平台将应用运行依赖环境保存到镜像中,大量的扩容和发布流程都需要下载镜像,镜像分发的效率直接影响到云平台的服务质量。
相关技术中,使用Docker Registry方式下载镜像,在这种下载方式中,宿主机集群从专用私有的Docker Registry服务下载镜像。Registry服务提供了镜像上传和下载的API,宿主机的Docker客户端在镜像下载时,先从Registry服务获取镜像元数据及层文件列表,然后分别下载每一个本地不存在的层文件。然而,这种下载方式中,当大量宿主机同时从Registry下载镜像时,Registry服务会成为镜像分发的瓶颈,镜像层文件的传输速度较低,并发下载能力差。
发明内容
本发明提供一种镜像下载方法和装置,以解决现有技术中,镜像并发下载能力差且效率低的技术问题。
本发明第一实施例提供一种镜像下载方法,包括以下步骤:从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值;根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,所述第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合;将每个层文件分成多个数据块,根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载所述多个数据块,其中,所述第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合;将所述镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。
本发明第二实施例提供一种镜像下载装置,包括:下载模块,用于从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值;第一确定模块,用于根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,所述第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合;并行下载模块,用于将每个层文件分成多个数据块,根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载所述多个数据块,其中,所述第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合;导入模块,用于将所述镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。
本发明第三实施例提供一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述实施例所述的镜像下载方法。
本发明第四实施例提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例所述的镜像下载方法。
本发明实施例提供的技术方案可以包括以下有益效果:
从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值,根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合,将每个层文件分成多个数据块,根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载多个数据块,其中,第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合,进而,将镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。由此,丰富了下载节点的类型,基于两类下载节点进行镜像的下载,这两种下载节点互为补充,提高了镜像并发下载能力和下载效率。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的镜像下载方法的流程图;
图2是根据本发明一个实施例的镜像下载方法的应用场景示意图;
图3是根据本发明另一个实施例的镜像下载方法的应用场景示意图;
图4(a)是根据本发明又一个实施例的镜像下载方法的应用场景示意图;
图4(b)是根据本发明再一个实施例的镜像下载方法的应用场景示意图;
图5是根据本发明一个实施例的镜像下载装置的结构示意图;
图6是根据本发明另一个实施例的镜像下载装置的结构示意图;以及
图7是根据本发明又一个实施例的镜像下载装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
为了使得本领域的技术人员,更加容易的理解本发明的镜像升级处理方法,下面首先对本发明中出现的技术名词进行解释:
其中,镜像,是为容器运行环境提供分层文件和配置信息的文件集合,镜像文件通过分层实现增量的保存和更新,镜像包括层结构的层文件和镜像元数据,其中,镜像元数据包括配置信息等。
容器,是提供一种轻量虚拟化的容器技术,容器的内部实现细节为分层存在的镜像文件。
为了解决背景技术中提到的影响下载并发能力弱的问题,本发明提出了一种新的镜像下载方法,在该方法中,将镜像的元数据与层文件分开存储,镜像制作完成后,将层文件以一种分布式的方式进行存储,从而,在进行镜像下载时,从分布式存储的节点中分块下载层文件数据,由此,一方面,可以使得层文件以分成的多个数据块为单位,并行下载,大大提高了镜像下载效率,且分布式存储的各节点之间相互配合和分压,为多个镜像文件的下载提供支撑,进一步提高了并行下载的能力;另一方面,相对于传统的BT下载的方式,无需单独制造种子,省去了种子制造的步骤,大大提高了镜像分发效率。又一方面,将包含待下载的层文件数据的客户端作为下载节点利用,使得客户端下载节点和服务器下载节点互相补充,基于两类下载节点进行镜像下载,进一步提高并行下载的稳定性和并行下载的效率。
下面参考附图描述本发明实施例的镜像下载方法和装置。
图1是根据本发明一个实施例的镜像下载方法的流程图,如图1所示,该方法包括以下步骤:
步骤101,从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值。
步骤102,根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合。
其中,层文件的哈希值可实现层间区分,用以标识层文件的为唯一性。
步骤103,将每个层文件分成多个数据块,根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载多个数据块,其中,第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合。
步骤104,将镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。
可以理解,在本发明的实施例中,如图2所示,在镜像生成后,将镜像的层文件数据分布式存储在第一下载节点中,从而,在镜像下载时,从包含第一下载节点的分布式存储系统以及包含全部层文件的第二下载节点中下载层文件的不同数据块部分,大大提高了镜像的并发下载能力。其中,第一下载节点可以为一个或多个,第二下载节点也可以为一个或多个。
其中,第一下载节点是用于向下载客户端共享层文件数据的其他客户端,其中,客户端指的是下载镜像的宿主机,从而,将客户端作为下载节点,使得第一下载节点根据下层文件的客户端的增加而增加,客户端之间共享彼此的层文件,逐渐加强第一下载节点的数量和联系,逐步提高分布式存储的稳定性。
举例而言,参照图3,在客户端1中包含层文件a和b时,将客户端1作为第一下载节点,在客户端2需要下载层文件a和c时,则可以根据客户端1的共享获取到层文件a,进而,将客户端2作为一个第一下载节点,在客户端3需要下载层文件a、b和c时,可根据客户端1或2的共享获取到层文件a,根据客户端1的共享获取到层文件b,根据客户端2的共享获取到层文件c,进而,将客户端3作为新的第一下载节点加入分布式存储系统。
由此通过不断增加的客户端以及客户端中的层文件扩展和丰富第一下载节点,提高了分布式存储系统的稳定性和可用性。
第二下载节点为从分布式存储中获取所有层文件数据的服务器,即第二下载节点为存储有所有层文件数据的服务器,客户端可以从服务器中获取到所有的层文件数据,第二下载节点作为第一下载节点的补充和冗余,进一步确保了分布式存储系统的稳定性和可靠性。
这种稳定性和可靠性体现在:第一:第一下载节点由于对应于客户端,因而,第一下载节点的数量是不断增加的,且第一下载节点的所在位置的随机性也为下载区域的不确定提供了距离上的支持,由此,包含第一下载节点的下载系统越来越丰富和稳定,第二:第一下载节点和第二下载节点互为补充和冗余,下载节点的丰富多样性,为下载提供了数量更多的并行下载通道,下载效率更高,且无论是某个客户端或者某个服务器出现故障,都不影响整个下载系统的良好运作,退一步来讲,即使所有的服务器瘫痪,本发明实施例的系统也可以通过第一下载节点完成镜像的下载升级,相对于仅仅包含服务器下载节点的系统,安全性和稳定性更强。
具体而言,在实际执行过程中,继续参照图2,从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值,进而,根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合。
在本示例中,通过跟踪服务器存储层文件的哈希值与节点标识的对应关系,即存储每个节点中存储的具体的层文件数据,其中,由于节点的数量以及存储的层文件数据是变化的,因而,在该示例中,以哈希值列表作为层文件标识,将下载客户端的节点标识与下载到本地的层文件的哈希值发送给跟踪服务器,使得跟踪服务器更新对应关系。
需要说明的是,根据应用需求的不同,存储每个节点中存储的具体的层文件数据的位置也可以在其他位置,比如,元数据服务器,云端服务器等,在此不作限制。
具体而言,从元数据服务器中下载镜像元数据以及层文件的哈希值列表,根据每个层文件的哈希值查询跟踪服务器中存储的哈希值与节点标识的对应关系,确定每个层文件所在的第一下载节点集合,举例而言,获取到当前待下载镜像的层文件的哈希值列表中包含哈希值为A、B、C和D,根据跟踪服务器查询到包含哈希值为A、B、C和D的节点标识分别为1、2、3,其中,节点标识1对应哈希值为A、B,节点标识2对应哈希值C和D,节点标识3对应哈希值A、B和D,则表明节点标识1和3对应的第一下载节点中包含层文件A、B,节点2对应的第一下载节点中包含层文件C和D,以及,节点3对应的第一下载节点中包含层文件D。从而,层文件A对应的第一下载节点为1和3,层文件B对应的第一下载节点为1和3,层文件C对应的第一下载节点为2,层文件D对应的第一下载节点为2和3。
进而,将每个层文件分成多个数据块,根据存储所有层文件数据的第二下载节点集合以及每个层文件所在的第一下载节点集合,以数据块为下载单位,并行下载多个数据块,其中,第二下载节点是从分布式存储中获取所有层文件数据的服务器,由此,同时在第一下载节点和第二下载节点下载层文件的多个数据块,提高了下载效率,每一个参与下载的节点仅仅承载一个层文件的数据块的下载,下载压力较小,为多个镜像文件的多个数据块的并发下载提供了支撑。
最终,将镜像元数据和下载的所有的层文件数据导入到容器中完成镜像下载。作为一种可能的实现方式,将镜像元数据和下载的所有层文件数据到导出镜像,将导出的镜像提供给容器使用,以实现镜像的下载。
其中,为了进一步提高并发下载的效率,可以根据当前参与下载的节点的资源情况分配器要下载的数据块的大小,比如,根据第一下载节点集合和第二下载节点集合确定下载节点总数,进而,根据下载节点总数确定分割数据块的大小,比如,下载节点的总数越多,分割数据块的大小越小,从而,通过将下载压力分散到所有的下载节点集合中的节点,以提高下载效率,也可以为了操作的方便,将层文件按照固定的大小分成多个数据块,当然,由于包含对应层文件数据的第一下载节点可能为多个,第二下载节点以及第一下载节点的距离和资源情况等都具有差异,因而,还可以基于提高下载的效率的优化,基于第一下载节点和第二下载节点的距离和资源占用情况进行第一下载节点和第二下载节点的选择。
在本发明的一个实施例中,获取第一下载节点集合和第二下载节点集合中各个下载节点与下载客户端之间的距离,根据各个下载节点与下载客户端之间的距离与预设的距离策略确定目标下载节点,从目标下载节点并行下载多个数据块。
在本实施例中,由于距离下载客户端的距离越近,分发传输对应的层文件数据的传输距离越小,速度越快,因而,预设的距离策略包括优先选择距离下载客户端最近的固定个数的下载节点作为目标下载节点,其中,上述固定个数可由层文件拆分的数据块确定,拆分的数据块的个数越多,固定个数越多,当然,当目标节点中存在故障节点时,可以实时按照由近到远的顺序添加对应个数的非目标下载节点作为新的目标下载节点,以保证整个系统的稳定性。
在本发明的一个实施例中,获取第一下载节点集合和第二下载节点集合中各个下载节点与下载客户端之间的下载速度,根据各个下载节点与下载客户端之间的下载速度与预设的速度策略确定目标下载节点,从目标下载节点并行下载多个数据块。
其中,下载速度可以根据对应节点的历史下载速度确定,也可由当前节点的空闲资源计算等。
在本实施例中,由于节点的下载速度越高,对应的数据块的下载速度越快,因而,获取第一下载节点集合和第二下载节点集合中各个下载节点与下载客户端之间的下载速度,根据各个下载节点与下载客户端之间的下载速度与预设的速度策略确定目标下载节点,从目标下载节点并行下载多个数据块,以通过优先选择下载能力强的下载节点作为目标节点从而最终提高下载效率。
为了对本发明实施例的镜像下载方法的描述更加清楚,下面结合具体的应用场景进行举例,其中,在本示例中,层文件标识为Hash值,跟踪服务器为Tracker,第一下载节点集合中的第一下载节点为N个,第二下载节点集合中的第二下载节点为M个,其中,N为自然数,M为大于等于1的正整数。
如图4(a)所示,当用户在下载客户端上下载操作系统的镜像文件时,相关服务器根据对应的镜像文件下载请求,确定出第一下载节点集合和第二下载节点集合,并将操作系统的镜像文件的每个层文件分成多个数据块,以通过第一下载节点集合和第二下载节点集合中的多个下载节点,并行下载所有层文件数据,最后,将镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载,反应到下载客户端的下载体验为在较短的时间内获取到对应的镜像文件,下载体验较高。
其中,相关服务器根据对应的镜像文件下载请求,确定出第一下载节点集合和第二下载节点集合,并将每个层文件分成多个数据块,以通过第一下载节点集合和第二下载节点集合中的多个下载节点,并行下载所有层文件数据的过程如图4(b)所示:追踪服务器中存储了每个层文件和第一下载节点的节点列表,下载客户端在下载镜像时,从Tracker中获取每一个层文件所在的第一下载节点集合。
具体而言,下载客户端从镜像元数据服务获取镜像元数据及层文件列表,通过层文件的Hash值从Tracker获取层文件所在的第一下载节点集合,将层文件按固定大小分块,从第一下载节点和第二下载节点并行下载层文件数据。其中从第一下载节点提供下载的文件从分布式存储获取。有多个可用节点下载某一个分块时,策略是优先选择网络位置最接近的15个无下载记录的节点,然后按历史下载速度,优先选择最快的节点。
下载客户端在下载层文件的同时将层文件共享到Tracker,下载客户端本身也成为共享节点,最终,将镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。
综上所述,本发明实施例的镜像下载方法,从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值,根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合,将每个层文件分成多个数据块,根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载多个数据块,其中,第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合,进而,将镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。由此,丰富了下载节点的类型,基于两类下载节点进行镜像的下载,这两种下载节点互为补充,提高了镜像并发下载能力和下载效率。
为了实现上述实施例,本发明还提出了一种镜像下载装置,图5是根据本发明一个实施例的镜像下载装置的结构示意图,如图5所示,该镜像下载装置包括下载模块100、第一确定模块200、并行下载模块300和导入模块400。
其中,下载模块100,用于从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值。
第一确定模块200,用于根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合。
并行下载模块300,用于将每个层文件分成多个数据块,根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载多个数据块,其中,第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合。
导入模块400,用于将镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。
在本发明的一个实施例中,如图6所示,在如图5所示的基础上,镜像下载装置还包括:第二确定模块500。
其中,第二确定模块500,用于根据第一下载节点集合和第二下载节点集合确定下载节点总数。在本实施例中,第二确定模块500,还用于根据下载节点总数确定分割的数据块大小。
在本发明的一个实施例中,如图7所示,并行下载模块300包括获取单元310、确定单元320和下载单元330。
其中,获取单元310,用于获取第一下载节点集合和第二下载节点集合中各个下载节点与下载客户端之间的距离。
确定单元320,用于根据各个下载节点与下载客户端之间的距离与预设的距离策略确定目标下载节点。
下载单元330,用于从目标下载节点并行下载多个数据块。
需要说明的是,前述对镜像下载方法实施例的解释说明也适用于该实施例的镜像下载装置,其实现原理类似,在此不再赘述。
综上所述,本发明实施例的镜像下载装置,从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值,根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合,将每个层文件分成多个数据块,根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载多个数据块,其中,第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合,进而,将镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。由此,丰富了下载节点的类型,基于两类下载节点进行镜像的下载,这两种下载节点互为补充,提高了镜像并发下载能力和下载效率。
为了实现上述实施例,本发明还提出了一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述实施例描述的镜像下载方法。
为了实现上述实施例,本发明还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例描述的镜像下载方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种镜像下载方法,其特征在于,包括以下步骤:
从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值;
根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,所述第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合;
将每个层文件分成多个数据块,根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载所述多个数据块,其中,所述第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合;
将所述镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。
2.如权利要求1所述的方法,其特征在于,在所述将每个层文件分成多个数据块之前,还包括:
根据所述第一下载节点集合和所述第二下载节点集合确定下载节点总数;
根据所述下载节点总数确定分割的数据块大小。
3.如权利要求1所述的方法,其特征在于,在将所述镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载之后,还包括:
将所述下载客户端的节点标识与下载到本地的层文件的哈希值发送给所述跟踪服务器,以使所述跟踪服务器更新所述对应关系。
4.如权利要求1所述的方法,其特征在于,所述根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载所述多个数据块,包括:
获取所述第一下载节点集合和所述第二下载节点集合中各个下载节点与所述下载客户端之间的距离;
根据所述各个下载节点与所述下载客户端之间的距离与预设的距离策略确定目标下载节点;
从所述目标下载节点并行下载所述多个数据块。
5.如权利要求1所述的方法,其特征在于,所述根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载所述多个数据块,包括:
获取所述第一下载节点集合和所述第二下载节点集合中各个下载节点与所述下载客户端之间的下载速度;
根据所述各个下载节点与所述下载客户端之间的下载速度与预设的速度策略确定目标下载节点;
从所述目标下载节点并行下载所述多个数据块。
6.一种镜像下载装置,其特征在于,包括:
下载模块,用于从元数据服务器下载镜像元数据以及镜像中每个层文件的哈希值;
第一确定模块,用于根据待下载的每个层文件的哈希值查询跟踪服务器预存的哈希值与节点标识的对应关系,确定与每个层文件对应的第一下载节点集合,其中,所述第一下载节点集合是用于向下载客户端提供层文件数据的其他客户端集合;
并行下载模块,用于将每个层文件分成多个数据块,根据与每个层文件对应的第一下载节点集合以及存储所有层文件数据的第二下载节点集合,并行下载所述多个数据块,其中,所述第二下载节点集合是从分布式存储中获取所有层文件数据的服务器集合;
导入模块,用于将所述镜像元数据和下载的所有层文件数据导入到容器中完成镜像下载。
7.如权利要求6所述的装置,其特征在于,还包括:
第二确定模块,用于根据所述第一下载节点集合和所述第二下载节点集合确定下载节点总数;
所述第二确定模块,还用于根据所述下载节点总数确定分割的数据块大小。
8.如权利要求6所述的装置,其特征在于,所述并行下载模块包括:
获取单元,用于获取所述第一下载节点集合和所述第二下载节点集合中各个下载节点与所述下载客户端之间的距离;
确定单元,用于根据所述各个下载节点与所述下载客户端之间的距离与预设的距离策略确定目标下载节点;
下载单元,用于从所述目标下载节点并行下载所述多个数据块。
9.一种计算机设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-5任一项所述的镜像下载方法。
10.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述的镜像下载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810256195.4A CN110198330B (zh) | 2018-03-27 | 2018-03-27 | 镜像下载方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810256195.4A CN110198330B (zh) | 2018-03-27 | 2018-03-27 | 镜像下载方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110198330A true CN110198330A (zh) | 2019-09-03 |
CN110198330B CN110198330B (zh) | 2022-03-22 |
Family
ID=67751086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810256195.4A Active CN110198330B (zh) | 2018-03-27 | 2018-03-27 | 镜像下载方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110198330B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111107135A (zh) * | 2019-12-02 | 2020-05-05 | 国电南瑞科技股份有限公司 | 一种容器镜像并行分发方法、调度器及存储介质 |
CN111866176A (zh) * | 2020-08-04 | 2020-10-30 | 蝉鸣科技(西安)有限公司 | 一种ftp/ftps分布式文件传输方法、装置及计算机存储介质 |
CN111858156A (zh) * | 2020-06-12 | 2020-10-30 | 北京金山云网络技术有限公司 | 镜像管理方法、装置及电子设备 |
CN112671892A (zh) * | 2020-12-22 | 2021-04-16 | 北京百度网讯科技有限公司 | 数据传输方法、装置、电子设备、介质和计算机程序产品 |
CN112883006A (zh) * | 2021-03-12 | 2021-06-01 | 云知声智能科技股份有限公司 | 一种企业级容器镜像加速方法、装置、电子设备和存储介质 |
CN112988328A (zh) * | 2021-03-12 | 2021-06-18 | 北京金山云网络技术有限公司 | 下载容器组镜像文件的方法、装置和电子设备 |
CN113315800A (zh) * | 2020-02-27 | 2021-08-27 | 华为技术有限公司 | 镜像存储、下载方法、设备以及系统 |
CN114490544A (zh) * | 2022-04-18 | 2022-05-13 | 梯度云科技(北京)有限公司 | 一种新加入主机下载容器镜像的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030873A (zh) * | 2007-02-15 | 2007-09-05 | 深圳市迅雷网络技术有限公司 | 一种下载数据的方法及系统 |
CN102833293A (zh) * | 2011-06-17 | 2012-12-19 | 腾讯科技(深圳)有限公司 | P2sp网络中资源下载的方法及客户端 |
CN105740048A (zh) * | 2016-01-26 | 2016-07-06 | 华为技术有限公司 | 一种镜像管理方法、装置及系统 |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
CN107426258A (zh) * | 2016-05-23 | 2017-12-01 | 华为技术有限公司 | 一种镜像文件的上传和下载方法及装置 |
-
2018
- 2018-03-27 CN CN201810256195.4A patent/CN110198330B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101030873A (zh) * | 2007-02-15 | 2007-09-05 | 深圳市迅雷网络技术有限公司 | 一种下载数据的方法及系统 |
CN102833293A (zh) * | 2011-06-17 | 2012-12-19 | 腾讯科技(深圳)有限公司 | P2sp网络中资源下载的方法及客户端 |
CN105740048A (zh) * | 2016-01-26 | 2016-07-06 | 华为技术有限公司 | 一种镜像管理方法、装置及系统 |
CN107426258A (zh) * | 2016-05-23 | 2017-12-01 | 华为技术有限公司 | 一种镜像文件的上传和下载方法及装置 |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111107135A (zh) * | 2019-12-02 | 2020-05-05 | 国电南瑞科技股份有限公司 | 一种容器镜像并行分发方法、调度器及存储介质 |
CN111107135B (zh) * | 2019-12-02 | 2022-07-29 | 国电南瑞科技股份有限公司 | 一种容器镜像并行分发方法、调度器及存储介质 |
CN113315800A (zh) * | 2020-02-27 | 2021-08-27 | 华为技术有限公司 | 镜像存储、下载方法、设备以及系统 |
CN111858156A (zh) * | 2020-06-12 | 2020-10-30 | 北京金山云网络技术有限公司 | 镜像管理方法、装置及电子设备 |
CN111866176A (zh) * | 2020-08-04 | 2020-10-30 | 蝉鸣科技(西安)有限公司 | 一种ftp/ftps分布式文件传输方法、装置及计算机存储介质 |
CN112671892A (zh) * | 2020-12-22 | 2021-04-16 | 北京百度网讯科技有限公司 | 数据传输方法、装置、电子设备、介质和计算机程序产品 |
CN112883006A (zh) * | 2021-03-12 | 2021-06-01 | 云知声智能科技股份有限公司 | 一种企业级容器镜像加速方法、装置、电子设备和存储介质 |
CN112988328A (zh) * | 2021-03-12 | 2021-06-18 | 北京金山云网络技术有限公司 | 下载容器组镜像文件的方法、装置和电子设备 |
CN112883006B (zh) * | 2021-03-12 | 2024-06-11 | 云知声智能科技股份有限公司 | 一种企业级容器镜像加速方法、装置、电子设备和存储介质 |
CN114490544A (zh) * | 2022-04-18 | 2022-05-13 | 梯度云科技(北京)有限公司 | 一种新加入主机下载容器镜像的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110198330B (zh) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110198330A (zh) | 镜像下载方法和装置 | |
CN107579931B (zh) | 一种基于Kubernetes的区块链即服务资源适配方法 | |
US11108853B2 (en) | Consumption of data services provisioned in cloud infrastructures | |
CN101019105B (zh) | 使用条带化来存储数据的方法及装置 | |
JP4154893B2 (ja) | ネットワークストレージ仮想化方法 | |
CN106487850B (zh) | 一种云环境下获取镜像的方法、装置和系统 | |
US7613947B1 (en) | System and method for storage takeover | |
US7711683B1 (en) | Method and system for maintaining disk location via homeness | |
US20130179481A1 (en) | Managing objects stored in storage devices having a concurrent retrieval configuration | |
JP2019511051A (ja) | 非集約型計算システムを実現するための方法、装置、コンピュータ・プログラム製品、およびデータセンタ・ファシリティ | |
CN104854562B (zh) | 用于实现虚拟机的方法和云管理节点 | |
CN104011701A (zh) | 内容传送网络 | |
CN102196049B (zh) | 适用于存储云内数据安全迁移的方法 | |
CN105205143B (zh) | 一种文件存储及处理方法、设备和系统 | |
KR20210075845A (ko) | 네이티브 키-밸류 분산 스토리지 시스템 | |
CN102571959A (zh) | 一种数据下载系统及方法 | |
DE102021125179A1 (de) | Erzeugen und bereitstellen von containerabbildern | |
CN104487951A (zh) | 分布式数据管理设备和分布式数据操作设备 | |
CN108777718A (zh) | 一种业务系统通过客户端访问读多写少系统的方法和装置 | |
WO2024021470A1 (zh) | 一种跨区域的数据调度方法、装置、设备及存储介质 | |
CN112817606A (zh) | 用于容器镜像的部署系统及其部署方法 | |
CN107203639A (zh) | 基于高性能计算技术的并行文件系统 | |
CN108063779A (zh) | 一种云存储和本地存储实现同步的方法和系统 | |
US9544371B1 (en) | Method to discover multiple paths to disk devices cluster wide | |
US10911371B1 (en) | Policy-based allocation of provider network resources |
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 |