CN107819802B - 一种在节点集群中的镜像获取方法、节点设备及服务器 - Google Patents
一种在节点集群中的镜像获取方法、节点设备及服务器 Download PDFInfo
- Publication number
- CN107819802B CN107819802B CN201610823154.XA CN201610823154A CN107819802B CN 107819802 B CN107819802 B CN 107819802B CN 201610823154 A CN201610823154 A CN 201610823154A CN 107819802 B CN107819802 B CN 107819802B
- Authority
- CN
- China
- Prior art keywords
- mirror
- mirror image
- layer
- container
- 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.)
- Active
Links
Images
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/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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/1044—Group management mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明的实施例提供一种在节点集群中的镜像获取方法、节点设备及服务器,涉及信息技术领域,用以解决现有的集群节点在启动BT客户端通过P2P方式下载镜像时,由于未对其使用的资源进行限制,所引起的现有业务容器的资源限额无法正常使用,而导致的业务容器无法正常运行的问题。该方法包括:第一节点接收包含第一待运行业务容器的镜像的镜像标识及第一待运行业务容器的资源限额的业务容器运行请求,向第一服务器请求镜像标识对应的镜像分发信息,当镜像层的获取方式包括P2P获取方式时,第一节点创建P2P容器,并设置该P2P容器的运行资源限额小于等于第一待运行业务容器的资源限额,通过该P2P容器获取镜像层标识对应的镜像层压缩包。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种在节点集群中的镜像获取方法、节点设备及服务器。
背景技术
Docker是一个开源的业务容器引擎,可以让开发者将应用程序及该应用程序所依赖的环境打包成Docker镜像,并预存在镜像仓库中,当用户需要使用该应用程序时便可通过下载镜像来创建一个可运行该应用程序的业务容器(container)。
具体的,现有的Docker镜像下载流程如下所述:集群管理平台在接收到用户的创建业务容器的任务请求后,会根据该任务请求包含的镜像ID从镜像仓库下载镜像到本地,并为该镜像中的每一个镜像层压缩包制作相应的种子文件,然后,启动BT客户端,载入所有镜像层压缩包和对应的种子文件成为一个Seed(种子),向待下载镜像集群节点的Agent(代理)发送镜像P2P(英文:Peer to Peer,对等网络)分发请求,以使待下载镜像集群节点的Agent根据该请求中包含的该镜像所有镜像层的ID和对应种子文件的URL(英文:UniformResoure Locator,中文:统一资源定位符)地址,下载其本地不存在的镜像层对应的种子文件,并根据该种子文件下载该镜像层压缩包,并将该镜像层文件注册导入到本地,从而创建该镜像对应的container。
但是,发明人发现,在现有集群节点上启动BT客户端,通过BT客户端获取镜像时,由于未对该集群节点所用的memory(内存)、CPU(英文:Central Processing Unit,中文:中央处理器)以及Block IO(块设备)等资源进行限制,从而影响已经部署在该集群节点上的现有业务容器的正常运行,对现有业务容器使用的memory、CPU以及Block IO等资源产生冲击。例如,集群节点A有200M的memory,该集群节点A上的现有业务容器A有100M的限额,现在使用50M的memory,现有业务容器B有50M的限额,现在使用50m的memory,若此时需要部署有50M限额的业务容器C,假设该集群节点A启动的BT客户端通过P2P方式下载业务容器C的镜像占用了该集群节点A上空闲的100M的memory,业务容器A虽然只使用50M的memory,而限额是100m,但已经申请不到新的memory,从而影响到业务容器A的正常运行。
发明内容
本发明的实施例提供的一种在节点集群中的镜像获取方法、节点设备及服务器,用以解决现有的集群节点在启动BT客户端通过P2P方式下载镜像时,未对其使用的资源进行限制,所引起的现有业务容器的资源限额无法正常使用,而导致的业务容器无法正常运行的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种在节点集群中的镜像获取方法,该方法包括:第一节点获取业务容器运行请求,该业务容器运行请求包括第一待运行业务容器的镜像的镜像标识及所述第一待运行业务容器的资源限额,然后,向第一服务器请求该镜像标识对应的镜像分发信息,该镜像分发信息包括该第一待运行业务容器镜像的镜像层标识及对应镜像层的获取方式,当该镜像层的获取方式包括P2P获取方式时,则创建P2P容器,并设置该P2P容器的运行资源限额小于等于第一待运行业务容器的资源限额,最后,通过该P2P容器获取该镜像层标识对应的镜像层压缩包。
由于本发明实施例提供的在节点集群中的镜像获取方法中节点设备在为第一待运行业务容器的镜像请求到镜像分发信息后,若确定该镜像分发信息中包含的镜像层的获取方式包括P2P获取方式,则该节点设备便会创建P2P容器,通过将第一待运行业务容器的CPU、Memory和Block IO等资源限额提供给P2P容器使用,从而保证已经部署在集群节点上现有业务容器能正常使用分配给它们的资源限额,同时,通过设置该P2P容器的运行资源限额小于等于该第一待运行业务容器的资源限额,保证了已经部署在集群节点上现有业务容器的正常运行。
在一种可能的设计中,本发明实施例中镜像的镜像层的获取方式包括P2P获取方式和/或HTTP下载方式,其中,若该镜像层获取方式包括P2P获取方式,则表明该镜像层的镜像层压缩包的大小大于等于第二预定阈值;若该镜像层获取方式包括HTTP下载方式,则表明该镜像层压缩包的大小小于第二预定阈值。这样本发明实施例根据待运行业务容器的镜像中每个镜像层的镜像层压缩包的大小,为每个镜像层确定合适的镜像分发方式,从而优化了镜像的分发速度。
在一种可能的设计中,在该第一节点已通过HTTP下载方式下载完成第二待运行业务容器的目标镜像层的镜像层压缩包时,第一方面所提供的方法还可以包括:第一节点接收第一服务器发送的镜像层P2P种子请求,该镜像层P2P种子请求用于请求第一节点成为第二待运行业务容器的目标P2P种子,该镜像层P2P种子请求包括目标镜像层的镜像层标识,然后,第一节点根据目标镜像层的镜像层标识向第一服务器请求目标镜像层的P2P种子,并创建运行P2P种子的P2P种子容器。在现有技术中,仅会将通过P2P获取方式下载完成的镜像层所在节点作为种子节点,而不会将通过非P2P获取方式下载完成的镜像层所在节点作为种子节点,从而使得种子节点的数量进行了限制,不能在更多的节点上进行分享。因此,当该第一节点中包含已通过HTTP下载方式下载完成的待运行业务容器的镜像的任一镜像层压缩包时,通过将该第一节点作为种子节点,使得该镜像层压缩包可以在更多的节点上进行分享、负载平衡,从而可以加快下载速度,减少原始种子节点的负荷。
在一种可能的设计中,第一方面提供的方法在第一节点创建运行P2P种子的P2P种子容器之后,还可以包括:监控第一节点的可用资源;当第一节点的可用资源小于第一预定阈值时,该第一节点停止运行P2P种子容器。第一节点通过对第一节点的可用资源进行实时监控,并在可用资源小于一定限额时,停止运行P2P种子容器,从而防止运行P2P种子容器导致的资源过度消耗,避免影响节点上的正常业务容器的运行。
在一种可能的设计中,第一方面提供的方法在第一节点创建P2P容器之后,还可以包括:第一节点在判定P2P容器使用的资源超过第一待运行业务容器的资源限额时,停止应用P2P容器。这样通过对创建出的P2P容器使用的资源进行实时监控,从而避免了由于P2P容器使用的资源超过待运行业务容器的资源限额,所导致的现有业务容器的资源限额无法正常使用,而导致的业务容器无法正常运行的问题。当然,为了保证待运行业务容器的镜像层压缩包的正常获取,通常会在下载完待运行业务容器的镜像的镜像层压缩包之后,对P2P容器使用的资源进行判定。
在一种可能的设计中,第一方面提供的方法在第一节点创建运行P2P容器之后,还可以包括:在通过该P2P容器下载完第一待运行业务容器的镜像的镜像层压缩包后,若该第一节点还可以作为其他节点的种子节点时,该P2P容器可以作为P2P种子容器继续运行。
在一种可能的设计中,上述的P2P容器使用的资源为该P2P容器使用的内存资源。
另一方面,提供一种在节点集群中的镜像获取方法,该方法包括:第一服务器向第一节点发送镜像分发信息,该镜像分发信息为第一节点为第一待运行业务容器的镜像标识所请求的信息;其中,该镜像分发信息包括该镜像的镜像层标识及对应镜像层的获取方式,该镜像分发信息用于使得第一节点在镜像层的获取方式包括P2P获取方式时,创建P2P容器,并设置P2P容器的运行资源限额小于等于第一待运行业务容器的资源限额,通过P2P容器获取镜像层标识对应的镜像层压缩包。
第一服务器通过为第一节点发送该第一节点为该第一待运行业务容器所请求的镜像分发信息,以使得该第一节点在确定该镜像分发信息中包含的该镜像的镜像层的获取方式包括P2P获取方式时,通过创建P2P容器,来将第一待运行业务容器的CPU、Memory和Block IO等资源限额提供给P2P容器使用,从而保证已经部署在集群节点上现有业务容器能正常使用分配给它们的资源限额,同时,通过设置该P2P容器的运行资源限额小于等于该第一待运行业务容器的资源限额,保证了已经部署在集群节点上现有业务容器的正常运行。
在一种可能的设计中,第一服务器在向第一节点发送镜像分发信息之前,该方法还可以包括:接收第二服务器发送的业务容器镜像分发请求,所述业务容器镜像分发请求包括第一待运行业务容器的镜像的镜像标识,根据镜像标识查询该镜像标识对应镜像的镜像层信息,该镜像层信息包括所述镜像的镜像层标识和对应镜像层压缩包的大小,然后,根据该镜像层压缩包的大小确定镜像层的获取方式,最后,根据镜像层的获取方式及对应镜像层标识,生成镜像的镜像分发信息。在现有技术中,通过P2P获取方式分发镜像所有的镜像层时,由于镜像会包含许多小的镜像层,而小的镜像层通过P2P获取方式获取时,首先需要获取种子文件,再和Tracker服务器进行交互获取Peers列表信息,最后向Peers请求镜像层压缩包,整个过程时间慢且效率低。第一服务器根据待运行业务容器的镜像中每个镜像层的镜像层压缩包的大小,为每个镜像层确定合适的镜像分发方式,从而优化了镜像的分发速度。
在一种可能的设计中,对于第一服务器如何基于镜像层的镜像层压缩包的大小来为镜像层确定合适的镜像分发方式,第一服务器根据镜像层压缩包的大小确定镜像层的获取方式具体包括:判定镜像层压缩包的大小是否大于第二预定阈值;若镜像层的镜像层压缩包的大小大于等于所述第二预定阈值,则为镜像层提供P2P获取方式,并为镜像层生成对应的P2P种子;若镜像层的镜像层压缩包的大小小于第二预定阈值,则为镜像层提供HTTP下载方式。这样通过设置合适的阈值(即第二预定阈值),从而筛选出小的镜像层,使得该小的镜像层可以选择HTTP下载方式来直接下载对应的镜像层压缩包,从而缩短了下载时间,提高了下载效率。
又一方面,提供一种节点设备,该节点设备包括:第一获取模块,用于获取业务容器运行请求,该业务容器运行请求包括第一待运行业务容器的镜像标识及资源限额;第二获取模块,用于向第一服务器请求该第一获取模块接收到业务容器运行请求中包含的镜像标识对应的镜像分发信息,该镜像分发信息包括该镜像的镜像层标识及对应镜像层的获取方式;创建模块,用于当该获取模块获取的镜像层的获取方式包括P2P获取方式时,创建P2P容器,并设置该P2P容器的运行资源限额小于等于该第一待运行业务容器的资源限额;该第二获取模块,还用于通过所述创建模块创建出的P2P容器获取该镜像层标识对应的镜像层压缩包。
在一种可能的设计中,本发明实施例中镜像的镜像层的获取方式包括P2P获取方式和/或HTTP下载方式。
在一种可能的设计中,该节点设备还包括:接收模块,用于接收第一服务器发送的镜像层P2P种子请求,该镜像层P2P种子请求用于请求所述第一节点成为第二待运行业务容器的目标P2P种子,该镜像层P2P种子请求包括目标镜像层的镜像层标识;获取模块,还用于根据接收模块接收到的镜像层P2P种子请求中包含的目标镜像层的镜像层标识向第一服务器请求目标镜像层的P2P种子,并创建运行该P2P种子的P2P种子容器。
在一种可能的设计中,该节点设备还包括:监控模块,用于监控该节点设备的可用资源;控制模块,用于当该节点设备的可用资源小于第一预定阈值时,停止运行P2P种子容器。
在一种可能的设计中,该节点设备的控制模块,还用于在判定P2P容器使用的资源超过第一待运行业务容器的资源限额时,停止应用P2P容器。
在一种可能的设计中,上述的P2P容器使用的资源为该P2P容器使用的内存资源。
由于本发明实施例提供的节点设备可用于执行上述方法实施例中第一节点所执行的功能,因此其所能获得的技术效果可参考上述方法实施例中的相关描述,此处不再赘述。
又一方面,本发明实施例提供了一种服务器,该服务器包括:发送模块,用于向第一节点发送镜像分发信息,该镜像分发信息为第一节点为第一待运行业务容器的镜像标识所请求的信息;其中,该镜像分发信息包括该镜像的镜像层标识及对应镜像层的获取方式,该镜像分发信息用于使得第一节点在镜像层的获取方式包括P2P获取方式时,创建P2P容器,并设置P2P容器的运行资源限额小于等于第一待运行业务容器的资源限额,通过P2P容器获取镜像层标识对应的镜像层压缩包。
在一种可能的设计中,服务器还包括:接收模块,用于接收第二服务器发送的业务容器运行请求;查询模块,用于根据接收模块接收到的业务容器运行请求中包含的镜像标识查询镜像标识对应镜像的镜像层信息;确定模块,用于根据查询模块查询到的镜像层压缩包的大小确定镜像层的获取方式;生成模块,用于根据确定模块确定的镜像层的获取方式及接收模块接收到的业务容器运行请求中包含的镜像层对应镜像层标识,生成镜像的镜像分发信息。
在一种可能的设计中,对于该服务器如何基于镜像层的镜像层压缩包的大小来为镜像层确定合适的镜像分发方式,服务器中的确定模块具体用于:判定镜像层压缩包的大小是否大于第二预定阈值;若镜像层的镜像层压缩包的大小大于等于第二预定阈值,则为镜像层提供P2P获取方式,并为镜像层生成对应的P2P种子;若镜像层的镜像层压缩包的大小小于所述第二预定阈值,则为镜像层提供HTTP下载方式,通过设置合适的阈值(即第二预定阈值),从而筛选出小的镜像层,使得该小的镜像层可以选择HTTP下载方式来直接下载对应的镜像层压缩包,从而缩短了下载时间,提高了下载效率。
由于本发明实施例提供的服务器可用于执行上述方法实施例中第一服务器所执行的功能,因此其所能获得的技术效果可参考上述方法实施例中的相关描述,此处不再赘述。
又一方面,本发明实施例提供了一种节点设备,该节点设备可以实现上述方法实施例中第一节点所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
在一种可能的设计中,该装置的结构中包括处理器和收发器,该处理器被配置为支持该装置执行上述方法中相应的功能。该收发器用于支持该装置与其他网元之间的通信。该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。
又一方面,本发明实施例提供了一种服务器,该服务器可以实现上述方法实施例中第一服务器所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
在一种可能的设计中,该服务器的结构中包括处理器和收发器,该处理器被配置为支持该装置执行上述方法中相应的功能。该收发器用于支持该装置与其他网元之间的通信。该装置服务器还可以包括存储器,该存储器用于与处理器耦合,其保存该服务器必要的程序指令和数据。
又一方面,本发明实施例提供了一种节点集群***,该节点集群***包括存储设备,以及上述方面所述的节点设备和服务器。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存上述节点设备所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述服务器所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种节点集群***的结构示意图;
图2为本发明实施例提供的一种节点设备的结构示意图;
图3为本发明实施例提供的一种服务器的结构示意图;
图4为本发明实施例提供的一种在节点集群中的镜像获取方法的方法流程图;
图5为本发明实施例提供的另一种在节点集群中的镜像获取方法的方法流程图;
图6为本发明实施例提供的一种镜像分发信息的生成过程的流程示意图;
图7为本发明实施例提供的另一种节点设备的结构示意图;
图8为本发明实施例提供的另一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本申请中所涉及的部分术语进行解释,以方便读者理解:
“镜像(Mirroring)”,是一种文件存储形式,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像,即一个镜像可以把许多相同的文件做成一个镜像文件。
“镜像层”,镜像通常是以分层的结构方式来进行保存,而每层对应的镜像结构即为镜像层。
示例的,若本发明实施例中的业务容器的镜像以Docker镜像为例,Docker镜像通常以分层的结构方式组织保存,下一层的镜像称为上一层镜像的父镜像,没有父镜像的镜像称之为基础镜像。一般的,每个镜像层包含两部分内容:一部分是json文件,描述了镜像层的id、大小、父镜像层的id等信息,另一部分是镜像层文件***的内容,可以为空。
示例的,Docker镜像的生成流程如下所述:
Docker容器引擎通过docker build命令指定Dockerfile创建一个Docker镜像,Dockerfile的每个命令会生成一层镜像,如RUN apt-get install,ENV path=/bin,WORKDIR/home等Dockerfile命令,其中,对于RUN apt-get install命令,该命令通常用于执行安装软件操作,对应的文件***上会有安装的软件内容,生成的镜像层的文件***上会有新增加的内容。而对于ENV path=/bin,WORKDIR/home等命令,这些命令通过用于配置容器的运行参数。需要说明的是,若没有内容的更新,生成的镜像层的文件***的内容为空,但这些命令会在镜像层的json文件中描述。
示例的,现有的Docker镜像下载流程如下所示:
用户通过docker pull命令下载指定名称的镜像(举例:docker pull ubuntu:14.04);Docker client(Docker客户端)解析命令获取需要下载的镜像的镜像repository和镜像标签,并从配置中获取默认的镜像仓库地址;Docker client向Docker Daemon发送下载镜像的请求,该请求包括镜像repository,镜像标签,镜像仓库地址;Docker Daemon接收并处理该下载镜像的请求;Docker daemon向镜像仓库请求获取镜像id,向镜像仓库请求获取镜像Manifest文件,解析Manifest文件,获取镜像各层的digest,digest既是镜像层的唯一标识,也是索引,针对每一层,判断本地是否保存或正在下载,如果没有,标识该镜像层正在下载,和镜像仓库交互,通过CS(session)方式请求获取镜像层压缩包,解压镜像层压缩包,存储镜像层的json信息和镜像层内容信息,最后,Docker daemon将获取的镜像注册保存在本地镜像graph中。
示例的,一种镜像Manifest文件的格式示例如下:
其中,"name"字段对应的值是镜像的名字;
"tag"字段对应的值是镜像的tag;
"mediaType"字段对应的值是内容类型,"application/vnd.docker.image.rootfs.diff.tar.gzip"是镜像层压缩包gzipped tar格式;
"layers"字段对应的三组对象组成的数组表示镜像由三个镜像层组成;
"size"字段对应的值是镜像层压缩包的大小,单位是KB;
digest字段对应的value值是对镜像层进行sha256做hash得出的结果,它是镜像层的唯一标识,也是基于内容进行寻址从而获取镜像层内容的标识。
“业务容器”,可以运行相应的应用程序业务,开发者可以将应用程序及该应用程序所依赖的环境打包成镜像,然后通过该镜像创建对应的业务容器。
“种子文件”,通常指.torrent种子文件,BT文件发布者会根据要发布的文件生成提供一个.torrent种子文件,也简称为“种子”,种子文件中包含Tracker信息和文件信息两部分,Tracker信息是Tracker跟踪服务器的地址和针对该Tracker的设置,文件信息包含将目标文件虚拟划分成大小相等的块后,每个块的索引信息和Hash验证码。可以这样说,种子文件是被发布文件的“索引”。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。如果不加说明,本文中的“多个”是指两个或两个以上。本文中的“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
如本申请所使用的术语“组件”、“模块”、“***”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地***、分布式***中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它***进行交互)的信号,以本地和/或远程过程的方式进行通信。
需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
需要说明的是,本发明实施例中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个数据包是指两个或两个以上的数据包。
需要说明的是,本发明实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
下面将结合本发明实施例的说明书附图,对本发明实施例提供的技术方案进行说明。显然,所描述的是本发明的一部分实施例,而不是全部的实施例。需要说明的是,下文所提供的任意多个技术方案中的部分或全部技术特征在不冲突的情况下,可以结合使用,形成新的技术方案。
图1为本发明实施例提供的在节点集群中获取镜像的方法所应用的节点集群***的***架构示意图,如图1所示,该节点集群***10是由节点集群101、节点集群管理平台102、镜像仓库103以及P2P tracker跟踪服务器(简称“P2P tracker”)104组成的。
其中,上述的节点集群101包括至少一个节点设备11(简称“节点”)(如图1中的节点1-n),每个节点可以代表一台设备(需要说明的时,这里的设备可以为物理主机,也可以为物理主机内设置的虚拟机),且每个节点中均部署有Agent(代理模块),用于与上述的节点集群管理平台102、镜像仓库103以及P2P tracker104进行通信,以及创建运行P2P容器;上述的节点集群管理平台102为用于控制、管理该节点集群101中所有节点的一个控制设备,该控制设备可以为该节点集群101之外的一个单独设备,也可以为该节点集群101中的任意一个节点;上述的镜像仓库103主要用于存储若干(一个或多个)应用程序及该应用程序所依赖的环境打包成的镜像以及该镜像的所有镜像层信息(例如,该业务容器镜像包括镜像层A、镜像层B和镜像层C这三个镜像层),以及为镜像的镜像层提供不同的获取方式(包括P2P获取方式或Http下载方式);上述的P2P tracker104为一个中心节点,通常与Peers节点交互,收集获取存储当前覆盖网络中处于活动态可供下载的Peers节点信息列表,并将此信息提供给下载者,其中,Peers节点信息包含Peers节点的IP地址、端口号和已有数据块的标识,P2P tracker104用于调度分配Peers节点之间的发现,而Peers节点是覆盖网络的组成成员,分为seeder种子节点和leecher节点两类,seeder种子节点是具有完整文件内容的BT客户端,leecher节点是正在下载文件内容的BT客户端,而BT文件发布者本身发布的文件就是原始种子。
这样上述节点集群101中每个节点中创建的P2P容器和P2P种子容器与P2P原始种子和P2P tracker104共同组成一个完整P2P镜像文件传输***。
发明实施例中的集群管理平台102可以为服务器、物理机等设备。本发明实施例中的节点可以为服务器、PC机、物理机等用于处理业务消息的设备。
如图2所示,是本发明实施例提供的一种节点设备20的结构示意图。该节点设备20可以是服务器,该节点设备20可以包括:处理器201、存储器202、***总线203和通信接口204。其中:存储器202用于存储计算机执行指令,处理器201与存储器202通过***总线连接,当节点设备20运行时,处理器201执行存储器202存储的计算机执行指令,以使节点设备20执行本发明实施例提供的任意一种在节点集群中的镜像获取方法。具体的在节点集群中的镜像获取方法可参考下文及附图中的相关描述,此处不再赘述。
本发明实施例还提供一种存储介质,该存储介质可以包括存储器202。
处理器201可以是一个处理器,也可以是多个处理元件的统称。例如,处理器201可以为中央处理器(central processing unit,CPU)。处理器201也可以为其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。处理器201还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。进一步地,该专用处理器还可以包括具有节点设备20其他专用处理功能的芯片。
存储器202可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器202也可以包括非易失性存储器(non-volatilememory),例如只读存储器(英文全称:read-only memory,英文缩写:ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器202还可以包括上述种类的存储器的组合。
***总线203可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,在图2中将各种总线都示意为***总线203。
通信接口204具体可以是节点设备20上的收发器。该收发器可以为无线收发器。例如,无线收发器可以是节点设备20的天线等。处理器201通过通信接口204与其他设备,例如与镜像仓库或节点集群管理中心之间进行数据交互。
在具体实现过程中,下文中提供的任意一种在节点集群中的镜像获取方法流程中的各步骤均可以通过硬件形式的处理器201执行存储器202中存储的软件形式的计算机执行指令实现。为避免重复,此处不再赘述。
如图3所示,是本发明实施例提供的一种服务器30(即本发明实施例中的第一服务器)的结构示意图。该服务器30可以包括:处理器301、存储器302、***总线303和通信接口304。其中:存储器302用于存储计算机执行指令,处理器301与存储器302通过***总线连接,当服务器30运行时,处理器301执行存储器302存储的计算机执行指令,以使服务器30执行本发明实施例提供的任意一种在节点集群中的镜像获取方法。具体的在节点集群中的镜像获取方法可参考下文及附图中的相关描述,此处不再赘述。
本发明实施例还提供一种存储介质,该存储介质可以包括存储器302。
处理器301可以是一个处理器,也可以是多个处理元件的统称。例如,处理器301可以为CPU。处理器301也可以为其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。处理器301还可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。进一步地,该专用处理器还可以包括具有服务器30其他专用处理功能的芯片。
存储器302可以包括易失性存储器(volatile memory),例如RAM;存储器302也可以包括非易失性存储器(non-volatile memory),例如ROM,快闪存储器,硬盘或固态硬盘;存储器302还可以包括上述种类的存储器的组合。
***总线303可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,在图3中将各种总线都示意为***总线303。
通信接口304具体可以是服务器30上的收发器。该收发器可以为无线收发器。例如,无线收发器可以是节点设备30的天线等。处理器301通过通信接口304与其他设备,例如与节点设备或节点集群管理中心之间进行数据交互。
在具体实现过程中,下文中提供的任意一种在节点集群中的镜像获取方法流程中的各步骤均可以通过硬件形式的处理器301执行存储器302中存储的软件形式的计算机执行指令实现。为避免重复,此处不再赘述。
以下以节点集群中至少包含第一节点和第二节点为例进行说明。
基于上述内容及图1所示的***框图,本发明的实施例提供一种在节点集群中的镜像获取方法,如图4、5所示的方法流程图,该方法具体包括如下步骤:
401、第一节点获取业务容器运行请求。
本实施例中的业务容器运行请求包括至少一个第一待运行业务容器的镜像的镜像标识及该第一待运行业务容器的资源限额。其中,上述的第一待运行业务容器的资源限额包括:该第一待运行业务容器所能使用的最高内存额度、该第一待运行业务容器所能使用的CPU资源份额。
具体的,上述的业务容器运行请求可以是第二服务器(即图1中的集群管理平台)在接收到用户的创建运行业务容器的业务容器运行请求后,向第一节点发送的,也可以是该第一节点主动向该第二服务器查询其是否需要建立业务容器后,在确定其需要创建该第一待运行业务容器时,自行生成的业务容器运行请求。
需要说明的是,结合图2对应的节点设备的结构,上述的步骤401是图2中节点设备的处理器通过通信接口来执行的。
402、第一节点向第一服务器请求镜像标识对应的镜像分发信息。
本实施例中的镜像分发信息包括该待运行业务容器对应镜像的每个镜像层的镜像层标识以及镜像层的获取方式。一般的,业务容器的镜像通常包括至少一层镜像层,每层镜像层分配有独立的镜像层标识。示例性的,每个镜像的镜像标识通过可以选择该镜像的最高层镜像层对应的镜像层标识作为其对应的镜像标识,也可以设置独立于该镜像的镜像层标识的标志作为其对应的镜像标识。
示例性的,镜像层的获取方式包括P2P获取方式和/或HTTP下载方式这两种。具体的,通过P2P获取方式获取镜像层压缩包时,首先需要获取该镜像层的种子文件,然后与Tracker服务器交互获取Peers列表信息,最后向Peers(即包含该镜像层的镜像层压缩包的节点)请求镜像层压缩包;而通过HTTP下载方式获取镜像层压缩包时,则可以直接从第一服务器下载相应的镜像层压缩包。因此,进一步的,本发明实施例还按照镜像层压缩包的大小,为镜像层提供不同的获取方式,即为镜像层压缩包较大的镜像层提供P2P获取方式,为镜像层压缩包较小的镜像层提供HTTP下载方式。
需要说明的是,在现今大规模部署容器的应用场景下,即同时部署多个容器的场景时,由于每个容器都需要下载相同的容器镜像,因此采用P2P方式下载有利于加快容器的部署速度。
示例性的,当第二服务器在接收到用户的创建运行业务容器的业务容器运行请求后,会从该业务容器运行请求中获取到待运行业务容器的镜像的镜像标识以及该待运行业务的实例个数,若检测到该请求中包含的待运行业务容器的实例个数超过预设阈值,则表明需要部署的待运行业务容器的实例个数较多,达到P2P分发标准。此时,为了提高镜像分发效率,第二服务器会向第一服务器(即图1中的镜像仓库)发送业务容器镜像分发请求来指示该第一服务器尽量为该待运行业务容器提供P2P获取方式,即生成该待运行业务容器的镜像的镜像层的种子文件,以便后续将该种子文件进行P2P分发。而该第一服务器在接收到第二服务器发送的镜像分发请求后,会根据待运行业务容器的镜像标识获取待运行业务容器对应镜像的所有镜像层信息(例如,若该业务容器镜像包括镜像层A、镜像层B和镜像层C这三个镜像层,则获取这三层镜像层中每层镜像层的镜像层信息),并基于获取到的所有镜像层的镜像层信息生成该镜像的镜像分发信息,以便后续节点集群中的节点设备在获取到业务容器运行请求后,向该第一服务器请求该镜像分发信息。
进一步的,当第二服务器接收到第一服务器反馈的镜像分发确认消息(即第一服务器在生成该镜像的镜像分发信息后,向第二服务器反馈的确认消息)后,会收集该节点集群中所有节点的可用资源,选出可用资源满足该待运行业务容器的资源要求的节点来部署运行业务容器,以备节点集群中的节点设备查询部署运行业务容器的节点,或者直接向选择出的节点发送运行业务容器的业务容器运行请求。需要说明的是,第二服务器选择出的可用资源满足该待运行业务容器的资源要求的节点中可以部署一个或多个运行业务容器,而选择出的所有节点中所部署的全部运行业务容器的个数通常情况下需要等于该待运行业务容器的实例个数。
结合图2对应的节点设备的结构,上述的步骤402是图2中节点设备的处理器通过通信接口来执行的。
403、第一服务器向第一节点发送镜像分发信息。
本实施例中的镜像分发信息为该第一节点为第一待运行业务容器的镜像标识所请求的信息。
示例性的,如图5所示,在步骤403之后,该方法还包括如下步骤:
A1、第一服务器接收第二服务器发送的业务容器镜像分发请求,该业务容器镜像分发请求包括第一待运行业务容器的镜像的镜像标识。
A2、第一服务器根据镜像标识查询镜像标识对应镜像的镜像层信息,该镜像层信息包括镜像的镜像层标识和对应镜像层压缩包的大小。
A3、第一服务器根据镜像层压缩包的大小确定镜像层的获取方式。
A4、第一服务器根据镜像层的获取方式及对应镜像层标识,生成镜像的镜像分发信息。
结合图3对应的服务器的结构,上述的步骤403是图3中服务器的处理器通过通信接口来执行的。
404、当镜像层的获取方式包括为P2P获取方式时,则第一节点创建P2P容器,并设置P2P容器的运行资源限额小于等于第一待运行业务容器的资源限额。
需要说明的是,当该镜像层的获取方式包括P2P获取方式时,则表明第一服务器中包含该镜像层的种子文件,此时,第一节点通过创建P2P容器,从而通过P2P方式来获取该镜像层压缩包。
结合图2对应的节点设备的结构,上述的步骤404是图2中节点设备的处理器来执行的。
405、第一节点通过P2P容器获取镜像层标识对应的镜像层压缩包。
示例性的,若该镜像层的获取方式包括P2P获取方式,则该镜像分发信息还包括该镜像层的种子文件地址,以便第一节点可以基于该种子文件地址下载对应的镜像层压缩包。
对于待运行业务容器的每一个镜像层,若该镜像层的获取方式为P2P获取方式,则第一节点会根据该镜像分发信息中包含的种子文件地址从镜像仓库获取种子文件,然后按照业务容器的资源限额创建运行P2P容器应用,获取该镜像层压缩包,对应的,若该镜像层的获取方式为HTTP下载方式,则第一节点或直接从镜像仓库获取相应的镜像层压缩包。而该第一节点在获取到待运行业务容器的镜像对应的所有镜像层之后,运行该业务容器。
需要说明的是,第一节点在判定P2P容器使用的资源超过第一待运行业务容器的资源限额时,则会停止运行P2P容器,这样通过对创建出的P2P容器使用的资源进行实时监控,从而在该P2P容器占用该第一节点的资源时,便可及时释放P2P容器应用所占用的资源,进而避免了由于P2P容器使用的资源超过待运行业务容器的资源限额,所导致的现有业务容器的资源限额无法正常使用,而导致的业务容器无法正常运行的问题。此外,上述P2P容器使用的资源通常可以为该P2P容器所使用的内存资源。当然,为了保证待运行业务容器的镜像层压缩包的正常获取,通常会在下载完待运行业务容器的镜像的镜像层压缩包之后,对P2P容器使用的资源进行判定。
此外,第一节点在创建P2P容器之后,当已通过该P2P容器下载完第一待运行业务容器的镜像的镜像层压缩包时,若该第一节点还可以作为其他节点的种子节点时,该P2P容器可以作为P2P种子容器继续运行。
结合图2对应的节点设备的结构,上述的步骤405是图2中节点设备的处理器通过P2P容器来执行的。
本发明的实施例提供的在节点集群中的镜像获取方法,第一节点在接收第二服务器发送的包含第一待运行业务容器的镜像标识及业务容器的资源限额的业务容器运行请求后,会向第一服务器请求镜像标识对应的镜像分发信息,该镜像分发信息包括镜像的镜像层标识及对应镜像层的获取方式,当镜像层的获取方式为P2P获取方式时,第一节点会基于第一待运行业务容器的资源限额创建运行资源限额小于等于该第一待运行业务容器的资源限额的P2P容器,并通过P2P容器获取所述镜像层标识对应的镜像层压缩包。这样通过将待运行业务容器的CPU、Memory和Block IO等资源限额提供给P2P容器使用,从而保证已经部署在集群节点上现有业务容器能正常使用分配给它们的资源限额,保证已经部署在集群节点上现有业务容器的正常运行。
在现有技术中,第一服务器仅会将通过P2P获取方式下载完成的镜像层所在节点作为种子节点,而不会将通过非P2P获取方式下载完成的镜像层所在节点作为种子节点,从而使得种子节点的数量进行了限制,不能再更多的节点上进行分享。
因此,当第一节点已通过HTTP下载方式下载完成第二待运行业务容器的目标镜像层的镜像层压缩包时,可选的,可以将该第一节点作为该目标镜像层的种子节点,即该方法还包括如下步骤:
B1、第一节点接收第二服务器发送的镜像层P2P种子请求。
本实施例中的镜像层P2P种子请求用于请求第一节点成为第二待运行业务容器的目标P2P种子,该镜像层P2P种子请求包括目标镜像层的镜像层标识。
B2、第一节点根据目标镜像层的镜像层标识向第一服务器请求目标镜像层的P2P种子。
B3、第一节点创建运行P2P种子的P2P种子容器。
此外,为了防止运行P2P种子容器导致的资源过度消耗,从而影响节点上的正常业务容器的运行,本发明可以在步骤A2之后,即创建了运行P2P种子的P2P种子容器之后,第一节点监控该第一节点的可用资源,并在第一节点的可用资源小于第一预定阈值时,停止运行该P2P种子容器。
结合图2对应的节点设备的结构,上述的步骤B1、B2是图2中节点设备的处理器通过通信接口来执行的,上述的步骤B3是图2中节点设备的处理器来执行的。
需要说明的是,当第一待运行业务容器的镜像层的获取方式为P2P获取方式,则第一节点会基于镜像分发信息中包含的镜像层的种子文件地址来下载相应的镜像层压缩包,而该镜像层的种子文件则是第二服务器在查找到已通过HTTP下载方式下载完成的第一待运行业务容器的镜像层的镜像层压缩包的第二节点时,通过向第二节点发送让其成为P2P种子的请求,第二节点由于已通过HTTP下载方式完成第一待运行业务容器的镜像层压缩包的下载,此时会根据接收到的让其成为P2P种子的请求,向第二服务端请求获取P2P种子文件,创建运行P2P种子容器。
这样将通过HTTP下载方式下载完成的镜像层节点作为种子节点,可以在更多的节点上进行分享、负荷平衡,可以加快下载速度,减少原始种子节点的负荷。
在现有技术中,通过P2P获取方式分发镜像所有的镜像层时,由于镜像会包含许多小的镜像层,而小的镜像层通过P2P获取方式获取时,首先需要获取种子文件,再和Tracker服务器进行交互获取Peers列表信息,最后向Peers请求镜像层压缩包,整个过程时间慢且效率低。因此,本发明实施例中的第一服务器根据待运行业务容器的镜像中每个镜像层的镜像层压缩包的大小,为每个镜像层确定合适的镜像分发方式,即为镜像层压缩包较大的镜像层提供P2P获取方式,为镜像层压缩包较小的镜像层提供HTTP下载方式,从而优化了镜像的分发速度。
可选的,如图5所示,上述步骤A3具体包括如下内容:
a1、第一服务器判定所述镜像层压缩包的大小是否大于第二预定阈值。
若该镜像层的镜像层压缩包的大小大于等于第二预定阈值,则转向步骤a2;若该镜像层的镜像层压缩包的大小小于第二预定阈值,则转向步骤a3。其中,上述的第二预定阈值可以按照实际的应用场景进行灵活配置,
a2、第一服务器为镜像层提供P2P获取方式,为该镜像层生成对应的P2P种子。
其中,上述的P2P种子包括该镜像层的大小、hash信息和tracker的地址。
a3、第一服务器为该镜像层提供HTTP下载方式。
这样,镜像仓库根据待分发的容器镜像中的每个镜像层的大小,确定合适的镜像分发方式,即当该镜像层的镜像层压缩包的大小大于等于第二预定阈值,为该镜像层提供P2P获取方式,当该镜像层压缩包的大小小于第二预定阈值,为该镜像层提供HTTP下载方式,从而优化了镜像的分发速度。
结合图3对应的服务器的结构,上述的步骤A1、A2、A3是图3中服务器的处理器来执行的。
示例性的,若本实施例中的第二服务器以图1对应***中的集群管理平台为例,第一服务器以图1对应***中的镜像仓库为例进行说明时。本发明的实施例提供一种在节点集群中的镜像获取方法,如图6所示,该方法包括如下步骤:
1、用户向管理平台发送创建运行业务容器的业务容器运行请求,该业务容器运行请求包括业务容器镜像标识、业务容器资源限额和业务容器实例个数。
示例的,以下为该业务容器运行请求中的消息参数的一种实例:
业务容器镜像标识是镜像名字和tag;
"name"字段对应的值"foo"是镜像名字;
"tag"字段对应的值"2.0"是镜像tag;
"replicas"字段对应的值10是需要创建运行的业务容器个数;
"resources"."limits"."cpu"字段对应的值"512"是cpu的资源限额。定义1024是一个cpu的限额,则512是0.5个cpu的限额;
"resources"."limits"."memory"字段对应的值"100M"是memory的资源限额。
2、集群管理平台确定需要创建的业务容器的实例个数超过预设的阈值,向镜像仓库发送镜像分发请求,该镜像分发请求包括业务容器镜像标识,该镜像分发请求中包含的参数可以是json格式,实例如下:
3、镜像仓库在接收镜像分发请求,解析获取业务容器镜像标识,查询业务容器镜像对应的所有镜像层的标识和以及每一个镜像层的大小。针对每一个镜像层,判断镜像层大小是否超过第二预定阀值,如果超过该第二预定阀值,则为该镜像层制作种子文件,启动P2P应用载入镜像层内容和对应的种子文件,成为该镜像层的P2P种子。本发明实施例中,假设业务容器镜像包括三个镜像层,分别为镜像层A、镜像层B和镜像层C。其中,镜像层A和C的大小大于阈值,提供P2P的获取方式,镜像层B的大小小于阈值,提供HTTP下载方式。
4、镜像仓库中的P2P种子向P2P tracker发送注册请求,所述注册请求包括该P2P种子的地址和该镜像层的标识。
5、P2P tracker接收到镜像仓库发送的注册请求,保存该镜像层的标识和该P2P种子的地址的对应关系。并向镜像仓库返回注册成功的确认消息。
6、镜像仓库接收到确认消息后,生成镜像分发信息。
镜像分发信息实例如下:
该镜像包含三个镜像层,由"layers"字段对应的由三组对象组成的数组定义;
"mediaType"字段对应的值"application/vnd.docker.image.rootfs.diff.tar.gzip"表示是镜像层压缩包;
"size"字段对应的值是镜像层压缩包的大小,单位是KB;
"sha256:e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f"是"digest"字段对应的值,是对镜像层内容使用sha256算法做哈希hash得出的结果,它是镜像层的唯一标识;
"downloadType"字段对应的值"P2P"是P2P获取方式;
"seedURL"字段对应的值"http://p2p.bar.com/a.torrent"是种子文件的URL;
上面的例子中,由于中间的镜像层B:application/vnd.docker.image.rootfs.diff.tar.gzip的大小较小,所以为其提供HTTP下载方式,而另外两个镜像层(即镜像层A和镜像层C)则为其提供P2P获取方式。
7、集群管理平台收集节点集群中所有节点保存的镜像层信息,所用镜像层信息用于表征节点中保存了哪些镜像层,确定保存有业务容器镜像对应的镜像层的集群节点,并向这些集群节点发送成为镜像层P2P种子的消息,该消息包括镜像层标识和种子文件的地址。
8、节点1的Agent 1接收成为镜像层P2P种子的消息,查询是否保存有镜像层,如果有,则根据种子文件的地址获取种子文件,创建运行P2P种子容器,并向P2P tracker注册。
9、管理平台收集节点集群中所有节点的可用资源,选出可用资源满足资源要求的集群节点部署运行业务容器,发送运行业务容器的业务容器运行请求,该请求消息包括业务容器镜像标识、业务容器资源限额,该请求消息的参数可以是json格式,通过HTTP协议在body中传输,实例如下:
业务容器资源限额是CPU和memory限额;
本发明实施例中,假设节点2满足要求。
10、节点2的Agent 2接收运行业务容器的业务容器运行请求,解析该请求获取镜像标识,业务容器的资源限额,依据镜像标识向镜像仓库请求获取镜像分发信息;可选的,若节点2的Agent 2可以通过HTTP get方法请求获取镜像分发信息,镜像分发信息通过Http协议以json格式在body中传输,实例如下:
11、节点2的Agent2获取本节点保存的镜像层标识,遍历待获取镜像的镜像层,获取一个镜像层的标识,判断本节点是否保存对应的镜像层,如果已经保存了,则不需要获取;如果没有,继续查询镜像层的获取方式,如果是P2P获取方式,继续步骤12;如果是HTTP下载方式,则通过HTTP下载方式获取镜像层。
本节点保存的镜像层标识的实例如下:
"Id"字段对应的值是镜像层标识;
12、节点2的Agent2在节点上创建新的目录,创建的具体目录实例:/images/e692418e4cbaAgent,从而将镜像分发信息按照json格式以文件方式保存到新创建的目录中,实例:/images/e692418e4cba/image.manifest;Agent2设置P2P容器应用映射挂载节点目录的参数,用于将在节点2上新创建的目录映射为P2P容器应用的目录,使得P2P容器应用能访问该目录中的镜像分发信息文件,能将获取的镜像层内容保存到该目录中;设置的目录映射参数实例如下:
/images/e692418e4cba:/p2p/downloads
/images/e692418e4cba是集群节点上的目录;
/p2p/downloads是P2P容器上的目录;
13、节点2的Agent2设置P2P容器的资源限额参数小于等于业务容器的资源限额,用于对P2P容器应用使用的资源进行限制,使得P2P容器应用能使用的资源不超过业务容器的资源限额。
示例的,设置的资源限额参数实例如下:
"cpuPeriod"字段对应的值"1024"是定义一个cpu;
"cpuQuota"字段对应的值"512"是cpu的资源限额;
"memory"字段对应的值"100M"是memory的资源限额;
14、节点2的Agent2按照设置的映射挂载节点目录的参数和资源限额参数创建运行P2P容器应用。
A)、Agent保证P2P容器应用分配的CPU资源不超过设置的限额。
B)、Agent判断P2P容器应用使用的Memory资源是否超过限额,如果是,结束P2P容器应用。
15、P2P容器应用解析镜像分发信息文件获取种子文件URL,通过URL向种子文件服务器请求获取种子文件。
16、P2P容器应用加载解析种子文件,成为leecher,通过P2P协议完成镜像层内容的获取,并保存到映射的目录下;实例如下:
P2P容器应用解析/p2p/Downloads/image.manifest镜像分发信息文件获取种子文件URL,向种子文件服务器请求获取BitTorrent种子文件,它包含Tracker地址和文件信息,文件信息包含将镜像层虚拟划分成数据块后,每个块的索引信息和哈希验证码;P2P容器应用加载解析种子文件,成为leecher,通过BitTorrent协议完成镜像内容的获取,通过和Tracker周期***互获取活动态的种子节点和其它Leecher;向P2P种子请求获取镜像层数据块、和其它Leecher交换镜像层数据块,并将镜像层压缩包保存到/p2p/downloads/目录下。
17、节点2的Agent2判断所有镜像层的内容是否全部获取,如果是,停止P2P容器应用,用于释放P2P容器应用占用的CPU和Memory资源。
18、节点2的Agent2将获取的镜像层存储到本节点的镜像文件库中。
19、节点2的Agent2设置业务容器的资源限额参数,通过获取的镜像创建运行业务容器。
由上述各实施例所示的在节点集群中获取镜像的方法可知,本发明实施例将待运行业务容器的资源限额提供给P2P容器使用,能保证已经部署在集群节点上现有业务容器能正常使用分配给它们的资源的限额,保证已经部署在集群节点上现有业务容器的正常运行,同时,将通过HTTP下载方式下载完成的镜像层的节点作为种子节点,可以在更多的节点上进行分享、负荷平衡,可以加快下载速度,减少原始种子节点的负荷。此外,第一服务器根据待分发的容器镜像中的每个镜像层的大小,确定合适的镜像分发方式,优化了镜像的分发速度。
上述主要从各个设备之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个设备,例如节点设备、第一服务器等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对节点设备、服务器等设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中所涉及的节点设备的一种可能的结构示意图,节点设备50包括:第一获取模块501、第二获取模块502、创建模块503、接收模块504、监控模块505以及控制模块506。第一获取模块501用于支持节点设备执行图3中的过程401;第二获取模块502用于支持节点设备执行图3中的过程402、405、B2,创建模块503主要用于创建P2P种子容器和/P2P容器、接收模块504主要用于与第一服务器之间进行通信,监控模块505用于实时监控第一节点的可用资源,控制模块506用于控制P2P容器和/P2P种子容器的开启与关闭。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。此外,节点设备50还可以包括存储模块,用于存储节点设备30的程序代码和数据。
当创建模块503、监控模块505以及控制模块506为处理器,第一获取模块501、第二获取模块502以及接收模块504为收发器时,本发明实施例中所涉及的节点设备结构可以为图2所示的节点设备。
在采用对应各个功能划分各个功能模块的情况下,图8示出了上述实施例中所涉及的服务器的一种可能的结构示意图,服务器60包括:发送模块601、接收模块602、查询模块603、确定模块604、生成模块605。发送模块601与接收模块602用于与节点设备之间进行通信,发送模块601用于支持服务器执行图3中的过程403;接收模块602用于支持服务器执行图3中的过程A1,查询模块603用于支持服务器执行图3中的过程A2,确定模块604用于支持服务器执行图3中的过程A3,生成模块605用于支持服务器执行图3中的过程A4。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。此外,服务器60还可以包括存储模块,用于存储服务器60的程序代码和数据。
当查询模块603、确定模块604、生成模块605为处理器,发送模块601、接收模块602为收发器时,本发明实施例中所涉及的服务器可以为图3所示的服务器,具体可参见图3部分的相关描述,此处不再赘述。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (18)
1.一种在节点集群中的镜像获取方法,其特征在于,包括:
第一节点获取业务容器运行请求,所述业务容器运行请求包括第一待运行业务容器的镜像的镜像标识及所述第一待运行业务容器的资源限额;
所述第一节点向第一服务器请求所述镜像标识对应的镜像分发信息,所述镜像分发信息包括所述镜像的镜像层标识及对应镜像层的获取方式;
当所述镜像层的获取方式包括P2P对等网络协议获取方式时,则所述第一节点创建P2P容器,并设置所述P2P容器的运行资源限额小于等于所述第一待运行业务容器的资源限额,通过所述P2P容器获取所述镜像层标识对应的镜像层压缩包。
2.根据权利要求1所述的方法,其特征在于,所述镜像层的获取方式包括P2P获取方式和/或HTTP超文本传输协议下载方式。
3.根据权利要求1或2所述的方法,其特征在于,当所述第一节点已通过HTTP下载方式下载完成第二待运行业务容器的目标镜像层的镜像层压缩包时,所述方法还包括:
所述第一节点接收所述第一服务器发送的镜像层P2P种子请求,所述镜像层P2P种子请求用于请求所述第一节点成为所述第二待运行业务容器的目标P2P种子,包括所述目标镜像层的镜像层标识;
所述第一节点根据所述目标镜像层的镜像层标识向所述第一服务器请求所述目标镜像层的P2P种子,并创建运行所述P2P种子的P2P种子容器。
4.根据权利要求3所述的方法,其特征在于,所述创建运行所述P2P种子的P2P种子容器之后,所述方法还包括:
所述第一节点监控所述第一节点的可用资源;
当所述第一节点的可用资源小于第一预定阈值时,所述第一节点停止运行所述P2P种子容器。
5.根据权利要求1所述的方法,其特征在于,所述第一节点创建P2P容器之后,所述方法还包括:
所述第一节点在判定所述P2P容器使用的资源超过所述第一待运行业务容器的资源限额时,停止应用所述P2P容器。
6.根据权利要求5所述的方法,其特征在于,所述P2P容器使用的资源为所述P2P容器使用的内存资源。
7.一种在节点集群中的镜像获取方法,其特征在于,包括:
第一服务器向第一节点发送镜像分发信息,所述镜像分发信息为所述第一节点所请求的第一待运行业务容器的镜像标识所对应的信息;
其中,所述镜像分发信息包括所述镜像的镜像层标识及对应镜像层的获取方式,所述镜像分发信息用于使得所述第一节点在所述镜像层的获取方式包括P2P对等网络协议获取方式时,创建P2P容器,并设置所述P2P容器的运行资源限额小于等于所述第一待运行业务容器的资源限额,通过所述P2P容器获取所述镜像层标识对应的镜像层压缩包。
8.根据权利要求7所述的方法,其特征在于,所述第一服务器向第一节点发送镜像分发信息之前,所述方法还包括:
第一服务器接收第二服务器发送的业务容器镜像分发请求,所述业务容器镜像分发请求包括第一待运行业务容器的镜像的镜像标识;
第一服务器根据所述镜像标识查询所述镜像标识对应镜像的镜像层信息,所述镜像层信息包括所述镜像的镜像层标识和对应镜像层压缩包的大小;
第一服务器根据所述镜像层压缩包的大小确定所述镜像层的获取方式;
第一服务器根据所述镜像层的获取方式及对应镜像层标识,生成所述镜像的镜像分发信息。
9.根据权利要求8所述的方法,其特征在于,所述第一服务器根据所述镜像层压缩包的大小确定所述镜像层的获取方式具体包括:
第一服务器判定所述镜像层压缩包的大小是否大于第二预定阈值;
若所述镜像层的镜像层压缩包的大小大于等于所述第二预定阈值,则第一服务器为所述镜像层提供P2P获取方式,并为所述镜像层生成对应的P2P种子;
若所述镜像层的镜像层压缩包的大小小于所述第二预定阈值,则第一服务器为所述镜像层提供HTTP超文本传输协议下载方式。
10.一种节点设备,其特征在于,包括:
第一获取模块,用于获取业务容器运行请求,所述业务容器运行请求包括第一待运行业务容器的镜像的镜像标识及所述第一待运行业务容器的资源限额;
第二获取模块,用于向第一服务器请求所述第一获取模块接收到业务容器运行请求中包含的所述镜像标识对应的镜像分发信息,所述镜像分发信息包括所述镜像的镜像层标识及对应镜像层的获取方式;
创建模块,用于当所述获取模块获取的所述镜像层的获取方式包括P2P对等网络协议获取方式时,创建P2P容器,并设置所述P2P容器的运行资源限额小于等于所述第一待运行业务容器的资源限额;
所述第二获取模块,还用于通过所述创建模块创建的所述P2P容器获取所述镜像层标识对应的镜像层压缩包。
11.根据权利要求10所述的节点设备,其特征在于,所述镜像层的获取方式包括P2P获取方式和/或HTTP超文本传输协议下载方式。
12.根据权利要求10或11所述的节点设备,其特征在于,当所述节点设备已通过HTTP下载方式下载完成第二待运行业务容器的目标镜像层的镜像层压缩包时,所述节点设备还包括:
接收模块,用于接收所述第一服务器发送的镜像层P2P种子请求,所述镜像层P2P种子请求用于请求所述节点设备成为所述第二待运行业务容器的目标P2P种子,包括所述目标镜像层的镜像层标识;
所述第二获取模块,还用于根据所述接收模块接收到的镜像层P2P种子请求中包含的所述目标镜像层的镜像层标识向所述第一服务器请求所述目标镜像层的P2P种子;
所述创建模块,还用于创建运行所述获取模块获取的所述P2P种子的P2P种子容器。
13.根据权利要求12所述的节点设备,其特征在于,所述节点设备还包括:
监控模块,用于监控所述节点设备的可用资源;
控制模块,用于当所述节点设备的可用资源小于第一预定阈值时,停止运行所述P2P种子容器。
14.根据权利要求13所述的节点设备,其特征在于:
所述控制模块,还用于在判定所述P2P容器使用的资源超过所述第一待运行业务容器的资源限额时,停止应用所述P2P容器。
15.根据权利要求14所述的节点设备,其特征在于,所述P2P容器使用的资源为所述P2P容器使用的内存资源。
16.一种服务器,其特征在于,包括:
发送模块,用于向第一节点发送镜像分发信息,所述镜像分发信息为所述第一节点为第一待运行业务容器的镜像标识所请求的信息;
其中,所述镜像分发信息包括所述镜像的镜像层标识及对应镜像层的获取方式,所述镜像分发信息用于使得所述第一节点在所述镜像层的获取方式包括P2P对等网络协议获取方式时,创建P2P容器,并设置所述P2P容器的运行资源限额小于等于所述第一待运行业务容器的资源限额,通过所述P2P容器获取所述镜像层标识对应的镜像层压缩包。
17.根据权利要求16所述的服务器,其特征在于,所述服务器还包括:
接收模块,用于接收第二服务器发送的业务容器镜像分发请求,所述业务容器镜像分发请求包括第一待运行业务容器的镜像的镜像标识;
查询模块,用于根据所述接收模块接收到的业务容器运行请求中包含的所述镜像标识查询所述镜像标识对应镜像的镜像层信息,所述镜像层信息包括所述镜像的镜像层标识和对应镜像层压缩包的大小;
确定模块,用于根据所述查询模块查询到的镜像层压缩包的大小确定所述镜像层的获取方式;
生成模块,用于根据所述确定模块确定的所述镜像层的获取方式及所述接收模块接收到的业务容器运行请求中包含的镜像层对应镜像层标识,生成所述镜像的镜像分发信息。
18.根据权利要求17所述的服务器,其特征在于,所述确定模块具体用于:
判定所述镜像层压缩包的大小是否大于第二预定阈值;
若所述镜像层的镜像层压缩包的大小大于等于所述第二预定阈值,则为所述镜像层提供P2P获取方式,并为所述镜像层生成对应的P2P种子;
若所述镜像层的镜像层压缩包的大小小于所述第二预定阈值,则为所述镜像层提供HTTP超文本传输协议下载方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610823154.XA CN107819802B (zh) | 2016-09-13 | 2016-09-13 | 一种在节点集群中的镜像获取方法、节点设备及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610823154.XA CN107819802B (zh) | 2016-09-13 | 2016-09-13 | 一种在节点集群中的镜像获取方法、节点设备及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107819802A CN107819802A (zh) | 2018-03-20 |
CN107819802B true CN107819802B (zh) | 2021-02-26 |
Family
ID=61600639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610823154.XA Active CN107819802B (zh) | 2016-09-13 | 2016-09-13 | 一种在节点集群中的镜像获取方法、节点设备及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107819802B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170508A (zh) * | 2017-12-12 | 2018-06-15 | 顺丰科技有限公司 | 批量创建虚拟机的方法、装置、设备及其存储介质 |
CN110659100B (zh) * | 2018-06-29 | 2022-05-24 | 华为技术有限公司 | 容器管理方法、装置和设备 |
CN108848187B (zh) * | 2018-07-16 | 2021-03-16 | 苏州浪潮智能科技有限公司 | 一种建立通信连接的方法、装置、设备及可读存储介质 |
CN109062663B (zh) * | 2018-07-19 | 2020-07-17 | 北京百度网讯科技有限公司 | 镜像分发方法、装置及存储介质 |
CN109194725B (zh) * | 2018-08-17 | 2019-07-09 | 杭州数梦工场科技有限公司 | 一种镜像的传输方法、装置、设备及计算机存储介质 |
CN110896404B (zh) | 2018-09-12 | 2021-09-14 | 华为技术有限公司 | 数据处理的方法、装置和计算节点 |
CN111198745A (zh) * | 2018-11-16 | 2020-05-26 | 北京京东尚科信息技术有限公司 | 容器创建的调度方法、装置、介质及电子设备 |
CN109600683A (zh) * | 2018-12-05 | 2019-04-09 | 深圳市网心科技有限公司 | 一种视频点播方法、装置及其相关设备 |
CN109688222B (zh) * | 2018-12-26 | 2020-12-25 | 深圳市网心科技有限公司 | 共享计算资源的调度方法、共享计算***、服务器及存储介质 |
CN110209492B (zh) * | 2019-03-21 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及装置 |
CN111800284B (zh) * | 2019-04-08 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 边缘云节点集合的选择方法和装置以及电子设备 |
CN110532075A (zh) * | 2019-08-09 | 2019-12-03 | 济南浪潮数据技术有限公司 | 有状态负载的实现方法及装置 |
CN110990025B (zh) * | 2019-12-06 | 2024-02-06 | 无锡华云数据技术服务有限公司 | 一种实例部署方法及*** |
CN111131487B (zh) * | 2019-12-30 | 2022-08-12 | 广东浪潮大数据研究有限公司 | 一种深度学习平台容器镜像获取、共享方法及*** |
CN111324421B (zh) * | 2020-02-18 | 2023-04-07 | 支付宝(杭州)信息技术有限公司 | 一种容器镜像的提供方法、加载方法及相关设备和*** |
CN111427600B (zh) * | 2020-03-20 | 2023-04-21 | 成都千立网络科技有限公司 | 一种基于docker的平台***部署升级方法及*** |
CN111309401A (zh) * | 2020-03-24 | 2020-06-19 | 广西梯度科技有限公司 | 一种在Kubernetes中运行多CPU架构服务的方法 |
CN111459668A (zh) * | 2020-03-30 | 2020-07-28 | 中科边缘智慧信息科技(苏州)有限公司 | 用于服务器的轻量级资源虚拟化方法及轻量级资源虚拟化装置 |
CN111432006B (zh) * | 2020-03-30 | 2023-03-31 | 中科九度(北京)空间信息技术有限责任公司 | 一种轻量级资源虚拟化与分配方法 |
WO2021248466A1 (zh) * | 2020-06-12 | 2021-12-16 | 深圳市欢太科技有限公司 | 文件分发方法、装置、电子设备和计算机可读存储介质 |
US11281443B1 (en) * | 2020-07-31 | 2022-03-22 | Tableau Software, LLC | Organizing deployment packages for software applications and services |
CN112433810B (zh) * | 2020-11-05 | 2023-12-26 | 北京浪潮数据技术有限公司 | docker容器镜像存储、拉取方法、装置及计算机可读存储介质 |
CN112437124B (zh) * | 2020-11-09 | 2022-05-06 | 北京金山云网络技术有限公司 | 流量镜像请求的处理方法、装置及负载均衡服务器 |
CN112511611B (zh) * | 2020-11-19 | 2021-08-10 | 腾讯科技(深圳)有限公司 | 节点集群的通信方法、装置、***及电子设备 |
CN112597115A (zh) * | 2020-12-18 | 2021-04-02 | 国网浙江省电力有限公司电力科学研究院 | 容器镜像的压缩方法、装置、终端设备及介质 |
CN112818403B (zh) * | 2021-02-26 | 2023-03-03 | 上海德衡数据科技有限公司 | 容器数据中心运维*** |
CN113342378B (zh) * | 2021-06-25 | 2022-08-02 | 浪潮通用软件有限公司 | 一种基于文件***更新的镜像生成方法、设备及介质 |
CN113760453B (zh) * | 2021-08-04 | 2024-05-28 | 南方电网科学研究院有限责任公司 | 容器镜像分发***及容器镜像推送、拉取和删除方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630653A (zh) * | 2016-03-15 | 2016-06-01 | 青岛海信传媒网络技术有限公司 | Docker容器的CPU空闲率确定方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039187A (zh) * | 2006-03-17 | 2007-09-19 | 腾讯科技(深圳)有限公司 | 一种数据下载的方法及其*** |
WO2013016142A1 (en) * | 2011-07-22 | 2013-01-31 | Raketu Communications, Inc. | Self-adapting direct peer to peer communication and messaging system |
CN103870314B (zh) * | 2014-03-06 | 2017-01-25 | 中国科学院信息工程研究所 | 一种单节点同时运行不同类型虚拟机的方法及*** |
US9449353B2 (en) * | 2014-11-10 | 2016-09-20 | International Business Machines Corporation | Enabling enforcement of licensing terms in distributing content in containers by including a key in the container containing the pertinent licensing terms |
CN105487880A (zh) * | 2015-06-25 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种基于业务请求的镜像分发与使用方法及*** |
CN105847045B (zh) * | 2016-01-04 | 2019-06-18 | 中国电子科技网络信息安全有限公司 | 一种基于Docker容器的应用封装***及管理方法 |
-
2016
- 2016-09-13 CN CN201610823154.XA patent/CN107819802B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630653A (zh) * | 2016-03-15 | 2016-06-01 | 青岛海信传媒网络技术有限公司 | Docker容器的CPU空闲率确定方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107819802A (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819802B (zh) | 一种在节点集群中的镜像获取方法、节点设备及服务器 | |
AU2017363366B2 (en) | On-demand code execution in a localized device coordinator | |
US11388228B2 (en) | Methods, systems and computer readable media for self-replicating cluster appliances | |
JP6363796B2 (ja) | 動的コードデプロイメント及びバージョニング | |
CN109688235B (zh) | 虚拟网络业务处理方法、装置和***,控制器,存储介质 | |
US9525592B2 (en) | Client/server network environment setup method and system | |
US8316364B2 (en) | Peer-to-peer software update distribution network | |
US20090199175A1 (en) | Dynamic Allocation of Virtual Application Server | |
EP3545408B1 (en) | Localized device coordinator with on-demand code execution capabilities | |
US10372486B2 (en) | Localized device coordinator | |
EP3103016B1 (en) | Virtualized application cluster | |
WO2013123833A1 (zh) | 文件共享的方法及*** | |
CN113434249A (zh) | 镜像同步方法、装置、docker主机及存储介质 | |
CN115086166B (zh) | 计算***、容器网络配置方法及存储介质 | |
CN114979286A (zh) | 容器服务的访问控制方法、装置、设备及计算机存储介质 | |
CN114726863A (zh) | 用于负载均衡的方法、设备、***及存储介质 | |
CN116805946A (zh) | 一种消息请求处理方法、装置、电子设备及存储介质 | |
CN114731297B (zh) | 用于计算设备对等方匹配的消息限制的自组织网络组 | |
US20190141007A1 (en) | Self-organizing distributed computation grid | |
CN113268254A (zh) | 一种集群***安装方法、装置、电子设备及存储介质 | |
CN113783914A (zh) | 数据处理方法、装置及设备 | |
CN109375946B (zh) | 一种管理节点包管理器的组件包的方法及*** | |
CN114827177B (zh) | 一种分布式文件***的部署方法、装置及电子设备 | |
US20130086231A1 (en) | Upgrade system and method having adaptive changeable upgrade process | |
CN114662102A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200214 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 210012 HUAWEI Nanjing base, 101 software Avenue, Yuhuatai District, Jiangsu, Nanjing Applicant before: Huawei Technologies Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |