CN112104725B - 容器镜像去重方法、系统、计算机设备及存储介质 - Google Patents

容器镜像去重方法、系统、计算机设备及存储介质 Download PDF

Info

Publication number
CN112104725B
CN112104725B CN202010939175.4A CN202010939175A CN112104725B CN 112104725 B CN112104725 B CN 112104725B CN 202010939175 A CN202010939175 A CN 202010939175A CN 112104725 B CN112104725 B CN 112104725B
Authority
CN
China
Prior art keywords
processing unit
file
mirror image
vector
single file
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
Application number
CN202010939175.4A
Other languages
English (en)
Other versions
CN112104725A (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.)
China United Network Communications Group Co Ltd
Original Assignee
China United Network Communications Group 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 China United Network Communications Group Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202010939175.4A priority Critical patent/CN112104725B/zh
Publication of CN112104725A publication Critical patent/CN112104725A/zh
Application granted granted Critical
Publication of CN112104725B publication Critical patent/CN112104725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • 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
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Abstract

本公开提供一种容器镜像去重的方法、系统、计算机设备及存储介质,所述方法包括:读取容器镜像文件,将容器镜像文件划分为不同类型的若干镜像段;将各个镜像段分别切分为相同大小且低于系统最大处理能力的若干处理单元,每个处理单元包括一定数量的单个文件;获取每个处理单元中各单个文件的影响力向量;基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量;以及,将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除。本公开的技术方案可以在使用少量处理资源的情况下,高效实现容器镜像文件的批量去重。

Description

容器镜像去重方法、系统、计算机设备及存储介质
技术领域
本公开属于服务器集群的信息处理领域,具体涉及一种容器镜像去重方法,一种容器镜像去重系统,一种计算机设备,以及一种计算机可读存储介质。
背景技术
随着容器及相关技术的逐渐成熟,近年来容器的使用量呈指数级增长,随之而来的就是各公司容器镜像所占存储空间急剧增长,但数据中心存储的海量镜像数据中存在大量重复数据,例如:同一镜像多备份;版本不同的同种操作系统;应用数据和用户数据不同,但操作系统相同等。因此,虚拟机镜像集群中存储了大量相似或相同的镜像,需要定期对容器镜像去重,但如何在不影响整个云环境性能的情况下高效的对容器镜像进行去重成为一大难点。
目前已有容器镜像去重方案为利用文件的信息摘要值进行比对,若存储系统中存在与对比文件的信息摘要值相同的文件,表明存储系统中已存在该对比文件,需执行文件的去重操作。但这种去重方案没有将文件进行切处理,导致文件过大,如超出可用内存大小会有很大的额外消耗,并且这种去重方案没有对摘要计算方式进行优化,原摘要向量计算方法中大文件的摘要信息量小,匹配结果不理想;而且,由于不同类型的镜像文件所存储的内容有很大的不同,计算摘要值并进行比对很大可能是不相符的,这种比对往往是无意义的,并不能得到摘要值相同的文件,导致容器镜像去重的效率较低。
因此,亟待提出一种能够克服上述问题的新的容器镜像去重方案。
发明内容
本公开提供一种容器镜像去重方法、系统、计算机设备及计算机可读存储介质,可以在使用少量处理资源的情况下,高效实现容器镜像文件的批量去重。
第一方面,本公开实施例提供一种容器镜像去重的方法,包括:
读取容器镜像文件,将容器镜像文件划分为不同类型的若干镜像段;
将各个镜像段分别切分为相同大小且低于系统最大处理能力的若干处理单元,每个处理单元包括一定数量的单个文件;
获取每个处理单元中各单个文件的影响力向量;
基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量;以及,
将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除。
进一步的,所述将容器镜像文件划分为不同类型的若干镜像段,包括:
将容器镜像文件划分为操作系统镜像段和应用数据镜像段;
将操作系统镜像段根据操作系统类别划分为windows镜像段、 Linux镜像段和Unix镜像段;以及,
将应用数据镜像段划分为软件类镜像段、数据类镜像段、配置类镜像段和其他类镜像段。
进一步的,所述获取每个处理单元中各单个文件的影响力向量,包括:
计算每个处理单元中各单个文件的摘要向量;
根据每个处理单元中各单个文件的大小及其在该处理单元中出现的次数计算该处理单元中各单个文件的影响因子;以及,
根据每个处理单元中各单个文件的摘要向量和影响因子得到该处理单元中各单个文件的影响力向量。
进一步的,所述每个处理单元中各单个文件的摘要向量使用 MD5摘要算法计算得出。
进一步的,所述根据每个处理单元中各单个文件的大小及其在该处理单元中出现的次数计算该处理单元中各单个文件的影响因子,采用如下公式:
Figure BDA0002673042650000031
其中,Ii为处理单元Cj中文件filei的影响因子,FSi为文件filei的大小,Ni为文件filei在处理单元Cj中出现的次数,CSj为处理单元Cj的大小。
进一步的,所述基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量,包括:
对每个处理单元中各单个文件的影响力向量求和得到该处理单元的序列串;以及,
对该处理单元的序列串进行降维处理得到该处理单元的摘要向量;
其中,对每个处理单元中各单个文件的影响力向量求和得到该处理单元的序列串采用如下公式:
Figure BDA0002673042650000032
其中,C[i]为处理单元的序列串的第i位的值,filej[i]为处理单元内第j个单个文件的影响力向量的第i位的值,n为处理单元内单个文件的总数。
进一步的,将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除,包括:
分别计算同一镜像段切分而成的各处理单元的摘要向量之间的海明距离,并根据所述海明距离计算各处理单元之间的差异值;
每当有两个处理单元之间的差异值低于预设阈值时,将其中一个处理单元判定为重复的处理单元,并将所述重复的处理单元删除。
进一步的,所述根据所述海明距离计算各处理单元之间的差异值,采样如下公式:
Figure BDA0002673042650000041
其中,S[a,b]表示处理单元Ca和处理单元Cb之间的差异值, HamingD(Ca,Cb)表示处理单元Ca的摘要向量和处理单元Cb的摘要向量之间的海明距离,La表示处理单元Ca的向量长度,Lb表示处理单元Cb的向量长度。
第二方面,本公开实施例提供一种容器镜像去重系统,包括:分类模块、切分模块、计算模块和去重模块;
所述分类模块设置为读取容器镜像文件,并将容器镜像文件划分为不同类型的若干镜像段;
所述切分模块设置为将各个镜像段分别切分为相同大小且低于系统最大处理能力的若干处理单元,每个处理单元包括一定数量的单个文件;
所述计算模块设置为获取每个处理单元中各单个文件的影响力向量;以及,
基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量;
所述去重模块设置为将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除。
第三方面,本公开实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行如第一方面中任一所述的容器镜像去重方法。
第四方面,本公开实施例还提供一种计算机可读存储介质,包括:计算机程序,当其在计算机上运行时,使得计算机执行如第一方面中任一所述的容器镜像去重方法。
有益效果:
本公开提供的容器镜像去重方法、系统、计算机设备及计算机可读存储介质,通过读取容器镜像文件,将容器镜像文件划分为不同类型的若干镜像段;再将各个镜像段分别切分为相同大小且低于系统最大处理能力的若干处理单元,每个处理单元包括一定数量的单个文件;然后获取每个处理单元中各单个文件的影响力向量;基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量;再将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除。本公开技术方案,通过对镜像文件分类成不同类型的镜像段,并将镜像段切分成处理单元,经过汇总计算得到处理单元的摘要向量;最后对同类型镜像段处理单元的摘要向量进行对比,不会额外占用系统内存,并且在同类型镜像段内对比,效率更高;从而实现在使用少量处理资源的情况下,高效实现容器镜像文件的批量去重。
附图说明
图1为本公开实施例一提供的一种容器镜像去重方法的流程图;
图2为本公开实施例二提供的一种容器镜像去重系统的架构图。
具体实施方式
为使本领域技术人员更好地理解本公开的技术方案,下面结合附图和实施例对本公开作进一步详细描述。
其中,在本公开实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚的表示其他含义。
在Docker(应用容器引擎)中,容器是一个标准化的软件单元,它将代码及其所有依赖关系打包,以便应用程序从一个计算环境可靠快速地运行到另一个计算环境。容器镜像是一个轻量的独立的可执行的软件包,包含应用程序运行时所需的各种资源,比如代码、运行时间、系统工具、系统库和设置等等。
近年来,随着容器及相关技术的逐渐成熟,容器的使用量呈指数级增长,随之而来的就是各公司容器镜像所占存储空间急剧增长,而且数据中心存储的海量镜像数据中存在大量重复数据,其原因包括:在镜像备份过程中,对同一镜像进行多次全备份,各个备份镜像之间大部分数据是相同的;不同的用户安装相同的操作系统,不同之处仅在于系统内的用户数据和应用程序;镜像中安装的操作系统属于同一种类,仅版本不同,如果镜像数据经过去重处理,可以节省系统大量的存储空间,因此,需要定期对存储的容器镜像进行去重。但现有的容器镜像去重方法还存在对内存额外消耗,摘要信息量小,匹配结果不理想;不同类型的镜像文件所存储的内容不同,进行摘要值计算比对无意义,导致容器镜像去重的效率较低等问题。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图1为本公开实施例一提供的一种容器镜像去重的方法的流程图,如图1所示,所述方法包括:
步骤S101:读取容器镜像文件,将容器镜像文件划分为不同类型的若干镜像段;
步骤S102:将各个镜像段分别切分为相同大小且低于系统最大处理能力的若干处理单元,每个处理单元包括一定数量的单个文件;
步骤S103:获取每个处理单元中各单个文件的影响力向量;
步骤S104:基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量;以及,
步骤S105:将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除。
所谓镜像文件其实和ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,通过读取容器镜像文件的文件分区表,将镜像文件按类型进行划分,划分为不同类型的镜像段,在同类型的文件中进行文件对比去重,可以减少不必要的去重查找,提高文件去重的效率,得到不同类型的镜像段后,将各个不同类型的镜像段都进行划分,将镜像段划分为同一大小且低于系统最大处理能力的处理单元,在一个镜像段内,处理单元的大小相同,但不要求在不同镜像段内的处理单元大小相同,去重操作需要将文件读取到内存中进行处理,当单文件超过可用内存大小时会有额外的交互性能损耗,所以根据去重系统可用资源能力限制,将各镜像段切分为相等大小且低于系统最大处理能力的处理单元,在文件系统中每个处理单元是由一定数量的单个文件file组成(处理单元C1={file1,file2, file3,......,filen}),划分时,可能会将大文件划分为多个处理单元中的单个文件,由于处理单元的大小低于系统最大处理能力,因此不会存在对内存额外消耗。处理单元由一定数量的单个文件组成,所述单个文件通过对文件进行划分得到;文件的摘要向量是将明文内容按某种规则生成一段哈希值,由一定长度的1和0组成的数组;通过单个文件的摘要向量和影响力得到单个文件的影响力向量;载将处理单元内各单个文件的影响力向量每一个位置求和得到处理单元该位置的合并值;即将各单个文件影响力向量的序列值累加,变成只有一个序列串,再根据该序列串中其数值的正负得到0或1的数值串,即为摘要向量,若累加值为正,则该位置为1,若累加值为负,则该位置为0。即所述得到处理单元摘要向量的过程包括:通过摘要算法得到各单个文件的摘要向量,得到hash值,再按照各单个文件的权重加权形成加权数字串得到影响力向量,将各单个文件的影响力向量的序列值累加,变成只有一个序列串,再进行降维,变成01的数字串,形成处理单元的摘要向量。再通过将同类型镜像段内各个处理单元的摘要向量进行对比,找出同类型镜像段内重复的处理单元,如果有重复的处理单元,则将其删除,在进行对比时,通过海明距离计算处理单元摘要向量之间的差异值,在信息编码中,两个合法代码对应位上编码不同的位数称为码距,又称海明距离,当差异值小于预设值时,就可认为其为重复处理单元。所述预设值根据实际情况进行设定,例如可以根据需要删除的处理单元的数量进行设定。
进一步的,所述将容器镜像文件划分为不同类型的若干镜像段,包括:
将容器镜像文件划分为操作系统镜像段和应用数据镜像段;
将操作系统镜像段根据操作系统类别划分为windows镜像段、 Linux镜像段和Unix镜像段;以及,
将应用数据镜像段划分为软件类镜像段、数据类镜像段、配置类镜像段和其他类镜像段。
在类型的镜像段之间进行去重操作,可以减少去重操作中的无效对比,提高去重效率。并且相似度高的镜像组内重复数据多,可以加快去重时间。
进一步的,所述获取每个处理单元中各单个文件的影响力向量,包括:
计算每个处理单元中各单个文件的摘要向量;
根据每个处理单元中各单个文件的大小及其在该处理单元中出现的次数计算该处理单元中各单个文件的影响因子;以及,
根据每个处理单元中各单个文件的摘要向量和影响因子得到该处理单元中各单个文件的影响力向量。
文件的摘要向量是将明文内容按某种规则生成一段哈希值,由一定长度的1和0组成的数组,例如file1={1,0,1,0,…,1,1}。组成处理单元的文件file有很大可能会重复出现多次,即flie1和 file3为相同的文件,对于处理单元来说文件file的占用空间越大、出现次数越多其对处理单元相似性的影响就越高;根据各单个文件的影响因子,对各单个文件的摘要向量进行重新计算,得到各单个文件的影响力向量,方法为对于文件file1原摘要向量中为1 的位数,将其设置为其影响因子的值,原摘要向量为0的位置设置为影响因子的负数(例如:file1原摘要向量为{1,0,1,0,…,1,1},影响因子为5,则其影响力向量为{5,-5,5,-5,…,5,5})。通过计算可以获得所以单个文件的影响力向量
进一步的,所述每个处理单元中各单个文件的摘要向量使用 MD5摘要算法计算得出。
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据运算为另一固定长度值数字串,由于MD5摘要算法在数据处理中已经得到成熟的运用,因此,此处计算各单个文件的摘要向量的过程不再赘述。
进一步的,所述根据每个处理单元中各单个文件的大小及其在该处理单元中出现的次数计算该处理单元中各单个文件的影响因子,采用如下公式:
Figure BDA0002673042650000091
其中,Ii为处理单元Cj中文件filei的影响因子,FSi为文件filei的大小,Ni为文件filei在处理单元Cj中出现的次数,CSj为处理单元Cj的大小。
处理单元来说文件file的占用空间越大、出现次数越多其对处理单元相似性的影响就越高,计算各单个文件文件大小与出现次数的乘积与处理单元大小的比值,可得到每一个单个文件的影响因子,得到各单个文件的影响因子,对各单个文件的摘要向量进行重新计算,得到各文件的影响力向量,方法为对于文件filei原摘要向量中为1的位数,将其设置为其影响因子Ii的值,原摘要向量为0的位置设置为影响因子的负数的值(-Ii)(例如:file1原摘要向量为{1,0,1,0,…,1,1},影响因子为5,则其影响力向量为{5,-5,5,-5,…,5,5})。
进一步的,所述基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量,包括:
对每个处理单元中各单个文件的影响力向量求和得到该处理单元的序列串;以及,
对该处理单元的序列串进行降维处理得到该处理单元的摘要向量;
其中,对每个处理单元中各单个文件的影响力向量求和得到该处理单元的序列串采用如下公式:
Figure BDA0002673042650000101
其中,C[i]为处理单元的序列串的第i位的值,filej[i]为处理单元内第j个单个文件的影响力向量的第i位的值,n为处理单元内单个文件的总数。
依次计算处理单元的序列串各个位置的值,将C[i]按数值的正负判断处理单元的摘要向量第i位为1还是0,得到处理单元的摘要向量,若C[i]为正,则该位置为1,若C[i]为负,则该位置为0。
进一步的,将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除,包括:
分别计算同一镜像段切分而成的各处理单元的摘要向量之间的海明距离,并根据所述海明距离计算各处理单元之间的差异值;
每当有两个处理单元之间的差异值低于预设阈值时,将其中一个处理单元判定为重复的处理单元,并将所述重复的处理单元删除。
两个摘要向量的海明距离越小,表示两个处理单元的重复度越高,将同类型镜像段内处理单元的摘要向量进行两两对比,得到各个处理单元摘要向量之间的海明距离,再根据所述海明距离计算处理单元之间的差异值,由于不同镜像段的处理单元的大小不同,因此需要得到单位文件大小的海明距离。对比过程在程序中进行,可以快速的找出处理单元的差异值。
进一步的,所述根据所述海明距离计算各处理单元之间的差异值,采样如下公式:
Figure BDA0002673042650000111
其中,S[a,b]表示处理单元Ca和处理单元Cb之间的差异值, HamingD(Ca,Cb)表示处理单元Ca的摘要向量和处理单元Cb的摘要向量之间的海明距离,La表示处理单元Ca的向量长度,Lb表示处理单元Cb的向量长度。
由于在同一镜像段内,处理单元的大小相同,因此La和Lb相同。而得到的S[a,b]对所有的镜像段来说,都是单元文件大小的海明距离,因此可以统一对处理单元的重复度进行判断,当两个处理单元的S[a,b]值低于预设定的阈值时,则判断其为重复部分进行删除操作。
本公开实施例通过对镜像文件分类成不同类型的镜像段,并将镜像段切分成处理单元,经过汇总计算得到处理单元的摘要向量;最后对同类型镜像段处理单元的摘要向量进行对比,通过对处理单元进行对比不会额外占用系统内存,并且在同类型镜像段内对比,效率更高;从而实现在使用少量处理资源的情况下,高效实现容器镜像文件的批量去重。
图2为本公开实施例提供的一种容器镜像去重的系统的架构图,如图2所示,包括:分类模块1、切分模块2、计算模块3和去重模块4;
所述分类模块1设置为读取容器镜像文件,并将容器镜像文件划分为不同类型的若干镜像段;
所述切分模块2设置为将各个镜像段分别切分为相同大小且低于系统最大处理能力的若干处理单元,每个处理单元包括一定数量的单个文件;
所述计算模块3设置为获取每个处理单元中各单个文件的影响力向量;以及,
基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量;
所述去重模块4设置为将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除。
进一步的,所述分类模块1具体设置为将容器镜像文件划分为操作系统镜像段和应用数据镜像段;
将操作系统镜像段根据操作系统类别划分为windows镜像段、 Linux镜像段和Unix镜像段;以及,
将应用数据镜像段划分为软件类镜像段、数据类镜像段、配置类镜像段和其他类镜像段。
进一步的,所述计算模块3包括第一计算单元;
所述第一计算单元设置为计算每个处理单元中各单个文件的摘要向量;以及
根据每个处理单元中各单个文件的大小及其在该处理单元中出现的次数计算该处理单元中各单个文件的影响因子;以及,
根据每个处理单元中各单个文件的摘要向量和影响因子得到该处理单元中各单个文件的影响力向量。
进一步的,所述计算模块3计算每个处理单元中各单个文件的摘要向量使用MD5摘要算法。
进一步的,所述计算模块3根据每个处理单元中各单个文件的大小及其在该处理单元中出现的次数计算该处理单元中各单个文件的影响因子,采用如下公式:
Figure BDA0002673042650000121
其中,Ii为处理单元Cj中文件filei的影响因子,FSi为文件filei的大小,Ni为文件filei在处理单元Cj中出现的次数,CSj为处理单元Cj的大小。
进一步的,所述计算模块3包括第二计算单元;
所述第二计算单元设置为对每个处理单元中各单个文件的影响力向量求和得到该处理单元的序列串;以及,
对该处理单元的序列串进行降维处理得到该处理单元的摘要向量;
其中,对每个处理单元中各单个文件的影响力向量求和得到该处理单元的序列串采用如下公式:
Figure BDA0002673042650000131
其中,C[i]为处理单元的序列串的第i位的值,filej[i]为处理单元内第j个单个文件的影响力向量的第i位的值,n为处理单元内单个文件的总数。
进一步的,所述去重模块4包括:
计算单元,其设置为分别计算同一镜像段切分而成的各处理单元的摘要向量之间的海明距离,并根据所述海明距离计算各处理单元之间的差异值;
删除单元,其设置为每当有两个处理单元之间的差异值低于预设阈值时,将其中一个处理单元判定为重复的处理单元,并将所述重复的处理单元删除。
进一步的,所述计算单元根据所述海明距离计算各处理单元之间的差异值,采样如下公式:
Figure BDA0002673042650000132
其中,S[a,b]表示处理单元Ca和处理单元Cb之间的差异值, HamingD(Ca,Cb)表示处理单元Ca的摘要向量和处理单元Cb的摘要向量之间的海明距离,La表示处理单元Ca的向量长度,Lb表示处理单元Cb的向量长度。
本公开实施例的容器镜像去重系统用于实施方法实施例一中的容器镜像去重方法,所以描述的较为简单,具体可以参见前面方法实施例一中的相关描述,此处不再赘述。
此外,本公开实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行上述各种可能的方法。
此外,本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当用户设备的至少一个处理器执行该计算机执行指令时,用户设备执行上述各种可能的方法。
其中,计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC(Application Specific Integrated Circuit,专用集成电路) 中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于通信设备中。
可以理解的是,以上实施方式仅仅是为了说明本公开的原理而采用的示例性实施方式,然而本公开并不局限于此。对于本领域内的普通技术人员而言,在不脱离本公开的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本公开的保护范围。

Claims (9)

1.一种容器镜像去重方法,其特征在于,包括:
读取容器镜像文件,将容器镜像文件划分为不同类型的若干镜像段;
将各个镜像段分别切分为相同大小且低于系统最大处理能力的若干处理单元,每个处理单元包括一定数量的单个文件;
计算每个处理单元中各单个文件的摘要向量,其中,单个文件的摘要向量是将该文件的明文内容按预设规则生成一段哈希值,由一定长度的1和0组成的数组;
采用如下公式(1)根据每个处理单元中各单个文件的大小及其在该处理单元中出现的次数计算该处理单元中各单个文件的影响因子;
Figure FDA0003594990140000011
其中,Ii为处理单元Cj中文件filei的影响因子,FSi为文件filei的大小,Ni为文件filei在处理单元Cj中出现的次数,CSj为处理单元Cj的大小;以及,
根据每个处理单元中各单个文件的摘要向量和影响因子得到该处理单元中各单个文件的影响力向量,其中,单个文件的影响力向量为在得到各单个文件的摘要向量,即得到哈希值,再按照各单个文件的权重加权形成的加权数字串;
基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量;以及,
将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除。
2.根据权利要求1所述的方法,其特征在于,所述将容器镜像文件划分为不同类型的若干镜像段,包括:
将容器镜像文件划分为操作系统镜像段和应用数据镜像段;
将操作系统镜像段根据操作系统类别划分为windows镜像段、Linux镜像段和Unix镜像段;以及,
将应用数据镜像段划分为软件类镜像段、数据类镜像段、配置类镜像段和其他类镜像段。
3.根据权利要求1所述的方法,其特征在于,所述每个处理单元中各单个文件的摘要向量使用MD5摘要算法计算得出。
4.根据权利要求1所述的方法,其特征在于,所述基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量,包括:
对每个处理单元中各单个文件的影响力向量求和得到该处理单元的序列串;以及,
对该处理单元的序列串进行降维处理得到该处理单元的摘要向量;
其中,对每个处理单元中各单个文件的影响力向量求和得到该处理单元的序列串采用如下公式(2):
Figure FDA0003594990140000021
其中,C[i]为处理单元的序列串的第i位的值,filej[i]为处理单元内第j个单个文件的影响力向量的第i位的值,n为处理单元内单个文件的总数。
5.根据权利要求1所述的方法,其特征在于,将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除,包括:
分别计算同一镜像段切分而成的各处理单元的摘要向量之间的海明距离,并根据所述海明距离计算各处理单元之间的差异值;
每当有两个处理单元之间的差异值低于预设阈值时,将其中一个处理单元判定为重复的处理单元,并将所述重复的处理单元删除。
6.根据权利要求5所述的方法,其特征在于,所述根据所述海明距离计算各处理单元之间的差异值,采样如下公式(3):
Figure FDA0003594990140000031
其中,S[a,b]表示处理单元Ca和处理单元Cb之间的差异值,HamingD(Ca,Cb)表示处理单元Ca的摘要向量和处理单元Cb的摘要向量之间的海明距离,La表示处理单元Ca的向量长度,Lb表示处理单元Cb的向量长度。
7.一种容器镜像去重系统,其特征在于,包括:分类模块、切分模块、计算模块和去重模块;
所述分类模块设置为读取容器镜像文件,并将容器镜像文件划分为不同类型的若干镜像段;
所述切分模块设置为将各个镜像段分别切分为相同大小且低于系统最大处理能力的若干处理单元,每个处理单元包括一定数量的单个文件;
所述计算模块设置为计算每个处理单元中各单个文件的摘要向量,其中,单个文件的摘要向量是将该文件的明文内容按预设规则生成一段哈希值,由一定长度的1和0组成的数组;以及,
采用如下公式(1)根据每个处理单元中各单个文件的大小及其在该处理单元中出现的次数计算该处理单元中各单个文件的影响因子;
Figure FDA0003594990140000032
其中,Ii为处理单元Cj中文件filei的影响因子,FSi为文件filei的大小,Ni为文件filei在处理单元Cj中出现的次数,CSj为处理单元Cj的大小;以及,
根据每个处理单元中各单个文件的摘要向量和影响因子得到该处理单元中各单个文件的影响力向量,其中,单个文件的影响力向量为在得到各单个文件的摘要向量,即得到哈希值,再按照各单个文件的权重加权形成的加权数字串;以及,
基于每个处理单元中各单个文件的影响力向量之和得到该处理单元的摘要向量;
所述去重模块设置为将同一镜像段切分而成的各处理单元的摘要向量进行对比,找出同一镜像段内重复的处理单元,并将重复的处理单元删除。
8.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,当所述处理器运行所述存储器存储的计算机程序时,所述处理器执行根据权利要求1-6中任一项中所述的容器镜像去重方法。
9.一种计算机可读存储介质,包括:计算机程序,当其在计算机上运行时,使得计算机执行根据权利要求1-6中任一项所述的容器镜像去重方法。
CN202010939175.4A 2020-09-09 2020-09-09 容器镜像去重方法、系统、计算机设备及存储介质 Active CN112104725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010939175.4A CN112104725B (zh) 2020-09-09 2020-09-09 容器镜像去重方法、系统、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010939175.4A CN112104725B (zh) 2020-09-09 2020-09-09 容器镜像去重方法、系统、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN112104725A CN112104725A (zh) 2020-12-18
CN112104725B true CN112104725B (zh) 2022-05-27

Family

ID=73752190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010939175.4A Active CN112104725B (zh) 2020-09-09 2020-09-09 容器镜像去重方法、系统、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112104725B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113221116B (zh) * 2021-04-12 2022-06-07 烽火通信科技股份有限公司 镜像的摘要计算方法、装置、设备及可读存储介质
CN113176886A (zh) * 2021-04-29 2021-07-27 中国工商银行股份有限公司 一种镜像文件压缩运行方法及装置
US11681659B2 (en) 2021-05-21 2023-06-20 Red Hat, Inc. Hybrid file compression model
US11829240B2 (en) 2022-01-06 2023-11-28 Red Hat, Inc. Preventing duplication of files in a storage device
US11947498B2 (en) 2022-05-12 2024-04-02 International Business Machines Corporation De-duplication of data in executable files in a container image

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408154A (zh) * 2014-12-04 2015-03-11 华为技术有限公司 重复数据删除方法及装置
CN106066896A (zh) * 2016-07-15 2016-11-02 中国人民解放军理工大学 一种应用感知的大数据重复删除存储系统及方法
CN108090125A (zh) * 2017-11-14 2018-05-29 西北工业大学 一种非查询式的重复数据删除方法及装置
CN108415671A (zh) * 2018-03-29 2018-08-17 上交所技术有限责任公司 一种面向绿色云计算的重复数据删除方法及系统
US10108544B1 (en) * 2016-09-26 2018-10-23 EMC IP Holding Company LLC Dynamic duplication estimation for garbage collection
CN109445703A (zh) * 2018-10-26 2019-03-08 黄淮学院 一种基于块级数据去重的Delta压缩存储组件

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321648B2 (en) * 2009-10-26 2012-11-27 Netapp, Inc Use of similarity hash to route data for improved deduplication in a storage server cluster
CN106095579B (zh) * 2016-06-14 2019-06-07 中国联合网络通信集团有限公司 容器资源分配方法及装置
CN106446061A (zh) * 2016-09-06 2017-02-22 上海云轴信息科技有限公司 用于存储虚拟机镜像的方法及设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104408154A (zh) * 2014-12-04 2015-03-11 华为技术有限公司 重复数据删除方法及装置
CN106066896A (zh) * 2016-07-15 2016-11-02 中国人民解放军理工大学 一种应用感知的大数据重复删除存储系统及方法
US10108544B1 (en) * 2016-09-26 2018-10-23 EMC IP Holding Company LLC Dynamic duplication estimation for garbage collection
CN108090125A (zh) * 2017-11-14 2018-05-29 西北工业大学 一种非查询式的重复数据删除方法及装置
CN108415671A (zh) * 2018-03-29 2018-08-17 上交所技术有限责任公司 一种面向绿色云计算的重复数据删除方法及系统
CN109445703A (zh) * 2018-10-26 2019-03-08 黄淮学院 一种基于块级数据去重的Delta压缩存储组件

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"PSH: A probabilistic signature hash method with hash neighborhood candidate generation for fast edit-distance string comparison on big data";Joseph Jupin、Justin Y. Shi、Eduard C. Dragut;《2016 IEEE International Conference on Big Data (Big Data)》;IEEE;20170206;全文 *
"云存储中集群重复数据删除系统的研究与设计";李志然;《中国优秀硕士学位论文全文数据库 (信息科技辑)》;CNKI;20160815(第08期);全文 *

Also Published As

Publication number Publication date
CN112104725A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN112104725B (zh) 容器镜像去重方法、系统、计算机设备及存储介质
KR102007070B1 (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
US8423520B2 (en) Methods and apparatus for efficient compression and deduplication
US7797323B1 (en) Producing representative hashes for segments of a file
JP5732536B2 (ja) 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム、方法及び非一時的なコンピュータ可読ストレージ媒体
US8447120B2 (en) Incremental feature indexing for scalable location recognition
US11163734B2 (en) Data processing method and system and client
US10938961B1 (en) Systems and methods for data deduplication by generating similarity metrics using sketch computation
US20190379394A1 (en) System and method for global data compression
CN112099725A (zh) 一种数据处理方法、装置及计算机可读存储介质
CN107852173B (zh) 对无损简化的数据执行搜索和取回的方法以及装置
CN109716660B (zh) 数据压缩装置和方法
EP3822795B1 (en) Data storage and acquisition method and device
CN110837555A (zh) 海量文本去重筛选的方法、设备和存储介质
US20220156233A1 (en) Systems and methods for sketch computation
WO2021127245A1 (en) Systems and methods for sketch computation
US20210191640A1 (en) Systems and methods for data segment processing
CN112783417A (zh) 数据缩减的方法、装置、计算设备和存储介质
Vikraman et al. A study on various data de-duplication systems
CN113839799A (zh) 一种告警关联规则挖掘方法及装置
CN114138552B (zh) 数据动态重删方法、系统、终端及存储介质
US11755207B2 (en) Data storage method in storage system and related device
CN112506877B (zh) 基于重删域的数据重删方法、装置、系统及存储设备
CN110968575B (zh) 一种大数据处理系统的去重方法
CN117459070A (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
GR01 Patent grant
GR01 Patent grant