CN108667884B - 镜像分发方法、镜像获取方法及装置 - Google Patents
镜像分发方法、镜像获取方法及装置 Download PDFInfo
- Publication number
- CN108667884B CN108667884B CN201710214053.7A CN201710214053A CN108667884B CN 108667884 B CN108667884 B CN 108667884B CN 201710214053 A CN201710214053 A CN 201710214053A CN 108667884 B CN108667884 B CN 108667884B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- ipfs
- metadata
- mirror
- image
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- 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
-
- 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/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]
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开提供了一种镜像分发方法、镜像获取方法及装置,属于网络技术领域。方法包括:根据第一镜像的多个块数据,生成第一镜像的IPFS元数据和第一镜像的IPFS元数据标识;将第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置;将第一镜像的IPFS元数据标识添加至分布式文件***的DHT。本公开节点设备可以在本地构建并存储镜像,无需依赖于中央仓库服务器,进而采用将镜像的IPFS元数据对应的IPFS元数据标识添加至DHT的方式,实现对镜像的发布,使得其他节点设备可以基于该DHT获取到该镜像。整个过程可以在节点设备之间进行,无需经由其他设备的控制,效率高。
Description
技术领域
本公开涉及网络技术领域,特别涉及一种镜像分发方法、镜像获取方法及装置。
背景技术
分布式文件***是一种能够对海量数据进行管理的***。分布式文件***可以为***内的多个节点设备进行应用的部署。为了实现应用在节点设备上的正常运行,分布式文件***可以在各个节点设备上构建容器。容器作为一种轻量级的虚拟机,能够为应用提供隔离的运行环境,在构建容器的过程中,分布式文件***需要对容器运行所需的用户态文件的集合进行分发,也即是对容器的镜像进行分发。
目前的分布式文件***包括用于提供镜像的存储服务的中央仓库服务器、控制器、***、多个节点设备代理以及多个节点设备,其中,控制器用于与中央仓库服务器进行数据交互,并管理多个节点设备代理进行镜像分发;该***用于跟踪各个节点设备的镜像下载情况,每个节点设备代理对应于一个节点设备,并管理对应节点设备的镜像下载。基于这种协议下,该镜像分发过程具体包括:
当控制器接收到镜像分发任务后,控制器从中央仓库服务器分层下载镜像到该控制器的本地镜像仓库,并向各个节点设备代理下发镜像的下载任务。节点设备代理接收到下载任务后,针对该镜像的每一个镜像层,通过调用***检查该镜像层是否在所有节点设备均不存在,如果是,则该节点设备代理调用自己所管理的节点设备从控制器的本地镜像仓库进行该镜像层的下载,如果不是,则可以调用该节点设备从已经存储了该镜像层的节点设备进行该镜像层的下载,下载完成后,该节点设备可以作为一个分发节点设备,来为其他节点设备提供该镜像层的下载。
在实现本公开的过程中,发明人发现现有技术至少存在以下问题:
上述技术中,需要通过控制器从中央仓库服务器下载镜像后再分发到各个节点设备,并经由控制器、节点设备代理的多层控制才能实现多个节点设备的镜像分发,分发效率低。
发明内容
为了解决现有技术的问题,本公开实施例提供了一种镜像分发方法、镜像获取方法及装置。所述技术方案如下:
第一方面,提供了一种镜像分发方法,所述方法包括:根据第一镜像的多个块数据,生成所述第一镜像的星际文件***IPFS元数据和所述第一镜像的IPFS元数据标识,所述第一镜像的IPFS元数据包括所述第一镜像的镜像标识、所述节点设备的名称、所述第一镜像的多个块数据的名称和地址信息,所述第一镜像的IPFS元数据标识用于索引所述第一镜像的IPFS元数据;将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置;将所述第一镜像的IPFS元数据标识添加至分布式文件***的分布式哈希表DHT,所述DHT包括所述分布式文件***中多个节点设备所发布镜像的IPFS元数据标识。
本公开实施例提供的方法,节点设备可以在本地构建并存储镜像,无需依赖于中央仓库服务器,进而根据该镜像的多个块数据,生成与该镜像的IPFS元数据对应的IPFS元数据标识,并采用将该IPFS元数据标识添加至DHT的方式,实现对镜像的发布,使得其他节点设备可以基于该DHT获取该镜像。整个过程可以在节点设备之间进行,无需经由其他设备的控制,效率高。
在第一方面的第一种可能实现方式中,所述将所述第一镜像的IPFS元数据标识添加至DHT包括:接收对所述第一镜像的发布请求,所述发布请求携带所述第一镜像的镜像标识;根据所述第一镜像的镜像标识,获取所述第一镜像的IPFS元数据标识,并将所述第一镜像的IPFS元数据标识添加至所述DHT。
本公开实施例提供的方法,节点设备可以根据发布请求携带的第一镜像的镜像标识,获取与第一镜像的IPFS元数据对应的IPFS元数据标识,并采用将该IPFS元数据标识添加至DHT的方式,实现对第一镜像的发布。节点设备只需要将第一镜像的IPFS元数据标识添加至DHT即可,而无需发布第一镜像的块数据,从而可以减少镜像数据的传输量,并提高存储空间的利用率,从而降低整个***的开销。
在第一方面的第二种可能实现方式中,所述第一镜像的IPFS元数据还包括所述第一镜像的版本信息,所述将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置包括:根据所述第一镜像的镜像标识,判断所述节点设备的IPFS仓库中是否已经存在第二镜像,所述第二镜像的镜像标识与所述第一镜像的镜像标识相同;如果存在所述第二镜像且所述第二镜像的版本信息与所述第一镜像的版本信息不同,则将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置。
本公开实施例提供的方法,节点设备可以将新版本的第一镜像存储至节点设备的IPFS仓库中,从而实现对原有的相同名称的镜像版本的更新。
在第一方面的第三种可能实现方式中,所述生成所述第一镜像的IPFS元数据标识包括:对所述第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到所述第一镜像的IPFS元数据标识。
本公开实施例提供的方法,节点设备可以通过镜像服务自定义编码和哈希编码,生成第一镜像的IPFS元数据标识,提供了一种生成IPFS元数据标识的方式。
第二方面,提供了一种镜像获取方法,所述方法包括:接收对第一镜像的获取请求,所述获取请求携带所述第一镜像的镜像标识;根据所述第一镜像的镜像标识,确定DHT中是否存在所述第一镜像的IPFS元数据标识,所述DHT包括分布式文件***中多个节点设备所发布镜像的IPFS元数据标识,所述第一镜像的IPFS元数据标识用于索引所述第一镜像的IPFS元数据;如果存在所述第一镜像的IPFS元数据标识,则获取所述第一镜像的IPFS元数据标识对应的IPFS元数据;根据所述第一镜像的IPFS元数据,获取所述第一镜像。
本公开实施例提供的方法,节点设备可以主动发起对第一镜像的获取请求,基于DHT获取该第一镜像的IPFS元数据标识对应的IPFS元数据,并根据该IPFS元数据,从发布该第一镜像的节点设备获取该第一镜像到本地。该镜像的获取可以由节点设备主动发起获取请求而触发,且该镜像的获取可以在节点设备之间进行,无需经由其他设备的控制,效率高。
在第二方面的第一种可能实现方式中,所述根据所述第一镜像的镜像标识,确定所述DHT中是否存在所述第一镜像的IPFS元数据标识包括:对所述第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到所述第一镜像的IPFS元数据标识;确定所述DHT中是否存在所述第一镜像的IPFS元数据标识。
本公开实施例提供的方法,节点设备可以通过哈希编码和镜像服务自定义编码,得到第一镜像的IPFS元数据标识,进而确定DHT中是否存在该第一镜像的IPFS元数据标识,提供了一种根据第一镜像的镜像标识,确定DHT中是否存在第一镜像的IPFS元数据标识的方式。
在第二方面的第二种可能实现方式中,所述获取所述第一镜像的IPFS元数据标识对应的IPFS元数据包括:向所述DHT发送获取请求,所述获取请求用于获取与所述第一镜像的IPFS元数据标识对应的IPFS元数据,由所述DHT从分布式文件***中多个节点设备查询并获取所述第一镜像的IPFS元数据;接收所述DHT返回的请求结果,所述请求结果携带所述第一镜像的IPFS元数据。
本公开实施例提供的方法,节点设备可以根据第一镜像的IPFS元数据标识,向DHT发送获取请求,由DHT返回与该第一镜像的IPFS元数据标识对应的IPFS元数据,提供了一种根据IPFS元数据标识,获取IPFS元数据的方式。
在第二方面的第三种可能实现方式中,所述根据所述第一镜像的IPFS元数据,获取所述第一镜像包括:根据所述第一镜像的IPFS元数据所包含的所述第一镜像所在节点设备的名称和所述第一镜像的多个块数据的地址信息,从所述第一镜像所在节点设备获取所述第一镜像的多个块数据,根据所述第一镜像的多个块数据获取所述第一镜像;或,根据所述第一镜像的IPFS元数据所包含的所述第一镜像的多个块数据的名称,确定目标块数据,并根据所述第一镜像的IPFS元数据所包含的所述第一镜像所在节点设备的名称和所述目标块数据的地址信息,从所述第一镜像所在节点设备获取所述目标块数据,并根据所述目标块数据和所述节点设备的IPFS仓库中已经存在的所述第一镜像的块数据获取所述第一镜像,所述目标块数据为所述第一镜像的多个块数据中不存在于所述节点设备的IPFS仓库中的块数据。
本公开实施例提供的方法,节点设备可以根据第一镜像的IPFS元数据,从其他节点设备获取第一镜像的全部块数据,并根据该全部块数据获取到完整的第一镜像,也可以从其他节点设备获取第一镜像的部分块数据,并根据该部分块数据和该节点设备已存储的另一部分块数据获取到完整的第一镜像,提供了多种根据第一镜像的IPFS元数据,获取第一镜像的方式。
第三方面,提供了一种镜像分发装置,所述装置包括多个功能模块,所述多个功能模块用于执行上述第一方面所提供的镜像分发方法以及其任一种可能实现方式。
第四方面,提供了一种镜像获取装置,所述装置包括多个功能模块,所述多个功能模块用于执行上述第二方面所提供的镜像获取方法以及其任一种可能实现方式。
第五方面,提供了一种节点设备,所述节点设备包括:处理器;用于存储处理器可执行指令的存储器;所述可执行指令用于执行:根据第一镜像的多个块数据,生成所述第一镜像的星际文件***IPFS元数据和所述第一镜像的IPFS元数据标识,所述第一镜像的IPFS元数据包括所述第一镜像的镜像标识、所述节点设备的名称、所述第一镜像的多个块数据的名称和地址信息,所述第一镜像的IPFS元数据标识用于索引所述第一镜像的IPFS元数据;将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置;将所述第一镜像的IPFS元数据标识添加至分布式文件***的分布式哈希表DHT,所述DHT包括所述分布式文件***中多个节点设备所发布镜像的IPFS元数据标识。
在一种可能实现方式中,所述可执行指令用于执行:接收对所述第一镜像的发布请求,所述发布请求携带所述第一镜像的镜像标识;根据所述第一镜像的镜像标识,获取所述第一镜像的IPFS元数据标识,并将所述第一镜像的IPFS元数据标识添加至所述DHT。
在一种可能实现方式中,所述可执行指令用于执行:根据所述第一镜像的镜像标识,判断所述节点设备的IPFS仓库中是否已经存在第二镜像,所述第二镜像的镜像标识与所述第一镜像的镜像标识相同;如果存在所述第二镜像且所述第二镜像的版本信息与所述第一镜像的版本信息不同,则将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置。
在一种可能实现方式中,所述可执行指令用于执行:对所述第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到所述第一镜像的IPFS元数据标识。
第六方面,提供了一种节点设备,所述节点设备包括:处理器;用于存储处理器可执行指令的存储器;所述可执行指令用于执行:接收对第一镜像的获取请求,所述获取请求携带所述第一镜像的镜像标识;根据所述第一镜像的镜像标识,确定DHT中是否存在所述第一镜像的IPFS元数据标识,所述DHT包括分布式文件***中多个节点设备所发布镜像的IPFS元数据标识,所述第一镜像的IPFS元数据标识用于索引所述第一镜像的IPFS元数据;如果存在所述第一镜像的IPFS元数据标识,则获取所述第一镜像的IPFS元数据标识对应的IPFS元数据;根据所述第一镜像的IPFS元数据,获取所述第一镜像。
在一种可能实现方式中,对所述第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到所述第一镜像的IPFS元数据标识;确定所述DHT中是否存在所述第一镜像的IPFS元数据标识。
在一种可能实现方式中,所述可执行指令用于执行:向所述DHT发送获取请求,所述获取请求用于获取与所述第一镜像的IPFS元数据标识对应的IPFS元数据,由所述DHT从分布式文件***中多个节点设备查询并获取所述第一镜像的IPFS元数据;接收所述DHT返回的请求结果,所述请求结果携带所述第一镜像的IPFS元数据。
在一种可能实现方式中,所述可执行指令用于执行:根据所述第一镜像的IPFS元数据所包含的所述第一镜像所在节点设备的名称和所述第一镜像的多个块数据的地址信息,从所述第一镜像所在节点设备获取所述第一镜像的多个块数据,根据所述第一镜像的多个块数据获取所述第一镜像;或,根据所述第一镜像的IPFS元数据所包含的所述第一镜像的多个块数据的名称,确定目标块数据,并根据所述第一镜像的IPFS元数据所包含的所述第一镜像所在节点设备的名称和所述目标块数据的地址信息,从所述第一镜像所在节点设备获取所述目标块数据,并根据所述目标块数据和所述节点设备的IPFS仓库中已经存在的所述第一镜像的块数据获取所述第一镜像,所述目标块数据为所述第一镜像的多个块数据中不存在于所述节点设备的IPFS仓库中的块数据。
附图说明
图1是本公开实施例提供的一种分布式文件***的结构示意图;
图2是本公开实施例提供的一种节点设备101的结构示意图;
图3是本公开实施例提供的一种节点设备300的结构示意图;
图4是本公开实施例提供的一种镜像分发方法的流程示意图;
图5是本公开实施例提供的一种镜像的构建过程的示意图;
图6是本公开实施例提供的一种镜像的发布过程的示意图;
图7是本公开实施例提供的一种镜像的分发过程的示意图;
图8是本公开实施例提供的一种节点设备的结构示意图;
图9是本公开实施例提供的一种镜像分发装置的结构示意图;
图10是本公开实施例提供的一种存储模块902的结构示意图;
图11是本公开实施例提供的一种镜像获取装置的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。
图1是本公开实施例提供的一种分布式文件***的结构示意图。参见图1,该分布式文件***包括至少两个节点设备,如第一节点设备101和第二节点设备102。其中,“第一”、“第二”仅用于描述目的,不用于指示节点设备的相对重要性,实际上每个节点设备之间的地位对等,即每个节点设备可以实现相同的功能。该分布式文件***的各个节点设备共同遵守比特流(Bit Torrent)协议,并基于该比特流协议实现节点设备之间的数据传输。
该分布式文件***中的任一个节点设备可以由一个实体设备实现,例如电脑、移动终端或者服务器。每一个节点设备可以包括多个功能模块,以提供多种服务。以第一节点设备101为例,参见图2,该第一节点设备101可以包括运行容器服务模块、仓库服务模块和星际文件***(InterPlanetary File System,IPFS)仓库。
其中,容器服务模块可以构建镜像,并提供容器服务,例如发起业务请求,包括发起存储镜像数据请求、发布镜像请求以及获取镜像请求;仓库服务模块可以承接容器服务模块的业务,利用IPFS提供镜像仓库服务,例如接收并处理容器服务模块发起的业务请求;IPFS仓库可以提供IPFS服务,包括分布式存储和分发服务,例如存储镜像数据,包括存储镜像的元数据和块数据。
容器服务模块、仓库服务模块和IPFS仓库之间可以利用请求来通信,例如,该请求可以为超文本传输协议(HyperText Transfer Protocol,HTTP)请求。
在下述的本公开实施例中,由节点设备执行的步骤实际上可能是由该节点设备的某个或多个功能模块协作完成,具体情况将在后续实施例的步骤中进行说明。
图3是本公开实施例提供的一种节点设备300的结构示意图,该节点设备可以用于执行下述各个实施例中提供的镜像分发方法。参见图3,该节点设备300包括:
节点设备300可以包括射频(Radio Frequency,RF)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、无线保真(Wireless Fidelity,WiFi)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图3中示出的节点设备结构并不构成对节点设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据节点设备300的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及节点设备300的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图3中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
节点设备300还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在节点设备300移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于节点设备300还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与节点设备300之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一节点设备,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与节点设备300的通信。
WiFi属于短距离无线传输技术,节点设备300通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图3示出了WiFi模块170,但是可以理解的是,其并不属于节点设备300的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是节点设备300的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行节点设备300的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;可选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
节点设备300还包括给各个部件供电的电源190(比如电池),可选的,电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,节点设备300还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,节点设备的显示单元是触摸屏显示器,节点设备还包括有存储器,以及可执行指令,其中可执行指令存储于存储器中,且经配置以由一个或者一个以上处理器执行。该可执行指令用于执行下述图4所示实施例中节点设备侧方法。
图4是本公开实施例提供的一种镜像分发方法的流程示意图。该镜像分发方法应用于分布式文件***,该分布式文件***包括至少两个节点设备,本公开实施例以第一节点设备和第二节点设备为例进行说明。参见图4,该镜像分发方法可以包括:
401、第一节点设备构建第一镜像。
其中,该第一节点设备可以为分布式文件***中的任一个节点设备,第一节点设备在运行过程中可以构建新镜像。该新镜像即为该步骤401中的第一镜像。该第一镜像的镜像数据可以包括表单文件、配置文件和镜像层文件,其中,表单文件(manifest)用于记录第一镜像的配置文件和镜像层文件信息;配置文件(config)用于记录第一镜像运行时的信息以及镜像层之间的依赖关系;镜像层文件(layers)为第一镜像的应用数据,镜像层的集合构成完整的第一镜像。上述这些第一镜像的镜像数据均可以作为第一镜像的块数据进行处理。
需要说明的是,该第一镜像的构建实际上可以由第一节点设备内的容器服务模块完成。参见图5,该容器服务模块构建第一镜像后可以通过构建接口发起数据存储请求,以请求将第一镜像的多个块数据存储至IPFS仓库中。
本公开实施例中,第一节点设备构建第一镜像后,如果不发布该第一镜像,则该第一镜像只能被该第一节点设备自身使用。因此,为了使得分布式文件***中的其他节点设备可以获取该第一节点设备构建的第一镜像,第一节点设备可以将该第一镜像发布至分布式文件***。而考虑到该第一镜像的多个块数据的数据量较大,为了减少发布的数据量,第一节点设备可以根据该第一镜像的多个块数据,生成数据量小的相关数据,并将该相关数据发布至分布式文件***,使得其他节点设备可以根据该相关数据获取到该第一镜像。
402、第一节点设备根据第一镜像的多个块数据,生成该第一镜像的IPFS元数据和该第一镜像的IPFS元数据标识,该第一镜像的IPFS元数据包括该第一镜像的镜像标识、该第一节点设备的名称、该第一镜像的多个块数据的名称和地址信息,该第一镜像的IPFS元数据标识用于索引该第一镜像的IPFS元数据。
其中,该镜像标识可以为镜像名称、镜像编号等,例如,镜像名称可以为镜像文件名或镜像文件名缩写,镜像编号可以为由字母或数字等组成字符串。
本公开实施例中,IPFS仓库有指定的数据结构组织规范,例如Merkle数据库可用性组(Database Availability Group,DAG)规范。为了保证第一节点设备根据该第一镜像的多个块数据,生成的该相关数据符合该IPFS仓库的数据结构组织规范。该相关数据的生成过程可以包括:第一节点设备可以依照Merkle DAG算法组织该第一镜像的多个块数据,生成符合IPFS仓库的数据结构组织规范的第一镜像的IPFS元数据,并将该第一镜像的IPFS元数据作为该相关数据。该IPFS元数据可以用来描述IPFS对象。
另外,由于IPFS仓库通过IPFS元数据标识和IPFS元数据一一对应的方式来管理镜像的IPFS元数据,因此,第一节点设备在生成第一镜像的IPFS元数据的同时,还可以生成第一镜像的IPFS元数据标识。在一种可能实现方式中,第一节点设备可以对第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到第一镜像的IPFS元数据标识。
其中,该第一镜像的IPFS元数据所包括的该第一镜像的多个块数据的地址信息可以为间接址信息,例如该多个块数据的hash值。该多个块数据的hash值可以在第一镜像的构建过程中生成。对于第一镜像的每个块数据,根据该块数据的hash值可以确定该块数据在第一节点设备的存储位置。
本公开实施例是以该第一镜像的IPFS元数据包括该第一镜像的镜像标识、该第一节点设备的名称、该第一镜像的多个块数据的名称和地址信息为例进行说明,实际上,该第一镜像的IPFS元数据还可以包括第一镜像的版本信息。
需要说明的是,参见图5,该第一镜像的IPFS元数据和IPFS元数据标识的生成实际上可以由第一节点设备内的仓库服务模块完成,即仓库服务模块接收到容器服务模块发起的数据存储请求后,可以根据第一镜像的多个块数据,生成该第一镜像的IPFS元数据和该第一镜像的IPFS元数据标识。
403、第一节点设备将第一镜像的多个块数据存储至该第一节点设备的IPFS仓库中与该地址信息相对应的存储位置。
本公开实施例中,对于第一镜像的多个块数据,第一节点设备可以将该多个块数据存储至IPFS仓库中与该多个块数据的地址信息相对应的存储位置,在一种可能实现方式中,对于每个块数据,第一节点设备可以根据该块数据的hash值,确定该块数据在第一节点设备的存储位置。
第一节点设备在存储第一镜像的多个块数据的同时,也可以对第一镜像的IPFS元数据和IPFS元数据标识进行存储。例如,第一节点设备可以依照本地数据库的组织原则,将该IPFS元数据和IPFS元数据标识存储至IPFS服务可访问的一段本地存储空间中。在一种可能实现方式中,第一节点设备可以将该IPFS元数据和IPFS元数据标识存储至对应关系记录表,例如,第一节点设备的IPFS仓库中可以维护一个对应关系记录表,该对应关系记录表用于记录镜像的IPFS元数据标识和IPFS元数据之间的对应关系。
针对步骤402中该第一镜像的IPFS元数据还可以包括该第一镜像的版本信息,该步骤403可以包括:第一节点设备根据第一镜像的镜像标识,判断第一节点设备的IPFS仓库中是否已经存在第二镜像,该第二镜像的镜像标识与该第一镜像的镜像标识相同;如果存在该第二镜像且该第二镜像的版本信息与该第一镜像的版本信息不同,则将第一镜像的多个块数据存储至该第一节点设备的IPFS仓库中与该地址信息相对应的存储位置。第一节点设备可以将新版本的第一镜像存储至第一节点设备的IPFS仓库中,从而实现对原有的相同名称的镜像版本的更新。
需要说明的是,该第一镜像的IPFS元数据、第一镜像的多个块数据和第一镜像的IPFS元数据标识的存储实际上可以由第一节点设备内的仓库服务模块完成。
步骤401至步骤403是第一节点设备构建第一镜像,并存储第一镜像的过程。
404、第一节点设备将第一镜像的IPFS元数据标识添加至分布式文件***的分布式哈希表(Distributed Hash Table,DHT),该DHT包括分布式文件***中多个节点设备所发布镜像的IPFS元数据标识。
本公开实施例中,第一节点设备构建并存储第一镜像后,可以采用将第一镜像的IPFS元数据标识添加至DHT的方式,实现将第一镜像的IPFS元数据或第一镜像发布至分布式文件***的目的,以便于其他节点设备需要获取该第一镜像时,可以通过DHT中的该第一镜像的IPFS元数据标识,获取与该第一镜像的IPFS元数据标识对应的该第一镜像的IPFS元数据,进而获取到完整的第一镜像。
需要说明的是,该步骤404实际上可以由第一节点设备的仓库服务模块完成。相应地,该步骤404可以包括以下步骤a至b:
a、接收对第一镜像的发布请求,该发布请求携带该第一镜像的镜像标识。
本公开实施例中,参见图6,第一节点设备内的容器服务模块可以生成对第一镜像的发布请求,并通过容器服务模块的发布接口发送至仓库服务模块,由该仓库服务模块接收该发布请求。
b、根据第一镜像的镜像标识,从第一节点设备的本地存储空间中获取与第一镜像的IPFS元数据对应的第一镜像的IPFS元数据标识,并将该第一镜像的IPFS元数据标识添加至DHT。
本公开实施例中,第一节点设备本地存储有第一镜像的IPFS元数据以及对应的IPFS元数据标识,其中,该第一镜像的IPFS元数据中包含了第一镜像的镜像标识。第一节点设备可以根据第一镜像的镜像标识,找到包含该第一镜像的镜像标识的第一镜像的IPFS元数据,进而获取到该第一镜像的IPFS元数据标识。例如,第一节点设备可以从对应关系记录表中获取到与第一镜像的IPFS元数据对应的第一镜像的IPFS元数据标识。
参见图6,仓库服务模块接收到对第一镜像的发布请求后,可以根据该发布请求中携带的第一镜像的镜像标识,在节点设备本地检索,从第一节点设备本地获取到该第一镜像的IPFS元数据标识,并采用将该第一镜像的IPFS元数据标识添加至DHT的方式,实现对第一镜像的发布。此外,DHT存储第一镜像的IPFS元数据标识后,可以向第一节点设备发送发布成功消息,以告知第一节点设备该第一镜像发布成功。
本公开实施例中,第一节点设备采用向DHT添加该第一镜像的IPFS元数据标识的方式,实现对第一镜像的IPFS元数据或第一镜像的发布,从而使其他节点可以通过该IPFS元数据标识检索和获取该第一镜像的IPFS元数据,进而获取到完整的第一镜像。由于无需发布第一镜像的块数据,从而可以减少镜像数据的传输量,并提高存储空间的利用率,从而降低整个***的开销。
上述步骤401至步骤404是第一节点设备构建、存储并发布镜像的过程,如果第一节点设备构建该镜像后不发布,则该镜像只能被该第一节点设备自身使用,而将该镜像的IPFS元数据标识发布至DHT后,其他节点可以基于该DHT中该镜像的IPFS元数据标识,获取该镜像的IPFS元数据,进而基于该IPFS元数据获取到完整的镜像。
405、第二节点设备接收对第一镜像的获取请求,该获取请求携带该第一镜像的镜像标识。
本公开实施例中,参见图7,第二节点设备内的容器服务模块可以生成对该第一镜像的获取请求,并通过该容器服务模块的分发接口发送至第二节点设备内的仓库服务模块,由该仓库服务模块接收该获取请求。
406、第二节点设备根据该第一镜像的镜像标识,确定该DHT中是否存在第一镜像的IPFS元数据标识,该第一镜像的IPFS元数据标识用于索引第一镜像的IPFS元数据。
本公开实施例中,针对步骤402中第一节点设备可以对第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到第一镜像的IPFS元数据标识,相应地,该步骤406可以包括:第二节点设备对第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到第一镜像的IPFS元数据标识;第二节点设备确定该DHT中是否存在该第一镜像的IPFS元数据标识。
其中,第二节点设备确定该DHT中是否存在该第一镜像的IPFS元数据标识可以包括:第二节点设备的仓库服务模块向DHT发送查询请求,用于查询DHT中是否存在第一镜像的IPFS元数据标识,该查询请求携带该第一镜像的IPFS元数据标识,由DHT返回查询结果,例如存在该第一镜像的IPFS元数据标识或不存在该第一镜像的IPFS元数据标识。
第二节点设备可以根据第一节点设备生成IPFS元数据标识时的规则,通过镜像服务自定义编码和哈希编码,得到第一镜像的IPFS元数据标识,进而根据DHT对该第一镜像的IPFS元数据标识的查询结果,确定DHT中是否存在该第一镜像的IPFS元数据标识,提供了一种根据第一镜像的镜像标识,确定DHT中是否存在第一镜像的IPFS元数据标识的方式。
407、如果存在该第一镜像的IPFS元数据标识,第二节点设备获取与该第一镜像的IPFS元数据标识对应的IPFS元数据。
本公开实施例中,参见图7,该步骤407可以包括:如果查询结果为DHT中存在该第一镜像的IPFS元数据标识,则第二节点设备的仓库服务模块可以向DHT发送获取请求,用于获取与该IPFS元数据标识对应的IPFS元数据,该获取请求携带该第一镜像的IPFS元数据标识。由DHT根据该获取请求携带的第一镜像的IPFS元数据标识,按照指定查询机制,从分布式文件***中多个节点设备查询并获取与该第一镜像的IPFS元数据标识对应的IPFS元数据,并向第二节点设备返回请求结果,该请求结果携带该第一镜像的IPFS元数据。第二节点设备接收到该第一镜像的IPFS元数据后,可以将该第一镜像的IPFS元数据存储至该第二节点设备本地。例如,DHT可以采用优化查询算法,如主线DHT(Mainline DHT)算法,依据最近节点原则进行查询。
本公开实施例以查询结果为DHT中存在该第一镜像的IPFS元数据标识为例进行说明,而如果查询结果为DHT中不存在该第一镜像的IPFS元数据标识,说明分布式文件***中不存在该第一镜像的IPFS元数据,也即说明该分布式文件***中不存在该第一镜像。对此,第二节点设备可以自己构建该第一镜像,该构建与步骤401中第一节点设备对第一镜像的构建同理。
408、第二节点设备根据该第一镜像的IPFS元数据,获取该第一镜像。
本公开实施例中,该步骤408可以通过以下两种方式实现:
第一种方式,第二节点设备可以根据该第一镜像的IPFS元数据所包含的第一镜像所在节点设备的名称和第一镜像的多个块数据的地址信息,从该第一镜像所在节点设备获取该第一镜像的多个块数据,根据该第一镜像的多个块数据获取该完整的第一镜像到本地。
本公开实施例中,第一镜像所在节点设备可以为第一节点设备。这种方式针对的是第二节点设备获取第一镜像的全部块数据的情况。第二节点设备获取该第一镜像的IPFS元数据后,可以根据该第一镜像的IPFS元数据,从第一节点设备获取到第一镜像的所有块数据。以某个块数据为例,第二节点设备可以根据该块数据的地址信息,如hash值,通过对该hash值进行hash运算,即可得到该块数据在第一节点设备的存储位置,进而可以从该存储位置获取该块数据。例如,第二节点设备可以依据比特流协议从第一节点设备的该存储位置获取该块数据。
第二种方式,第二节点设备可以根据该第一镜像的IPFS元数据所包含的第一镜像的多个块数据的名称,确定目标块数据,并根据该第一镜像的IPFS元数据所包含的该第一镜像所在节点设备的名称和该目标块数据的地址信息,从该第一镜像所在节点设备获取该目标块数据,并根据该目标块数据和该第二节点设备的IPFS仓库中已经存在的该第一镜像的块数据获取该第一镜像,该目标块数据为该第一镜像的多个块数据中不存在于该第二节点设备的IPFS仓库中的块数据。
这种方式针对的是第二节点设备获取第一镜像的部分块数据的情况。参见图7,第二节点设备获取该第一镜像的IPFS元数据后,可以通过对比该第一镜像的IPFS元数据所包含的多个块数据的名称和该第二节点设备的IPFS仓库中的多个块数据的名称,确定目标块数据。例如,该第一镜像的IPFS元数据所包含的多个块数据为:块数据A、块数据B和块数据C,该第二节点设备的IPFS仓库中的多个块数据为:块数据A、块数据D和块数据E,则目标块数据可以确定为:块数据B和块数据C。
第二节点设备确定目标块数据后,可以从对应节点设备获取该目标块数据,然后根据该目标块数据和第二节点设备的IPFS仓库中已有的第一镜像的另一部分块数据,获取第一镜像。例如,第二节点设备可以根据获取到的块数据B、块数据C以及已有的块数据A获取完整的第一镜像。
第二节点设备可以根据第一镜像的IPFS元数据,从其他节点设备获取第一镜像的全部块数据,并根据该全部块数据获取第一镜像,也可以从其他节点设备获取第一镜像的部分块数据,并根据该部分块数据和该第二节点设备已存储的另一部分块数据获取第一镜像,提供了多种根据第一镜像的IPFS元数据获取第一镜像的方式。
上述步骤405至步骤408是第二节点设备获取第一镜像的过程。
本公开实施例提供的镜像分发和获取方法,具体可包括:镜像的构建(参见图5)、镜像的发布(参见图6)和镜像的获取(参见图7)。其中,在本公开实施例提供的***中,各个镜像的块数据分布式存储在各个节点,且各个节点只需要发布与其拥有的镜像的元数据对应的元数据标识即可,从而可减少镜像数据的传输量,并提高存储空间的利用率,从而降低整个***的开销。
需要说明的是,本公开实施例中,仓库服务模块以单独服务的方式实现。实际上,参见图8,如果容器服务模块的业务接口,如镜像构建、发布和分发接口支持添加中间件,那么该仓库服务模块还可以为容器服务模块的中间件,即在容器服务模块内直接以函数调用的方式实现仓库服务模块所提供的服务。以步骤402为例,第一镜像的IPFS元数据和IPFS元数据标识的生成实际上可以由容器服务模块调用指定函数来完成。
本公开实施例提供的方法,第一节点设备可以在本地构建并存储镜像,无需依赖于中央仓库服务器,进而根据该镜像的多个块数据,生成与该镜像的IPFS元数据对应的IPFS元数据标识,并采用将该IPFS元数据标识添加至DHT的方式,实现对镜像的发布。第二节点设备可以主动发起对第一镜像的获取请求,基于该DHT获取该第一镜像的IPFS元数据标识对应的IPFS元数据,并根据该第一镜像的IPFS元数据,从第一节点设备获取该镜像到本地。整个过程可以在节点设备之间进行,无需经由其他设备的控制,效率高。
图9是本公开实施例提供的一种镜像分发装置的结构示意图。参照图9,该装置包括生成模块901、存储模块902和发布模块903。
生成模块901,用于根据第一镜像的多个块数据,生成该第一镜像的星际文件***IPFS元数据和该第一镜像的IPFS元数据标识,该第一镜像的IPFS元数据包括该第一镜像的镜像标识、该节点设备的名称、该第一镜像的多个块数据的名称和地址信息,该第一镜像的IPFS元数据标识用于索引该第一镜像的IPFS元数据;
存储模块902,用于将该第一镜像的多个块数据存储至该节点设备的IPFS仓库中与该地址信息相对应的存储位置;
发布模块903,用于将该第一镜像的IPFS元数据标识添加至分布式文件***的分布式哈希表DHT,该DHT包括该分布式文件***中多个节点设备所发布镜像的IPFS元数据标识。
在一种可能实现方式中,该发布模块903用于执行上述步骤404中将第一镜像的IPFS元数据标识添加至DHT的过程。
在一种可能实现方式中,参见图10,该存储模块902包括:
判断子模块,用于执行上述步骤403中判断节点设备的IPFS仓库中是否已经存在与该第一镜像的镜像标识相同的第二镜像的过程。
存储子模块,用于执行上述步骤403中将第一镜像的多个块数据存储至IPFS仓库中的过程。
在一种可能实现方式中,该生成模块用于执行上述步骤402中生成第一镜像的IPFS元数据标识的过程。
本公开实施例中,节点设备可以在本地构建并存储镜像,无需依赖于中央仓库服务器,进而根据该镜像的多个块数据,生成与该镜像的IPFS元数据对应的IPFS元数据标识,并采用将该IPFS元数据标识添加至DHT的方式,实现对镜像的发布,使得其他节点设备可以基于该DHT获取该节点设备发布的镜像。整个过程可以在节点设备之间进行,无需经由其他设备的控制,效率高。
需要说明的是,上述实施例提供的镜像分发装置在镜像分发时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的镜像分发装置与镜像分发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由镜像分发装置中的处理器执行以完成上述实施例中的镜像分发方法。例如,所述非临时性计算机可读存储介质可以是只读内存(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact DiscRead-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
图11是本公开实施例提供的一种镜像获取装置的结构示意图。参照图11,该装置包括接收模块1101、确定模块1102、获取模块1103。
接收模块1101,用于接收对第一镜像的获取请求,该获取请求携带该第一镜像的镜像标识;
确定模块1102,用于根据该第一镜像的镜像标识,确定DHT中是否存在第一镜像的IPFS元数据标识,该DHT包括分布式文件***中多个节点设备所发布镜像的IPFS元数据标识;
获取模块1103,用于如果存在该第一镜像的IPFS元数据标识,则获取该第一镜像的IPFS元数据标识对应的IPFS元数据;根据该第一镜像的IPFS元数据,获取该第一镜像。
在一种可能实现方式中,该确定模块1102用于执行上述步骤406中确定DHT中是否存在第一镜像的IPFS元数据标识的过程。
在一种可能实现方式中,该获取模块1103用于执行上述步骤407中获取第一镜像的IPFS元数据的过程。
在一种可能实现方式中,该获取模块1103用于执行上述步骤408中根据从其他节点设备获取的第一镜像的全部块数据,获取第一镜像的过程;或,该获取模块1103用于执行上述步骤408中根据从其他节点设备获取的第一镜像的部分块数据的节点设备已经存在的块数据,获取第一镜像的过程。
本公开实施例中,节点设备可以主动发起对镜像的获取请求,基于DHT获取该第一镜像的IPFS元数据标识对应的IPFS元数据,并根据该第一镜像的IPFS元数据,从发布该第一镜像的节点设备获取该第一镜像到本地。该镜像的获取可以由节点设备主动发起获取请求而触发,且该镜像的获取可以在节点设备之间进行,无需经由其他设备的控制,效率高。
需要说明的是,上述实施例提供的镜像获取装置在镜像获取时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的镜像获取装置与镜像获取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由镜像获取装置中的处理器执行以完成上述实施例中的镜像获取方法。例如,所述非临时性计算机可读存储介质可以是只读内存(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact DiscRead-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (16)
1.一种镜像分发方法,其特征在于,应用于分布式文件***中的一个节点设备,所述方法包括:
根据第一镜像的多个块数据,生成所述第一镜像的星际文件***IPFS元数据和所述第一镜像的IPFS元数据标识,所述第一镜像的IPFS元数据包括所述第一镜像的镜像标识、所述节点设备的名称、所述第一镜像的多个块数据的名称和地址信息,所述第一镜像的IPFS元数据标识用于索引所述第一镜像的IPFS元数据,所述第一镜像由所述节点设备构建;
将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置;
将所述第一镜像的IPFS元数据标识添加至分布式文件***的分布式哈希表DHT,所述DHT包括所述分布式文件***中多个节点设备所发布镜像的IPFS元数据标识。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一镜像的IPFS元数据标识添加至DHT包括:
接收对所述第一镜像的发布请求,所述发布请求携带所述第一镜像的镜像标识;
根据所述第一镜像的镜像标识,获取所述第一镜像的IPFS元数据标识,并将所述第一镜像的IPFS元数据标识添加至所述DHT。
3.根据权利要求1所述的方法,其特征在于,所述第一镜像的IPFS元数据还包括所述第一镜像的版本信息,所述将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置包括:
根据所述第一镜像的镜像标识,判断所述节点设备的IPFS仓库中是否已经存在第二镜像,所述第二镜像的镜像标识与所述第一镜像的镜像标识相同;
如果存在所述第二镜像且所述第二镜像的版本信息与所述第一镜像的版本信息不同,则将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置。
4.根据权利要求1所述的方法,其特征在于,所述生成所述第一镜像的IPFS元数据标识包括:
对所述第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到所述第一镜像的IPFS元数据标识。
5.一种镜像获取方法,其特征在于,应用于分布式文件***中的一个节点设备,所述方法包括:
接收对第一镜像的获取请求,所述获取请求携带所述第一镜像的镜像标识,所述第一镜像由所述分布式文件***中的其他节点设备构建;
根据所述第一镜像的镜像标识,确定DHT中是否存在所述第一镜像的IPFS元数据标识,所述DHT包括分布式文件***中多个节点设备所发布镜像的IPFS元数据标识,所述第一镜像的IPFS元数据标识用于索引所述第一镜像的IPFS元数据,所述第一镜像的IPFS元数据包括所述第一镜像的镜像标识、节点设备的名称、所述第一镜像的多个块数据的名称和地址信息;
如果存在所述第一镜像的IPFS元数据标识,则获取所述第一镜像的IPFS元数据标识对应的IPFS元数据;
根据所述第一镜像的IPFS元数据,获取所述第一镜像。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一镜像的镜像标识,确定所述DHT中是否存在所述第一镜像的IPFS元数据标识包括:
对所述第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到所述第一镜像的IPFS元数据标识;
确定所述DHT中是否存在所述第一镜像的IPFS元数据标识。
7.根据权利要求5所述的方法,其特征在于,所述获取所述第一镜像的IPFS元数据标识对应的IPFS元数据包括:
向所述DHT发送获取请求,所述获取请求用于获取与所述第一镜像的IPFS元数据标识对应的IPFS元数据,由所述DHT从分布式文件***中多个节点设备查询并获取所述第一镜像的IPFS元数据;
接收所述DHT返回的请求结果,所述请求结果携带所述第一镜像的IPFS元数据。
8.根据权利要求5所述的方法,其特征在于,所述根据所述第一镜像的IPFS元数据,获取所述第一镜像包括:
根据所述第一镜像的IPFS元数据所包含的所述第一镜像所在节点设备的名称和所述第一镜像的多个块数据的地址信息,从所述第一镜像所在节点设备获取所述第一镜像的多个块数据,根据所述第一镜像的多个块数据获取所述第一镜像;或,
根据所述第一镜像的IPFS元数据所包含的所述第一镜像的多个块数据的名称,确定目标块数据,并根据所述第一镜像的IPFS元数据所包含的所述第一镜像所在节点设备的名称和所述目标块数据的地址信息,从所述第一镜像所在节点设备获取所述目标块数据,并根据所述目标块数据和所述节点设备的IPFS仓库中已经存在的所述第一镜像的块数据获取所述第一镜像,所述目标块数据为所述第一镜像的多个块数据中不存在于所述节点设备的IPFS仓库中的块数据。
9.一种镜像分发装置,其特征在于,所述装置包括:
生成模块,用于根据第一镜像的多个块数据,生成所述第一镜像的星际文件***IPFS元数据和所述第一镜像的IPFS元数据标识,所述第一镜像的IPFS元数据包括所述第一镜像的镜像标识、节点设备的名称、所述第一镜像的多个块数据的名称和地址信息,所述第一镜像的IPFS元数据标识用于索引所述第一镜像的IPFS元数据,所述第一镜像由分布式文件***中的节点设备构建;
存储模块,用于将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置;
发布模块,用于将所述第一镜像的IPFS元数据标识添加至分布式文件***的分布式哈希表DHT,所述DHT包括所述分布式文件***中多个节点设备所发布镜像的IPFS元数据标识。
10.根据权利要求9所述的装置,其特征在于,所述发布模块,用于接收对所述第一镜像的发布请求,所述发布请求携带所述第一镜像的镜像标识;根据所述第一镜像的镜像标识,获取所述第一镜像的IPFS元数据标识,并将所述第一镜像的IPFS元数据标识添加至所述DHT。
11.根据权利要求9所述的装置,其特征在于,所述第一镜像的IPFS元数据还包括所述第一镜像的版本信息,所述存储模块包括:
判断子模块,用于根据所述第一镜像的镜像标识,判断所述节点设备的IPFS仓库中是否已经存在第二镜像,所述第二镜像的镜像标识与所述第一镜像的镜像标识相同;
存储子模块,用于如果存在所述第二镜像且所述第二镜像的版本信息与所述第一镜像的版本信息不同,则将所述第一镜像的多个块数据存储至所述节点设备的IPFS仓库中与所述地址信息相对应的存储位置。
12.根据权利要求9所述的装置,其特征在于,所述生成模块,用于对所述第一镜像的镜像标识进行镜像服务自定义编码和哈希编码,得到所述第一镜像的IPFS元数据标识。
13.一种镜像获取装置,其特征在于,所述装置包括:
接收模块,用于接收对第一镜像的获取请求,所述获取请求携带所述第一镜像的镜像标识,所述第一镜像由分布式文件***中的节点设备构建;
确定模块,用于根据所述第一镜像的镜像标识,确定DHT中是否存在所述第一镜像的IPFS元数据标识,所述DHT包括分布式文件***中多个节点设备所发布镜像的IPFS元数据标识,所述第一镜像的IPFS元数据标识用于索引所述第一镜像的IPFS元数据,所述第一镜像的IPFS元数据包括所述第一镜像的镜像标识、节点设备的名称、所述第一镜像的多个块数据的名称和地址信息;
获取模块,用于如果存在所述第一镜像的IPFS元数据标识,则获取所述第一镜像的IPFS元数据标识对应的IPFS元数据;根据所述第一镜像的IPFS元数据,获取所述第一镜像。
14.根据权利要求13所述的装置,其特征在于,所述确定模块,用于对所述第一镜像的镜像标识做哈希运算,得到所述第一镜像的IPFS元数据标识;确定所述DHT中是否存在所述第一镜像的IPFS元数据标识。
15.根据权利要求13所述的装置,其特征在于,所述获取模块,用于向所述DHT发送获取请求,所述获取请求用于获取与所述第一镜像的IPFS元数据标识对应的IPFS元数据,由所述DHT从分布式文件***中多个节点设备查询并获取所述第一镜像的IPFS元数据;接收所述DHT返回的请求结果,所述请求结果携带所述第一镜像的IPFS元数据。
16.根据权利要求13所述的装置,其特征在于,所述获取模块,用于根据所述第一镜像的IPFS元数据所包含的所述第一镜像所在节点设备的名称和所述第一镜像的多个块数据的地址信息,从所述第一镜像所在节点设备获取所述第一镜像的多个块数据,根据所述第一镜像的多个块数据获取所述第一镜像;或,
所述获取模块,用于根据所述第一镜像的IPFS元数据所包含的所述第一镜像的多个块数据的名称,确定目标块数据,并根据所述第一镜像的IPFS元数据所包含的所述第一镜像所在节点设备的名称和所述目标块数据的地址信息,从所述第一镜像所在节点设备获取所述目标块数据,并根据所述目标块数据和所述节点设备的IPFS仓库中已经存在的所述第一镜像的块数据获取所述第一镜像,所述目标块数据为所述第一镜像的多个块数据中不存在于所述节点设备的IPFS仓库中的块数据。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710214053.7A CN108667884B (zh) | 2017-04-01 | 2017-04-01 | 镜像分发方法、镜像获取方法及装置 |
EP18777174.6A EP3591940B1 (en) | 2017-04-01 | 2018-03-28 | Mirror image distribution method, and mirror image acquisition method and apparatus |
PCT/CN2018/080944 WO2018177333A1 (zh) | 2017-04-01 | 2018-03-28 | 镜像分发方法、镜像获取方法及装置 |
US16/589,729 US11388220B2 (en) | 2017-04-01 | 2019-10-01 | Image distribution method and apparatus, and image obtaining method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710214053.7A CN108667884B (zh) | 2017-04-01 | 2017-04-01 | 镜像分发方法、镜像获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108667884A CN108667884A (zh) | 2018-10-16 |
CN108667884B true CN108667884B (zh) | 2021-01-05 |
Family
ID=63675245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710214053.7A Active CN108667884B (zh) | 2017-04-01 | 2017-04-01 | 镜像分发方法、镜像获取方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11388220B2 (zh) |
EP (1) | EP3591940B1 (zh) |
CN (1) | CN108667884B (zh) |
WO (1) | WO2018177333A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6421866B1 (ja) * | 2017-08-09 | 2018-11-14 | オムロン株式会社 | センサ管理ユニット、センサ装置、センサ管理方法及びセンサ管理プログラム |
US11641359B2 (en) * | 2018-04-20 | 2023-05-02 | Opera Norway As | System for connecting computing devices |
CN111382136B (zh) * | 2018-12-29 | 2024-03-15 | 华为技术有限公司 | 文件***镜像及文件请求方法 |
CN110324406B (zh) * | 2019-06-03 | 2022-07-26 | 网宿科技股份有限公司 | 一种获取业务数据的方法和云服务*** |
CN110647580B (zh) * | 2019-09-05 | 2022-06-10 | 南京邮电大学 | 分布式容器集群镜像管理主节点、从节点、***及方法 |
US11115312B1 (en) | 2019-12-04 | 2021-09-07 | Sprint Communications Company L.P. | File control for data packet routers using consensus and inter-planetary file system (IPFS) |
CN111131487B (zh) * | 2019-12-30 | 2022-08-12 | 广东浪潮大数据研究有限公司 | 一种深度学习平台容器镜像获取、共享方法及*** |
CN111182067B (zh) * | 2019-12-31 | 2021-08-27 | 上海焜耀网络科技有限公司 | 一种基于星际文件***ipfs的数据写入方法及设备 |
CN111414426A (zh) * | 2020-03-26 | 2020-07-14 | 北京云图科瑞科技有限公司 | 一种基于区块链的数据处理方法及*** |
CN113872999A (zh) * | 2020-06-30 | 2021-12-31 | 中兴通讯股份有限公司 | 镜像分发方法、电子设备及存储介质 |
CN112437157B (zh) * | 2020-11-24 | 2022-10-18 | 中国工商银行股份有限公司 | 镜像仓库对账方法及*** |
CN113342763B (zh) * | 2021-06-03 | 2022-07-15 | 上海和数软件有限公司 | 基于ipfs的分布式数据同步方法、设备及介质 |
CN113282418A (zh) * | 2021-06-03 | 2021-08-20 | 光大科技有限公司 | 一种模型聚合处理方法及装置 |
KR20230067126A (ko) * | 2021-11-09 | 2023-05-16 | 삼성전자주식회사 | Ipfs를 활용한 중앙화 대체불가능 토큰의 발행 장치 및 방법 |
US11743321B2 (en) * | 2021-11-12 | 2023-08-29 | Microsoft Technology Licensing, Llc | Linked file engagement |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307210A (zh) * | 2011-01-13 | 2012-01-04 | 国云科技股份有限公司 | 一种数据下载***及其数据管理和下载方法 |
CN104885076A (zh) * | 2012-05-10 | 2015-09-02 | 以太存储股份有限公司 | 分布式存储的***和方法 |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080155191A1 (en) * | 2006-12-21 | 2008-06-26 | Anderson Robert J | Systems and methods for providing heterogeneous storage systems |
US8332375B2 (en) * | 2007-08-29 | 2012-12-11 | Nirvanix, Inc. | Method and system for moving requested files from one storage location to another |
US8606846B2 (en) * | 2007-10-15 | 2013-12-10 | Nbcuniversal Media, Llc | Accelerating peer-to-peer content distribution |
IT1397439B1 (it) * | 2009-12-30 | 2013-01-10 | St Microelectronics Srl | Procedimento e dispositivi per la distribuzione di contenuti mediali e relativo prodotto informatico |
US9231768B2 (en) * | 2010-06-22 | 2016-01-05 | International Business Machines Corporation | Utilizing a deterministic all or nothing transformation in a dispersed storage network |
US8910157B2 (en) * | 2010-11-23 | 2014-12-09 | International Business Machines Corporation | Optimization of virtual appliance deployment |
CN103186554B (zh) * | 2011-12-28 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 分布式数据镜像方法及存储数据节点 |
US9390055B2 (en) * | 2012-07-17 | 2016-07-12 | Coho Data, Inc. | Systems, methods and devices for integrating end-host and network resources in distributed memory |
US10305721B1 (en) * | 2014-12-09 | 2019-05-28 | Amazon Technologies, Inc. | Content delivery using gossip protocols |
US9819972B1 (en) * | 2014-12-10 | 2017-11-14 | Digital Keystone, Inc. | Methods and apparatuses for a distributed live-on-demand (LOD) origin |
US9292699B1 (en) * | 2014-12-30 | 2016-03-22 | Airwatch Llc | Encrypted file storage |
US10257268B2 (en) * | 2015-03-09 | 2019-04-09 | Vapor IO Inc. | Distributed peer-to-peer data center management |
US9942578B1 (en) * | 2015-12-07 | 2018-04-10 | Digital Keystone, Inc. | Methods and apparatuses for a distributed live-on-demand (LOD) origin |
US9961139B2 (en) * | 2016-05-24 | 2018-05-01 | International Business Machines Corporation | Cooperative download among low-end devices under resource constrained environment |
-
2017
- 2017-04-01 CN CN201710214053.7A patent/CN108667884B/zh active Active
-
2018
- 2018-03-28 EP EP18777174.6A patent/EP3591940B1/en active Active
- 2018-03-28 WO PCT/CN2018/080944 patent/WO2018177333A1/zh unknown
-
2019
- 2019-10-01 US US16/589,729 patent/US11388220B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307210A (zh) * | 2011-01-13 | 2012-01-04 | 国云科技股份有限公司 | 一种数据下载***及其数据管理和下载方法 |
CN104885076A (zh) * | 2012-05-10 | 2015-09-02 | 以太存储股份有限公司 | 分布式存储的***和方法 |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
Non-Patent Citations (1)
Title |
---|
HyCache+: Towards Scalable Caching Middleware for Parallel File SystemsHigh-Performance;Dongfang Zhao;《2014 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing》;20140529;1-10页 * |
Also Published As
Publication number | Publication date |
---|---|
EP3591940B1 (en) | 2021-02-17 |
US11388220B2 (en) | 2022-07-12 |
US20200036772A1 (en) | 2020-01-30 |
WO2018177333A1 (zh) | 2018-10-04 |
CN108667884A (zh) | 2018-10-16 |
EP3591940A4 (en) | 2020-01-08 |
EP3591940A1 (en) | 2020-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667884B (zh) | 镜像分发方法、镜像获取方法及装置 | |
CN104518953B (zh) | 删除消息的方法、即时通信终端及*** | |
CN106953898B (zh) | 一种获取软件包的方法和装置 | |
CN105227598B (zh) | 一种基于云存储的资源分享方法、装置和*** | |
CN112269842B (zh) | 一种信息处理方法、装置、存储介质及计算机设备 | |
CN103945241A (zh) | 一种流媒体数据的统计方法、***及相关装置 | |
CN115658348B (zh) | 微服务调用方法、相关装置及存储介质 | |
CN108287706A (zh) | 数据处理方法及装置 | |
CN106162811B (zh) | 建立网络连接的方法及装置 | |
CN106682189B (zh) | 文件名显示方法及装置 | |
CN107317828B (zh) | 文件下载方法及装置 | |
CN104142994A (zh) | 一种数据列表获取的方法、终端及*** | |
CN114115895A (zh) | 一种代码查询方法、装置、电子设备和存储介质 | |
CN103227832A (zh) | 共享资源处理方法及装置 | |
CN106303616B (zh) | 一种播放控制方法、装置及终端 | |
CN111274463A (zh) | 基于im联系人分组设置的信息展示方法、装置及存储介质 | |
CN115065609A (zh) | B端SaaS***混合部署方法及*** | |
CN110196662B (zh) | 一种展示同步状态的方法、装置、终端及存储介质 | |
CN116112403A (zh) | 应用服务的云服务管理***、方法、电子设备及存储介质 | |
CN111294275B (zh) | 一种im工具的用户信息索引方法、装置、服务器及存储介质 | |
CN104424321A (zh) | 一种文件目录获取方法和装置 | |
CN110198269B (zh) | 分布式机群的路由同步***、方法及相关装置 | |
CN106657281A (zh) | 文件共享方法及装置 | |
CN113852450A (zh) | 一种消息推送反馈方法、装置、电子设备和存储介质 | |
CN106610971A (zh) | 一种zip压缩文件的标识确定方法及装置 |
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 |