CN109104451A - Docker镜像的下载方法及节点、Docker镜像的预热方法及节点 - Google Patents
Docker镜像的下载方法及节点、Docker镜像的预热方法及节点 Download PDFInfo
- Publication number
- CN109104451A CN109104451A CN201710475273.5A CN201710475273A CN109104451A CN 109104451 A CN109104451 A CN 109104451A CN 201710475273 A CN201710475273 A CN 201710475273A CN 109104451 A CN109104451 A CN 109104451A
- Authority
- CN
- China
- Prior art keywords
- client
- layer file
- fragment
- super node
- node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000010438 heat treatment Methods 0.000 title abstract description 3
- 239000012634 fragment Substances 0.000 claims abstract description 240
- 238000013467 fragmentation Methods 0.000 claims description 33
- 238000006062 fragmentation reaction Methods 0.000 claims description 33
- 238000012546 transfer Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000013475 authorization Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- 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/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了Docker镜像的下载方法及节点、Docker镜像的预热方法及节点,下载方法应用于端到端P2P分发系统中的P2P客户端,P2P分发系统包括:管控节点、超级节点和P2P客户端;该方法包括:第一P2P客户端向管控节点发送Docker镜像的层文件的下载请求,以便管控节点依据第一P2P客户端的位置和各超级节点的负载,确定可用的、超级节点列表;第一P2P客户端向超级节点列表中的最优超级节点请求下载层文件,以便最优超级节点生成层文件的各分片的分片信息,第一P2P客户端依据所述分片信息,从最优超级节点和/或其他P2P客户端,下载层文件的各分片至本地。采用本申请实施例,可以提高Docker镜像的下载效率和稳定性。
Description
技术领域
本申请涉及Docker镜像技术领域,特别涉及一种Docker镜像的下载 方法及相关节点,以及,Docker镜像的预热方法及相关节点,以及,一 种P2P分发系统。
背景技术
Docker,是一个开源的应用容器引擎,让应用开发者可以打包应用以 及依赖包到一个可移植的容器中,然后将该可移植的容器发布到任何机 器上,即发布应用。同时,Docker还可以实现虚拟化,容器完全使用沙箱 机制,相互隔离。而Docker镜像,可以由多个只读的、镜像层的层文件构 成统一视角,每一个镜像层都包含若干文件和元信息数据。
在现有技术中,在使用Docker发布应用时,各个待发布的机器(例如 需要部署应用的主机),需要从保存Docker镜像的Docker仓库下载Docker 镜像,而对于远距离的跨区域、跨国际等Docker镜像下载场景或者大规模 镜像分发来说,Docker镜像的下载效率较为低下。
发明内容
但是发明人在研究过程中发现,现有技术中Docker镜像的下载效率较 为低下的原因之一在于,从Docker仓库导出Docker镜像、层文件的抽取与 压缩等的时间比较长,所以使得整体上Docker镜像的下载效率变低。此外, 每台需要下载Docker镜像的应用主机都要部署代理(agent)服务和种子 客户端(BT client),不仅会占用过多的应用主机资源导致下载效率低下, 还容易造成下载过程中的不稳定性。
基于此,本申请提供了Docker镜像的下载方法、Docker镜像的预热 方法,用以采用每次往Docker仓库中保存Docker镜像的一层层文件,超 级节点就将该层文件预热到本地,预热时超级节点可以采用P2P的方式 预热层文件;而P2P客户端直接从超级节点下载层文件的各分片,具体 的,P2P客户端也可以采用P2P的方式下载各分片或者从超级节点下载各分片,从而避免了P2P客户端下载Docker镜像的层文件的分片时,直 接与Docker仓库交互导致的下载效率不高及稳定性较差的现象。
本申请还提供了一种管控节点、超级节点、P2P客户端和P2P分发系 统,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种,Docker镜像的下载方法, 所述下载方法应用于端到端P2P分发系统中的P2P客户端,所述P2P分 发系统包括:管控节点、超级节点和P2P客户端;所述方法包括:
第一P2P客户端向所述管控节点发送Docker镜像的层文件的下载请 求,以便所述管控节点依据所述第一P2P客户端的位置和各超级节点的 负载,确定可用的、超级节点列表;
所述第一P2P客户端向所述超级节点列表中的最优超级节点请求下 载所述层文件,以便所述最优超级节点生成所述层文件的各分片的分片 信息,所述分片信息包括:分片标识和对应的分片校验码;
所述第一P2P客户端依据所述分片信息,从所述最优超级节点和/或 所述其他P2P客户端,下载所述层文件的各分片至本地。
本申请还公开了一种Docker镜像的下载方法,所述下载方法应用于 端到端P2P分发系统中的超级节点上,所述P2P分发系统包括:管控节 点、超级节点和P2P客户端;所述方法包括:
所述超级节点接收第一P2P客户端的下载请求,所述下载请求包括 Docker镜像的层文件的源站地址;
依据所述源站地址判断所述层文件是否存在,如果存在,则生成所 述层文件的分片信息,所述分片信息包括:分片标识和对应的分片校验 码;以便所述第一P2P客户端依据所述分片信息从所述超级节点服务器 和/或其他P2P客户端下载所述层文件的各分片;
如果不存在,则依据所述源站地址将所述层文件的各分片从源站下 载至本地,并生成已下载的各分片的分片信息,以便所述第一P2P客户 端依据所述分片信息从所述超级节点和/或其他P2P客户端下载所述层文 件的各分片。
本申请实施例还公开了一种Docker镜像的下载方法,所述下载方法 应用于端到端P2P分发系统中,所述P2P分发系统包括:管控节点、超 级节点和P2P客户端;所述方法包括:
第一P2P客户端向所述管控节点发送Docker镜像的层文件的下载请 求;
所述管控节点依据所述第一P2P客户端的位置和各超级节点的负载, 确定可用的、超级节点列表,并将所述超级节点列表发送至所述第一P2P 客户端;
所述第一P2P客户端向所述超级节点列表中的最优超级节点请求下 载所述层文件;
所述超级节点依据所述第一P2P客户端的下载请求中的源站地址, 判断所述层文件是否存在,如果存在,则生成所述层文件的分片信息, 以便所述第一P2P客户端依据所述分片信息从所述超级节点服务器和/或 其他P2P客户端下载所述层文件的各分片;
如果不存在,则依据所述源站地址将所述层文件的各分片从源站下 载至本地,并生成已下载的各分片的分片信息,以便所述第一P2P客户 端依据所述分片信息从所述超级节点服务器和/或其他P2P客户端下载所 述层文件的各分片。
本申请实施例还公开了一种Docker镜像的预热方法,该预热方法应 用于端到端P2P分发系统中的管控节点上,所述P2P分发系统包括:管 控节点、超级节点和P2P客户端;所述方法包括:
在接收到Docker客户端发送的、Docker镜像的层文件的触发预热请 求后,所述管控节点向Docker镜像管理服务节点发送所述层文件的下载 请求;
所述管控节点接收所述Docker镜像管理服务节点发送的、所述层文 件的下载地址;
所述管控节点将所述层文件的下载地址发送至待预热的超级节点, 以便所述待预热的超级节点依据所述层文件的下载地址将所述层文件预 热至本地。
本申请实施例还公开了一种Docker镜像的预热方法,该预热方法应 用于端到端P2P分发系统中的超级节点上,所述P2P分发系统包括:管 控节点、超级节点和P2P客户端;所述方法包括:
所述超级节点接收所述管控节点发送的、Docker镜像的层文件的下 载地址;
所述超级节点依据所述层文件的下载地址判断本地是否缓存有所述 层文件,如果否,则依据所述层文件的下载地址将所述层文件预热至本 地,并生成所述层文件的层信息,所述层信息包括:已下载的层文件的 标识和校验码。
本申请实施例还公开了一种端到端P2P客户端,所述P2P客户端位 于P2P分发系统中,所述P2P分发系统包括:管控节点、超级节点和P2P 客户端;所述P2P客户端包括:
第一发送单元,用于向所述管控节点发送Docker镜像的层文件的下 载请求,以便所述管控节点依据所述第一P2P客户端的位置和各超级节 点的负载,确定可用的、超级节点列表;
请求单元,用于向所述超级节点列表中的最优超级节点请求下载所 述层文件,以便所述最优超级节点生成所述层文件的各分片的分片信息, 所述分片信息包括:分片标识和对应的分片校验码;
第一下载单元,用于依据所述分片信息,从所述最优超级节点和/或 所述其他P2P客户端,下载所述层文件的各分片至本地。
本申请实施例还公开了一种超级节点,所述超级节点部署于P2P分 发系统中,所述P2P分发系统包括:管控节点、超级节点和P2P客户端; 所述超级节点包括:
第一接收单元,用于接收第一P2P客户端的下载请求,所述下载请 求包括Docker镜像的层文件的源站地址;
第三判断单元,用于依据所述源站地址判断所述层文件是否存在;
第一生成单元,用于在所述第三判断单元的结果为存在的情况下, 生成所述层文件的分片信息,所述分片信息包括:分片标识和对应的分 片校验码;以便所述第一P2P客户端依据所述分片信息从所述超级节点 服务器和/或其他P2P客户端下载所述层文件的各分片;
第四下载单元,用于在所述第三判断单元的结果为不存在的情况下, 依据所述源站地址将所述层文件的各分片从源站下载至本地;
第二生成单元,生成所述下载单元已下载的各分片的分片信息,以 便所述第一P2P客户端依据所述分片信息从所述超级节点和/或其他P2P 客户端下载所述层文件的各分片。
本申请实施例还公开了一种P2P分发系统,该P2P分发系统包括: 管控节点、超级节点和P2P客户端;其中,
所述P2P客户端,用于向所述管控节点发送Docker镜像的层文件的 下载请求;所述P2P客户端向所述超级节点列表中的最优超级节点请求 下载所述层文件;
所述管控节点,用于依据所述P2P客户端的位置和各超级节点的负 载,确定可用的、超级节点列表,并将所述超级节点列表发送至所述P2P 客户端;
所述超级节点,用于依据所述P2P客户端的下载请求中的源站地址, 判断所述层文件是否存在,如果存在,则生成所述层文件的分片信息, 以便所述P2P客户端依据所述分片信息从所述超级节点服务器和/或其他 P2P客户端下载所述层文件的各分片;如果不存在,则依据所述源站地址 将所述层文件的各分片从源站下载至本地,并生成已下载的各分片的分 片信息,以便所述P2P客户端依据所述分片信息从所述超级节点服务器 和/或其他P2P客户端下载所述层文件的各分片。
本申请实施例还公开了一种管控节点,所述管控节点位于端到端P2P 分发系统中,所述P2P分发系统包括:管控节点、超级节点和P2P客户 端;所述管控节点包括:
第四发送单元,用于在接收到Docker客户端发送的、Docker镜像的 层文件的触发预热请求后,向Docker镜像管理服务节点发送所述层文件 的下载请求;
第二接收单元,用于接收所述Docker镜像管理服务节点发送的、所 述层文件的下载地址;
第五发送单元,用于将所述层文件的下载地址发送至待预热的超级 节点,以便所述待预热的超级节点依据所述层文件的下载地址将所述层 文件预热至本地。
本申请实施例还公开了一种超级节点,所述超级节点部署于端到端 P2P分发系统中,所述P2P分发系统包括:管控节点、超级节点和P2P 客户端;所述超级节点包括:
第三接收单元,用于接收所述管控节点发送的、Docker镜像的层文 件的下载地址;
第六判断单元,用于依据所述层文件的下载地址判断本地是否缓存 有所述层文件;
预热单元,用于在所述判断单元的结果为否的情况下,依据所述层 文件的下载地址将所述层文件预热至本地,并生成所述层文件的层信息, 所述层信息包括:已下载的层文件的标识和校验码。
本申请实施例还公开了一种数据传输方法,用于在发送端和接收端之 间传输目标数据,其中,所述目标数据至少包括第一粒度子数据,所述 第一粒度子数据至少包括第二粒度子数据,该数据传输方法包括:
发送端将目标数据分解为多个第一粒度子数据;
发送端将所述多个第一粒度子数据分别发送到多个中转设备,其中, 所述中转设备位于发送端和多个接收端之间;
中转设备将第一粒度子数据分解为多个第二粒度子数据;
中转设备将所述多个第二粒度子数据发送到多个接收端。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例,分别部署了管控节点、超级节点和应用主机上的 P2P客户端,在需要发布应用至应用主机上的情况下,P2P客户端向管控 节点发送下载请求,由管控节点为客户端分配最合适的超级节点和其他 客户端,从而实现直接从超级节点下载Docker镜像,或者各个需要下载 同一个Docker镜像的多个客户端之间采用P2P的方式下载Docker镜像, 从而使得客户端无需直接和Docker仓库交互,不仅提升了Docker镜像的 下载效率,进而加速整个使用Docker部署应用的过程,还能保证下载过 程中的稳定性。并且,本申请实施例对用户完全透明,使用者只需要像 平常一样在客户端上执行Docker下载命令来拉取Docker镜像,即可直 接采用本申请实施例中的P2P分发系统来下载Docker镜像,获得下载加 速的效果,因此,本申请实施例不仅能解决大规模镜像分发的效率问题, 而且还能很大程度上解决远距离镜像下载慢甚至超时失败的问题。
此外,在本申请实施例中,Docker仓库中每保存Docker镜像的一层 层文件,就可以触发在超级节点上的预热流程,即超级节点先从Docker 仓库中将Docker镜像的各个层文件分别同步至本地,同步之后,后续再 有客户端从超级节点下载Docker镜像,超级节点就可以直接提供Docker 镜像或者触发其他客户端提供Docker镜像,从而提高Docker镜像的下载 效率;此外,即便超级节点没有保存客户端需要下载的Docker镜像,也 可以即时从Docker仓库中下载该Docker镜像,并提供给客户端,避免客 户端直接与Docker仓库进行交互,保证Docker镜像下载的稳定性。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有 优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述 中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅 仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创 造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例在实际应用中的示例性场景示意图;
图2是本申请的P2P分发系统的P2P下载流程的信令交互图;
图3是本申请的Docker镜像的预热方法实施例的流程图;
图4是本申请的Docker镜像的下载方法实施例的流程图
图5是本申请的超级节点的示例性结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案 进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实 施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本 申请保护的范围。
术语:
Docker,一个开源的应用容器引擎,让开发者可以打包他们的应用以 及依赖包到一个可移植的容器中,然后部署到任何机器上;同时可以实 现虚拟化,容器完全使用沙箱机制,相互隔离。
Docker镜像,由多个只读的镜像层构成的统一视角,每一层包含若 干文件和元信息数据。
Docker仓库,集中存放镜像文件的地方,可以向Docker仓库push 或者pull镜像等。
Docker registry,对Docker仓库进行管理的管理者,例如查询Docker 镜像、获取Docker镜像的下载地址等。
P2P分发技术,端到端的网络信息交互技术;每个客户端既能下载文 件同时又能上传文件给其他客户端,共享彼此之间的资源。
参考图1所示,为本申请在实际应用中P2P分发系统的示例性场景 示意图,该P2P分发系统可以包括:管控节点101(可以以集群方式部署)、 超级节点102(可以以单机形式部署)和各个部署在应用主机上的客户端 103,该P2P分发系统可以用于向客户端103提供Docker镜像的层文件, 具体的,各个层文件均可以以分片的形式从超级节点102或者其他客户 端下载至任意客户端。
具体的,管控节点101可以用于把每个客户端103调度到最合适的 超级节点102上进行注册,同时还可以分发下载策略和对图1所示的P2P 分发系统进行配置管理。其中,下载策略可以包括:客户端103下载失 败的重试次数、客户端103并发处理任务数、以及在超级节点102没有 保存层文件或其分片时如何从源站下载的策略。其中,下载失败的重试 次数是客户端103从另一个客户端或者超级节点上下载Docker镜像层文 件的分片失败时,可以重新发起下载的最大次数;客户端103并发处理 任务数是客户端在下载分片时最多可以同时下载多少个分片。而对P2P 分发系统的配置管理,可以包括超级节点102的网络上下行限速、超级 节点的处理容量以及可以下载Docker镜像的P2P客户端,等等。
超级节点102都是单机独立部署,相互之间无关联,因此摆脱了分 布式并发处理带来的同步开销,同时,超级节点102并不依赖任何外部 服务,所有处理过程完全基于本地内存,处理性能极高,基本可以达到 纳秒级。超级节点主要负责从源站(Docker镜像的层文件在Docker仓库 中的保存地址)下载层文件、对客户端的信息管理、P2P网络维护以及为各个客户端提供层文件的各分片的下载服务等。
客户端103可以安装在每台应用主机上,主要的功能是请求Docker 镜像的层文件的下载,并根据超级节点102的调度结果进行层文件的分 片的上传和下载,即客户端之间的P2P下载。
基于图1所示的应用场景,可以使得各个客户端103之间采用P2P 模式下载Docker镜像文件,从而实现高效下载。参考图2所示,为图1 所示的P2P分发系统的P2P下载流程的信令交互图,其中:
步骤201:用户首先通过命令行或者命令通道(例如SSH)的方式执 行客户端程序。
在本步骤中,用户通过命令行或者命令通道执行客户端程序时,其 中携带的参数必须包含源站地址,该源站地址表示用户需要下载的原始 文件所在的位置,可以是HTTP源,也可以扩展支持HDFS源、GIT源和 FTP源等类型。待用户执行客户端程序后,客户端103会向管控节点101 请求一层调度服务。
步骤202:管控节点根据客户端的位置信息和各个超级节点的负载情 况,解析得到超级节点列表并返回给客户端。
可以理解的是,在管控节点接收到客户端的调度服务请求后,会根 据客户端所在的客户节点的位置信息,以及,各个超级节点102的负载 情况,解析得到一个该客户端可用的超级节点列表。在该超级节点列表 中,可用按照优先级对各可用超级节点进行排序。具体的,优先级可以 按照各个超级节点的负载情况确定,例如,负载最小的超级节点优先级最高,以此类推。当然,还可以同时客户端的位置信息,例如,在距离 客户端预设距离内负载最小的超级节点的优先级最高,等等。具体如何 确定优先级,本申请对此不作限定。
步骤203:客户端注册到所述超级节点列表中的最优超级节点,该最 优超级节点收到注册请求后,初始化对应的客户端信息、下载进度信息 等。
客户端接收到超级节点列表之后,会注册到超级节点列表中优先级 最高的超级节点上,该最优超级节点收到注册请求后,会立即初始化客 户端所在的客户节点信息,以及客户端对待下载的文件的下载进度信息 等。
步骤204:最优超级节点判断是否是同一个下载任务的第一个注册 者,如果是,则进入步骤205,如果不是,则进入步骤206。
最优超级节点在初始化客户端信息后,还会判断该客户端是否是整 个下载任务的第一个注册者。如果该客户端是整个下载任务的第一个注 册者,则进入步骤205。在实际应用中,同一个源站地址的URL对应同 一个下载任务,而同一个下载任务一般包含多个客户端,这多个客户端 之间则构造成一个P2P网络。
步骤205:最优超级节点生成分片信息,进入步骤206。
在本实施例中,最优超级节点还会生成分片信息,其中,可以包括 Docker镜像的层文件的分片内容,以及,各个分片的分片号和MD5校验 码。
步骤206:客户端接收超级节点发送的下载任务ID,并通过该下载 任务ID向最优超级节点请求分片信息。
客户端注册成功后,最优超级节点会向客户端发送一个下载任务ID, 该下载任务ID用于唯一标识该客户端当前的下载任务,客户端和超级节 点之间就通过该下载任务ID来下载层文件。
步骤207:客户端接收最优超级节点发送的分片信息后,就从所述最 优超级节点指定的目标节点中下载指定的分片,所述目标节点包括最优 超级节点和/或其他客户端。
最优超级节点将分片信息发送给客户端之后,最优超级节点会同时 将目标节点通知客户端,即,最优超级节点会告知客户端应该从最优超 级节点还是已经下载了各分片的其他客户端处,来下载需要下载的各分 片。
其中,目标节点可能是最优超级节点本身,在这种情况下,客户端 的下载模式为C/S模式;目标节点也可能是其他的客户端,在这种情况 下客户端之间的下载模式为P2P模式。
在客户端将某个分片下载完成之后,可以将下载该分片完成的结果 上报给最优超级节点,并再次获取后续待下载的分片的分片信息,一直 循环该过程(上报已下载分片的下载结果、获取后续待下载分片的分片 信息等),直到层文件的各个分片均下载完成为止。
以上描述的是正常下载过程,针对异常情况,P2P分发系统也会进行 一些补偿处理,在这种情况下,例如,在客户端A从另外一个客户端B 下载某分片失败时(可能是客户端B异常退出了),客户端A将下载失败 的情况发送给最优超级节点,最优超级节点则会根据已下载该分片的其 他客户端情况,重新确定目标节点,并将客户端A调度到重新确定的目标节点以便下载该分片。
此外,如果客户端请求最优超级节点异常(可能是该超级节点挂了), 则客户端会进行动态迁移,重新注册到新的超级节点,该新的超级节点 可以从超级节点列表中按照优先级顺序进行选择,并以断点续传方式继 续下载未下载完的分片。
在介绍完本申请的应用场景及整体运行流程之后,参考图3,示出了 本申请一种Docker镜像的预热方法实施例的流程图,本实施例可以包括 以下步骤301~步骤306:
步骤301:Docker客户端(Docker daemon)在每push完一层镜像后, 向管控节点触发Docker镜像的层文件的预热请求。
在本申请实施例中,预热,指的是将Docker仓库中保存的Docker 镜像的层文件在构建(Docker build)完成之后,提前下载至超级节点上。 具体下载到哪些超级节点上,与待发布的应用有关,而对于待发布的应 用,可以先确定需要发布到哪些机房,然后这些机房关联的超级节点即 是需要预热的超级节点。
具体的,层级预热指的是,Docker build完成后,每保存(push)一 层Docker镜像到Docker仓库中,就立即触发把相应的层文件同步到超级 节点上。Docker push过程是逐层串行的,而层文件的同步过程则是以在 各个需要预热的超级节点之间以P2P模式并行执行下载的,通过这种方 式,可以把层文件根据需要提前预热到某些地区的超级节点中,从而有 效地解决了远距离镜像下载过慢的问题。
需要说明的是,预热的过程是异步执行的,并不影响Docker原有的、 Docker镜像的其他层文件的push操作,而管控节点的通信地址在Docker daemon启动时可以以命令行参数的形式进行配置。
步骤302:在接收到Docker daemon发送的、Docker镜像的层文件的 触发预热请求后,管控节点向Docker镜像管理服务节点发送所述层文件 的下载请求。
在本实施例中,在管控节点触发超级节点进行预热之前,管控节点 会根据Docker镜像的镜像名、镜像标签(tag)以及层文件的摘要(digest), 向Docker镜像管理服务节点(Docker registry)获取对应层的下载地址。 在实际应用中,每一个应用都有一个Docker仓库,在Docker仓库中包存 着该应用的Docker镜像文件,根据镜像名和镜像tag可以确定一个Docker 镜像文件,根据层文件的digest可以查找到Docker镜像文件的层文件。
具体的,Docker registry会判断管控节点是否授权通过,如果是,则 根据用户配置命令行时携带的HTTP源站地址响应头部的location字段提 取层文件的下载地址。如果授权未通过,则可以根据HTTP响应头部的 WWW-Authenticate字段生成授权URL,管控节点请求该授权URL并在HTTP头部加上用户认证信息,从而获取授权token,进而再向Dockerregistry请求授权。
步骤303:所述管控节点接收所述Docker镜像管理服务节点发送的、 所述层文件的下载地址,将所述层文件的下载地址发送至待预热的超级 节点。
Docker registry将层文件的下载地址会发送给管控节点,管控节点在 接收到下载地址后,所述管控节点将所述层文件的下载地址发送至待预 热的超级节点,以便触发待预热的超级节点依据所述层文件的下载地址 将所述层文件预热至本地。
步骤304:所述超级节点依据所述层文件的下载地址判断本地是否缓 存有所述层文件,如果否,则进入步骤305,如果是,则预热成功。
步骤305:依据所述层文件的下载地址将所述层文件预热至本地,并 生成所述层文件的层信息,所述层信息包括:已下载的层文件的标识和 校验码。
超级节点在接收到层文件的下载地址后,会根据下载地址对应的层 文件吗,判断本地是否已经缓存有该层文件,如果没有,就可以和所有 需要预热该层文件的各超级节点之间组成P2P网络,这些超级节点之间 通过P2P方式下载该层文件。待层文件下载完成后,超级节点再生成对 应的元信息文件,元信息文件可以包括该层文件的层标识,用于进行缓存定位,还可以包括层文件的MD5值,用于进行该层文件的有效性判断。
在超级节点预热成功之后,或者在超级节点预热的过程中,如果超 级节点接收到了P2P客户端发送的、下载层文件的请求,超级节点还可 以包括以下步骤A1~步骤A3:
步骤A1:超级节点在接收到所述P2P客户端发送的、层文件的下载 请求后,该下载请求包括所述层文件的源站地址,所述超级节点判断是 否缓存有所述待下载的层文件,如果有,则进入步骤A2,如果没有,则 进入步骤A3。
在实际应用中,在超级节点预热之后P2P客户端可能会下载某层文 件,或者在超级节点还未预热成功时,P2P客户端就会下载某层文件,则 超级节点在接收到P2P客户端发送的、层文件的下载请求后,该下载请 求包括层文件的源站地址,超级节点先判断本地是否已经缓存有待下载 的层文件。
步骤A2:分别生成各分片的分片信息,所述分片信息包括:分片标 识和对应的分片校验码;以及,将已生成分片信息的各分片分别发送至 所述客户端。
如果本地缓存有P2P客户端待下载的层文件,则超级节点生成层文 件的各分片的分片信息,例如分片标识和对应的分片校验码(MD5值等), 以便客户端依据分片信息下载分片。
步骤A3:依据所述源站地址将所述层文件的各分片从源站下载至本 地,并分别生成已下载各分片的分片信息,所述分片信息包括:分片标 识和对应的分片校验码;以及,将已生成分片信息的各分片分别发送至 所述P2P客户端。
在本实施例中,超级节点每一次从源站下载一个分片,即可生成该 分片的分片信息,生成分片信息之后即可将该分片提供给客户端进行下 载。
可见,在本申请实施例中,Docker仓库中每保存(push成功)Docker 镜像的一层层文件,就可以触发在超级节点上的预热流程,即超级节点 先从Docker仓库中将Docker镜像的各个层文件分别同步至本地,同步之 后,后续再有客户端从超级节点下载Docker镜像,超级节点就可以直接 提供Docker镜像或者触发其他客户端提供Docker镜像,从而提高Docker 镜像的下载效率;此外,即便超级节点没有保存客户端需要下载的Docker 镜像,也可以即时从Docker仓库中下载该Docker镜像,并提供给客户端, 避免客户端直接与Docker仓库进行交互,保证Docker镜像下载的稳定性。
参考图4,示出了本申请一种Docker镜像的下载方法实施例的流程 图,本实施例可以应用于P2P分发系统中,所述P2P分发系统可以包括: 管控节点、超级节点和P2P客户端;本实施例可以包括以下步骤:
步骤401:第一P2P客户端向所述管控节点发送Docker镜像的层文 件的下载请求。
在本实施例中,Docker镜像的证明文件(manifest文件)包括有整个 Docker镜像中每一层的层文件的digest(采用sha256签名的方式),Docker daemon根据该manifest文件分析对比本地已有的层文件,从而将本地没 有缓存的层文件确定为待下载的层文件,针对需要下载的层文件,Docker daemon向Docker registry请求待下载的层文件的下载地址,并调用P2P 客户端下载层文件。
具体的,以当前发送下载的请求客户端为第一P2P客户端为例进行 介绍,第一P2P客户端先向管控节点发送Docker镜像的层文件的下载请 求。
步骤402:管控节点依据所述第一P2P客户端的位置和各超级节点的 负载,确定可用的、超级节点列表。
管控节点根据第一P2P客户端的位置和各超级节点的负载,确定可 用的、超级节点的列表信息,并将超级节点列表发送至第一P2P客户端。
步骤403:第一P2P客户端在接收到所述管控节点发送的、超级节点 列表后,向所述超级节点列表中的最优超级节点进行注册,注册成功后 向最优超级节点发送下载请求,所述下载请求可以包括Docker镜像的层 文件的源站地址。
其中,该源站地址即是Docker镜像的层文件在Docker仓库中的保存 地址。
步骤404:所述最优超级节点依据所述源站地址判断层文件是否存 在,如果存在,则进入步骤405,如果不存在,则进入步骤407。
最优超级节点首先依据源站地址判断自己是否已经缓存了该层文 件,如果缓存了,就说明缓存命中,就可以将该层文件的各分片分别提 供给客户端下载。如果没有缓存,则需要执行回源同步,即从Docker仓 库下载层文件并提供给客户端。
步骤405:超级节点向源站发送所述层文件的最新修改时间,依据源 站返回的响应码判断所述层文件在源站中是否被修改过,如果修改过, 则依据所述源站地址将所述层文件的各分片从源站下载至本地;如果未 被修改过,则判断本地存在的层文件是否缺失,如果缺失,则将所述层 文件中缺失的分片通过断点续传的方式从源站下载至本地。
超级节点在缓存了层文件的情况下,则可以向源站发送HEAD请求 并带上If-Modified-Since字段,该字段的值为上一次访问源站时返回的该 层文件的最后修改时间。如果源站返回的响应码为304,则表示源站中的 该层文件目标还未被修改过,则说明超级节点原本缓存的层文件是有效 的,则可以再判断超级节点缓存的层文件是否缺失,如果缺失,也需要 将缺失的那一部分分片以断点续传的方式从源站进行下载,如果不缺失, 则不需要继续下载。而如果源站中的层文件被修改过,响应码就为200, 说明超级节点缓存的层文件无效,则需要进行回源同步,即重新从源站 下载该层文件。
无论哪一种情况,最优超级节点最终都会缓存到客户端需要下载的 层文件,然后进入步骤406。
步骤406:最优超级节点生成所述层文件的分片信息,第一P2P客户 端依据所述分片信息从所述超级节点服务器和/或其他P2P客户端下载所 述层文件的各分片。
最优超级节点接着生成已经缓存的层文件的分片信息,分片信息中 可以包括分片号和对应的MD5校验码,分片号可以用于客户端识别其下 载的分片,而MD5校验码则用于客户端之间互传分片时的分片完整性校 验。
步骤407:超级节点依据所述源站地址将所述层文件的各分片从源站 下载至本地,并生成已下载的各分片的分片信息,所述第一P2P客户端 依据所述分片信息从所述超级节点服务器和/或其他P2P客户端下载所述 层文件的各分片。
如果超级节点并没有缓存客户端需要下载的层文件,则超级节点再 依据源站地址从源站下载层文件,并生成已下载的各分片的分片信息, 超级节点每生成一个分片的分片信息,就可以立即将该分片提供给客户 端进行下载,进而多个下载该分片的客户端之间也可以形成P2P网络, 可以将分片快速下载到本地。
在实际应用中,如果第一P2P客户端是从第二P2P客户端下载分片 A的,如果第二P2P客户端出现异常情况,例如异常退出了,则第一P2P 客户端下载分片A就不成功,则可以执行以下步骤C1~步骤C3:
步骤C1:所述第一P2P客户端判断从第二P2P客户端下载分片是否 成功,如果否,则进入步骤C2。
下载分片A的第一P2P客户端判断是否从二P2P客户端下载成功, 如果不成功,则执行后续步骤C2,如果下载成功,则不执行后续步骤C2。
步骤C2:所述第一P2P客户端将下载失败的分片信息和对应的第二 P2P客户端发送至所述最优超级节点,以便最优超级节点为所述第一P2P 客户端分配其他能够正常下载该分片A的第三P2P客户端。
步骤C3:所述第一P2P客户端从第三P2P客户端下载所述分片A。
所述一P2P客户端从第三P2P客户端重新下载所述分片A即可。
在实际应用中,还有一种情况是,第一P2P客户端是从超级节点下 载分片B的,如果超级节点出现异常情况,例如超级节点挂了,则第一 P2P客户端下载分片B也不成功,则可以执行以下步骤D1~步骤D3:
步骤D1:第一P2P客户端判断从所述最优超级节点下载分片是否成 功,如果否,则进入步骤D2。
第一P2P客户端判断从最优超级节点下载分片B是否成功,例如可 以通过分片B的MD5校验码进行判断。如果不成功,则执行后续步骤 D2,如果成功,则不执行后续步骤。
步骤D2:第一P2P客户端按照超级节点列表中各可用的超级节点的 优先级,向下一个超级节点进行注册,直至重新注册成功为止。
第一P2P客户端按照超级节点列表中各个超级节点的优先级,向下 一个超级节点进行注册,如果能注册成功,则从下一个超级节点以断点 续传的方式继续下载分片B,而如果不能注册成功,则按照优先级的顺序 继续向下一个超级节点进行注册,直至注册成功为止。
步骤D3:所述第一P2P客户端以断点续传的方式从重新注册的超级 节点下载所述分片。
第一P2P客户端以断点续传的方式从重新注册的超级节点下载分片B。
在本实施例中,分别部署了管控节点、超级节点和应用主机上的P2P 客户端,在需要发布应用至应用主机上的情况下,P2P客户端向管控节点 发送下载请求,由管控节点为客户端分配最合适的超级节点和其他客户 端,从而实现直接从超级节点下载Docker镜像,或者各个需要下载同一 个Docker镜像的多个客户端之间采用P2P的方式下载Docker镜像,从 而使得客户端无需直接和Docker仓库交互,不仅提升了Docker镜像的下 载效率,进而加速整个使用Docker部署应用的过程,还能保证下载过程 中的稳定性。
并且,本申请实施例对用户完全透明,使用者只需要像平常一样在客 户端上执行Docker下载命令来拉取Docker镜像,即可直接采用本申请 实施例中的P2P分发系统来下载Docker镜像,获得下载加速的效果,因 此,本申请实施例不仅能解决大规模镜像分发的效率问题,而且还能很 大程度上解决远距离镜像下载慢甚至超时失败的问题。
本申请实施例还提供了一种数据传输方法,可以用于在发送端和接收 端之间传输目标数据,其中,所述目标数据至少可以包括第一粒度子数 据,所述第一粒度子数据至少可以包括第二粒度子数据,该数据传输方 法具体可以包括:
步骤E1:发送端将目标数据分解为多个第一粒度子数据。
在本实施例中,目标数据在发送端保存,发送端在向多个接收端发送 目标数据的时候,可以先将目标数据分解为多个第一粒度子数据。例如, 发送端需要发送的数据为K,该数据共包括5个子数据,例如分别为: K1、K2、K3、K4和K5。
步骤E2:发送端将所述多个第一粒度子数据分别发送到多个中转设 备。
在本实施例中,可以在发送端和多个接收端之间设置多个中转设备。 例如,发送端需要给10个接收端发送目标数据,而在这10个接收端和 发送端之间设置了5个中转设备。
相应的,发送端将多个第一粒度子数据分别发送到多个中转设备时, 可以先获取预先设置的、第一粒度子数据与中转设备之间的对应关系, 再按照所述对应关系将多个第一粒度子数据分别发送至多个中转设备。 例如,在发送端预先设置的对应关系,第一粒度子数据K1发送给中转设 备1,第二粒度子数据K2发送给中转设备2,以此类推,第一粒度子数 据K5发送给中转设备5。当然,这仅仅是一种示例性的设置方式,发送 端还可以选择一部分中转设备来发送第一粒度子数据,或者,不同的中 转设备对应的第一粒度子数据的个数也不同,等等。
假设各个中转设备都从发送端接收到了发送给自己的第一粒度子数 据,各中转设备再分别从其他中转设备将所述发送端未发送给自己的第 一粒度子数据下载至本地,即第一粒度子数据可以在各中转设备之间互 相发送。例如,中转设备1接收到了第一粒度子数据K1,并且,中转设 备1从中转设备2处下载了第二粒度子数据K2,以此类推,中转设备1 从中转设备5处下载了第五粒度子数据K5。
当然,在第一粒度子数据和中转设备之间是其他对应关系时,各个中 转设备只需要将自己缺失的部分第一粒度子数据从其他拥有这部分第一 粒度子数据分别下载到本地即可。
步骤E3:中转设备将第一粒度子数据分解为多个第二粒度子数据。
中转设备在接收到完整的目标数据,包括所有的第一粒度子数据之 后,中转设备分别将各个第一粒度子数据分解为多个第二粒度子数据。 例如,对于中转设备1来讲,将第一粒度子数据K1分别分解为3个第二 粒度子数据:K11、K12和K13,再将第二粒度子数据K2分解为2个第 二粒度子数据:K21和K22,等等。
具体的,各个中转设备如何分解自己接收到的各个第一粒度子数据, 可以根据第一粒度子数据的内容以及发送端的个数等等进行设置,本领 域技术人员可以自主决定。
步骤E4:中转设备将所述多个第二粒度子数据发送到多个接收端。
在本步骤中,中转设备再将分解后的多个第二粒度子数据发送到多个 接收端。具体的,中转设备也可以按照预设的第二粒度子数据与接收端 之间的对应关系,将所述多个第二粒度子数据分别发送至多个接收端, 各接收端都接收到了一部分第二粒度子数据,然后再分别从其他接收端 将所述中转设备未发送给自己的第二粒度子数据下载至本地。具体发送 方式可以参考步骤E3的介绍,在此不再赘述。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的 动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作 顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进 行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属 于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例还提供了一种端到端P2P客户端,P2P客户端可以部 署于P2P分发系统中,所述P2P分发系统可以包括:管控节点、超级节 点和P2P客户端;所述P2P客户端具体可以包括:
第一发送单元,用于向所述管控节点发送Docker镜像的层文件的下 载请求,以便所述管控节点依据所述第一P2P客户端的位置和各超级节 点的负载,确定可用的、超级节点列表。
请求单元,用于向所述超级节点列表中的最优超级节点请求下载所 述层文件,以便所述最优超级节点生成所述层文件的各分片的分片信息, 所述分片信息包括:分片标识和对应的分片校验码。以及,
第一下载单元,用于依据所述分片信息,从所述最优超级节点和/或 所述其他P2P客户端,下载所述层文件的各分片至本地。
其中,所述P2P客户端如果从最优超级节点下载分片失败,还可以 包括:
第一判断单元,用于判断从所述最优超级节点下载分片是否成功;
注册单元,用于在所述第一判断单元的结果为否的情况下,按照超 级节点列表中各超级节点的优先级,向下一个超级节点进行注册,直至 重新注册成功为止;以及,
第二下载单元,用于以断点续传的方式从重新注册的超级节点下载 所述分片。
其中,所述第一P2P客户端如果从第二P2P客户端下载分片失败, 还可以包括:
第二判断单元,用于判断从第二P2P客户端下载分片是否成功;
第二发送单元,用于在所述第二判断单元的结果为否的情况下,将 下载失败的分片信息和对应的第二P2P客户端发送至所述最优超级节点, 以便所述最优超级节点为所述第一P2P客户端分配第三P2P客户端;以 及,
第三下载单元,用于从所述第三P2P客户端下载所述分片。
参见图5,本申请还提供了一种超级节点实施例,在本实施例中,超 级节点可以部署于P2P分发系统中,所述P2P分发系统包括:管控节点、 超级节点和P2P客户端;该超级节点可以包括:
第一接收单元501,用于接收第一P2P客户端的下载请求,所述下载 请求包括Docker镜像的层文件的源站地址。
第三判断单元502,用于依据所述源站地址判断所述层文件是否存 在。
第一生成单元503,用于在所述第三判断单元的结果为存在的情况 下,生成所述层文件的分片信息,所述分片信息包括:分片标识和对应 的分片校验码;以便所述第一P2P客户端依据所述分片信息从所述超级 节点服务器和/或其他P2P客户端下载所述层文件的各分片。
第四下载单元504,用于在所述第三判断单元的结果为不存在的情况 下,依据所述源站地址将所述层文件的各分片从源站下载至本地。
第二生成单元505,生成所述下载单元已下载的各分片的分片信息, 以便所述第一P2P客户端依据所述分片信息从所述超级节点和/或其他 P2P客户端下载所述层文件的各分片。
其中,所述超级节点还可以包括:
第三发送单元,用于向源站发送所述层文件的最新修改时间;
第四判断单元,用于依据源站返回的响应码判断所述层文件在源站中 是否被修改过;
第五下载单元,用于在所述判断单元的结果为是的情况下,依据所述 源站地址将所述层文件的各分片从源站下载至本地;
第五判断单元,用于在所述判断单元的结果为否的情况下,判断本地 存在的层文件是否缺失;以及,
第六下载单元,用于在所述判断单元的结果为缺失的情况下,将所述 层文件中缺失的分片通过断点续传的方式从源站下载至本地。
本申请实施例还提供了一种P2P分发系统,所述P2P分发系统具体 可以包括:管控节点、超级节点和P2P客户端;其中,
所述P2P客户端,用于向所述管控节点发送Docker镜像的层文件的 下载请求;所述P2P客户端向所述超级节点列表中的最优超级节点请求 下载所述层文件;
所述管控节点,用于依据所述P2P客户端的位置和各超级节点的负 载,确定可用的、超级节点列表,并将所述超级节点列表发送至所述P2P 客户端;以及,
所述超级节点,用于依据所述P2P客户端的下载请求中的源站地址, 判断所述层文件是否存在,如果存在,则生成所述层文件的分片信息, 以便所述P2P客户端依据所述分片信息从所述超级节点服务器和/或其他 P2P客户端下载所述层文件的各分片;如果不存在,则依据所述源站地址 将所述层文件的各分片从源站下载至本地,并生成已下载的各分片的分 片信息,以便所述P2P客户端依据所述分片信息从所述超级节点服务器 和/或其他P2P客户端下载所述层文件的各分片。
本申请实施例还提供了一种管控节点,所述管控节点可以部署于端 到端P2P分发系统中,所述P2P分发系统具体可以包括:管控节点、超 级节点和P2P客户端;所述管控节点具体可以包括:
第四发送单元,用于在接收到Docker客户端发送的、Docker镜像的 层文件的触发预热请求后,向Docker镜像管理服务节点发送所述层文件 的下载请求。
第二接收单元,用于接收所述Docker镜像管理服务节点发送的、所 述层文件的下载地址。
第五发送单元,用于将所述层文件的下载地址发送至待预热的超级 节点,以便所述待预热的超级节点依据所述层文件的下载地址将所述层 文件预热至本地。
本申请实施例还提供了一种超级节点,所述超级节点部署于端到端 P2P分发系统中,所述P2P分发系统具体可以包括:管控节点、超级节 点和P2P客户端;所述超级节点具体可以包括:
第三接收单元,用于接收所述管控节点发送的、Docker镜像的层文 件的下载地址;
第六判断单元,用于依据所述层文件的下载地址判断本地是否缓存 有所述层文件;以及,
预热单元,用于在所述判断单元的结果为否的情况下,依据所述层 文件的下载地址将所述层文件预热至本地,并生成所述层文件的层信息, 所述层信息包括:已下载的层文件的标识和校验码。
其中,所述超级节点还可以包括:
第七判断单元,用于在接收到所述P2P客户端发送的、层文件的下 载请求后,所述下载请求包括所述层文件的源站地址,判断是否缓存有 所述待下载的层文件;
第三生成单元,用于在所述判断单元的结果为有的情况下,生成各 分片的分片信息,所述分片信息包括:分片标识和对应的分片校验码; 以及,将已生成分片信息的各分片分别发送至所述客户端;以及,
第七下载单元,用于在所述判断单元的结果为没有的情况下,依据 所述源站地址将所述层文件的各分片从源站下载至本地,并分别生成已 下载各分片的分片信息,所述分片信息包括:分片标识和对应的分片校 验码;以及,将已生成分片信息的各分片分别发送至所述P2P客户端。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述, 每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间 相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法 实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部 分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系 术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不 一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺 序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他 性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅 包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为 这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况 下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的 过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的Docker镜像的下载方法及节点、Docker镜像 的预热方法及节点进行了详细介绍,本文中应用了具体个例对本申请的 原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申 请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申 请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述, 本说明书内容不应理解为对本申请的限制。
Claims (22)
1.一种Docker镜像的下载方法,其特征在于,所述下载方法应用于端到端P2P分发系统中的P2P客户端,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;所述方法包括:
第一P2P客户端向所述管控节点发送Docker镜像的层文件的下载请求,以便所述管控节点依据所述第一P2P客户端的位置和各超级节点的负载,确定可用的、超级节点列表;
所述第一P2P客户端向所述超级节点列表中的最优超级节点请求下载所述层文件,以便所述最优超级节点生成所述层文件的各分片的分片信息,所述分片信息包括:分片标识和对应的分片校验码;
所述第一P2P客户端依据所述分片信息,从所述最优超级节点和/或所述其他P2P客户端,下载所述层文件的各分片至本地。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述第一P2P客户端判断从所述最优超级节点下载分片是否成功,如果否,则按照超级节点列表中各超级节点的优先级,向下一个超级节点进行注册,直至重新注册成功为止;
所述第一P2P客户端以断点续传的方式从重新注册的超级节点下载所述分片。
3.根据权利要求1所述的方法,其特征在于,还包括:
所述第一P2P客户端判断从第二P2P客户端下载分片是否成功,如果否,则将下载失败的分片信息和对应的第二P2P客户端发送至所述最优超级节点,以便所述最优超级节点为所述第一P2P客户端分配第三P2P客户端;
所述第一P2P客户端从所述第三P2P客户端下载所述分片。
4.一种Docker镜像的下载方法,其特征在于,所述下载方法应用于端到端P2P分发系统中的超级节点上,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;所述方法包括:
所述超级节点接收第一P2P客户端的下载请求,所述下载请求包括Docker镜像的层文件的源站地址;
依据所述源站地址判断所述层文件是否存在,如果存在,则生成所述层文件的分片信息,所述分片信息包括:分片标识和对应的分片校验码;以便所述第一P2P客户端依据所述分片信息从所述超级节点服务器和/或其他P2P客户端下载所述层文件的各分片;
如果不存在,则依据所述源站地址将所述层文件的各分片从源站下载至本地,并生成已下载的各分片的分片信息,以便所述第一P2P客户端依据所述分片信息从所述超级节点和/或其他P2P客户端下载所述层文件的各分片。
5.根据权利要求4所述的方法,其特征在于,如果层文件存在,还包括:
所述超级节点向源站发送所述层文件的最新修改时间;
依据源站返回的响应码判断所述层文件在源站中是否被修改过,如果修改过,则依据所述源站地址将所述层文件的各分片从源站下载至本地;
如果未被修改过,则判断本地存在的层文件是否缺失,如果缺失,则将所述层文件中缺失的分片通过断点续传的方式从源站下载至本地。
6.一种Docker镜像的下载方法,其特征在于,所述下载方法应用于端到端P2P分发系统中,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;所述方法包括:
第一P2P客户端向所述管控节点发送Docker镜像的层文件的下载请求;
所述管控节点依据所述第一P2P客户端的位置和各超级节点的负载,确定可用的、超级节点列表,并将所述超级节点列表发送至所述第一P2P客户端;
所述第一P2P客户端向所述超级节点列表中的最优超级节点请求下载所述层文件;
所述超级节点依据所述第一P2P客户端的下载请求中的源站地址,判断所述层文件是否存在,如果存在,则生成所述层文件的分片信息,以便所述第一P2P客户端依据所述分片信息从所述超级节点服务器和/或其他P2P客户端下载所述层文件的各分片;
如果不存在,则依据所述源站地址将所述层文件的各分片从源站下载至本地,并生成已下载的各分片的分片信息,以便所述第一P2P客户端依据所述分片信息从所述超级节点服务器和/或其他P2P客户端下载所述层文件的各分片。
7.一种Docker镜像的预热方法,其特征在于,该预热方法应用于端到端P2P分发系统中的管控节点上,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;所述方法包括:
在接收到Docker客户端发送的、Docker镜像的层文件的触发预热请求后,所述管控节点向Docker镜像管理服务节点发送所述层文件的下载请求;
所述管控节点接收所述Docker镜像管理服务节点发送的、所述层文件的下载地址;
所述管控节点将所述层文件的下载地址发送至待预热的超级节点,以便所述待预热的超级节点依据所述层文件的下载地址将所述层文件预热至本地。
8.一种Docker镜像的预热方法,其特征在于,该预热方法应用于端到端P2P分发系统中的超级节点上,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;所述方法包括:
所述超级节点接收所述管控节点发送的、Docker镜像的层文件的下载地址;
所述超级节点依据所述层文件的下载地址判断本地是否缓存有所述层文件,如果否,则依据所述层文件的下载地址将所述层文件预热至本地,并生成所述层文件的层信息,所述层信息包括:已下载的层文件的标识和校验码。
9.根据权利要求8所述的方法,其特征在于,还包括:
在接收到所述P2P客户端发送的、层文件的下载请求后,所述下载请求包括所述层文件的源站地址,所述超级节点判断是否缓存有所述待下载的层文件,如果有,则生成各分片的分片信息,所述分片信息包括:分片标识和对应的分片校验码;以及,将已生成分片信息的各分片分别发送至所述客户端;
如果没有,则依据所述源站地址将所述层文件的各分片从源站下载至本地,并分别生成已下载各分片的分片信息,所述分片信息包括:分片标识和对应的分片校验码;以及,将已生成分片信息的各分片分别发送至所述P2P客户端。
10.一种端到端P2P客户端,其特征在于,所述P2P客户端位于P2P分发系统中,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;所述P2P客户端包括:
第一发送单元,用于向所述管控节点发送Docker镜像的层文件的下载请求,以便所述管控节点依据所述第一P2P客户端的位置和各超级节点的负载,确定可用的、超级节点列表;
请求单元,用于向所述超级节点列表中的最优超级节点请求下载所述层文件,以便所述最优超级节点生成所述层文件的各分片的分片信息,所述分片信息包括:分片标识和对应的分片校验码;
第一下载单元,用于依据所述分片信息,从所述最优超级节点和/或所述其他P2P客户端,下载所述层文件的各分片至本地。
11.根据权利要求10所述的客户端,其特征在于,还包括:
第一判断单元,用于判断从所述最优超级节点下载分片是否成功;
注册单元,用于在所述第一判断单元的结果为否的情况下,按照超级节点列表中各超级节点的优先级,向下一个超级节点进行注册,直至重新注册成功为止;
第二下载单元,用于以断点续传的方式从重新注册的超级节点下载所述分片。
12.根据权利要求10所述的客户端,其特征在于,还包括:
第二判断单元,用于判断从第二P2P客户端下载分片是否成功;
第二发送单元,用于在所述第二判断单元的结果为否的情况下,将下载失败的分片信息和对应的第二P2P客户端发送至所述最优超级节点,以便所述最优超级节点为所述第一P2P客户端分配第三P2P客户端;
第三下载单元,用于从所述第三P2P客户端下载所述分片。
13.一种超级节点,其特征在于,所述超级节点部署于P2P分发系统中,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;所述超级节点包括:
第一接收单元,用于接收第一P2P客户端的下载请求,所述下载请求包括Docker镜像的层文件的源站地址;
第三判断单元,用于依据所述源站地址判断所述层文件是否存在;
第一生成单元,用于在所述第三判断单元的结果为存在的情况下,生成所述层文件的分片信息,所述分片信息包括:分片标识和对应的分片校验码;以便所述第一P2P客户端依据所述分片信息从所述超级节点服务器和/或其他P2P客户端下载所述层文件的各分片;
第四下载单元,用于在所述第三判断单元的结果为不存在的情况下,依据所述源站地址将所述层文件的各分片从源站下载至本地;
第二生成单元,生成所述下载单元已下载的各分片的分片信息,以便所述第一P2P客户端依据所述分片信息从所述超级节点和/或其他P2P客户端下载所述层文件的各分片。
14.根据权利要求13所述的超级节点,其特征在于,还包括:
第三发送单元,用于向源站发送所述层文件的最新修改时间;
第四判断单元,用于依据源站返回的响应码判断所述层文件在源站中是否被修改过;
第五下载单元,用于在所述判断单元的结果为是的情况下,依据所述源站地址将所述层文件的各分片从源站下载至本地;
第五判断单元,用于在所述判断单元的结果为否的情况下,判断本地存在的层文件是否缺失;
第六下载单元,用于在所述判断单元的结果为缺失的情况下,将所述层文件中缺失的分片通过断点续传的方式从源站下载至本地。
15.一种P2P分发系统,其特征在于,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;其中,
所述P2P客户端,用于向所述管控节点发送Docker镜像的层文件的下载请求;所述P2P客户端向所述超级节点列表中的最优超级节点请求下载所述层文件;
所述管控节点,用于依据所述P2P客户端的位置和各超级节点的负载,确定可用的、超级节点列表,并将所述超级节点列表发送至所述P2P客户端;
所述超级节点,用于依据所述P2P客户端的下载请求中的源站地址,判断所述层文件是否存在,如果存在,则生成所述层文件的分片信息,以便所述P2P客户端依据所述分片信息从所述超级节点服务器和/或其他P2P客户端下载所述层文件的各分片;如果不存在,则依据所述源站地址将所述层文件的各分片从源站下载至本地,并生成已下载的各分片的分片信息,以便所述P2P客户端依据所述分片信息从所述超级节点服务器和/或其他P2P客户端下载所述层文件的各分片。
16.一种管控节点,其特征在于,所述管控节点位于端到端P2P分发系统中,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;所述管控节点包括:
第四发送单元,用于在接收到Docker客户端发送的、Docker镜像的层文件的触发预热请求后,向Docker镜像管理服务节点发送所述层文件的下载请求;
第二接收单元,用于接收所述Docker镜像管理服务节点发送的、所述层文件的下载地址;
第五发送单元,用于将所述层文件的下载地址发送至待预热的超级节点,以便所述待预热的超级节点依据所述层文件的下载地址将所述层文件预热至本地。
17.一种超级节点,其特征在于,所述超级节点部署于端到端P2P分发系统中,所述P2P分发系统包括:管控节点、超级节点和P2P客户端;所述超级节点包括:
第三接收单元,用于接收所述管控节点发送的、Docker镜像的层文件的下载地址;
第六判断单元,用于依据所述层文件的下载地址判断本地是否缓存有所述层文件;
预热单元,用于在所述判断单元的结果为否的情况下,依据所述层文件的下载地址将所述层文件预热至本地,并生成所述层文件的层信息,所述层信息包括:已下载的层文件的标识和校验码。
18.根据权利要求17所述的超级节点,其特征在于,还包括:
第七判断单元,用于在接收到所述P2P客户端发送的、层文件的下载请求后,所述下载请求包括所述层文件的源站地址,判断是否缓存有所述待下载的层文件;
第三生成单元,用于在所述判断单元的结果为有的情况下,生成各分片的分片信息,所述分片信息包括:分片标识和对应的分片校验码;以及,将已生成分片信息的各分片分别发送至所述客户端;
第七下载单元,用于在所述判断单元的结果为没有的情况下,依据所述源站地址将所述层文件的各分片从源站下载至本地,并分别生成已下载各分片的分片信息,所述分片信息包括:分片标识和对应的分片校验码;以及,将已生成分片信息的各分片分别发送至所述P2P客户端。
19.一种数据传输方法,用于在发送端和接收端之间传输目标数据,其中,所述目标数据至少包括第一粒度子数据,所述第一粒度子数据至少包括第二粒度子数据,其特征在于,包括:
发送端将目标数据分解为多个第一粒度子数据;
发送端将所述多个第一粒度子数据分别发送到多个中转设备,其中,所述中转设备位于发送端和多个接收端之间;
中转设备将第一粒度子数据分解为多个第二粒度子数据;
中转设备将所述多个第二粒度子数据发送到多个接收端。
20.根据权利要求19所述的方法,其特征在于,所述发送端将所述多个第一粒度子数据分别发送到多个中转设备,包括:
所述发送端获取预先设置的、第一粒度子数据与中转设备之间的对应关系;
所述发送端按照所述对应关系将所述多个第一粒度子数据分别发送至所述多个中转设备。
21.根据权利要求20所述的方法,其特征在于,所述发送端按照所述对应关系将所述多个第一粒度子数据分别发送至所述多个中转设备之后,还包括:
各中转设备分别从其他中转设备将所述发送端未发送给自己的第一粒度子数据下载至本地。
22.根据权利要求19所述的方法,其特征在于,所述中转设备将第二粒度子数据发送到接收端,包括:
所述中转设备按照预设的第二粒度子数据与接收端之间的对应关系,将所述多个第一粒度子数据分别发送至多个接收端,以及,各接收端分别从其他接收端将所述中转设备未发送给自己的第二粒度子数据下载至本地。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710475273.5A CN109104451A (zh) | 2017-06-21 | 2017-06-21 | Docker镜像的下载方法及节点、Docker镜像的预热方法及节点 |
US15/994,361 US20180373517A1 (en) | 2017-06-21 | 2018-05-31 | Systems, methods, and apparatuses for docker image downloading |
PCT/US2018/035537 WO2018236567A1 (en) | 2017-06-21 | 2018-06-01 | SYSTEMS, METHODS AND APPARATUS FOR DOWNLOADING DOCKER IMAGES |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710475273.5A CN109104451A (zh) | 2017-06-21 | 2017-06-21 | Docker镜像的下载方法及节点、Docker镜像的预热方法及节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109104451A true CN109104451A (zh) | 2018-12-28 |
Family
ID=64693177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710475273.5A Pending CN109104451A (zh) | 2017-06-21 | 2017-06-21 | Docker镜像的下载方法及节点、Docker镜像的预热方法及节点 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180373517A1 (zh) |
CN (1) | CN109104451A (zh) |
WO (1) | WO2018236567A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109600453A (zh) * | 2019-02-18 | 2019-04-09 | 广州卓远虚拟现实科技有限公司 | 一种分布式虚拟现实内容分发方法和系统 |
CN109688232A (zh) * | 2019-01-28 | 2019-04-26 | 杭州涂鸦信息技术有限公司 | 一种镜像回溯方法、镜像回溯系统及代理服务器 |
CN109918911A (zh) * | 2019-03-18 | 2019-06-21 | 北京升鑫网络科技有限公司 | 一种镜像安装包信息的扫描方法及设备 |
CN111107135A (zh) * | 2019-12-02 | 2020-05-05 | 国电南瑞科技股份有限公司 | 一种容器镜像并行分发方法、调度器及存储介质 |
CN112383606A (zh) * | 2020-11-09 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
CN112491953A (zh) * | 2020-10-21 | 2021-03-12 | 苏州浪潮智能科技有限公司 | 支持云平台镜像数据续传的实现方法、系统、设备和介质 |
CN112671871A (zh) * | 2020-12-17 | 2021-04-16 | 华人运通(上海)云计算科技有限公司 | 一种镜像分发方法、装置、终端设备及存储介质 |
CN113190242A (zh) * | 2021-06-08 | 2021-07-30 | 杭州朗澈科技有限公司 | 加速拉取镜像文件的方法和系统 |
CN113746881A (zh) * | 2020-05-29 | 2021-12-03 | 电科云(北京)科技有限公司 | 容器镜像下载方法及系统 |
CN114153565A (zh) * | 2021-12-08 | 2022-03-08 | 兴业银行股份有限公司 | 基于p2p技术实现镜像加速和预热方法及系统 |
CN115766739A (zh) * | 2022-10-14 | 2023-03-07 | 济南浪潮数据技术有限公司 | 一种容器镜像分发方法、装置、系统及其介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110896404B (zh) * | 2018-09-12 | 2021-09-14 | 华为技术有限公司 | 数据处理的方法、装置和计算节点 |
US11886390B2 (en) | 2019-04-30 | 2024-01-30 | JFrog Ltd. | Data file partition and replication |
US11340894B2 (en) | 2019-04-30 | 2022-05-24 | JFrog, Ltd. | Data file partition and replication |
US11106554B2 (en) | 2019-04-30 | 2021-08-31 | JFrog, Ltd. | Active-active environment control |
US11386233B2 (en) | 2019-04-30 | 2022-07-12 | JFrog, Ltd. | Data bundle generation and deployment |
US11695829B2 (en) | 2020-01-09 | 2023-07-04 | JFrog Ltd. | Peer-to-peer (P2P) downloading |
US11321106B2 (en) | 2020-03-24 | 2022-05-03 | International Business Machines Corporation | Using binaries of container images as operating system commands |
CN111752946B (zh) * | 2020-06-22 | 2021-04-30 | 上海众言网络科技有限公司 | 一种基于分片方式对调研数据进行预处理的方法及装置 |
US11481232B2 (en) * | 2020-07-10 | 2022-10-25 | International Business Machines Corporation | Registry image management |
US11860680B2 (en) | 2020-11-24 | 2024-01-02 | JFrog Ltd. | Software pipeline and release validation |
KR20230041361A (ko) * | 2021-09-17 | 2023-03-24 | 한국전자통신연구원 | 도커 이미지 생성 장치 및 방법 |
US12061889B2 (en) | 2021-10-29 | 2024-08-13 | JFrog Ltd. | Software release distribution across a hierarchical network |
CN114371853B (zh) * | 2022-01-10 | 2022-09-20 | 柏科数据技术(深圳)股份有限公司 | 一种分布式系统部署方法、装置、终端设备及存储介质 |
CN117255129A (zh) * | 2022-06-10 | 2023-12-19 | 戴尔产品有限公司 | 镜像部署方法、服务器和系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172135A1 (en) * | 2000-09-01 | 2003-09-11 | Mark Bobick | System, method, and data structure for packaging assets for processing and distribution on multi-tiered networks |
CN101026543A (zh) * | 2007-03-28 | 2007-08-29 | 华为技术有限公司 | 点到点p2p内容共享的方法及系统 |
US20080090540A1 (en) * | 2006-09-29 | 2008-04-17 | Ahmadreza Rofougaran | Method and System for Utilizing a Frequency Modulation (FM) Antenna For Near Field Communication (NFC) and Radio Frequency Identification (RFID) |
CN101626399A (zh) * | 2009-08-11 | 2010-01-13 | 华中科技大学 | 一种音乐在线播放的调度及控制方法 |
CN102510411A (zh) * | 2011-12-28 | 2012-06-20 | 南京邮电大学 | 一种用于阿瑞斯网络的缓存服务器的实现方法 |
CN102624884A (zh) * | 2012-02-29 | 2012-08-01 | 上海聚力传媒技术有限公司 | 一种用于接收p2p资源的方法、装置和设备 |
CN103078957A (zh) * | 2013-02-01 | 2013-05-01 | 北京航空航天大学 | 支持跨idc域功能的数据中心镜像分发系统 |
CN104506493A (zh) * | 2014-12-04 | 2015-04-08 | 武汉市烽视威科技有限公司 | 一种实现hls内容回源和缓存的方法 |
CN104836822A (zh) * | 2014-02-10 | 2015-08-12 | 腾讯科技(深圳)有限公司 | 获取下载数据方法及装置、下载数据的方法及系统 |
CN104902000A (zh) * | 2015-04-03 | 2015-09-09 | 易云捷讯科技(北京)有限公司 | 一种利用p2p技术快速传输虚机模板的方法 |
US20150331707A1 (en) * | 2012-12-21 | 2015-11-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and cloud management node for enabling a virtual machine |
WO2016192866A1 (en) * | 2015-06-03 | 2016-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Implanted agent within a first service container for enabling a reverse proxy on a second container |
CN106302632A (zh) * | 2016-07-21 | 2017-01-04 | 华为技术有限公司 | 一种基础镜像的下载方法以及管理节点 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181575A1 (en) * | 2003-03-11 | 2004-09-16 | Visual Circuits Corporation | Method and apparatus for providing peer-to-peer push using broadcast query |
JP5018716B2 (ja) * | 2008-09-29 | 2012-09-05 | 富士通株式会社 | アプリケーション間通信の高信頼化技術 |
US8793684B2 (en) * | 2011-03-16 | 2014-07-29 | International Business Machines Corporation | Optimized deployment and replication of virtual machines |
US9705754B2 (en) * | 2012-12-13 | 2017-07-11 | Level 3 Communications, Llc | Devices and methods supporting content delivery with rendezvous services |
US9392054B1 (en) * | 2013-05-31 | 2016-07-12 | Jisto Inc. | Distributed cloud computing platform and content delivery network |
US9448924B2 (en) * | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
US20160048408A1 (en) * | 2014-08-13 | 2016-02-18 | OneCloud Labs, Inc. | Replication of virtualized infrastructure within distributed computing environments |
US10019191B2 (en) * | 2015-05-21 | 2018-07-10 | Dell Products L.P. | System and method for protecting contents of shared layer resources |
US10261782B2 (en) * | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US10002247B2 (en) * | 2015-12-18 | 2018-06-19 | Amazon Technologies, Inc. | Software container registry container image deployment |
US10146563B2 (en) * | 2016-08-03 | 2018-12-04 | International Business Machines Corporation | Predictive layer pre-provisioning in container-based virtualization |
US10303499B2 (en) * | 2017-01-05 | 2019-05-28 | Portworx, Inc. | Application aware graph driver |
US10169023B2 (en) * | 2017-02-06 | 2019-01-01 | International Business Machines Corporation | Virtual container deployment |
US10614117B2 (en) * | 2017-03-21 | 2020-04-07 | International Business Machines Corporation | Sharing container images between mulitple hosts through container orchestration |
-
2017
- 2017-06-21 CN CN201710475273.5A patent/CN109104451A/zh active Pending
-
2018
- 2018-05-31 US US15/994,361 patent/US20180373517A1/en not_active Abandoned
- 2018-06-01 WO PCT/US2018/035537 patent/WO2018236567A1/en active Application Filing
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172135A1 (en) * | 2000-09-01 | 2003-09-11 | Mark Bobick | System, method, and data structure for packaging assets for processing and distribution on multi-tiered networks |
US20080090540A1 (en) * | 2006-09-29 | 2008-04-17 | Ahmadreza Rofougaran | Method and System for Utilizing a Frequency Modulation (FM) Antenna For Near Field Communication (NFC) and Radio Frequency Identification (RFID) |
CN101026543A (zh) * | 2007-03-28 | 2007-08-29 | 华为技术有限公司 | 点到点p2p内容共享的方法及系统 |
CN101626399A (zh) * | 2009-08-11 | 2010-01-13 | 华中科技大学 | 一种音乐在线播放的调度及控制方法 |
CN102510411A (zh) * | 2011-12-28 | 2012-06-20 | 南京邮电大学 | 一种用于阿瑞斯网络的缓存服务器的实现方法 |
CN102624884A (zh) * | 2012-02-29 | 2012-08-01 | 上海聚力传媒技术有限公司 | 一种用于接收p2p资源的方法、装置和设备 |
US20150331707A1 (en) * | 2012-12-21 | 2015-11-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and cloud management node for enabling a virtual machine |
CN103078957A (zh) * | 2013-02-01 | 2013-05-01 | 北京航空航天大学 | 支持跨idc域功能的数据中心镜像分发系统 |
CN104836822A (zh) * | 2014-02-10 | 2015-08-12 | 腾讯科技(深圳)有限公司 | 获取下载数据方法及装置、下载数据的方法及系统 |
CN104506493A (zh) * | 2014-12-04 | 2015-04-08 | 武汉市烽视威科技有限公司 | 一种实现hls内容回源和缓存的方法 |
CN104902000A (zh) * | 2015-04-03 | 2015-09-09 | 易云捷讯科技(北京)有限公司 | 一种利用p2p技术快速传输虚机模板的方法 |
WO2016192866A1 (en) * | 2015-06-03 | 2016-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Implanted agent within a first service container for enabling a reverse proxy on a second container |
CN106302632A (zh) * | 2016-07-21 | 2017-01-04 | 华为技术有限公司 | 一种基础镜像的下载方法以及管理节点 |
Non-Patent Citations (3)
Title |
---|
PROJECT_HARBOR: ""用P2P方法快速分发Docker镜像"", 《HTTPS://MY.OSCHINA.NET/VMWAREHARBOR/BLOG/647402》 * |
WIGI VEI A.OLIVEROS等: ""A P2P network Booting Scheme Using a BitTorrent-Like Protocol"", 《2013 INTERNATIONAL CONFERENCE ON IT CONVERGENCE AND SECURITY》 * |
杜佳恒等: ""基于P2P的分布式遥感影像分发系统涉及"", 《软件导刊》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109688232B (zh) * | 2019-01-28 | 2021-09-21 | 杭州涂鸦信息技术有限公司 | 一种镜像回溯方法、镜像回溯系统及代理服务器 |
CN109688232A (zh) * | 2019-01-28 | 2019-04-26 | 杭州涂鸦信息技术有限公司 | 一种镜像回溯方法、镜像回溯系统及代理服务器 |
CN109600453A (zh) * | 2019-02-18 | 2019-04-09 | 广州卓远虚拟现实科技有限公司 | 一种分布式虚拟现实内容分发方法和系统 |
CN109918911A (zh) * | 2019-03-18 | 2019-06-21 | 北京升鑫网络科技有限公司 | 一种镜像安装包信息的扫描方法及设备 |
CN109918911B (zh) * | 2019-03-18 | 2020-11-03 | 北京升鑫网络科技有限公司 | 一种镜像安装包信息的扫描方法及设备 |
CN111107135A (zh) * | 2019-12-02 | 2020-05-05 | 国电南瑞科技股份有限公司 | 一种容器镜像并行分发方法、调度器及存储介质 |
CN111107135B (zh) * | 2019-12-02 | 2022-07-29 | 国电南瑞科技股份有限公司 | 一种容器镜像并行分发方法、调度器及存储介质 |
CN113746881A (zh) * | 2020-05-29 | 2021-12-03 | 电科云(北京)科技有限公司 | 容器镜像下载方法及系统 |
CN112491953B (zh) * | 2020-10-21 | 2022-06-14 | 苏州浪潮智能科技有限公司 | 支持云平台镜像数据续传的实现方法、系统、设备和介质 |
CN112491953A (zh) * | 2020-10-21 | 2021-03-12 | 苏州浪潮智能科技有限公司 | 支持云平台镜像数据续传的实现方法、系统、设备和介质 |
CN112383606A (zh) * | 2020-11-09 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
CN112383606B (zh) * | 2020-11-09 | 2023-12-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
CN112671871A (zh) * | 2020-12-17 | 2021-04-16 | 华人运通(上海)云计算科技有限公司 | 一种镜像分发方法、装置、终端设备及存储介质 |
CN112671871B (zh) * | 2020-12-17 | 2023-09-15 | 华人运通(上海)云计算科技有限公司 | 一种镜像分发方法、装置、终端设备及存储介质 |
CN113190242A (zh) * | 2021-06-08 | 2021-07-30 | 杭州朗澈科技有限公司 | 加速拉取镜像文件的方法和系统 |
CN114153565A (zh) * | 2021-12-08 | 2022-03-08 | 兴业银行股份有限公司 | 基于p2p技术实现镜像加速和预热方法及系统 |
CN115766739A (zh) * | 2022-10-14 | 2023-03-07 | 济南浪潮数据技术有限公司 | 一种容器镜像分发方法、装置、系统及其介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018236567A1 (en) | 2018-12-27 |
US20180373517A1 (en) | 2018-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109104451A (zh) | Docker镜像的下载方法及节点、Docker镜像的预热方法及节点 | |
US10776159B2 (en) | Distributed storage-based filed delivery system and method using calculated dependencies between tasks to ensure consistancy of files | |
CN109491776B (zh) | 任务编排方法和系统 | |
CN109683826B (zh) | 用于分布式存储系统的扩容方法和装置 | |
CN105376303B (zh) | 一种Docker实现系统及其通信方法 | |
KR100713627B1 (ko) | 피어-투-피어 소프트웨어 배포 시스템 | |
CN108509203B (zh) | 软件跨云部署方法、计算机设备及存储介质 | |
CN108173774B (zh) | 一种客户端的升级方法及系统 | |
US20030163702A1 (en) | System and method for secure and verified sharing of resources in a peer-to-peer network environment | |
CN111045854B (zh) | 用于管理服务容器的方法、设备和计算机可读介质 | |
CN105429938B (zh) | 一种资源配置方法及装置 | |
CN111737104B (zh) | 区块链网络服务平台及其测试用例共享方法、存储介质 | |
US10218780B2 (en) | Cloud based peer assisted updates in a device management environment | |
CN107294785B (zh) | Cdn节点服务的自动部署方法及装置、计算机可读存储介质 | |
CN111770172A (zh) | 消息中间件消费代理方法、装置、代理服务器及存储介质 | |
CN111708743A (zh) | 文件存储管理方法、文件管理客户端及文件存储管理系统 | |
CN110995481A (zh) | 配置方法、服务器及计算机可读存储介质 | |
CN103259866B (zh) | 一种多点传输dns区文件的方法和系统 | |
WO2017097181A1 (zh) | 数据推送方法及装置 | |
CN113448601B (zh) | 基于内容分发网络的软件包安装方法、装置、设备和系统 | |
CN115361119A (zh) | 车载设备软件的批量升级方法及装置 | |
CN114553693A (zh) | 网关升级方法及装置 | |
US8560732B2 (en) | Peer-to-peer object distribution | |
WO2021248466A1 (zh) | 文件分发方法、装置、电子设备和计算机可读存储介质 | |
CN113821334A (zh) | 一种配置边缘侧设备的方法、装置及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181228 |
|
RJ01 | Rejection of invention patent application after publication |