CN106446044B - 存储空间回收方法及装置 - Google Patents

存储空间回收方法及装置 Download PDF

Info

Publication number
CN106446044B
CN106446044B CN201610791742.XA CN201610791742A CN106446044B CN 106446044 B CN106446044 B CN 106446044B CN 201610791742 A CN201610791742 A CN 201610791742A CN 106446044 B CN106446044 B CN 106446044B
Authority
CN
China
Prior art keywords
file
data block
deleted
storage space
data
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
CN201610791742.XA
Other languages
English (en)
Other versions
CN106446044A (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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201610791742.XA priority Critical patent/CN106446044B/zh
Publication of CN106446044A publication Critical patent/CN106446044A/zh
Application granted granted Critical
Publication of CN106446044B publication Critical patent/CN106446044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/18File system types
    • G06F16/182Distributed file systems
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations

Abstract

本公开是关于一种存储空间回收方法及装置,属于分布式技术领域。所述方法包括:接收分布式文件系统中主节点发送的存储空间回收请求;根据所述文件标识在所述数据块中确定所述待删除文件,将所述待删除文件的文件头复制到临时文件中,并对所述待删除文件执行添加文件洞处理;将所述数据块中非删除文件的文件头、文件数据和文件尾复制到所述临时文件中;以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收。本公开通过添加文件洞处理实现对已删除文件占用的存储空间的回收,不但无需改变未删除文件的存储位置且不需要使用索引文件,该种存储空间回收方式效果较佳。

Description

存储空间回收方法及装置
技术领域
本公开涉及分布式技术领域,特别涉及一种存储空间回收方法及装置。
背景技术
随着互联网技术的迅速发展,人们越来越多地使用计算机存储数据,这使得对数据存储的需求不断增长。由于单机的文件系统存储容量有限,因此时下各大互联网公司一般均采用自研或开源的分布式文件系统存储数据。其中,存储的数据中常常会包含较多有时效性的数据,因此分布式文件系统一般会支持数据删除操作。由于在执行数据删除操作后,删除数据所占用的存储空间处于空闲状态,出于合理利用存储空间的目的,此时对这类存储空间进行回收显得尤为重要。
相关技术中,分布式文件系统中的文件按照时间先后顺序依次存储在数据块(Block)中。当某一数据块中有文件被删除时,会对该数据块进行压缩(Compaction)操作,即将未被删除的文件整合在一起。比如,将已删除文件之后的全部未删除文件整体进行移动,以将已删除文件的存储空间占据,在保证未删除文件依旧顺序存储的前提下,实现了对存储空间的回收。
在实现本公开的过程中,发明人发现相关技术至少存在以下问题:
由于上述存储空间回收方式会涉及到文件移动,因此需采用索引文件(IndexFile)保存文件的元数据信息,以记录文件的存储位置。而索引文件通常会占用较大内存,并且在每次访问文件前均需访问索引文件以获取存储位置,这会导致输入输出操作大幅度增加,所以上述存储空间的回收方式效果欠佳。
发明内容
为克服相关技术中存在的问题,本公开提供一种存储空间回收方法及装置。
根据本公开实施例的第一方面,提供一种存储空间回收方法,包括:
接收分布式文件系统中主节点发送的存储空间回收请求,所述存储空间回收请求至少包括一个数据块中待删除文件的文件标识,所述存储空间回收请求是由所述主节点在确定所述数据块的删除文件尺寸大于预设阈值后发送的;
根据所述文件标识在所述数据块中确定所述待删除文件,将所述待删除文件的文件头复制到临时文件中,并对所述待删除文件执行添加文件洞处理;
将所述数据块中非删除文件的文件头、文件数据和文件尾复制到所述临时文件中;
以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收。
在另一个实施例中,所述方法还包括:
为所述数据块中包含的每一个文件均设置一个删除标识,所述删除标识存储在每一个文件的文件头中;
为所述待删除文件中的每一个文件的删除标识设置第一标记。
在另一个实施例中,所述将所述待删除文件的文件头复制到临时文件中,并对所述待删除文件执行添加文件洞处理,包括:
若所述数据块中一个文件的删除标识取值为所述第一标记,则确定所述文件为待删除文件,将所述文件的文件头复制到所述临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分添加文件洞。
在另一个实施例中,所述将所述待删除文件的文件头复制到临时文件中,并对所述待删除文件执行添加文件洞处理,包括:
若至少两个连续存储文件的删除标识均取值为所述第一标记,则在所述至少两个连续存储的文件中选取一个文件的文件头;
将所述文件头中存储的文件尺寸更新为所述至少两个连续存储文件的文件尺寸之和;
将更新后的文件头复制到所述临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分中添加文件洞。
在另一个实施例中,所述调用系统指针在所述文件除文件头之外的其他部分中添加文件洞,包括:
调用所述系统指针依次跳过所述文件的文件数据和文件尾,以在所述文件数据以及所述文件尾的存储位置处形成文件洞。
在另一个实施例中,所述将所述数据块中非删除文件的文件头、文件数据和文件尾复制到所述临时文件中,包括:
若所述数据块中一个文件的删除标识取值为第二标记,则确定所述文件为所述非删除文件,将所述文件的文件头、文件数据和文件尾复制到所述临时文件中。
在另一个实施例中,所述方法还包括:
在接收到所述分布式文件系统中主节点发送的存储空间回收请求后,将所述存储空间收回请求发送至存储有所述数据块的其他副本的其他数据节点;
在均完成对所述数据块的存储空间回收操作后,向所述主节点返回空间回收完成响应。
根据本公开实施例的第二方面,提供一种存储空间回收方法,包括:
周期性获取分布式文件系统中存储的数据块状态表,所述数据块状态表中记录了至少一个数据块的删除文件尺寸和待删除文件的文件标识;
对于每一个数据块,若所述数据块的删除文件尺寸大于预设阈值,则获取所述数据块的属性信息;
根据所述属性信息,向所述数据块所在的数据节点发送存储空间回收请求,所述存储空间回收请求中至少包括所述数据块中待删除文件的文件标识,所述数据节点用于根据所述文件标识在所述数据块中确定待删除文件,并对所述待删除文件执行添加文件洞处理,完成所述数据块的存储空间回收。
根据本公开实施例的第三方面,提供一种存储空间回收装置,包括:
接收模块,被配置为接收分布式文件系统中主节点发送的存储空间回收请求,所述存储空间回收请求至少包括一个数据块中待删除文件的文件标识,所述存储空间回收请求是由所述主节点在确定所述数据块的删除文件尺寸大于预设阈值后发送的;
第一复制模块,被配置为根据所述文件标识在所述数据块中确定所述待删除文件,将所述待删除文件的文件头复制到临时文件中,并对所述待删除文件执行添加文件洞处理;
第二复制模块,被配置为将所述数据块中非删除文件的文件头、文件数据和文件尾复制到所述临时文件中;
替换模块,被配置为以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收。
在另一个实施例中,所述装置还包括:
第一设置模块,被配置为为所述数据块中包含的每一个文件均设置一个删除标识,所述删除标识存储在每一个文件的文件头中;
第二设置模块,被配置为为所述待删除文件中的每一个文件的删除标识设置第一标记。
在另一个实施例中,所述第一复制模块,被配置为若所述数据块中一个文件的删除标识取值为所述第一标记,则确定所述文件为待删除文件,将所述文件的文件头复制到所述临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分添加文件洞。
在另一个实施例中,所述第一复制模块,被配置为若至少两个连续存储文件的删除标识均取值为所述第一标记,则在所述至少两个连续存储的文件中选取一个文件的文件头;将所述文件头中存储的文件尺寸更新为所述至少两个连续存储文件的文件尺寸之和;将更新后的文件头复制到所述临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分中添加文件洞。
在另一个实施例中,所述第一复制模块,被配置为调用所述系统指针依次跳过所述文件的文件数据和文件尾,以在所述文件数据以及所述文件尾的存储位置处形成文件洞。
在另一个实施例中,所述第二复制模块,被配置为若所述数据块中一个文件的删除标识取值为第二标记,则确定所述文件为所述非删除文件,将所述文件的文件头、文件数据和文件尾复制到所述临时文件中。
在另一个实施例中,所述装置还包括:
发送模块,被配置为在接收到所述分布式文件系统中主节点发送的存储空间回收请求后,将所述存储空间收回请求发送至存储有所述数据块的其他副本的其他数据节点;
返回模块,被配置为在均完成对所述数据块的存储空间回收操作后,向所述主节点返回空间回收完成响应。
根据本公开实施例的第四方面,提供一种存储空间回收装置,包括:
第一获取模块,被配置为周期性获取分布式文件系统中存储的数据块状态表,所述数据块状态表中记录了至少一个数据块的删除文件尺寸和待删除文件的文件标识;
第二获取模块,被配置为对于每一个数据块,若所述数据块的删除文件尺寸大于预设阈值,则获取所述数据块的属性信息;
发送模块,被配置为根据所述属性信息,向所述数据块所在的数据节点发送存储空间回收请求,所述存储空间回收请求中至少包括所述数据块中待删除文件的文件标识,所述数据节点用于根据所述文件标识在所述数据块中确定待删除文件,并对所述待删除文件执行添加文件洞处理,完成所述数据块的存储空间回收。
根据本公开实施例的第五方面,提供一种存储空间回收装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:接收分布式文件系统中主节点发送的存储空间回收请求,所述存储空间回收请求至少包括一个数据块中待删除文件的文件标识,所述存储空间回收请求是由所述主节点在确定所述数据块的删除文件尺寸大于预设阈值后发送的;根据所述文件标识在所述数据块中确定所述待删除文件,将所述待删除文件的文件头复制到临时文件中,并对所述待删除文件执行添加文件洞处理;将所述数据块中非删除文件的文件头、文件数据和文件尾复制到所述临时文件中;以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收。
根据本公开实施例的第六方面,提供一种存储空间回收装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:周期性获取分布式文件系统中存储的数据块状态表,所述数据块状态表中记录了至少一个数据块的删除文件尺寸和待删除文件的文件标识;对于每一个数据块,若所述数据块的删除文件尺寸大于预设阈值,则获取所述数据块的属性信息;根据所述属性信息,向所述数据块所在的数据节点发送存储空间回收请求,所述存储空间回收请求中至少包括所述数据块中待删除文件的文件标识,所述数据节点用于根据所述文件标识在所述数据块中确定待删除文件,并对所述待删除文件执行添加文件洞处理,完成所述数据块的存储空间回收。
本公开的实施例提供的技术方案可以包括以下有益效果:
在接收到分布式文件系统中主节点发送的存储空间回收请求后,数据节点会根据该存储空间回收请求中的文件标识,在该数据块中确定该待删除文件,将该待删除文件的文件头复制到临时文件中,并对该待删除文件执行添加文件洞处理;此外,还将该数据块中非删除文件的文件头、文件数据和文件尾复制到该临时文件中;之后,以该临时文件替换该数据块中原始写入文件,完成该数据块的存储空间回收。由于文件洞不占用存储空间,因此通过对待删除文件执行添加文件洞处理,可实现对这些文件的删除并将这些文件所占用的存储空间进行回收,不但无需改变未删除文件的存储位置且不需要使用索引文件,该种存储空间回收方式效果较佳。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种分布式文件系统的架构图。
图2是根据一示例性实施例示出的一种存储空间回收方法的流程图。
图3是根据一示例性实施例示出的一种存储空间回收方法的流程图。
图4是根据一示例性实施例示出的一种存储空间回收方法的流程图。
图5是根据一示例性实施例示出的一种存储空间回收装置的框图。
图6是根据一示例性实施例示出的一种存储空间回收装置的框图。
图7是根据一示例性实施例示出的一种存储空间回收装置的框图。
图8是根据一示例性实施例示出的一种存储空间回收装置的框图。
图9是根据一示例性实施例示出的一种存储空间回收装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在对本公开实施例进行详细的解释说明之前,先对本公开实施例涉及的分布式文件系统的架构进行简单介绍。参见图1,该分布式文件系统的架构中包括客户端(Client)、主节点(MasterNode)、从节点(SlaveNode)、数据节点(DataNode)以及磁盘(Storage)。
其中,客户端负责提供文件的读写接口。需要说明的是,此处的客户端并不等同于一般意义上的个人固定终端或个人移动终端等客户端,其本质上为分布式文件系统提供的应用服务器。主节点和从节点构成了MHA(Master High Availability,主节点高可用)架构。
主节点负责存储分布式文件系统的相关元数据信息,包括数据块(Block)的分布信息和当前所有数据节点的信息。数据节点负责存储文件的数据和相关的元数据信息,按Block的方式存储,文件占用Block的一部分。Block按照多副本的方式存放在多个数据节点上,一个数据节点上可能有多个磁盘。本公开实施例对上述Block副本个数及数据节点上的磁盘数量均不进行具体限定。当主节点出现故障时,从节点可代替主节点执行相应功能。
在本公开实施例中,主节点中运行有进程CompactManager(压缩管理器),用于实现存储空间回收。正常情况下,CompactManager周期性获取分布式文件系统中存储的数据块状态表,从该数据块状态表中获取一个数据块的删除文件尺寸和该数据块中待删除文件的文件标识。若该数据块的删除文件尺寸大于预设阈值,则此时需要对该待删除文件执行添加文件洞处理,实现在删除这些文件后对已删除文件所占用存储空间的回收。
图2是根据一示例性实施例示出的一种存储空间回收方法的流程图,如图2所示,该方法用于数据节点中,包括以下步骤。
在步骤201中,接收分布式文件系统中主节点发送的存储空间回收请求,该存储空间回收请求至少包括一个数据块中待删除文件的文件标识,该存储空间回收请求是由该主节点在确定该数据块的删除文件尺寸大于预设阈值后发送的。
在步骤202中,根据文件标识在数据块中确定待删除文件,将该待删除文件的文件头复制到临时文件中,并对该待删除文件执行添加文件洞处理。
在步骤203中,将数据块中非删除文件的文件头、文件数据和文件尾复制到临时文件中。
在步骤204中,以临时文件替换该数据块中原始写入文件,完成该数据块的存储空间回收。
本公开实施例提供的方法,在接收到分布式文件系统中主节点发送的存储空间回收请求后,数据节点会根据该存储空间回收请求中的文件标识,在该数据块中确定该待删除文件,将该待删除文件的文件头复制到临时文件中,并对该待删除文件执行添加文件洞处理;此外,还将该数据块中非删除文件的文件头、文件数据和文件尾复制到该临时文件中;之后,以该临时文件替换该数据块中原始写入文件,完成该数据块的存储空间回收。由于文件洞不占用存储空间,因此通过对待删除文件执行添加文件洞处理,可实现对这些文件的删除并将这些文件所占用的存储空间进行回收,不但无需改变未删除文件的存储位置且不需要使用索引文件,该种存储空间回收方式效果较佳。
在另一个实施例中,该方法还包括:
为数据块中包含的每一个文件均设置一个删除标识,该删除标识存储在每一个文件的文件头中;
为待删除文件中的每一个文件的删除标识设置第一标记。
在另一个实施例中,将待删除文件的文件头复制到临时文件中,并对该待删除文件执行添加文件洞处理,包括:
若数据块中一个文件的删除标识取值为第一标记,则确定该文件为待删除文件,将该文件的文件头复制到临时文件中,并调用系统指针在该文件的除文件头之外的其他部分添加文件洞。
在另一个实施例中,将待删除文件的文件头复制到临时文件中,并对该待删除文件执行添加文件洞处理,包括:
若至少两个连续存储文件的删除标识均取值为所述第一标记,则在该至少两个连续存储的文件中选取一个文件的文件头;
将文件头中存储的文件尺寸更新为该至少两个连续存储文件的文件尺寸之和;
将更新后的文件头复制到临时文件中,并调用系统指针在该文件的除文件头之外的其他部分中添加文件洞。
在另一个实施例中,调用系统指针在文件除文件头之外的其他部分中添加文件洞,包括:
调用系统指针依次跳过该文件的文件数据和文件尾,以在该文件数据以及该文件尾的存储位置处形成文件洞。
在另一个实施例中,将数据块中非删除文件的文件头、文件数据和文件尾复制到临时文件中,包括:
若数据块中一个文件的删除标识取值为第二标记,则确定该文件为非删除文件,将该文件的文件头、文件数据和文件尾复制到临时文件中。
在另一个实施例中,该方法还包括:
在接收到分布式文件系统中主节点发送的存储空间回收请求后,将该存储空间回收请求发送至存储有该数据块的其他副本的其他数据节点;
在均完成对数据块的存储空间回收操作后,向主节点返回空间回收完成响应。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3是根据一示例性实施例示出的一种存储空间回收方法的流程图,如图3所示,该方法用于主节点中,包括以下步骤。
在步骤301中,周期性获取分布式文件系统中存储的数据块状态表,该数据块状态表中记录了至少一个数据块的删除文件尺寸和待删除文件的文件标识。
在步骤302中,对于每一个数据块,若该数据块的删除文件尺寸大于预设阈值,则获取该数据块的属性信息。
在步骤303中,根据属性信息,向数据块所在的数据节点发送存储空间回收请求,该存储空间回收请求中至少包括该数据块中待删除文件的文件标识,数据节点用于根据该文件标识在该数据块中确定待删除文件,并对该待删除文件执行添加文件洞处理,完成该数据块的存储空间回收。
本公开实施例提供的方法,在周期性获取到分布式文件系统中存储的数据块状态表后,获取该数据块状态表中记录的数据块的删除文件尺寸和待删除文件的文件标识;对于每一个数据块,若该数据块的删除文件尺寸大于预设阈值,则获取该数据块的属性信息;根据该属性信息,向该数据块所在的数据节点发送存储空间回收请求,由该数据节点根据文件标识在该数据块中确定待删除文件,并对该待删除文件执行添加文件洞处理,完成该数据块的存储空间回收。由于文件洞不占用存储空间,因此通过对待删除文件执行添加文件洞处理,可实现对这些文件的删除并将这些文件所占用的存储空间进行回收,不但无需改变未删除文件的存储位置且不需要使用索引文件,该种存储空间回收方式效果较佳。
图4是根据一示例性实施例示出的一种存储空间回收方法的流程图。交互主体包括数据节点及主节点,如图4所示,包括以下步骤。
在步骤401中,主节点周期性获取分布式文件系统中存储的数据块状态表BlockStatTable。
在本公开实施例中,数据块状态表BlockStatTable存储在数据库中,该数据块状态表BlockStatTable可如下表1所示,记录了至少一个数据块的块标识Block id、删除文件尺寸RemoveSize及待删除文件的文件标识File id。其中,File id包括Block id和BlockOffset。数据块状态表BlockStatTable除包括下述三项内容外,还可包括其他内容,本公开实施例对数据块状态表BlockStatTable包括的内容,块标识Block id、删除文件尺寸RemoveSize及文件标识File id的表示方法均不进行具体限定。其中,至少一个数据块指代分布式文件系统的各个数据节点上有文件删除的数据块。
表1
数据块的块标识 删除文件尺寸/MB 待删除文件的文件标识
Block 1 18 File 1
Block 2 12 File 2
Block N M File L
数据库存在于图1所示的MHA架构中。对于一个数据块来说,当该数据块中有文件需要删除时,便更新数据块状态表BlockStatTable,将待删除文件的文件标识File id写入该数据块状态表BlockStatTable中,并根据这些待删除文件对数据块状态表BlockStatTable中当前统计的删除文件尺寸RemoveSize进行重新统计,以覆盖更新前统计的删除文件尺寸RemoveSize。
主节点可启动一个新的进程CompactManager来周期性获取上述数据块状态表BlockStatTable。其中,周期性可指代每隔预设时长进行一次数据块状态表BlockStatTable的获取。例如,预设时长为15min,则进程CompactManager每隔15min进行一次数据块状态表BlockStatTable的获取。本公开实施例对主节点获取数据块状态表BlockStatTable的方式及时间均不进行具体限定。
在步骤402中,对于每一个数据块,主节点基于该数据块的删除文件尺寸RemoveSize,判断该数据块是否需要回收存储空间;若该数据块的删除文件尺寸RemoveSize大于预设阈值,则执行下述步骤403。
在本公开实施例中,预设阈值可以为一个具体的数值。如若一个数据块存储空间为512MB,则预设阈值可以为300MB。继续以该数值为例,当删除文件尺寸RemoveSize为400MB,大于预设阈值300MB时,这时删除文件尺寸RemoveSize已经占用数据块78%的存储空间,为提高空间利用率,需要进行存储空间回收。其中,本公开实施例对预设阈值的数值大小及数据块的存储空间大小不进行具体限定。
需要说明的是,若数据块状态表BlockStatTable记录的该数据块的删除文件尺寸RemoveSize不大于预设阈值,则不需要对该数据块执行回收存储空间操作,处理流程至此结束。
在步骤403中,若该数据块的删除文件尺寸RemoveSize大于预设阈值,则主节点确定该数据块需要进行存储空间回收并获取该数据块的属性信息。
在本公开实施例中,数据块的属性信息存储在数据块属性列表BlockAttributeTable中,该数据块属性列表BlockAttributeTable同样存在于步骤401所述的数据库中。该数据块属性列表BlockAttributeTable可如下表2所示,用于存储数据块的块标识Block id,以及该数据块所属的数据节点的节点标识DataNode id。其中,主节点在根据数据块状态表BlockStatTable确定该数据块需要回收存储空间后,根据该数据块的块标识Block id在数据块属性列表BlockAttributeTable中确定该数据块所属的数据节点的节点标识DataNode id。
表2
Figure BDA0001102918320000131
Figure BDA0001102918320000141
例如,当确定需要回收存储空间的数据块的块标识Block id为Block 1,则根据数据块属性列表BlockAttributeTable可以确定该数据块所属的数据节点为DataNode 1;当确定需要回收存储空间的数据块的块标识Block id为Block 2,则根据数据块属性列表BlockAttributeTable可以确定该数据块所属的数据节点为DataNode 1。本公开实施例对数据块属性列表BlockAttributeTable的形式、块标识Block id的表示方法、节点标识DataNode id的表示方法及数据节点上的数据块个数均不进行具体限定。
在步骤404中,主节点根据该数据块的属性信息,向该数据块所在的数据节点发送存储空间回收请求CompactRequest。
在本公开实施例中,存储空间回收请求CompactRequest至少包括该数据块中待删除文件的文件标识File id。其中,由于数据块按照多副本的方式存储在多个数据节点上,因此该数据块所在数据节点在接收到主节点发送的存储空间回收请求CompactRequest后,会将该存储空间回收请求CompactRequest立即发送至存储有该数据块的其他副本的其他数据节点,以便其他数据节点同样进行数据块的存储空间回收。
在步骤405中,该数据节点在接收到该存储空间回收请求CompactRequest后,根据该存储空间回收请求CompactRequest中的文件标识File id在该数据块中确定待删除文件。
在本公开实施例中,为了便于对待删除文件和非删除文件进行区分,会为该数据块中包含的每一个文件均设置一个删除标识RemoveFlag,该删除标识RemoveFlag保存在每一个文件的文件头FileHeader中。当一个文件为待删除文件时,其删除标识RemoveFlag为第一标记;当一个文件为非删除文件时,其删除标识为第二标记。其中,每一个文件都包括文件头FileHeader、文件数据FileData及文件尾FileFooter。
对于一个文件来说,该删除标识RemoveFlag默认为第二标记。在该数据节点中的CompactSever,在对该数据块进行扫描得到每一个文件后,若根据上述文件标识File id确定待删除文件后,会将这些文件的删除标识RemoveFlag由第二标记更新为第一标记。其中,第一标记可以用True(真)表示,第二标记可以用False(假)表示。例如,若根据存储空间回收请求CompactRequest中的文件标识File id确定该待删除文件为文件A,则将文件A的文件头FileHeader中设置为False的删除标识RemoveFlag重置为True;若文件B的文件标识File id没有包括在存储空间回收请求CompactRequest中,则文件B的文件头FileHeader中设置为False的删除标识RemoveFlag保持不变。本公开实施例对删除标识RemoveFlag的表示方式不进行具体限定。
在步骤406中,对于待删除文件,该数据节点将待删除文件的文件头FileHeader复制到临时文件TmpBlock中,并对该文件执行添加文件洞FileHole处理。
其中,若该数据块中一个文件的删除标识RemoveFlag取值为第一标记,则确定这个文件为待删除文件。文件洞FileHole指代文件中的空字符文件。对于该空字符文件,数据块不分配存储空间进行存储,因此文件洞FileHole并不占用数据块中的存储空间。在本公开实施例中,在对文件执行添加文件洞FileHole处理时,需要使用操作系统调用系统指针lseek执行。例如,可以使用Linux(类多用户计算机操作系统)调用系统指针lseek跳过该文件的文件数据FileData和文件尾FileFooter,在该文件的文件数据FileData及文件尾FileFooter的存储位置处形成文件洞FileHole。其中,本公开实施例对添加文件洞FileHole使用的操作系统不进行具体限定。
在另一个实施例中,若在数据块中至少两个连续存储文件的删除标识RemoveFlag均取值为第一标记,则在该至少两个连续存储的文件中选取一个文件的文件头FileHeader,将该文件头FileHeader中存储的文件尺寸FileSize更新为该至少两个连续存储文件的文件尺寸FileSize之和,并将该更新后的文件头FileHeader复制到上述临时文件TmpBlock中;之后调用系统指针lseek,在该至少两个连续存储文件的除文件头FileHeader之外的其他部分(包括文件数据FileData和文件尾FileFooter)中添加文件洞FileHole,以减少存储空间的浪费。
例如,文件A的FileHeader为A-18,其中18为文件A的文件尺寸FileSize;文件B的FileHeader为B-12,其中12为文件B的文件尺寸FileSize;文件A和文件B的删除标识RemoveFlag均为True,则选择文件A的FileHeaderA-18,将FileHeaderA-18中的文件尺寸18改为文件A和文件B的文件尺寸FileSize之和,即30;之后,将FileHeader更新为A-30,再将更新后的FileHeaderA-30复制到上述临时文件TmpBlock中;在文件A和文件B除FileHeader之外的其他部分中添加文件洞FileHole。其中,本公开实施例对FileHeader的表示方法及在至少两个连续存储的文件中选取文件的FileHeader的策略不进行具体限定。
在步骤407中,对于非删除文件,该数据节点将该非删除文件的文件头FileHeader、文件数据FileData和文件尾FileFooter复制到临时文件TmpBlock中。
在本公开实施例中,若文件的删除标识RemoveFlag取值为第二标记,则确定该文件为非删除文件,将该文件的文件头FileHeader、文件数据FileData和文件尾FileFooter均复制到上述临时文件TmpBlock中。
在步骤408中,该数据节点以临时文件TmpBlock替换数据块中原始写入数据,完成数据块的存储空间回收。
在本公开实施例中,当所有数据节点均完成对该数据块的存储空间回收操作后,该数据节点会向主节点返回存储空间回收完成响应Response。其中,此处的该数据节点指代所有数据节点中的主数据节点。所有数据节点指代该数据节点及该数据块的其他副本所属的其他数据节点,即从数据节点。其中,文件标识File id包括块标识Block id及块偏移量Block Offset,在对存储空间的回收处理过程中,由于没有对任何文件进行移动,因此对于非删除文件,根据初始的Block id及Block Offset进行数据替换,以保证文件的存储位置不变。
本公开实施例提供的方法,在接收到分布式文件系统中主节点发送的存储空间回收请求后,数据节点会根据该存储空间回收请求中的文件标识,在该数据块中确定该待删除文件,将该待删除文件的文件头复制到临时文件中,并对该待删除文件执行添加文件洞处理;此外,还将该数据块中非删除文件的文件头、文件数据和文件尾复制到该临时文件中;之后,以该临时文件替换该数据块中原始写入文件,完成该数据块的存储空间回收。由于文件洞不占用存储空间,因此通过对待删除文件执行添加文件洞处理,可实现对这些文件的删除并将这些文件所占用的存储空间进行回收,不但无需改变未删除文件的存储位置且不需要使用索引文件,该种存储空间回收方式效果较佳。
图5是根据一示例性实施例示出的一种存储空间回收装置的框图。参照图5,该装置包括接收模块501,第一复制模块502,第二复制模块503,替换模块504。
该接收模块501,被配置为接收分布式文件系统中主节点发送的存储空间回收请求,所述存储空间回收请求至少包括一个数据块中待删除文件的文件标识,所述存储空间回收请求是由所述主节点在确定所述数据块的删除文件尺寸大于预设阈值后发送的;
该第一复制模块502,被配置为根据所述文件标识在所述数据块中确定所述待删除文件,将所述待删除文件的文件头复制到临时文件中,并对所述待删除文件执行添加文件洞处理;
该第二复制模块503,被配置为将所述数据块中非删除文件的文件头、文件数据和文件尾复制到所述临时文件中;
该替换模块504,被配置为以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收。
在另一个实施例中,参见图6,该装置还包括第一设置模块505,第二设置模块506:
该第一设置模块505,被配置为为所述数据块中包含的每一个文件均设置一个删除标识,所述删除标识存储在每一个文件的文件头中;
该第二设置模块506,被配置为为所述待删除文件中的每一个文件的删除标识设置第一标记。
在另一个实施例中,第一复制模块502,被配置为若所述数据块中一个文件的删除标识取值为所述第一标记,则确定所述文件为待删除文件,将所述文件的文件头复制到所述临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分添加文件洞。
在另一个实施例中,第一复制模块502,被配置为若至少两个连续存储文件的删除标识均取值为所述第一标记,则在所述至少两个连续存储的文件中选取一个文件的文件头;将所述文件头中存储的文件尺寸更新为所述至少两个连续存储文件的文件尺寸之和;将更新后的文件头复制到所述临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分中添加文件洞。
在另一个实施例中,第一复制模块502,被配置为调用所述系统指针依次跳过所述文件的文件数据和文件尾,以在所述文件数据以及所述文件尾的存储位置处形成文件洞。
在另一个实施例中,该第二复制模块503,被配置为若所述数据块中一个文件的删除标识取值为第二标记,则确定所述文件为所述非删除文件,将所述文件的文件头、文件数据和文件尾复制到所述临时文件中。
在另一个实施例中,参见图7,该装置还包括发送模块507,返回模块508:
该发送模块507,被配置为在接收到所述分布式文件系统中主节点发送的存储空间回收请求后,将所述存储空间收回请求发送至存储有所述数据块的其他副本的其他数据节点;
该返回模块508,被配置为在均完成对所述数据块的存储空间回收操作后,向所述主节点返回空间回收完成响应。
本公开实施例提供的装置,在接收到分布式文件系统中主节点发送的存储空间回收请求后,数据节点会根据该存储空间回收请求中的文件标识,在该数据块中确定该待删除文件,将该待删除文件的文件头复制到临时文件中,并对该待删除文件执行添加文件洞处理;此外,还将该数据块中非删除文件的文件头、文件数据和文件尾复制到该临时文件中;之后,以该临时文件替换该数据块中原始写入文件,完成该数据块的存储空间回收。由于文件洞不占用存储空间,因此通过对待删除文件执行添加文件洞处理,可实现对这些文件的删除并将这些文件所占用的存储空间进行回收,不但无需改变未删除文件的存储位置且不需要使用索引文件,该种存储空间回收方式效果较佳。
图8根据一示例性实施例示出的一种存储空间回收装置的框图。参照图8,该装置包括第一获取模块801,第二获取模块802,发送模块803。
该第一获取模块801,被配置为周期性获取分布式文件系统中存储的数据块状态表,所述数据块状态表中记录了至少一个数据块的删除文件尺寸和待删除文件的文件标识;
该第二获取模块802,被配置为对于每一个数据块,若所述数据块的删除文件尺寸大于预设阈值,则获取所述数据块的属性信息;
该发送模块803,被配置为根据所述属性信息,向所述数据块所在的数据节点发送存储空间回收请求,所述存储空间回收请求中至少包括所述数据块中待删除文件的文件标识,所述数据节点用于根据所述文件标识在所述数据块中确定待删除文件,并对所述待删除文件执行添加文件洞处理,完成所述数据块的存储空间回收。
本公开实施例提供的装置,在周期性获取到分布式文件系统中存储的数据块状态表后,获取该数据块状态表中记录的数据块的删除文件尺寸和待删除文件的文件标识;对于每一个数据块,若该数据块的删除文件尺寸大于预设阈值,则获取该数据块的属性信息;根据该属性信息,向该数据块所在的数据节点发送存储空间回收请求,由该数据节点根据文件标识在该数据块中确定待删除文件,并对该待删除文件执行添加文件洞处理,完成该数据块的存储空间回收。由于文件洞不占用存储空间,因此通过对待删除文件执行添加文件洞处理,可实现对这些文件的删除并将这些文件所占用的存储空间进行回收,不但无需改变未删除文件的存储位置且不需要使用索引文件,该种存储空间回收方式效果较佳。
图9是根据一示例性实施例示出的一种存储空间回收装置900的框图。例如,装置900可以被提供为一服务器。参照图9,装置900包括处理组件922,其进一步包括一个或多个处理器,以及由存储器932所代表的存储器资源,用于存储可由处理组件922的执行的指令,例如应用程序。存储器932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件922被配置为执行指令,以执行上述存储空间回收方法。
装置900还可以包括一个电源组件926被配置为执行装置900的电源管理,一个有线或无线网络接口950被配置为将装置900连接到网络,和一个输入输出(I/O)接口958。装置900可以操作基于存储在存储器932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种存储空间回收方法,其特征在于,所述方法包括:
为每个数据块中包含的每一个文件均设置一个删除标识,所述删除标识存储在每一个文件的文件头中,为待删除文件中的每一个文件的删除标识设置第一标记,为非删除文件中的每一个文件的删除标识设置第二标记;接收分布式文件系统中主节点发送的存储空间回收请求,所述存储空间回收请求至少包括一个数据块中待删除文件的文件标识,所述存储空间回收请求是由所述主节点在确定所述数据块的删除文件尺寸大于预设阈值后根据获取到的所述数据块的属性信息发送的;
若所述数据块中一个文件的删除标识取值为所述第一标记,则确定所述文件为待删除文件,将所述文件的文件头复制到临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分添加文件洞;若至少两个连续存储文件的删除标识均取值为所述第一标记,则在所述至少两个连续存储的文件中选取一个文件的文件头,将所述文件头中存储的文件尺寸更新为所述至少两个连续存储文件的文件尺寸之和,将更新后的文件头复制到所述临时文件中,并调用系统指针在所述文件除文件头之外的其他部分中添加文件洞;
若所述数据块中一个文件的删除标识取值为所述第二标记,则确定所述文件为非删除文件,将所述非删除文件的文件头、文件数据和文件尾复制到所述临时文件中;以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收;在接收到所述分布式文件系统中主节点发送的存储空间回收请求后,将所述存储空间回收请求发送至存储有所述数据块的其他副本的其他数据节点;在均完成对所述数据块的存储空间回收操作后,向所述主节点返回存储空间回收完成响应;
所述主节点还用于若确定所述数据块的删除文件尺寸不大于所述预设阈值,则不向所述数据节点发送所述存储空间回收请求触发所述数据节点执行针对所述数据块的存储空间回收操作。
2.根据权利要求1所述的方法,其特征在于,所述调用系统指针在所述文件除文件头之外的其他部分中添加文件洞,包括:
调用所述系统指针依次跳过所述文件的文件数据和文件尾,以在所述文件数据以及所述文件尾的存储位置处形成文件洞。
3.根据权利要求1所述的方法,其特征在于,所述将所述非删除文件的文件头、文件数据和文件尾复制到所述临时文件中,包括:
若所述数据块中一个文件的删除标识取值为第二标记,则确定所述文件为所述非删除文件,将所述文件的文件头、文件数据和文件尾复制到所述临时文件中。
4.一种存储空间回收方法,其特征在于,所述方法包括:
周期性获取分布式文件系统中存储的数据块状态表,所述数据块状态表中记录了至少一个数据块的删除文件尺寸和待删除文件的文件标识;对于每一个数据块,若所述数据块的删除文件尺寸大于预设阈值,则获取所述数据块的属性信息;根据所述属性信息,向所述数据块所在的数据节点发送存储空间回收请求,所述存储空间回收请求中至少包括所述数据块中待删除文件的文件标识;
所述数据节点用于为所述数据块中包含的每一个文件均设置一个删除标识,所述删除标识存储在每一个文件的文件头中,为所述待删除文件中的每一个文件的删除标识设置第一标记,为非删除文件中的每一个文件的删除标识设置第二标记;根据所述文件标识在所述数据块中确定待删除文件,若所述数据块中一个文件的删除标识取值为所述第一标记,则确定所述文件为待删除文件,将所述文件的文件头复制到临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分添加文件洞;若至少两个连续存储文件的删除标识均取值为所述第一标记,则在所述至少两个连续存储的文件中选取一个文件的文件头,将所述文件头中存储的文件尺寸更新为所述至少两个连续存储文件的文件尺寸之和,将更新后的文件头复制到所述临时文件中,并调用系统指针在所述文件除文件头之外的其他部分中添加文件洞,若所述数据块中一个文件的删除标识取值为所述第二标记,则确定所述文件为非删除文件,将所述非删除文件的文件头、文件数据和文件尾复制到所述临时文件中,以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收;
若确定所述数据块的删除文件尺寸不大于所述预设阈值,则不向所述数据节点发送所述存储空间回收请求触发所述数据节点执行针对所述数据块的存储空间回收操作;所述数据节点用于在接收到所述存储空间回收请求后,将所述存储空间回收请求发送至存储有所述数据块的其他副本的其他数据节点;在均完成对所述数据块的存储空间回收操作后,向主节点返回存储空间回收完成响应。
5.一种存储空间回收装置,其特征在于,所述装置包括:
第一设置模块,被配置为为每个数据块中包含的每一个文件均设置一个删除标识,所述删除标识存储在每一个文件的文件头中;
第二设置模块,被配置为为待删除文件中的每一个文件的删除标识设置第一标记,为非删除文件中的每一个文件的删除标识设置第二标记;
接收模块,被配置为接收分布式文件系统中主节点发送的存储空间回收请求,所述存储空间回收请求至少包括一个数据块中待删除文件的文件标识,所述存储空间回收请求是由所述主节点在确定所述数据块的删除文件尺寸大于预设阈值后根据获取到的所述数据块的属性信息发送的;
第一复制模块,被配置为根据所述文件标识在所述数据块中确定所述待删除文件,若所述数据块中一个文件的删除标识取值为所述第一标记,则确定所述文件为待删除文件,将所述文件的文件头复制到临时文件中,并调用系统指针在所述文件除文件头之外的其他部分添加文件洞;若至少两个连续存储文件的删除标识均取值为所述第一标记,则在所述至少两个连续存储的文件中选取一个文件的文件头,将所述文件头中存储的文件尺寸更新为所述至少两个连续存储文件的文件尺寸之和,将更新后的文件头复制到所述临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分中添加文件洞;
第二复制模块,被配置为若所述数据块中一个文件的删除标识取值为所述第二标记,则确定所述文件为非删除文件,将所述非删除文件的文件头、文件数据和文件尾复制到所述临时文件中;
替换模块,被配置为以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收;
发送模块,被配置为在接收到所述分布式文件系统中主节点发送的存储空间回收请求后,将所述存储空间收回请求发送至存储有所述数据块的其他副本的其他数据节点;
返回模块,被配置为在均完成对所述数据块的存储空间回收操作后,向所述主节点返回空间回收完成响应;
所述主节点还用于若确定所述数据块的删除文件尺寸不大于所述预设阈值,则不向所述数据节点发送所述存储空间回收请求触发所述数据节点执行针对所述数据块的存储空间回收操作。
6.根据权利要求5所述的装置,其特征在于,所述第一复制模块,被配置为调用所述系统指针依次跳过所述文件的文件数据和文件尾,以在所述文件数据以及所述文件尾的存储位置处形成文件洞。
7.根据权利要求5所述的装置,其特征在于,所述第二复制模块,被配置为若所述数据块中一个文件的删除标识取值为第二标记,则确定所述文件为所述非删除文件,将所述文件的文件头、文件数据和文件尾复制到所述临时文件中。
8.一种存储空间回收装置,其特征在于,所述装置包括:
第一获取模块,被配置为周期性获取分布式文件系统中存储的数据块状态表,所述数据块状态表中记录了至少一个数据块的删除文件尺寸和待删除文件的文件标识;
第二获取模块,被配置为对于每一个数据块,若所述数据块的删除文件尺寸大于预设阈值,则获取所述数据块的属性信息;
发送模块,被配置为根据所述属性信息,向所述数据块所在的数据节点发送存储空间回收请求,所述存储空间回收请求中至少包括所述数据块中待删除文件的文件标识;
所述数据节点用于为所述数据块中包含的每一个文件均设置一个删除标识,所述删除标识存储在每一个文件的文件头中,为所述待删除文件中的每一个文件的删除标识设置第一标记,为非删除文件中的每一个文件的删除标识设置第二标记;根据所述文件标识在所述数据块中确定待删除文件,若所述数据块中一个文件的删除标识取值为所述第一标记,则确定所述文件为待删除文件,将所述文件的文件头复制到临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分添加文件洞;若至少两个连续存储文件的删除标识均取值为所述第一标记,则在所述至少两个连续存储的文件中选取一个文件的文件头,将所述文件头中存储的文件尺寸更新为所述至少两个连续存储文件的文件尺寸之和,将更新后的文件头复制到所述临时文件中,并调用系统指针在所述文件除文件头之外的其他部分中添加文件洞,若所述数据块中一个文件的删除标识取值为所述第二标记,则确定所述文件为非删除文件,将所述非删除文件的文件头、文件数据和文件尾复制到所述临时文件中,以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收;
所述装置还包括用于在若确定所述数据块的删除文件尺寸不大于所述预设阈值,则不向所述数据节点发送所述存储空间回收请求触发所述数据节点执行针对所述数据块的存储空间回收操作的模块;
所述数据节点用于在接收到所述存储空间回收请求后,将所述存储空间回收请求发送至存储有所述数据块的其他副本的其他数据节点;在均完成对所述数据块的存储空间回收操作后,向主节点返回存储空间回收完成响应。
9.一种存储空间回收装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:为每个数据块中包含的每一个文件均设置一个删除标识,所述删除标识存储在每一个文件的文件头中,为待删除文件中的每一个文件的删除标识设置第一标记,为非删除文件中的每一个文件的删除标识设置第二标记;接收分布式文件系统中主节点发送的存储空间回收请求,所述存储空间回收请求至少包括一个数据块中待删除文件的文件标识,所述存储空间回收请求是由所述主节点在确定所述数据块的删除文件尺寸大于预设阈值后根据获取到的所述数据块的属性信息发送的;
根据所述文件标识在所述数据块中确定所述待删除文件,若所述数据块中一个文件的删除标识取值为所述第一标记,则确定所述文件为待删除文件,将所述文件的文件头复制到临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分添加文件洞;若至少两个连续存储文件的删除标识均取值为所述第一标记,则在所述至少两个连续存储的文件中选取一个文件的文件头,将所述文件头中存储的文件尺寸更新为所述至少两个连续存储文件的文件尺寸之和,将更新后的文件头复制到所述临时文件中,并调用系统指针在所述文件除文件头之外的其他部分中添加文件洞;
若所述数据块中一个文件的删除标识取值为所述第二标记,则确定所述文件为非删除文件,将所述非删除文件的文件头、文件数据和文件尾复制到所述临时文件中;以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收;在接收到所述分布式文件系统中主节点发送的存储空间回收请求后,将所述存储空间回收请求发送至存储有所述数据块的其他副本的其他数据节点;在均完成对所述数据块的存储空间回收操作后,向所述主节点返回存储空间回收完成响应。
10.一种存储空间回收装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:周期性获取分布式文件系统中存储的数据块状态表,所述数据块状态表中记录了至少一个数据块的删除文件尺寸和待删除文件的文件标识;对于每一个数据块,若所述数据块的删除文件尺寸大于预设阈值,则获取所述数据块的属性信息;根据所述属性信息,向所述数据块所在的数据节点发送存储空间回收请求,所述存储空间回收请求中至少包括所述数据块中待删除文件的文件标识;
所述数据节点用于为所述数据块中包含的每一个文件均设置一个删除标识,所述删除标识存储在每一个文件的文件头中,为所述待删除文件中的每一个文件的删除标识设置第一标记,为非删除文件中的每一个文件的删除标识设置第二标记;根据所述文件标识在所述数据块中确定待删除文件,若所述数据块中一个文件的删除标识取值为所述第一标记,则确定所述文件为待删除文件,将所述文件的文件头复制到临时文件中,并调用系统指针在所述文件的除文件头之外的其他部分添加文件洞;若至少两个连续存储文件的删除标识均取值为所述第一标记,则在所述至少两个连续存储的文件中选取一个文件的文件头,将所述文件头中存储的文件尺寸更新为所述至少两个连续存储文件的文件尺寸之和,将更新后的文件头复制到所述临时文件中,并调用系统指针在所述文件除文件头之外的其他部分中添加文件洞,若所述数据块中一个文件的删除标识取值为所述第二标记,则确定所述文件为非删除文件,将所述非删除文件的文件头、文件数据和文件尾复制到所述临时文件中,以所述临时文件替换所述数据块中原始写入文件,完成所述数据块的存储空间回收;
若确定所述数据块的删除文件尺寸不大于所述预设阈值,则不向所述数据节点发送所述存储空间回收请求触发所述数据节点执行针对所述数据块的存储空间回收操作;所述数据节点用于在接收到所述存储空间回收请求后,将所述存储空间回收请求发送至存储有所述数据块的其他副本的其他数据节点;在均完成对所述数据块的存储空间回收操作后,向主节点返回存储空间回收完成响应。
CN201610791742.XA 2016-08-31 2016-08-31 存储空间回收方法及装置 Active CN106446044B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610791742.XA CN106446044B (zh) 2016-08-31 2016-08-31 存储空间回收方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610791742.XA CN106446044B (zh) 2016-08-31 2016-08-31 存储空间回收方法及装置

Publications (2)

Publication Number Publication Date
CN106446044A CN106446044A (zh) 2017-02-22
CN106446044B true CN106446044B (zh) 2020-08-11

Family

ID=58164712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610791742.XA Active CN106446044B (zh) 2016-08-31 2016-08-31 存储空间回收方法及装置

Country Status (1)

Country Link
CN (1) CN106446044B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665098B (zh) * 2017-09-05 2020-12-18 联想(北京)有限公司 信息处理方法、存储设备及计算机存储介质
CN108090128B (zh) * 2017-11-16 2021-11-26 北京奇艺世纪科技有限公司 一种合并存储空间回收方法、装置及电子设备
CN109086220B (zh) * 2018-06-21 2023-04-28 北京奇艺世纪科技有限公司 一种回收存储空间的方法和装置
CN112486404A (zh) * 2019-09-12 2021-03-12 伊姆西Ip控股有限责任公司 用于管理存储块的方法、设备和计算机程序产品
CN111045997B (zh) * 2019-12-05 2023-05-12 浩云科技股份有限公司 集中存储数据删除方法及装置
CN112286866A (zh) * 2020-10-23 2021-01-29 星辰天合(北京)数据科技有限公司 数据处理方法及装置、电子设备、计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225314B1 (en) * 2004-05-26 2007-05-29 Sun Microsystems, Inc. Automatic conversion of all-zero data storage blocks into file holes
CN102024018A (zh) * 2010-11-04 2011-04-20 曙光信息产业(北京)有限公司 一种分布式文件系统中垃圾元数据的在线回收方法
US8086652B1 (en) * 2007-04-27 2011-12-27 Netapp, Inc. Storage system-based hole punching for reclaiming unused space from a data container
US20150074046A1 (en) * 2009-10-01 2015-03-12 Starcounter Ab Systems and Methods for Managing Databases
CN105138282A (zh) * 2015-08-06 2015-12-09 上海七牛信息技术有限公司 一种存储空间回收的方法及存储系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7225314B1 (en) * 2004-05-26 2007-05-29 Sun Microsystems, Inc. Automatic conversion of all-zero data storage blocks into file holes
US8086652B1 (en) * 2007-04-27 2011-12-27 Netapp, Inc. Storage system-based hole punching for reclaiming unused space from a data container
US20150074046A1 (en) * 2009-10-01 2015-03-12 Starcounter Ab Systems and Methods for Managing Databases
CN102024018A (zh) * 2010-11-04 2011-04-20 曙光信息产业(北京)有限公司 一种分布式文件系统中垃圾元数据的在线回收方法
CN105138282A (zh) * 2015-08-06 2015-12-09 上海七牛信息技术有限公司 一种存储空间回收的方法及存储系统

Also Published As

Publication number Publication date
CN106446044A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
CN106446044B (zh) 存储空间回收方法及装置
US10628378B2 (en) Replication of snapshots and clones
US8874515B2 (en) Low level object version tracking using non-volatile memory write generations
DE102016013248A1 (de) Bezugsblockansammlung in einer Bezugsmenge zur Deduplizierung beim Speichermanagement
CN110018998B (zh) 一种文件管理方法、系统及电子设备和存储介质
US7681001B2 (en) Storage system
CN111078667B (zh) 一种数据迁移的方法以及相关装置
CN111198856B (zh) 文件管理方法、装置、计算机设备和存储介质
EP3788505B1 (en) Storing data items and identifying stored data items
CN108073352B (zh) 虚拟磁盘处理方法及装置
CN114936188A (zh) 数据处理方法、装置、电子设备及存储介质
WO2018059239A1 (zh) 一种文件存储方法及装置
CN111753141A (zh) 一种数据管理方法及相关设备
CN113254273A (zh) 一种实时恢复主元数据的方法、系统、设备及介质
CN108376104B (zh) 节点调度方法及装置、计算机可读存储介质
CN109241011B (zh) 一种虚拟机文件处理方法及装置
CN110019057B (zh) 请求处理方法及装置
CN109558205B (zh) 磁盘访问方法及装置
CN113391916A (zh) 组织架构数据处理方法、装置、计算机设备和存储介质
CN111399753A (zh) 写入图片的方法和装置
CN116257531B (zh) 一种数据库空间回收方法
CN117170942B (zh) 一种基于文件系统快照的数据库备份方法以及相关设备
US10706012B2 (en) File creation
CN111400302B (zh) 连续存储数据的修改方法、装置和系统
WO2024022329A1 (zh) 一种基于键值存储系统的数据管理方法及其相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant