CN114036104A - 基于分布式存储的重删数据的云归档方法、装置及*** - Google Patents

基于分布式存储的重删数据的云归档方法、装置及*** Download PDF

Info

Publication number
CN114036104A
CN114036104A CN202111309242.5A CN202111309242A CN114036104A CN 114036104 A CN114036104 A CN 114036104A CN 202111309242 A CN202111309242 A CN 202111309242A CN 114036104 A CN114036104 A CN 114036104A
Authority
CN
China
Prior art keywords
data
node
task
cloud storage
cloud
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111309242.5A
Other languages
English (en)
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.)
Shenzhen Mulangyun Technology Co ltd
Original Assignee
Shenzhen Mulangyun 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 Shenzhen Mulangyun Technology Co ltd filed Critical Shenzhen Mulangyun Technology Co ltd
Priority to CN202111309242.5A priority Critical patent/CN114036104A/zh
Publication of CN114036104A publication Critical patent/CN114036104A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于分布式存储的重删数据的云归档方法、装置及***。其中,该方法包括:解析本地元数据,遍历所述本地元数据的所有引用到的数据分片,并检查所述数据分片中的每一个数据分片在云存储端是否已经存在;在云存储端不存在相应的数据分片的情况下,将所述相应的数据分片作为数据对象上传到所述云存储端,并添加对象标签,将所述对象标签中的引用次数设置为1;在云存储端存在相应的数据分片的情况下,将该相应的数据分片对应的对象标签中的引用次数加1。本发明解决了由于对象存储的非结构化存储造成的无法使用对象存储来归档重删数据的技术问题。

Description

基于分布式存储的重删数据的云归档方法、装置及***
技术领域
本发明涉及云储存领域,具体而言,涉及一种基于分布式存储的重删数据的云归档方法、装置及***。
背景技术
对象存储是一种理想的数据归档解决方案,具有稳定可靠,容量巨大(理论上没有限制),且成本极低的特点。对象存储使用上非常简单,把数据当作对象,每个对象具有唯一的ID,使用相关的接口将数据上传到对象存储中即可。
使用对象存储做数据归档本身不复杂,但在本地存储本身是重删存储的情况下,如果直接上传数据,则会丢失掉重删效果,增加空间开销。而重删后的数据本身管理上较为复杂,同一个数据块会被不同的文件共享,需要维护数据之间的关联关系。而对象存储作为一种非结构化存储,且不支持修改数据,只能本地修改后完整重新上传,不适合处理数据之间的关联关系。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于分布式存储的重删数据的云归档方法、装置及***,以至少解决由于对象存储的非结构化存储造成的无法使用对象存储来归档重删数据的技术问题。
根据本发明实施例的一个方面,提供了一种基于分布式存储的重删数据的云归档方法,包括:解析本地元数据,遍历所述本地元数据的所有引用到的数据分片,并检查所述数据分片中的每一个数据分片在云存储端是否已经存在;在云存储端不存在相应的数据分片的情况下,将所述相应的数据分片作为数据对象上传到所述云存储端,并添加对象标签,将所述对象标签中的引用次数设置为1;在云存储端存在相应的数据分片的情况下,将该相应的数据分片对应的对象标签中的引用次数加1。
根据本发明实施例的另一方面,还提供了一种基于分布式存储的重删数据的云归档装置,包括:解析模块,被配置为解析本地元数据,遍历所述本地元数据的所有引用到的数据分片,并检查所述数据分片中的每一个数据分片在云存储端是否已经存在;上传模块,被配置为在云存储端不存在相应的数据分片的情况下,将所述相应的数据分片作为数据对象上传到所述云存储端,并添加对象标签,将所述对象标签中的引用次数设置为1;在云存储端存在相应的数据分片的情况下,将该相应的数据分片对应的对象标签中的引用次数加1。
根据本发明实施例的又一方面,还提供了一种基于分布式存储的重删数据的云归档***,包括本地端和云存储端,其中,本地端包括如上所述的云归档装置,云存储端用于以对象存储的方式存储数据分片。
在本发明实施例中,采用以下方式:解析本地元数据,遍历所述本地元数据的所有引用到的数据分片,并检查所述数据分片中的每一个数据分片在云存储端是否已经存在;在云存储端不存在相应的数据分片的情况下,将所述相应的数据分片作为数据对象上传到所述云存储端,并添加对象标签,将所述对象标签中的引用次数设置为1;在云存储端存在相应的数据分片的情况下,将该相应的数据分片对应的对象标签中的引用次数加1,通过设置对象标签,达到了以对象存储的方式存储重删数据的目的,从而实现了既利用了对象存储本身的优点,又进一步节省了空间的技术效果,进而解决了由于对象存储的非结构化存储造成的无法使用对象存储来归档重删数据的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种基于分布式存储的重删数据的云归档存储结构的流程图;
图2是根据本发明实施例的一种基于分布式存储的重删数据的云归档方法的流程图;
图3是根据本发明实施例的一种基于分布式存储的重删数据的上传方法的流程图;
图4是根据本发明实施例的一种基于分布式存储的重删数据的下载方法的流程图;
图5是根据本发明实施例的一种基于分布式存储的重删数据的删除方法的流程图;
图6是根据本发明实施例的一种基于分布式存储的重删数据的归档***的结构示意图;
图7是根据本发明实施例的一种基于分布式存储的重删数据的归档装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
术语定义
重删:即重复数据删除,是一种节约存储空间的技术,指对数据中重复的部分只存储一份。
数据归档:指将不经常使用的数据转移到另外一个存储设备来进行长期保存的过程。
对象存储:云存储的一种形式,将所有对象存在单个平面地址空间中,没有层级结构。适合海量数据的保存。
对象标签:对象存储***提供的一种功能,标签为″键-值″对的形式,可以为对象添加额外的信息,可以用于对象的分类、管理等。
概述
本申请涉及的存储结构包括本地数据和云存储端数据两部分。数据存储在本地存储中,并可以归档到云存储;也可以从云存储端取回数据。本实施例的存储结构的整体结构如图1所示。
一个文件的数据在本地存储中分成两个部分:元数据(Metadata)和数据分片(Data Chunk)。
元数据包含文件的基本信息,有一个唯一的ID(如图2中的0001),主要内容是文件所包含数据块的ID。
数据分片:数据被分成较小的分片进行管理,每个分片有唯一的ID。在分片的级别会做数据重删,相同的分片只存储一份。由于同一个分片会被多个文件共享,因此维护了一个额外的数据库来记录每个分片被引用的次数。
当该文件被归档到云存储中之后,这两部分数据相应变成了元数据对象(MetaObject)和数据对象(Data Object)。
元数据对象:使用本地元数据的唯一ID作为Object ID,上传到对象存储中。
数据对象:使用本地数据分片的唯一ID作为Object ID,上传到对象存储中,因为对象存储中无法存储数据库,在本申请中将数据分片的引用计数作为一个标签记录到对象中。
实施例1
根据本发明实施例,提供了一种基于分布式存储的重删数据的云归档方法的流程图,如图2所示,该方法包括:
步骤S202,解析本地元数据,遍历所述本地元数据的所有引用到的数据分片,并检查所述数据分片中的每一个数据分片在云存储端是否已经存在;
针对每一个数据分片,区分不同的情况,执行步骤S104或者步骤S106。
步骤S204,在所述云存储端不存在相应的数据分片的情况下,将所述相应的数据分片作为数据对象上传到所述云存储端,并添加对象标签,将所述对象标签中的引用次数设置为1;
步骤S206,在所述云存储端存在相应的数据分片的情况下,将该相应的数据分片对应的对象标签中的引用次数加1。
在一个示例性实施方式中,遍历所述本地元数据的所有引用到的数据分片之后,所述方法还包括:基于预设的分派规则,将上传所述相应的数据分片的任务分配到相应的节点。
例如,计算每个节点距离完成目标所相差的任务数;如果每个有数据的节点距离完成目标所相差的任务数不同,选取相差的任务数最大的节点,并将上传所述相应的数据分片的任务分配给所选取的节点;如果每个有数据的节点距离完成目标所相差的任务数相同,计算每个有数据的节点的剩余可分派任务数;如果每个有数据的节点的剩余可分派任务数不同,选择剩余可分派任务最少的节点,否则,选择第一个节点,然后,将上传所述相应的数据分片的任务分配到所选取的节点。
例如,在将上传所述相应的数据分片的任务分配到相应的节点之前,所述方法还包括:执行数据分布算法,计算出所有数据分片在各个节点上的分布情况,得到数据分布矩阵;按列遍历所述分布矩阵,计算出各个节点上的数据分片数量。
在一个示例性实施例中,计算每个有数据的节点距离完成目标所相差的任务数包括:基于每个有数据的节点预期分派的任务数和已经分派的任务数量,计算每个有数据的节点距离完成目标所相差的任务数,其中,所述预期分派的任务数由节点总数和各个节点上的数据分片数量确定;和/或计算每个有数据的节点的剩余可分派任务数包括:基于每个有数据的节点的已经参与过选择的次数和所包含的数据分片数量,计算计算每个有数据的节点的剩余可分派任务数。
在一个示例性实施例中,还可以采用类似于上传时的任务分派方法来从云存储端下载数据。例如,该下载方法可以包括:从云存储端下载元数据对象;解析所述元数据对象中的元数据,遍历所述元数据所有引用到的数据分片;针对所有引用到的数据分片中的每一个数据分片,执行以下:基于预设的分派规则,将下载相应的数据分片的任务分配到相应的节点;检查该相应的数据分片在本地是否已经存在;在本地不存在相应的数据分片的情况下,由所分配的节点从云存储端下载所述相应的数据分片,复制所述数据分片,并更新本地引用计数数据库中的信息;在本地存在相应的数据分片的情况下,由所分配的节点更新本地引用计数数据库中的信息。
在一个示例性实施例中,还提供了删除云存储端的重删数据的方法。该删除方法包括:从云存储端下载元数据对象,并从云存储端移除所述元数据对象;解析所述元数据对象中的元数据,遍历所述元数据所有引用到的数据分片;针对所有引用到的数据分片中的每一个数据分片,将云存储端的相应的数据分片对应的对象标签中的引用计数减1,并在所述当前计数为0的情况下,从所述云存储端移除相应的数据分片对应的数据对象。
通过上述方法,实现了一种简单可行的云归档技术方案。本实施例用于将本地重删存储中的数据归档到对象存储,并进行管理,这样,既利用了对象存储本身的优点,又进一步节省了云存储端的空间。
实施例2
本发明实施例提供了一种分布式存储的重删数据云归档方法,如图3所示,该方法包括:
步骤S301,解析本地元数据,遍历所有引用到的分片。
步骤S302,执行分派方法,将上传任务分配到各节点。
下面将详细阐述任务分派方法。
本实施例中,假设当前分布式存储***有3个节点,***配置为两副本,一个数据分片需要存储两份,放到两个节点(Node)上。假设有6个数据分片(DATA Chunk),分布关系如下表1所示(用√来表示数据分片在哪些节点上):
Figure BDA0003341264820000071
Figure BDA0003341264820000081
表1
数据的分布有多种策略,是分布式存储中的重要环节,但不是本申请涉及的内容,因此,此处不再赘述。
上面的分布关系很理想化,每个节点上存储的数据分片数量是均匀的。但是,实际应用中,这样理想化的情形并不多见。
本实施例用以下函数来代表数据的分布方式:
[Node Number]=Distribute(chunk-id)
每个数据分片有唯一的标识(chunk-id),将chunk-id代入分布函数,就会返回分布的节点列表。比如套用上面的例子,数据需要两副本,将Chunk-1代入分布函数,就会得到[Node-1,Node-2]。
回到云归档的问题上来,当前需要把数据上传到云存储端。Chunk-1在Node-1和Node-2上分别存储一份,但只需要上传一次,那么由哪个节点来执行上传呢?本实施例需要把上传的任务分派给一个具体的节点去执行,把这个选择节点的过程定义为任务分派方法,如下:
Task Node Number=Select(Distribute(chunk-id))
下面将解释如何设计分派方法。本实施例先采用最简单的思路,即,总是从列表中选择第一个,如下:
Task Node Number=Select-First(Distribute(chunk-id))
根据这种算法,得到的任务分派情况如下的表2所示:
Figure BDA0003341264820000082
Figure BDA0003341264820000091
表2
如上表2所示,这样的分配方法的优点是比较简单,但缺点是:没有任何一个任务被分派到Node-3上,整个上传过程中,Node-3完全空闲,不能充分发挥***的性能。
因此,本实施例又提供了另外一种任务分派方法。
为了解决上述分配不均衡的问题,这里,需要达到的目标是,把上传任务尽量均匀地分布到不同节点上。本实施中的实现方法如下:先设定每个节点的目标,在上述例子中,一共需要上传6个数据分片,有3个节点,那么理想的目标是:每个节点上传6/3=2个数据分片。设定了目标之后,结合实际的数据分布情况,遍历所有分片,按以下原则选取节点:
1.计算每个有数据的节点距离完成目标还差多少个任务,选取差距最大的节点。
2.如果条件1相同,选择剩余可分派任务最少的节点。
3.如果条件2依然相同,选择第一个节点。
本实施例中,条件1是核心,保证了整体分布的均匀性,一个节点被分派到任务,离预期目标就变近,下一次选择时其优先级就降低了。而条件2则保证了数据少的节点优先,因为数据多的节点后续可能还有机会参与分派。条件3保证算法能够终止。
这里不实际展开分派过程,而直接给出上述例子的分派结果,如下表3所示:
Node-1 Node-2 Node-3
Chunk-1
Chunk-2
Chunk-3
Chunk-4
Chunk-5
Chunk-6
表3
每个节点恰好分配了2个任务。这个过程可以推广到一般化的场景里,接下来给出这个算法的形式化定义,以伪代码的方式进行描述。
首先作如下定义:
1)***节点数目为m(即:Node-1,Node-2,Node-3...Node-m)
2)数据分片有n个(即:Chunk-1,Chunk-2,Chunk-3...Chunk-n)
3)***的副本数为r
4)每个节点预期分派的任务数为:e=n/m
对于每个节点,都需要以下几个值:
1)已经分派的任务数量为:t
2)距离目标的差距为:d=e-t
3)包含的数据分片数量为:a
4)已经参与过选择(无论是否被选中)的次数为:s
5)剩余可分派任务数为:f=a-s
有如上定义之后,先遍历所有需要上传的数据分片,执行数据分布算法,计算出所有分片在节点上的分布情况:
Figure BDA0003341264820000112
这样就得到了一个数据分布矩阵,就像上面例子中的分布表一样,如下:
Figure BDA0003341264820000111
按列遍历该矩阵,计算出每个节点上的数据分片数量:
foriin 0→m:
a[i]=sum(matrix[][i])
然后开始执行任务分派,如下:
Figure BDA0003341264820000113
Figure BDA0003341264820000123
执行dispatch(x)是把任务分派给节点x。上述流程是数据上传过程中的任务分派。
在一个示例性实施例中,还可以基于神经网络模型并采用以下公式来分配任务给节点:
Figure BDA0003341264820000121
上式是基于神经网络训练出的神经网络模型,
Figure BDA0003341264820000122
表示分配的节点是节点矩阵中的第i行,第j列个节点,η是校正参数,Hj是神经网络模型的二次项矩阵系数,n是数据分片的数量,e是每个节点预期分派的任务数,r为***的副本数,tij为已经分派的任务数量,dij为距离目标的差距。
步骤S303,检查分片在云存储端是否已经存在。
如果存在,执行步骤S306,否则,执行步骤S304。
步骤S304,将分片上传到云对象存储中。
步骤S305,添加对象标签,将引用次数设置为1。
执行步骤S307。
步骤S306,将对象标签中的引用次数修改为加1。
步骤S307,判断分片是否已经全部处理完毕。
如果没有全部处理完毕,则处理下一数据分片,跳转到步骤S303,否则,执行步骤S308。
步骤S308,上传元数据对象。
实施例3
根据本发明实施例,提供了一种从云存储中下载数据的方法,如图4所示,该方法包括:
步骤S401,下载元数据对象。
步骤S402,解析元数据,遍历所有引用到的分片。
步骤S403,执行分派方法,将下载任务分配到各节点。
在数据下载中,存在和数据上传同样的问题:云存储端数据和本地数据的1:N关系。使用和数据上传时相同的分派算法,将下载任务分配给不同的节点(能保证均匀性),然后该节点下载数据,下载完成后将数据按照分布算法,复制给其他节点即可。
步骤S404,检查分片在本地是否已经存在。
如果数据分片在本地已经存在,则执行步骤S407,否则,执行步骤S405。
步骤S405,从云对象存储中下载数据分片。
从云存储端的云对象存储中下载数据分片。
步骤S406,复制数据分片。
步骤S407,更新本地引用计数数据库中的信息。
步骤S408,分片是否已经全部处理完毕。
如果数据分片已经全部处理完毕,则结束该流程,否则,处理下一个数据分片,并跳转到步骤S404。
实施例4
在重删存储中,数据不能直接删除,因为一个数据分片可能被多个文件所共享。本实施例是采用引用计数来管理,引用计数为0时,就可以删除数据分片。
根据本发明实施例,提供了一种从云存储中删除数据的方法,如图5所示,该方法包括:
步骤S501,下载元数据对象,并且从云存储端移除。
步骤S502,解析元数据,遍历所有引用到的分片。
步骤S503,将对象标签中的引用计数减1。
步骤S504,判断当前计数是否为0。
如果当前计数为0,则执行步骤S505,否则执行步骤S506。
步骤S505,从云存储端移除数据对象。
步骤S506,判断分片是否已经全部处理完毕。
如果数据分片全部处理完毕,则结束本流程,否则,处理下一数据分片,跳转到步骤S503。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例5
根据本发明实施例,提供了一种分布式存储的重删数据云归档***,如图6所示,该***包括:本地端62和云存储端64。
本地端62包括存储访问接口621、重删管理模块622、元数据管理模块624、数据块存储模块626、归档管理模块628和云数据管理模块620。
存储访问接口621将数据先存储到本地的存储设备,然后再归档到云存储端。该模块实现访问本地存储的接口,提供给应用程序写入或读出数据。
重删管理模块622对本地存储的数据进行数据重删,例如,实现数据分片、指纹计算、指纹存储与查询等功能。由于数据重删不是本申请的内容,此处不再赘述。
元数据管理模块620用于管理存储数据的元数据,分为两部分:数据属性和数据块引用。数据属性包括数据的大小、时间、权限等信息;数据块引用包括记录一份数据包含了哪些数据块的信息。
数据块存储模块626用于数据块的存储和管理。数据经过重删之后,分成了一个个独立的数据块,数据块存储模块626用于存储和管理这些独立的数据块。数据块存储模块626包括存储和索引(用于加速查询)数据块,以及对无效数据(无引用)的垃圾回收。
归档管理模块628用于管理数据归档的方法和记录,使用者可以配置一定的策略,例如定期归档,超过一定时间归档,对某一类数据做归档等,或者使用者可以手动选择把本地存储的某一部分数据往云存储端归档。归档之后会形成记录,用于分辨哪些数据在云存储端存在。
云数据管理模块620和云存储端64进行对接,是实际执行数据归档的模块。包含云连接管理、任务分派,数据上传、数据下载等几个子模块,用于和云存储端64交互。云存储端数据的引用关系和本地不同,因此还包含一个数据引用计算子模块,每次上传、下载需重新计算,当引用计数减为0时,需删除云存储端数据分片。
云存储端64包括对象存储模块,该模块属于外部资源,用于归档数据的存储。云存储有多种不同的形式,本申请涉及的为对象存储。
在一个示例性实施例中,本地端62的云数据管理模块620可以为一个分布式存储的重删数据云归档装置。下文将对分布式存储的重删数据云归档装置详细阐述,此处不再赘述。
本实施例中的分布式存储的重删数据云归档***可以实现上述实施例中的分布式存储的重删数据云归档方法,此处不再赘述。
实施例6
根据本发明实施例,还提供了一种用于实施上述基于分布式存储的重删数据的云归档装置,如图7所示,该装置包括:
解析模块72被配置为解析本地元数据,遍历所述本地元数据的所有引用到的数据分片,并检查所述数据分片中的每一个数据分片在云存储端是否已经存在;
上传模块74被配置为在云存储端不存在相应的数据分片的情况下,将所述相应的数据分片作为数据对象上传到所述云存储端,并添加对象标签,将所述对象标签中的引用次数设置为1;在云存储端存在相应的数据分片的情况下,将该相应的数据分片对应的对象标签中的引用次数加1。
在一个示例性实施例中,该装置还可以包括任务分派模块,被配置为:基于预设的分派规则,将上传所述相应的数据分片的任务分配到相应的节点。
具体地,任务分派模块被配置为:计算每个节点距离完成目标所相差的任务数;如果每个节点距离完成目标所相差的任务数不同,选取相差的任务数最大的节点,并将上传所述相应的数据分片的任务分配给所选取的节点;如果每个节点距离完成目标所相差的任务数相同,计算每个节点的剩余可分派任务数;如果每个节点的剩余可分派任务数不同,选择剩余可分派任务最少的节点,否则,选择第一个节点,然后,将上传所述相应的数据分片的任务分配到所选取的节点。
在一个示例性实施例中,任务分派模块还可以配置为:执行数据分布算法,计算出所有数据分片在各个节点上的分布情况,得到数据分布矩阵;按列遍历所述分布矩阵,计算出各个节点上的数据分片数量。
例如,基于每个节点预期分派的任务数和已经分派的任务数量,计算每个节点距离完成目标所相差的任务数,其中,所述预期分派的任务数由节点总数和各个节点上的数据分片数量确定。
例如,基于每个节点的已经参与过选择的次数和所包含的数据分片数量,计算计算每个节点的剩余可分派任务数。
在一个示例性实施例中,该装置还可以包括下载模块,被配置为从云存储端下载元数据对象;解析所述元数据对象中的元数据,遍历所述元数据所有引用到的数据分片;针对所有引用到的数据分片中的每一个数据分片,执行以下:基于预设的分派规则,将下载相应的数据分片的任务分配到相应的节点;检查该相应的数据分片在本地是否已经存在;在本地不存在相应的数据分片的情况下,由所分配的节点从云存储端下载所述相应的数据分片,复制所述数据分片,并更新本地引用计数数据库中的信息;在本地存在相应的数据分片的情况下,由所分配的节点更新本地引用计数数据库中的信息。
例如,计算每个节点距离完成目标所相差的任务数;如果每个节点距离完成目标所相差的任务数不同,选取相差的任务数最大的节点,并将下载所述相应的数据分片的任务分配给所选取的节点;如果每个节点距离完成目标所相差的任务数相同,计算每个节点的剩余可分派任务数;如果每个节点的剩余可分派任务数不同,选择剩余可分派任务最少的节点,否则,选择第一个节点,然后,将下载所述相应的数据分片的任务分配到所选取的节点。
在一个示例性实施例中,该装置还包括删除模块,被配置为从云存储端下载元数据对象,并从云存储端移除所述元数据对象;解析所述元数据对象中的元数据,遍历所述元数据所有引用到的数据分片;针对所有引用到的数据分片中的每一个数据分片,将云存储端的相应的数据分片对应的对象标签中的引用计数减1,并在所述当前计数为0的情况下,从所述云存储端移除相应的数据分片对应的数据对象。
本实施例将本地重删存储中的数据归档到对象存储,并进行管理。既利用了对象存储本身的优点,又进一步节省了空间。
实施例7
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以执行上述实施例中的基于分布式存储的重删数据的云归档方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于分布式存储的重删数据的云归档方法,其特征在于,包括:
解析本地元数据,遍历所述本地元数据的所有引用到的数据分片,并检查所述数据分片中的每一个数据分片在云存储端是否已经存在;
在所述云存储端不存在相应的数据分片的情况下,将所述相应的数据分片作为数据对象上传到所述云存储端,并添加对象标签,将所述对象标签中的引用次数设置为1;
在所述云存储端存在相应的数据分片的情况下,将该相应的数据分片对应的对象标签中的引用次数加1。
2.根据权利要求1所述的方法,其特征在于,遍历所述本地元数据的所有引用到的数据分片之后,所述方法还包括:基于预设的分派规则,将上传所述相应的数据分片的任务分配到相应的节点。
3.根据权利要求2所述的方法,其特征在于,基于预设的分派规则,将上传所述相应的数据分片的任务分配到相应的节点包括:
计算每个节点距离完成目标所相差的任务数;
如果每个节点距离完成目标所相差的任务数不同,选取相差的任务数最大的节点,并将上传所述相应的数据分片的任务分配给所选取的节点;
如果每个节点距离完成目标所相差的任务数相同,计算每个节点的剩余可分派任务数;如果每个节点的剩余可分派任务数不同,选择剩余可分派任务最少的节点,否则,选择第一个节点,然后,将上传所述相应的数据分片的任务分配到所选取的节点。
4.根据权利要求3所述的方法,其特征在于,在将上传所述相应的数据分片的任务分配到相应的节点之前,所述方法还包括:
执行数据分布算法,计算出所有数据分片在各个节点上的分布情况,得到数据分布矩阵;
按列遍历所述分布矩阵,计算出各个节点上的数据分片数量。
5.根据权利要求4所述的方法,其特征在于,
计算每个节点距离完成目标所相差的任务数包括:基于每个节点预期分派的任务数和已经分派的任务数量,计算每个节点距离完成目标所相差的任务数,其中,所述预期分派的任务数由节点总数和各个节点上的数据分片数量确定;和/或
计算每个节点的剩余可分派任务数包括:基于每个节点的已经参与过选择的次数和所包含的数据分片数量,计算计算每个节点的剩余可分派任务数。
6.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:
从云存储端下载元数据对象;
解析所述元数据对象中的元数据,遍历所述元数据所有引用到的数据分片;
针对所有引用到的数据分片中的每一个数据分片,执行以下:
基于预设的分派规则,将下载相应的数据分片的任务分配到相应的节点;
检查该相应的数据分片在本地是否已经存在;
在本地不存在相应的数据分片的情况下,由所分配的节点从云存储端下载所述相应的数据分片,复制所述数据分片,并更新本地引用计数数据库中的信息;
在本地存在相应的数据分片的情况下,由所分配的节点更新本地引用计数数据库中的信息。
7.根据权利要求6所述的方法,其特征在于,还包括:基于预设的分派规则,将下载相应的数据分片的任务分配到相应的节点包括:
计算每个节点距离完成目标所相差的任务数;
如果每个节点距离完成目标所相差的任务数不同,选取相差的任务数最大的节点,并将下载所述相应的数据分片的任务分配给所选取的节点;
如果每个节点距离完成目标所相差的任务数相同,计算每个节点的剩余可分派任务数;如果每个节点的剩余可分派任务数不同,选择剩余可分派任务最少的节点,否则,选择第一个节点,然后,将下载所述相应的数据分片的任务分配到所选取的节点。
8.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:
从云存储端下载元数据对象,并从云存储端移除所述元数据对象;
解析所述元数据对象中的元数据,遍历所述元数据所有引用到的数据分片;
针对所有引用到的数据分片中的每一个数据分片,将云存储端的相应的数据分片对应的对象标签中的引用计数减1,并在所述当前计数为0的情况下,从所述云存储端移除相应的数据分片对应的数据对象。
9.一种基于分布式存储的重删数据的云归档装置,其特征在于,包括:
解析模块,被配置为解析本地元数据,遍历所述本地元数据的所有引用到的数据分片,并检查所述数据分片中的每一个数据分片在云存储端是否已经存在;
上传模块,被配置为在云存储端不存在相应的数据分片的情况下,将所述相应的数据分片作为数据对象上传到所述云存储端,并添加对象标签,将所述对象标签中的引用次数设置为1;在云存储端存在相应的数据分片的情况下,将该相应的数据分片对应的对象标签中的引用次数加1。
10.一种基于分布式存储的重删数据的云归档***,其特征在于,包括:
本地端,包括如权利要求9所述的云归档装置;
云存储端,用于以对象存储的方式存储所述数据分片。
CN202111309242.5A 2021-11-06 2021-11-06 基于分布式存储的重删数据的云归档方法、装置及*** Pending CN114036104A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111309242.5A CN114036104A (zh) 2021-11-06 2021-11-06 基于分布式存储的重删数据的云归档方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111309242.5A CN114036104A (zh) 2021-11-06 2021-11-06 基于分布式存储的重删数据的云归档方法、装置及***

Publications (1)

Publication Number Publication Date
CN114036104A true CN114036104A (zh) 2022-02-11

Family

ID=80136539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111309242.5A Pending CN114036104A (zh) 2021-11-06 2021-11-06 基于分布式存储的重删数据的云归档方法、装置及***

Country Status (1)

Country Link
CN (1) CN114036104A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756137A (zh) * 2023-08-17 2023-09-15 深圳市木浪云科技有限公司 大规模数据对象存储的重删方法、***及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116756137A (zh) * 2023-08-17 2023-09-15 深圳市木浪云科技有限公司 大规模数据对象存储的重删方法、***及设备
CN116756137B (zh) * 2023-08-17 2024-05-31 深圳市木浪云科技有限公司 大规模数据对象存储的重删方法、***及设备

Similar Documents

Publication Publication Date Title
US20200349139A1 (en) Stream selection for multi-stream storage devices
US7117294B1 (en) Method and system for archiving and compacting data in a data storage array
CN109947668B (zh) 存储数据的方法和装置
KR102564170B1 (ko) 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체
KR20170054299A (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
US20150363438A1 (en) Efficiently estimating compression ratio in a deduplicating file system
US9519653B2 (en) Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system
EP3238106A1 (en) Compaction policy
CN107656939A (zh) 文件写入方法及装置
US7895171B2 (en) Compressibility estimation of non-unique indexes in a database management system
EP3788505B1 (en) Storing data items and identifying stored data items
CN106933836B (zh) 一种基于分表的数据存储方法和***
CN111459884B (zh) 一种数据的处理方法、装置、计算机设备和存储介质
US10289685B2 (en) Information lifecycle governance
CN108255989A (zh) 图片存储方法、装置、终端设备及计算机存储介质
US9177034B2 (en) Searchable data in an object storage system
US20120323924A1 (en) Method and system for a multiple database repository
CN115840731A (zh) 文件处理方法、计算设备及计算机存储介质
CN114036104A (zh) 基于分布式存储的重删数据的云归档方法、装置及***
CN111159140A (zh) 数据处理方法、装置、电子设备及存储介质
US11429311B1 (en) Method and system for managing requests in a distributed system
CN116662019B (zh) 请求的分配方法、装置、存储介质及电子装置
CN107220248A (zh) 一种用于存储数据的方法和装置
CN108363727A (zh) 一种基于zfs文件***的数据存储方法及装置
US20210303406A1 (en) Highly efficient native application data protection for office 365

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