CN112084006A - 一种镜像包处理方法、装置及电子设备 - Google Patents

一种镜像包处理方法、装置及电子设备 Download PDF

Info

Publication number
CN112084006A
CN112084006A CN202010948691.3A CN202010948691A CN112084006A CN 112084006 A CN112084006 A CN 112084006A CN 202010948691 A CN202010948691 A CN 202010948691A CN 112084006 A CN112084006 A CN 112084006A
Authority
CN
China
Prior art keywords
mirror image
data
layer
container
index information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010948691.3A
Other languages
English (en)
Other versions
CN112084006B (zh
Inventor
袁雪
李鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN202010948691.3A priority Critical patent/CN112084006B/zh
Publication of CN112084006A publication Critical patent/CN112084006A/zh
Application granted granted Critical
Publication of CN112084006B publication Critical patent/CN112084006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Television Signal Processing For Recording (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种镜像包处理方法、装置及电子设备。其中,镜像包中按照预设容器数据结构规范存储有至少一个容器镜像的镜像数据,并且存储有每个镜像数据对应的索引信息,所述索引信息用于表示所对应的镜像数据所属的容器镜像,所述方法包括:当接收到针对目标容器镜像的操作指令后,根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据;针对所述目标镜像数据执行所述操作指令。可以实现提高使用镜像包执行容器镜像相关处理时的效率。

Description

一种镜像包处理方法、装置及电子设备
技术领域
本发明涉及容器技术领域,特别是涉及一种镜像包处理方法、装置及电子设备。
背景技术
相关技术中,为便于对容器镜像进行管理,可以通过Docker save(一种开源的容器引擎所提供的一种用于打包容器镜像的指令)指令将一个或多个容器镜像压缩成一个镜像包。示例性的,假设需要将一个或多个容器镜像从服务器A迁移至服务器B,可以由服务器A将待迁移的容器镜像打包成镜像包,并将镜像包转移至服务器B,以实现将容器镜像迁移至服务器B。
但是,相关技术中在对镜像包中的容器镜像进行处理时,需要首先将镜像包还原为容器镜像,再对还原得到的容器镜像执行相关的处理。示例性的,假设服务器B需要将镜像包中的容器镜像上传至镜像仓库,则需要通过Docker load(一种开源的容器引擎所提供的一种用于还原镜像包的指令)指令将镜像包还原为容器镜像后,再将还原得到的容器镜像上传至镜像仓库。导致处理效率较低。
发明内容
本发明实施例的目的在于提供一种镜像包处理方法、装置及电子设备,以实现提高对镜像包中的容器镜像执行容器镜像相关处理时的效率。具体技术方案如下:
在本发明实施例的第一方面,提供了一种镜像包处理方法,镜像包中按照预设容器数据结构规范存储有至少一个容器镜像的镜像数据,并且存储有每个镜像数据对应的索引信息,所述索引信息用于表示所对应的镜像数据所属的容器镜像,所述方法包括:
当接收到针对目标容器镜像的操作指令后,根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据;
针对所述目标镜像数据执行所述操作指令。
在一种可能的实施例中,所述镜像数据包括所属容器镜像中的每个镜像层的层数据,所述索引信息包括每个层数据对应的层索引信息,所述层索引信息用于表示所对应的层数据所属的容器镜像;
所述根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据,包括:
根据所述镜像包中的层索引信息在所述镜像包中确定属于所述目标容器镜像的所有层数据,作为目标镜像数据。
在一种可能的实施例中,所述层索引信息包括层标识、镜像标识,所述层标识用于标识所述层索引信息所对应的层数据,所述镜像标识用于表示所述层索引信息所对应的层数据所属容器镜像;
所述操作指令中包括所述目标容器镜像的镜像标识;
所述根据所述镜像包中的层索引信息在所述镜像包中确定属于所述目标容器镜像的所有层数据,作为目标镜像数据,包括:
从所述镜像包中确定所包括的镜像标识与所述操作指令相同的所有层索引信息,作为目标层索引信息;
从所述镜像包中确定所有目标层索引信息中的层标识所标识的层数据,作为目标镜像数据。
在一种可能的实施例中,层标识通过以下方式得到,包括:
获取层数据的摘要;
利用预设散列算法对所述摘要进行散列,得到所述摘要的散列值,作为用于标识所述层数据的层标识,所述散列值的数据长度小于所述摘要的数据长度。
在本发明实施例的第二方面,提供了一种容器镜像打包方法,所述方法包括:
针对每个待打包的容器镜像,根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像;
将所有待打包的镜像的镜像数据和索引信息打包,得到镜像包,所述镜像包中各镜像数据按照预设容器数据结构规范存储。
在一种可能的实施例中,所述镜像数据包括所属容器镜像中的每个镜像层的层数据;
所述根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像,包括:
针对该容器镜像的每个镜像层,根据该镜像层的层数据生成层索引信息,作为该容器镜像的镜像数据对应的索引信息,所述层索引信息用于表示所述层数据所属的容器镜像。
在一种可能的实施例中,所述根据该镜像层的层数据生成层索引信息,包括:
获取层数据的摘要;
利用预设散列算法对所述摘要进行散列,得到所述摘要的散列值,作为用于标识所述层数据的层标识,所述散列值的数据长度小于所述摘要的数据长度;
获取该镜像层所属容器镜像的镜像标识,所述镜像标识用于标识所述容器镜像;
将所述层标识和所述镜像标识作为该镜像层的层索引信息。
在一种可能的实施例中,所述方法还包括:
在接收到针对多个所述镜像包的合并指令后,解析所述合并指令所针对的每个镜像包,得到所有镜像包中包括的所有镜像数据,以及每个镜像数据对应的索引信息;
根据所述所有镜像数据各自对应的索引信息,按照预设散列算法,确定所述所有镜像数据中各镜像数据的存储顺序;
根据所述存储顺序,合并所述多个镜像包,得到合并镜像包,所述合并镜像包中按照所述存储顺序存储有所述所有镜像数据,并且所述合并镜像包中存储有所述所有镜像数据各自对应的索引信息。
在本发明实施例的第三方面,提供了一种镜像包处理装置,镜像包中按照预设容器数据结构规范存储有至少一个容器镜像的镜像数据,并且存储有每个镜像数据对应的索引信息,所述索引信息用于表示所对应的镜像数据所属的容器镜像,所述装置包括:
数据确定模块,当接收到针对目标容器镜像的操作指令后,根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据;
数据处理模块,针对所述目标镜像数据执行所述操作指令。
在本发明实施例的第四方面,提供了一种容器镜像打包装置,所述装置包括:
索引生成模块,用于针对每个待打包的容器镜像,根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像;
数据打包模块,用于将所有待打包的镜像的镜像数据和索引信息打包,得到镜像包,所述镜像包中各镜像数据按照预设容器数据结构规范存储。
在本发明实施例的第五方面,提供了一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面或第二方面中任一所述的方法步骤。
在本发明实施例的第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面任一所述的方法步骤。
本发明实施例有益效果:
本发明实施例提供的镜像包处理方法、装置及电子设备,由于镜像包中的镜像数据是按照预设容器数据结构规范存储的,因此镜像包中的镜像数据可以与容器直接对接,镜像包中的目标镜像数据可以视为操作指令所针对的目标容器镜像,因此可以针对目标镜像数据直接执行操作指令,而无需从镜像包中还原出目标容器镜像,有效提高了对镜像包中的容器镜像执行容器镜像相关处理的效率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要处理的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的镜像包处理方法的一种流程示意图;
图2a为本发明实施例提供的镜像包的数据结构的一种示意图;
图2b为本发明实施例提供的repos的一种分级示意图;
图2c为本发明实施例提供的二进制数据集散列算法的一种流程示意图;
图3为本发明实施例提供的容器镜像打包方法的一种流程示意图;
图4为本发明实施例提供的镜像包合并方法的一种流程示意图;
图5为本发明实施例提供的镜像包合并方法的一种原理示意图;
图6a为本发明实施例提供的镜像包处理装置的一种结构示意图;
图6b为本发明实施例提供的镜像包处理装置的另一种结构示意图;
图7a为本发明实施例提供的容器镜像打包装置的一种结构示意图;
图7b为本发明实施例提供的容器镜像打包装置的另一种结构示意图;
图8为本发明实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更清楚的对本发明实施例提供的镜像包处理方法进行说明,下面将对本发明实施例提供的镜像包处理方法的一种可能的应用场景进行示例性说明,该示例中的应用场景仅是本发明实施例提供的镜像包处理方法的一种可能的应用场景,在其他可能的实施例中本发明实施例提供的镜像包处理方法也可以应用于其他可能的应用场景,以下示例对此不做限制。
假设服务器A中运行有容器镜像1、容器镜像2以及容器镜像3,出于实际需求,用户希望由服务器B行容器镜像1、容器镜像2以及容器镜像3,则用户可以控制服务器A执行docker save指令以对容器镜像1、容器镜像2以及容器镜像3进行打包,得到tar格式的镜像包,通过网络传输、拷贝等方式将镜像包转移至服务器B。服务器B执行docker load指令以对镜像包进行还原,得到容器镜像1、容器镜像2以及容器镜像3,并执行docker push指令以将容器镜像1、容器镜像2以及容器镜像3上传至镜像仓库,从而使得镜像仓库所属服务器集群中的所有服务器能够运行容器镜像1、容器镜像2以及容器镜像3。该过程中服务器B需要消耗一定的时间执行docker load指令,在完成docker load指令后再消耗一定的时间执行docker push指令,因此从服务器B接收到镜像包至服务器集群中所有服务器能够使用这些镜像包这一过程消耗的时间较长,即服务器使用镜像包运行容器镜像的效率较低。
基于此,本发明实施例提供了一种镜像包处理方法,下面将先对本发明提供的镜像包处理方法中的镜像包进行说明:
镜像包中按照预设容器数据结构规范存储有至少一个容器镜像的镜像数据,并且存储有每个镜像数据对应的索引信息,其中,索引信息用于表示对应的镜像数据所属的容器镜像。
示例性的,假设镜像包中存储有3个镜像数据,则镜像包中存储有这3个镜像数据各自对应的索引信息,索引信息可以是对镜像数据中的所有信息或部分信息执行预设散列算法得到的,例如索引信息可以是对镜像数据中的摘要信息执行SHA256(一种散列算法)算法得到的。索引信息与镜像数据之间为一一对应关系,即不同的镜像数据对应于不同的索引信息,并且每个镜像数据对应于一个索引信息,每个索引信息对应于一个镜像数据。
预设容器数据结构规范根据应用场景的不同可以不同,在一种可能的实施例中,可以是指开放容器标准(OCI,Open Container Initiative)规范,在其他可能的应用场景中也可以是指其他规范。可以理解的是,不同容器平台所支持的容器数据结构规范可能不同,预设容器数据结构规范应当为本发明实施例提供的镜像包处理方法的执行主体所搭载的容器平台所支持的容器数据结构规范。
下面基于上述镜像包,对本发明实施例提供的镜像包处理方法进行说明,可以参见图1,图1所示为本发明实施例提供的镜像包处理方法的一种流程示意图,可以包括:
S101,当接收到针对目标容器的操作指令后,根据镜像包中的索引信息在镜像包中确定属于目标容器镜像的镜像数据,作为目标镜像数据。
S102,针对目标镜像数据执行操作指令。
选用该实施例,由于镜像包中的镜像数据是按照预设容器数据结构规范存储的,因此镜像包中的镜像数据可以与容器直接对接,镜像包中的目标镜像数据可以视为操作指令所针对的目标容器镜像,因此可以针对目标镜像数据直接执行操作指令,而无需从镜像包中还原出目标容器镜像,有效提高了使用镜像包执行容器镜像相关处理的效率。
另一方面,本申请提供的镜像包处理方法无需对镜像包进行docker load处理即可直接使用,因此可以提高镜像包的加载速度。
在S101中,根据索引信息的形式的不同,确定目标镜像数据的方式可以不同。示例性的,在一些应用场景中,索引信息中可以包括镜像标识和数据标识,镜像标识用于唯一标识容器镜像,镜像标识可以是镜像名称、镜像路径、镜像序号等信息中的一个信息或多个信息的组合,示例性的,在一种可能的实施例中,镜像标识包括镜像路径和镜像标签(Tag),镜像标签可以是预先由人工设置的或者预先按照预设规则确定的,例如镜像标签可以用于表示容器镜像的版本号,假设一个容器镜像的镜像路径为docker.io/library/coredns,镜像标签为1.0,则该容器镜像的镜像标识可以是以“docker.io/library/coredns”和“1.0”共同表示的。数据标识用于唯一标识镜像标识所标识的镜像数据中的部分数据或所有数据,不同数据标识所标识的数据不同且不存在交集。示例性的,在一种可能的实施例中,一个索引信息中可以包括一个镜像标识并且包括多个数据标识,其中每个数据标识用于标识索引信息所对应的镜像数据中一个镜像层的层数据,并且不同数据标识用于标识不同镜像层的层数据。
可以是获取目标容器镜像的镜像标识,并检索镜像包中的索引信息以确定出所包括的镜像标识与目标容器镜像的镜像标识相同的索引信息,将这些索引信息中的数据标识所标识的镜像数据,确定为目标镜像数据。
在S102中,以操作指令为docker push为例,可以是将镜像数据中每个镜像层的层数据上传至镜像仓库。由于镜像包中的镜像数据是按照预设容器数据结构规范存储的,因此这些层数据可以直接上传至镜像仓库,而无需从镜像包中将这些层数据解析出来,因此上传效率较高。
下面将以OCI规范为例,对本发明实施例提供的镜像包处理方法以及镜像包进行详细说明,在OCI规范中一个容器镜像的镜像数据包括该容器镜像中每个镜像层的层数据。因此,在一种可能的实施例中,镜像包中每个容器镜像的镜像数据包括该容器镜像中的每个镜像层的层数据,索引信息包括每个层数据对应的层索引信息,层索引信息用于表示所对应的层数据所属的容器镜像。
示例性的,假设一个容器镜像(下文称容器镜像A)包括三个镜像层,分别记为镜像层1-3,则对该容器镜像打包得到的镜像包中的镜像数据包括:镜像层1的层数据(下文称层数据1)、镜像层2的层数据(下文称层数据2)以及镜像层3的层数据(下文称层数据3)。索引信息中则对应包括:层数据1对应的层索引信息(下文称层索引信息1)、层数据2对应的层索引信息(下文称层索引信息2)以及层数据3对应的层索引信息(下文称层索引信息3)。层索引信息1用于表示层数据1属于容器镜像A,层索引信息2用于表示层数据2属于容器镜像A,层索引信息3用于表示层数据3属于容器镜像A。
在该实施例中,可以是根据镜像包中的层索引信息在镜像包中确定属于目标容器镜像的所有层数据,作为目标镜像数据。仍以前述示例为例,假设容器镜像A为目标容器镜像,则可以检索镜像包中的层索引信息,在检索到层索引信息1时,可以确定层数据1属于容器镜像A,在检索到层索引信息2时,可以确定层数据2属于容器镜像A,在检索到层索引信息3时,可以确定层数据3属于容器镜像A,因此可以确定出层数据1-3为目标镜像数据。
在一种可能的实施例中,层索引信息中可以包括镜像标识和层标识,镜像标识用于表示层索引信息所对应的层数据所属容器镜像,层标识用于标识层索引信息所对应的层数据。示例性的,层索引信息可以如下所示:
{
"AbstractDigest":"sha256:2c74a1e09cfac74a34f3a34459594f51131b2b5b8",
"SourceRepository":"docker.io/tlibrary/coredns",
"Tag":"1.0"
}
其中,AbstractDigest后的字符串为层数据的摘要,SourceRepository后的字符串为镜像路径,Tag后的字符串为镜像标签,该示例中SourceRepository和Tag共同构成镜像标识,AbstractDigest构成层标识。
并且在该实施例中,操作指令中包括目标容器镜像的镜像标识,在实施例中,可以是从镜像包中确定所包括的镜像标识与操作指令相同的所有层索引信息,作为目标层索引信息。并从镜像包中确定所有目标层索引信息中的层标识所标识的层数据,作为目标镜像数据。
关于镜像标识的表示形式可以参见前述S101中的相关说明,在此不再赘述。层标识可以是对层数据中的所有信息或部分信息执行预设散列算法得到的,示例性的,可以是对层数据中的data数据执行SHA256算法得到的,在一种可能的实施例中,也可以是获取层数据的摘要,利用预设散列算法,如Diff算法(一种散列算法),对摘要进行散列,得到摘要的散列值,作为用于标识层数据的层标识,其中,散列值的数据长度小于摘要的数据长度,例如,假设层数据的摘要是通过对层数据执行SHA256算法得到,则摘要的数据长度为256bit(位),Diff算法可以是将256bit的摘要散列为5bit的散列值。在一些应用场景中,需要对比层标识,例如在容器镜像上传过程中,需要对比镜像包中的层标识与已经上传的镜像层的层标识,以确定镜像包中待上传的层数据,选用该实施例,可以简化层标识从而降低对比层标识所需要的时间,提高处理效率。
本发明实施例中的镜像包的文件格式根据应用场景不同可以不同,示例性的,镜像包可以是tar格式的文件,也可以是其他格式的文件,如gzip,本实施例对此不做限制。
镜像包中包括镜像数据和索引信息,镜像数据是按照预设容器数据结构规范存储的,一个镜像包中可以包括一个或多个镜像数据,并且可以包括一个或多个索引信息,每个索引信息中包括一个或多个层索引信息,每个镜像数据中包括一个或多个层数据,每个层数据对应于一个层索引信息。
下面以OCI规范为例对层数据进行说明,可以参见图2a,图2a为本发明实施例提供的镜像包的数据结构示意图,图中连接线上的1..1表示连接线所连接的两个对象为一一对应关系,1..*表示连接线所连接的两个对象可以是一一对应,也可以是一多对应。
其中镜像包括二进制数据集Blobs和信息数据集Repos,一个镜像数据中包括一个Blobs和一个Repos。Blobs中存储有层数据中的data数据,Repos中存储Layers和Manifests,其中,Layers和Manifests为OCI规范中所规定的两种类型的镜像信息。Layers中存储有与层标识一一对应的SHA256编码Manifests中存储有OCI规范中描述的镜像配置(Image Config)文件以及Layer的哈希值。
Repos中的信息可以是按照仓库名称、项目名称、镜像名称分级存储的,示例性的,可以参见图2b,其中,repos表示镜像名称,reojects表示项目名称、default0、default1表示两个不同的容器镜像的镜像名称。
上述仅是以预设容器数据结构规范为OCI规范为例进行的示例性说明,在其他可能的实施例中,层数据的数据结构也可以是其他形式的。本实施例对此不做限制。
下面以OCI规范为例对索引信息进行说明,索引信息可以如图2a所示,可以包括层数据的摘要(即图中的Abstract Digest),以及对层数据的摘要进行散列得到的层标识(即图中的Abstract id)。
下面将对摘要和层标识的生成进行说明,生成方式可以如图2c所示:
以摘要是通过对层数据中的data数据(即图中的报文M)进行SHA256算法得到的为例,可以是对data数据进行填充,填充的方式为在data数据的最后一位的后一位填充1,其余位填充0,直至填充后的数据的数据长度除以512的余数为448,示例性的,假设data数据为2348位的数据,则可以将data数据填充为2496位的数据,其中第1至第2348为原data数据,第2349位为1,第2349至第2496位为0。
在填充后的数据后附加64位的长度值,得到数据长度为512整数倍的数据(下文称中间数据),长度值用于表示data数据的数据长度。以512位为块,将中间数据划分为多个块(即图中的M1、M2、…Mn),每个块为一个512位的数据,将每个块划分为16个字(word),其中每个字为32位的数据,并根据划分得到的16个字进行递推,直至得到64个字。
依次针对每个块,利用根据该块得到的64个字,对初始的256位的散列值进行64次迭代,初始的256位散列值被划分为8个64位的16进制散列值(即图中的H0、H1、…H7),直至利用每个块的每个字对初始的8个16进制散列值进行迭代,图中的H0 (1)表示H0经过M1迭代后得到的结果,H0 (n)表示H0经过M1、M2…Mn迭代后得到的结果,将输出的8个64位16进制的散列值作为层数据的摘要。
层标识可以是对得到的所有摘要进行散列,提取摘要的报文头,得到报文头集合,并利用预设的散列算法将报文头集合中的散列值散列至32个存储块中,以将得到的摘要散列至32个存储块中。该散列算法的映射规则可以如下式所示:
f(x)=x mod 32-c,c=min mod 32
其中,mod表示取模运算,x表示报文头集合中的一个散列值,f(x)表示对x进行散列得到的散列值,min表示报文头集合中的最小值。
参见图3,图3所示为本发明实施例提供的容器镜像打包方法的一种流程示意图,可以包括:
S301,针对每个待打包的容器镜像,根据该容器镜像的镜像数据生成索引信息。
S302,将所有待打包的镜像的镜像数据和索引信息打包,得到镜像包,镜像包中各镜像数据按照预设容器数据结构规范存储。
选用该实施例,由于镜像包中的镜像数据是按照预设容器数据结构规范存储的,因此镜像包中的镜像数据可以与容器直接对接,并且镜像包中包括索引信息,因此在对镜像包中的容器镜像进行处理时,可以根据索引信息直接从镜像包中确定出容器镜像的镜像数据,并利用所确定的镜像数据进行相关处理,无需将镜像包还原为容器镜像,可以有效提高对镜像包中的容器镜像进行处理时的效率。
在S301,索引信息用于表示镜像数据所属的容器镜像,关于索引信息、镜像数据可以参见前述相关说明,在此不再赘述。
在S302中,镜像包中同一容器镜像的镜像数据和索引信息之间存在对应关系,示例性的,镜像数据的存储位置可以与索引信息的值相对应。
在一种可能的实施例中,所述镜像数据包括所属容器镜像中的每个镜像层的层数据;
所述根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像,包括:
针对该容器镜像的每个镜像层,根据该镜像层的层数据生成层索引信息,作为该容器镜像的镜像数据对应的索引信息,所述层索引信息用于表示所述层数据所属的容器镜像。
在一种可能的实施例中,所述根据该镜像层的层数据生成层索引信息,包括:
获取层数据的摘要;
利用预设散列算法对所述摘要进行散列,得到所述摘要的散列值,作为用于标识所述层数据的层标识,所述散列值的数据长度小于所述摘要的数据长度;
获取该镜像层所属容器镜像的镜像标识,所述镜像标识用于标识所述容器镜像;
将所述层标识和所述镜像标识作为该镜像层的层索引信息。
相关技术中,不同镜像包需要分别处理,操作较为繁琐并且效率较低,基于此,本发明实施例提供了一种镜像包合并方法,可以如图4所示,图4所示为本发明实施例提供的镜像包合并方法的一种流程示意图,可以包括:
S401,在接收到针对多个镜像包的合并指令后,解析合并指令所针对的每个镜像包,得到所有镜像包中包括的所有镜像数据,以及每个镜像数据对应的索引信息。
S402,根据所有镜像数据各自对应的索引信息,按照预设散列算法,确定所有镜像数据中各镜像数据的存储顺序。
S403,根据存储顺序,合并多个镜像包,得到合并镜像包。
选用该实施例,充分利用本发明实施例提供的镜像包的数据结构统一的特点,将多个镜像包进行合并,以使得后续能够对多个镜像包进行合并处理,如合并上传等。提高了处理多个镜像包的处理效率。
其中,镜像包的数据结构可以参见前述相关说明在此不再赘述。
在S401中,如果镜像包中的镜像数据是以各镜像层的层数据表示的,则应当解析得到每个镜像包中所包括的所有层数据,以及每个层数据对应的层索引信息。
在S402中,如果镜像包中的镜像数据是以各镜像层的层数据表示的,则所确定的存储顺序为各层数据的存储顺序,并且S302中所使用的预设散列算法的映射规则,应当与前述生成层标识时所使用的散列算法的映射规则相同。
在S403中,合并镜像包中按照存储顺序存储有所有镜像数据,并且合并镜像中存储有所有镜像数据各自对应的索引数据。
以OCI规范为例,假设合并指令所针对的镜像包为Image1.tar和Image2.tar,则可以如图5所示,可以是解析Image1.tar和Image2.tar,得到各自的索引信息,即图中没有填充阴影的Abstract,以及各自的镜像数据,即图4中Image Index下的Image1、Image2…ImageN,以及没有填充阴影的Blobs和Repos,对从Image1.tar和Image2.tar中解析得到的索引信息合并,得到合并镜像包的索引信息,即图中填充有阴影的Abstract,并对从Image1.tar和Image2.tar中解析得到镜像数据合并,得到合并镜像包的镜像数据,即图中填充有阴影的Image以及Blobs、Repos。关于镜像数据、索引信息、Blobs、Repos可以参见前述关于镜像包的数据结构的相关描述,在此不再赘述。
参见图6a,图6a所示为本发明实施例提供的镜像包处理装置的一种结构示意图,镜像包中按照预设容器数据结6a存储有至少一个容器镜像的镜像数据,并且存储有每个镜像数据对应的索引信息,所述索引信息用于表示所对应的镜像数据所属的容器镜像,镜像包处理装置可以包括:
数据确定模块601,当接收到针对目标容器镜像的操作指令后,根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据;
数据处理模块602,针对所述目标镜像数据执行所述操作指令。
在一种可能的实施例中,所述镜像包数据包括所属容器镜像中的每个镜像层的层数据,所述索引信息包括每个层数据对应的层索引信息,所述层索引信息用于表示所对应的层数据所属的容器镜像;
所述数据确定模块601根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据,包括:
根据所述镜像包中的层索引信息在所述镜像包中确定属于所述目标容器镜像的所有层数据,作为目标镜像数据。
在一种可能的实施例中,所述层索引信息包括层标识、镜像标识,所述层标识用于标识所述层索引信息所对应的层数据,所述镜像标识用于表示所述层索引信息所对应的层数据所属容器镜像;
所述操作指令中包括所述目标容器镜像的镜像标识;
所述数据确定模块601根据所述镜像包中的层索引信息在所述镜像包中确定属于所述目标容器镜像的所有层数据,作为目标镜像数据,包括:
从所述镜像包中确定所包括的镜像标识与所述操作指令相同的所有层索引信息,作为目标层索引信息;
从所述镜像包中确定所有目标层索引信息中的层标识所标识的层数据,作为目标镜像数据。
在一种可能的实施例中,如图6b所示,所述装置还包括散列模块603,用于按照以下方式得到层标识:
获取层数据的摘要;
利用预设散列算法对所述摘要进行散列,得到所述摘要的散列值,作为用于标识所述层数据的层标识,所述散列值的数据长度小于所述摘要的数据长度。
参见图7a,图7a所示为本发明实施例提供的容器镜像打包装置的一种结构示意图,可以包括:
索引生成模块701,用于针对每个待打包的容器镜像,根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像;
数据打包模块702,用于将所有待打包的镜像的镜像数据和索引信息打包,得到镜像包,所述镜像包中各镜像数据按照预设容器数据结构规范存储。
在一种可能的实施例中,所述镜像数据包括所属容器镜像中的每个镜像层的层数据;
所述索引生成模块701根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像,包括:
针对该容器镜像的每个镜像层,根据该镜像层的层数据生成层索引信息,作为该容器镜像的镜像数据对应的索引信息,所述层索引信息用于表示所述层数据所属的容器镜像。
在一种可能的实施例中,所述索引生成模块根据该镜像层的层数据生成层索引信息,包括:
获取层数据的摘要;
利用预设散列算法对所述摘要进行散列,得到所述摘要的散列值,作为用于标识所述层数据的层标识,所述散列值的数据长度小于所述摘要的数据长度;
获取该镜像层所属容器镜像的镜像标识,所述镜像标识用于标识所述容器镜像;
将所述层标识和所述镜像标识作为该镜像层的层索引信息。
在一种可能的实施例中,如图7b所示,所述装置还包括镜像包合并模块703,用于在接收到针对多个所述镜像包的合并指令后,解析所述合并指令所针对的每个镜像包,得到所有镜像包中包括的所有镜像数据,以及每个镜像数据对应的索引信息;
根据所述所有镜像数据各自对应的索引信息,按照预设散列算法,确定所述所有镜像数据中各镜像数据的存储顺序;
根据所述存储顺序,合并所述多个镜像包,得到合并镜像包,所述合并镜像包中按照所述存储顺序存储有所述所有镜像数据,并且所述合并镜像包中存储有所述所有镜像数据各自对应的索引信息。
本发明实施例还提供了一种电子设备,如图8所示,包括:
存储器801,用于存放计算机程序;
处理器802,用于执行存储器801上所存放的程序时,实现如下步骤:
当接收到针对目标容器镜像的操作指令后,根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据;
针对所述目标镜像数据执行所述操作指令。
在一种可能的实施例中,所述镜像括所属容器镜像中的每个镜像层的层数据,所述索引信息包括每个层数据对应的层索引信息,所述层索引信息用于表示所对应的层数据所属的容器镜像;
所述根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据,包括:
根据所述镜像包中的层索引信息在所述镜像包中确定属于所述目标容器镜像的所有层数据,作为目标镜像数据。
在一种可能的实施例中,所述层索引信息包括层标识、镜像标识,所述层标识用于标识所述层索引信息所对应的层数据,所述镜像标识用于表示所述层索引信息所对应的层数据所属容器镜像;
所述操作指令中包括所述目标容器镜像的镜像标识;
所述根据所述镜像包中的层索引信息在所述镜像包中确定属于所述目标容器镜像的所有层数据,作为目标镜像数据,包括:
从所述镜像包中确定所包括的镜像标识与所述操作指令相同的所有层索引信息,作为目标层索引信息;
从所述镜像包中确定所有目标层索引信息中的层标识所标识的层数据,作为目标镜像数据。
在一种可能的实施例中,层标识通过以下方式得到,包括:
获取层数据的摘要;
利用预设散列算法对所述摘要进行散列,得到所述摘要的散列值,作为用于标识所述层数据的层标识,所述散列值的数据长度小于所述摘要的数据长度。
也可以实现以下方法:
针对每个待打包的容器镜像,根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像;
将所有待打包的镜像的镜像数据和索引信息打包,得到镜像包,所述镜像包中各镜像数据按照预设容器数据结构规范存储。
在一种可能的实施例中,所述镜像数据包括所属容器镜像中的每个镜像层的层数据;
所述根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像,包括:
针对该容器镜像的每个镜像层,根据该镜像层的层数据生成层索引信息,作为该容器镜像的镜像数据对应的索引信息,所述层索引信息用于表示所述层数据所属的容器镜像。
在一种可能的实施例中,所述根据该镜像层的层数据生成层索引信息,包括:
获取层数据的摘要;
利用预设散列算法对所述摘要进行散列,得到所述摘要的散列值,作为用于标识所述层数据的层标识,所述散列值的数据长度小于所述摘要的数据长度;
获取该镜像层所属容器镜像的镜像标识,所述镜像标识用于标识所述容器镜像;
将所述层标识和所述镜像标识作为该镜像层的层索引信息。
在一种可能的实施例中,所述方法还包括:
在接收到针对多个所述镜像包的合并指令后,解析所述合并指令所针对的每个镜像包,得到所有镜像包中包括的所有镜像数据,以及每个镜像数据对应的索引信息;
根据所述所有镜像数据各自对应的索引信息,按照预设散列算法,确定所述所有镜像数据中各镜像数据的存储顺序;
根据所述存储顺序,合并所述多个镜像包,得到合并镜像包,所述合并镜像包中按照所述存储顺序存储有所述所有镜像数据,并且所述合并镜像包中存储有所述所有镜像数据各自对应的索引信息。
上述电子设备提到存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一镜像包处理方法或容器镜像打包方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一镜像包处理方法或容器镜像打包方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当处理软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (12)

1.一种镜像包处理方法,其特征在于,镜像包中按照预设容器数据结构规范存储有至少一个容器镜像的镜像数据,并且存储有每个镜像数据对应的索引信息,所述索引信息用于表示所对应的镜像数据所属的容器镜像,所述方法包括:
当接收到针对目标容器镜像的操作指令后,根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据;
针对所述目标镜像数据执行所述操作指令。
2.根据权利要求1所述的方法,其特征在于,所述镜像数据包括所属容器镜像中的每个镜像层的层数据,所述索引信息包括每个层数据对应的层索引信息,所述层索引信息用于表示所对应的层数据所属的容器镜像;
所述根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据,包括:
根据所述镜像包中的层索引信息在所述镜像包中确定属于所述目标容器镜像的所有层数据,作为目标镜像数据。
3.根据权利要求2所述的方法,其特征在于,所述层索引信息包括层标识、镜像标识,所述层标识用于标识所述层索引信息所对应的层数据,所述镜像标识用于表示所述层索引信息所对应的层数据所属容器镜像;
所述操作指令中包括所述目标容器镜像的镜像标识;
所述根据所述镜像包中的层索引信息在所述镜像包中确定属于所述目标容器镜像的所有层数据,作为目标镜像数据,包括:
从所述镜像包中确定所包括的镜像标识与所述操作指令相同的所有层索引信息,作为目标层索引信息;
从所述镜像包中确定所有目标层索引信息中的层标识所标识的层数据,作为目标镜像数据。
4.根据权利要求3所述的方法,其特征在于,层标识通过以下方式得到,包括:
获取层数据的摘要;
利用预设散列算法对所述摘要进行散列,得到所述摘要的散列值,作为用于标识所述层数据的层标识,所述散列值的数据长度小于所述摘要的数据长度。
5.一种容器镜像打包方法,其特征在于,所述方法包括:
针对每个待打包的容器镜像,根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像;
将所有待打包的镜像的镜像数据和索引信息打包,得到镜像包,所述镜像包中各镜像数据按照预设容器数据结构规范存储。
6.根据权利要求5所述的方法,其特征在于,所述镜像数据包括所属容器镜像中的每个镜像层的层数据;
所述根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像,包括:
针对该容器镜像的每个镜像层,根据该镜像层的层数据生成层索引信息,作为该容器镜像的镜像数据对应的索引信息,所述层索引信息用于表示所述层数据所属的容器镜像。
7.根据权利要求6所述的方法,其特征在于,所述根据该镜像层的层数据生成层索引信息,包括:
获取层数据的摘要;
利用预设散列算法对所述摘要进行散列,得到所述摘要的散列值,作为用于标识所述层数据的层标识,所述散列值的数据长度小于所述摘要的数据长度;
获取该镜像层所属容器镜像的镜像标识,所述镜像标识用于标识所述容器镜像;
将所述层标识和所述镜像标识作为该镜像层的层索引信息。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在接收到针对多个所述镜像包的合并指令后,解析所述合并指令所针对的每个镜像包,得到所有镜像包中包括的所有镜像数据,以及每个镜像数据对应的索引信息;
根据所述所有镜像数据各自对应的索引信息,按照预设散列算法,确定所述所有镜像数据中各镜像数据的存储顺序;
根据所述存储顺序,合并所述多个镜像包,得到合并镜像包,所述合并镜像包中按照所述存储顺序存储有所述所有镜像数据,并且所述合并镜像包中存储有所述所有镜像数据各自对应的索引信息。
9.一种镜像包处理装置,其特征在于,镜像包中按照预设容器数据结构规范存储有至少一个容器镜像的镜像数据,并且存储有每个镜像数据对应的索引信息,所述索引信息用于表示所对应的镜像数据所属的容器镜像,所述装置包括:
数据确定模块,当接收到针对目标容器镜像的操作指令后,根据所述镜像包中的索引信息在所述镜像包中确定属于所述目标容器镜像的镜像数据,作为目标镜像数据;
数据处理模块,针对所述目标镜像数据执行所述操作指令。
10.一种容器镜像打包装置,其特征在于,所述装置包括:
索引生成模块,用于针对每个待打包的容器镜像,根据该容器镜像的镜像数据生成索引信息,所述索引信息用于表示所述镜像数据所属的容器镜像;
数据打包模块,用于将所有待打包的镜像的镜像数据和索引信息打包,得到镜像包,所述镜像包中各镜像数据按照预设容器数据结构规范存储。
11.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4或5-8任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4或5-8任一所述的方法步骤。
CN202010948691.3A 2020-09-10 2020-09-10 一种镜像包处理方法、装置及电子设备 Active CN112084006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010948691.3A CN112084006B (zh) 2020-09-10 2020-09-10 一种镜像包处理方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010948691.3A CN112084006B (zh) 2020-09-10 2020-09-10 一种镜像包处理方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112084006A true CN112084006A (zh) 2020-12-15
CN112084006B CN112084006B (zh) 2024-02-02

Family

ID=73736365

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010948691.3A Active CN112084006B (zh) 2020-09-10 2020-09-10 一种镜像包处理方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112084006B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112714163A (zh) * 2020-12-22 2021-04-27 北京百度网讯科技有限公司 数据传输方法、装置、电子设备、介质和计算机程序产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725980A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 生成镜像标签的方法、设备以及计算机可读介质
CN110688174A (zh) * 2019-09-30 2020-01-14 李福帮 容器启动方法、存储介质和电子设备
CN110727503A (zh) * 2019-10-17 2020-01-24 科大讯飞(苏州)科技有限公司 容器部署方法、装置、设备、存储介质及容器部署系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725980A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 生成镜像标签的方法、设备以及计算机可读介质
CN110688174A (zh) * 2019-09-30 2020-01-14 李福帮 容器启动方法、存储介质和电子设备
CN110727503A (zh) * 2019-10-17 2020-01-24 科大讯飞(苏州)科技有限公司 容器部署方法、装置、设备、存储介质及容器部署系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112714163A (zh) * 2020-12-22 2021-04-27 北京百度网讯科技有限公司 数据传输方法、装置、电子设备、介质和计算机程序产品

Also Published As

Publication number Publication date
CN112084006B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
US11409703B2 (en) File versions within content addressable storage
US10372678B2 (en) Files having unallocated portions within content addressable storage
US11442830B2 (en) Establishing and monitoring programming environments
CN104965748B (zh) 编译平台、编译方法及装置
US10904316B2 (en) Data processing method and apparatus in service-oriented architecture system, and the service-oriented architecture system
US20140081901A1 (en) Sharing modeling data between plug-in applications
WO2017032170A1 (zh) 镜像文件的导入方法及装置
US20230281179A1 (en) Load Balancing For A Storage System
US11249885B2 (en) Test case generator and user interface
CN111736762B (zh) 数据存储网络的同步更新方法、装置、设备及存储介质
US11099837B2 (en) Providing build avoidance without requiring local source code
CN109491962A (zh) 一种文件目录树管理方法及相关装置
US20130275992A1 (en) Distributed processing system, distributed processing method, and distributed processing program
CN110990356A (zh) 一种用于逻辑镜像的实时自动扩容方法和系统
CN112925559B (zh) 资源打包方法、装置、介质及电子设备
CN112084006A (zh) 一种镜像包处理方法、装置及电子设备
CN116644250B (zh) 页面检测方法、装置、计算机设备和存储介质
CN107766354A (zh) 一种用于保证数据正确性的方法与设备
CN111444148B (zh) 基于MapReduce的数据传输方法和装置
CN116361153A (zh) 固件代码的测试方法、装置、电子设备、存储介质
CN112579149B (zh) 模型训练程序镜像的生成方法、装置、设备及存储介质
CN113312314A (zh) 一种用于安卓平台重复文件检索的方法、装置及设备
CN111949738A (zh) 基于区块链的数据存储去重方法、终端设备和存储介质
CN111488242B (zh) 将条带化备份加标签和路由到重复数据删除设备上的单个重复数据删除实例的方法和系统
JP2015523633A (ja) 情報を削除する方法

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