CN114253472B - 一种元数据管理方法、设备及存储介质 - Google Patents

一种元数据管理方法、设备及存储介质 Download PDF

Info

Publication number
CN114253472B
CN114253472B CN202111434359.6A CN202111434359A CN114253472B CN 114253472 B CN114253472 B CN 114253472B CN 202111434359 A CN202111434359 A CN 202111434359A CN 114253472 B CN114253472 B CN 114253472B
Authority
CN
China
Prior art keywords
data
mapping
value
mapping relation
data field
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
CN202111434359.6A
Other languages
English (en)
Other versions
CN114253472A (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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN202111434359.6A priority Critical patent/CN114253472B/zh
Publication of CN114253472A publication Critical patent/CN114253472A/zh
Application granted granted Critical
Publication of CN114253472B publication Critical patent/CN114253472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种元数据管理方法,其包括:根据数据的哈希值,将数据存储到多个物理地址中,基于多个物理地址分别建立数据的哈希值对多个所述物理地址的映射关系;对数据的多个映射关系中添加第一数据字段,并根据数据的写入或删除更新对应的多个映射关系中的第一数据字段的值。通过本发明提出的方法,将对数据的重删引用计数分别设置在多个哈希值到物理地址的映射中,通过建立多个映射关系并分别记录引用次数,以防止持久化保存的重删数据发生异常错误导致的故障。用更少的元数据持久化空间,并尽量控制每份重删数据被引用的上限,节约了数据占用空间,减少数据被意外损坏后的影响范围,减少元数据集中变化的频率和数量,可提高元数据和数据的可靠性。

Description

一种元数据管理方法、设备及存储介质
技术领域
本发明属于计算机存储领域,具体涉及一种元数据管理方法、设备及存储介质。
背景技术
在存储阵列中,重删功能是一种很重要的功能。重删可以减少用户相同数据的实际保存份数,从而可以减小用户数据的实际存储空间,有很好的实用和经济价值。但是重删功能有元数据存储和管理的开销,这些开销会带来不少性能损失,元数据的存储也会占用一定的持久化存储空间。另外,如果重删数据被引用的次数太多,可能会引起元数据的频繁变化,出错的概率就会变高,而且重删数据如果出错,影响的范围也会比较大。所以可靠有效的元数据管理就非常重要。
实际常用的元数据管理方式为持久化保存LP(LBA到PBA的映射,LBA:逻辑块地址,PBA:物理块地址)、HP(数据的哈希值到PBA的映射)、PL(PBA到逻辑块地址的映射)这三类元数据,PL的作用是记录映射到该PBA的LP的个数,用于判断PBA是否有LP引用,以及后台搬迁PBA数据时需要修改哪些LP、PL映射,这些涉及的PL和LP都需要进行修改。这种方式是保存了两份和LBA相关的元数据、一份和实际数据保存位置PBA有关的元数据,这样每增加一份重删,即会增加一份LP和PL,而且PL元数据也会频繁的变化,在涉及数据重删时,对数据的任意的操作都要变更LP、HP和PL这三种元数据。
因此,需要一种更高效便捷方案来处理重删时的元数据的变化。
发明内容
为解决上述问题,本发明的第一方面提出了一种元数据管理方法,包括:
根据数据的哈希值,将所述数据存储到多个物理地址中,基于所述多个物理地址分别建立所述数据的哈希值对多个所述物理地址的映射关系;
对所述数据的多个所述映射关系中添加第一数据字段,并根据所述数据的写入或删除更新对应的多个所述映射关系中的所述第一数据字段的值。
在本发明的一些实施方式中,根据所述数据的写入或删除更新对应的多个所述映射关系中的所述第一数据字段的值,包括:
采用阶梯轮询方式对所述多个所述映射关系中的每一个所述映射关系中的第一数据字段的值进行更新。
在本发明的一些实施方式中,采用阶梯轮询方式对所述多个所述映射关系中的每一个所述映射关系中的第一数据字段的值进行更新,包括:
对所述多个所述映射关系编号,并根据编号对所述多个映射关系排序;
对所述多个所述映射关系的第一数据字段的值设立阶梯阈值;
基于所述映射关系的排序后的编号,选择所述多个映射关系中的一个作为当前活跃的所述映射关系;
响应于所述当前活跃的所述映射关系的第一数据字段的值等于所述阶梯阈值,在所述数据的写入时选中所述当前活跃映射关系排序的下一个映射关系作为待活跃映射关系,并更新所述待活跃映射关系的所述第一数据字段的值;以及
在所述数据删除时,更新所述当前活跃映射关系的所述第一数据字段的值。
在本发明的一些实施方式中,还包括:
将所述数据对应的多个所述映射关系中的非当前活跃的所述映射关系存储到非活跃存储设备中保存;以及
响应于所述非活跃存储设备中的所述数据的多个非当前活跃的所述映射关系中存在所述待活跃映射关系,将所述待活跃映射关系存储到活跃存储设备中。
在本发明的一些实施方式中,还包括:
响应于所述数据的所述映射关系的个数小于预定个数,在所述数据写入时,为所述数据创建新的所述映射关系;
响应于所述数据的所述映射关系的个数小于预定个数且所述第一数据字段的值大于所述阶梯阈值,在所述数据写入时,为所述数据创建新的所述映射关系。
在本发明的一些实施方式中,方法还包括:
响应于所述数据的多个所述映射关系中任意一个所述映射关系的所述第一数据字段的值为最小值,在所述数据删除时则删除所述第一数据字段为最小值的所述映射关系;
响应于所述数据的多个所述映射关系中任意一个所述映射关系的所述第一数据字段的值均为最小值,在所述数据删除时则删除所述第一数据字段为最小值的所述映射关系。
在本发明的一些实施方式中,根据数据的哈希值,将所述数据存储到多个物理地址中,基于所述多个物理地址分别建立所述数据的哈希值对多个所述物理地址的映射关系,包括:
响应于通过逻辑地址的方式对数据进行更新,对所述数据按照预定粒度进行切分以得到多个粒度数据,并分别计算所述多个粒度数据的哈希值;
基于所述粒度数据的哈希值查询所述粒度数据对应的所述映射关系;
响应于不存在所述映射关系,将所述粒度数据写入磁盘中,并根据写入地址及所述粒度数据的哈希值建立所述映射关系。
在本发明的一些实施方式中,方法还包括:
响应于存在所述映射关系,根据所述映射关系的所述第一数据字段的值计算所述映射关系的所述第一数据字段对应的所述阶梯阈值,并判断所述第一数据字段的值是否小于所阶梯阈值;
响应于小于所述阶梯阈值,将所述第一数据字段的自增一。
本发明的另一方面还提出了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
本发明的又一方面还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
通过本发明提出的一种元数据管理方法,将对数据的重删引用计数分别设置在多个哈希值到物理地址的映射中,通过建立多个映射关系并分别记录引用次数,以防止在数据重删时出现异常。用更少的元数据持久化空间,从而节约空间来保存用户数据;并尽量控制每份重删数据被引用的上限,既因重删节约了数据占用空间,又减少数据被意外损坏后的影响范围,并能够减少元数据集中变化的频率和数量,可提高元数据和数据的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种元数据管理方法的实施例流程图;
图2为本发明实施例提供的一种计算机存储设备的结构示意图;
图3为本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在本发明中的实施例中,本发明所提出的一种元数据管理方法是应用于对象存储领域,在对象存储领域,实际常用的元数据管理方式为持久化保存LP、HP、PL这三类元数据,PL的作用是记录映射到该PBA(Physical Block Address,物理块地址,通常简称P,用于记录存储介质上的存储数据的物理区域)的LP的个数,即通过物理块地址获取逻辑块地址的信息,用于判断物理块地址是否有LP引用,以及后台搬迁物理块地址数据时需要修改哪些LP、PL映射,这些涉及的PL和LP都需要进行修改。这种方式是保存了两份和LBA(LogicalBlock Address,逻辑块地址,简称L)相关的元数据、一份和实际数据保存位置PBA有关的元数据,这样每增加一份重删,即会增加一份LP和PL,而且PL元数据也会频繁的变化。因此现有的标准的采用LP、HP和PL的方式在支持对象的重删时则存在处理逻辑和存储空间的消耗,并且在IO请求较多时甚至会出现对LP、HP和PL的存储异常情况,为此,本发明提出一种解决方案。
如图1所示,本发明的第一方面提出了一种元数据管理方法,包括:
步骤S1、根据数据的哈希值,将所述数据存储到多个物理地址中,基于所述多个物理地址分别建立所述数据的哈希值对多个所述物理地址的映射关系;
步骤S2、对所述数据的多个所述映射关系中添加第一数据字段,并根据所述数据的写入或删除更新对应的多个所述映射关系中的所述第一数据字段的值。
在步骤S1中,本发明在数据存储时采用多备份的方案,在对规定大小的对象数据进行存储时,在计算得到数据的哈希值后,将数据存储到多个物理地址中(PBA物理块地址),并且建立多个哈希值对物理地址的映射,即一个数据的哈希值,在元数据中有多个HP,表示为HP1、HP2…HPN。其中,N为有限个,并且可根据存储阵列等硬件存储容量及其他方面的参数灵活配置,在本发明的实施例中以最大存储5个HP为例进行说明本发明的详细方案。
此外,需要说明的是,本发明实施例中所公开的数据有两种,为了方便描述,用以存储到存储阵列或存储磁盘的数据为一定大小的数据,对象存储系统会将源数据(在应用层可以视作一个文件整体,比如一个文档)拆分成固定大小的数据,并对该数据计算哈希值H,并将该源数据拆分成多个固定大小的数据后存储到存储阵列或存储磁盘中。因此,在本发明中后续描述的“数据”均为被拆分后的固定大小的数据。并且数据的大小可根据存储系统的需要及相关哈希算法制定。
在步骤S2中,在本发明中,在对数据进行哈希计算之后,将数据保存到存储磁盘阵列或存储磁盘后,根据数据的哈希值H和物理地址P构建HP,并在构建HP的键值对时,将数据的引用计数信息添加到HP中作为额外的字段,如前所述,数据最多存在5个HP,每个HP中均有不同的引用计数。在数据触发重删时,根据重删类型(指写入相同数据或删除相同数据)更新对应的HP中的引用计数的值。即如果是写入相同的数据,将其对应的多个HP中的其中一个的HP的引用计数加1,如果是删除相同的数据,则将其对应的多个HP中的其中一个的HP的引用计数减1。
在本发明的一些实施方式中,根据所述数据的写入或删除更新对应的多个所述映射关系中的所述第一数据字段的值,包括:
采用阶梯轮询方式对所述多个所述映射关系中的每一个所述映射关系中的第一数据字段的值进行更新。
在本实施例中,如前所述,一个数据具备最多5个HP,且共有5个引用计数的字段,本发明采用阶梯式的引用计数方式轮流向5个HP中的引用计数的字段进行更新,在本实施例中以8和64为阶段阈值,当任意一个HP中的引用计数的字段超过8时,将对数据的引用计数的更新转换到下一个HP中,同样,在5个HP中均超过第一阶段的阶段阈值8之后,则将阶段阈值的值变为64,即对任意一个HP中的引用计数,当其引用计数等于64时,切换到下一个HP;当5个HP中的引用计数的字段值均大于64时,则仅选择该数据的5个HP中的其中一个HP作为该数据的引用计数的HP,不再切换HP,直到因持续删除该数据致使该HP的引用计数的值小于64时再轮询切换到其他的HP。
在本发明的一些实施方式中,采用阶梯轮询方式对所述多个所述映射关系中的每一个所述映射关系中的第一数据字段的值进行更新,包括:
对所述多个所述映射关系编号,并根据编号对所述多个映射关系排序;
对所述多个所述映射关系的第一数据字段的值设立阶梯阈值;
基于所述映射关系的排序后的编号,选择所述多个映射关系中的一个作为当前活跃的所述映射关系;
响应于所述当前活跃的所述映射关系的第一数据字段的值等于所述阶梯阈值,在所述数据的写入时选中所述当前活跃映射关系排序的下一个映射关系作为待活跃映射关系,并更新所述待活跃映射关系的所述第一数据字段的值;以及
在所述数据删除时,更新所述当前活跃映射关系的所述第一数据字段的值。
在本实施例中,采用阶梯式轮询的方式对数据的5个HP进行更新时,需要对5个HP进行编号,即HP1-HP5,并按照编号的顺序轮流对5个HP的引用计数的字段进行更新,根据实际需要选择合适的阶梯阈值,不限于上述实施例的8和64,还可以根据需要设置成8、32、64、128等更多的阶梯阈值。同时选择其中一个HP作为活跃的HP(假设是HP1),即在该HP的引用计数字段处于阶梯阈值时,只对该HP1的引用计数字段更新。当该HP1的引用计数的字段等于阶梯阈值时,将排序在该HP1之后的下一个HP2作为待活跃HP,且下一个对该数据的重删操作为写入数据,需要增加对该数据的引用计加1时,直接将待活跃HP2的引用计数的字段的值加1,并将该待活跃HP2作为当前活跃的HP。如果下一个对该数据的重删操作为删除数据,则直接对HP1的引用计数的字段的值减1,同时取消HP2作为待活跃HP。
在本发明的一些实施方式中,方法还包括:
将所述数据对应的多个所述映射关系中的非当前活跃的所述映射关系存储到非活跃存储设备中保存;以及
响应于所述非活跃存储设备中的所述数据的多个非当前活跃的所述映射关系中存在所述待活跃映射关系,将所述待活跃映射关系存储到活跃存储设备中。
在本实施例中,HP、LP及PL是描述存储数据的元数据,但也需要保存到相应的磁盘空间中,而本发明使用的多个HP,并基于上述机制在对数据的HP进行更新时仅用到其中1个HP,因此,可将其余的HP存入到其他非活跃的磁盘中(速度较慢的存储设备)。具体地,以固态为存储阵列或存储磁盘的对象存储系统为例,为节省存储空间,可将5个HP中的其他4个HP持久化到HDD硬盘等较慢的设备中持久化,在需要将4个HP中的某个HP作为活跃的HP时,再将其从HDD硬盘总读取出来存入到固态硬盘的元数据存储区域。此外,如果元数据的存储区域是在内存中,同样可将多个HP存储到非内存的外部存储中。这样可有效减少元数据对高速磁盘空间的占用。
在本发明的一些实施方式中,方法还包括:
响应于所述数据的所述映射关系的个数小于预定个数,在所述数据写入时,为所述数据创建新的所述映射关系;
响应于所述数据的所述映射关系的个数小于预定个数且所述第一数据字段的值大于所述阶梯阈值,在所述数据写入时,为所述数据创建新的所述映射关系。
在本实施例中,如果数据在存储阵列或存储磁盘上的个数小于预定的个数时,在再次接收到该数据的写入操作时,不进行重删机制的引用计数操作,而是直接将该数据写入到磁盘中,并获取写入后的物理地址P,并根据该数据的哈希值H生成HP。例如,依然按照上述实施例设置的最大存储份数为5,如果一个数据只有一次写入,即在元数据中只有1个HP1,当该数据再次被写入时,不会触发重删的引用计数机制,而是直接将该数据保存到磁盘中,并获取在磁盘中保存该数据的物理地址P2,并根据该数据的H生成HP2。此时,HP1和HP2的引用计数的字段的值均是1。
在本发明的一些实施例中,与上述方式不同的是,会先将第一个HP的引用计数累加到第一阶梯的阶梯阈值,然后再创建第二个HP,而不是先建立5个引用计数字段的值为1的HP。本实施例适用于在整个存储系统初始化存储的时候,大量的数据开始从0到1的写入,如果要保持多份的话可能会影响数据的存储速度,即在写入数据时因对单个数据多次写入而影响其他未写入过的新的数据的落盘速度。本实施例与上述实施例可根据存储系统的写入速度的情况进行切换。即在写入数据的压力较低时采用上述实施例的先进行多备份的写入,在写入数据的压力较大时采用先存储新数据的机制,在涉及重删机制时先更新HP的引用计数的字段,释放更多的写入数据的能力去处理新数据。
在本发明的一些实施方式中,方法还包括:
响应于所述数据的多个所述映射关系中任意一个所述映射关系的所述第一数据字段的值为最小值,在所述数据删除时则删除所述第一数据字段为最小值的所述映射关系;
响应于所述数据的多个所述映射关系中任意一个所述映射关系的所述第一数据字段的值均为最小值,在所述数据删除时则删除所述第一数据字段为最小值的所述映射关系。
在本实施例中,如果某个数据的多个HP中的每个HP的引用计数的字段的值均为1,则在收到对该数据的删除命令时,则将该数据的其中一个HP删除。
在本发明的一些实施例中,不同于上述在多个HP的引用计数的字段的值均为1时才开始删除HP,在本实施例中,当HP的引用计数的字段的值低于第一阶梯阈值后,不在切换HP,直到对应的当前活跃的HP的值减到0直接删除该HP,也即这种情况下,其他HP应该恰巧小于等于第一阶梯阈值的情况。
在本发明的一些实施方式中,根据数据的哈希值,将数据存储到多个物理地址中,基于所述多个物理地址分别建立所述数据的哈希值对多个所述物理地址的映射关系,包括:
响应于通过逻辑地址的方式对数据进行更新,对所述数据按照预定粒度进行切分以得到多个粒度数据,并分别计算所述多个粒度数据的哈希值;
基于所述粒度数据的哈希值查询所述粒度数据对应的所述映射关系;
响应于不存在所述映射关系,将所述粒度数据写入磁盘中,并根据写入地址及所述粒度数据的哈希值建立所述映射关系。
在本实施例中,对于已知数据的逻辑块地址L(LBA)对数据更新的方式,在接收到用户的新的源数据之后,对新的源数据计算哈希值,如果新的源数据的数据大小超过存储系统的规定的存储粒度,对新的源数据按照设定的粒度切分成多个固定大小的粒度数据,并分别计算多个固定大小的粒度数据的哈希值Hn,其中每个粒度数据对应一个Hn,并将计算得到多个哈希值Hn与逻辑块地址L对应的LH中的H(原有的数据哈希值)进行对比,如果粒度数据的多个哈希值Hn与原有数据的哈希值H不相同,则说明数据已更改,需要重新建立对应的LH,并且要建立多个LH。此时通过粒度数据的多个哈希值Hn,在元数据的HP查找对应的数据,如果没有找到对应的HP,则将对应的粒度数据保存,并生成该粒度数据对应的HP,以及建立该粒度数据的对应LH。在本发明的一些实施方式中,方法还包括:
响应于存在所述映射关系,根据所述映射关系的所述第一数据字段的值计算所述映射关系的所述第一数据字段对应的所述阶梯阈值,并判断所述第一数据字段的值是否小于所阶梯阈值;
响应于小于所述阶梯阈值,将所述第一数据字段的自增一。
在本实施例中,如前所述,如果对多个粒度数据的Hn查找HP之后,存在多个粒度数据的哈希值H对应的物理地址P,则说明该粒度数据已经保存过,则需要更新该粒度数据的HP的引用计数的字段的值,进一步需要获取其引用计数的当前所属的阶梯阈值,并判断该粒度数据的HP的引用计数的值是否小于该阶梯阈值,如果小于该阶梯阈值则将其引用计数的字段的值加1。
此外,对于原有的逻辑块地址对应的H(已经被更改不属于当前L),同样查找该H对应的HP,并将其HP的引用计数的字段减1。如果该H对应的HP(可能存在1个或多个(本实施例中最大5个))的引用计数的值均为最小值,则将1个或多个的HP删除其中1个HP。
在本发明的一些实施例中,当用户通过LH、HP获取数据时,从当前活跃的HP对应的物理地址P中读取相应的数据。
通过本发明提出的一种元数据管理方法,将对数据的重删引用计数分别设置在多个哈希值到物理地址的映射中,通过建立多个映射关系并分别记录引用次数,以防止在数据重删时出现异常。用更少的元数据持久化空间,从而节约空间来保存用户数据;并尽量控制每份重删数据被引用的上限,既因重删节约了数据占用空间,又减少数据被意外损坏后的影响范围,并能够减少元数据集中变化的频率和数量,可提高元数据和数据的可靠性。
如图2所示,本发明的另一方面还提出了一种计算机设备,包括:
至少一个处理器21;以及
存储器22,所述存储器存储有可在所述处理器21上运行的计算机指令23,所述指令23由所述处理器21执行时实现一种元数据管理方法,包括:
根据数据的哈希值,将所述数据存储到多个物理地址中,基于所述多个物理地址分别建立所述数据的哈希值对多个所述物理地址的映射关系;
对所述数据的多个所述映射关系中添加第一数据字段,并根据所述数据的写入或删除更新对应的多个所述映射关系中的所述第一数据字段的值。
在本发明的一些实施方式中,根据所述数据的写入或删除更新对应的多个所述映射关系中的所述第一数据字段的值,包括:
采用阶梯轮询方式对所述多个所述映射关系中的每一个所述映射关系中的第一数据字段的值进行更新。
在本发明的一些实施方式中,采用阶梯轮询方式对所述多个所述映射关系中的每一个所述映射关系中的第一数据字段的值进行更新,包括:
对所述多个所述映射关系编号,并根据编号对所述多个映射关系排序;
对所述多个所述映射关系的第一数据字段的值设立阶梯阈值;
基于所述映射关系的排序后的编号,选择所述多个映射关系中的一个作为当前活跃的所述映射关系;
响应于所述当前活跃的所述映射关系的第一数据字段的值等于所述阶梯阈值,在所述数据的写入时选中所述当前活跃映射关系排序的下一个映射关系作为待活跃映射关系,并更新所述待活跃映射关系的所述第一数据字段的值;以及
在所述数据删除时,更新所述当前活跃映射关系的所述第一数据字段的值。
在本发明的一些实施方式中,方法还包括:
将所述数据对应的多个所述映射关系中的非当前活跃的所述映射关系存储到非活跃存储设备中保存;以及
响应于所述非活跃存储设备中的所述数据的多个非当前活跃的所述映射关系中存在所述待活跃映射关系,将所述待活跃映射关系存储到活跃存储设备中。
在本发明的一些实施方式中,方法还包括:
响应于所述数据的所述映射关系的个数小于预定个数,在所述数据写入时,为所述数据创建新的所述映射关系。
在本发明的一些实施方式中,方法还包括:
响应于所述数据的多个所述映射关系中任意一个所述映射关系的所述第一数据字段的值均为最小值,在所述数据删除时则删除所述第一数据字段为最小值的所述映射关系。
在本发明的一些实施方式中,根据数据的哈希值,将数据存储到多个物理地址中,基于所述多个物理地址分别建立所述数据的哈希值对多个所述物理地址的映射关系,包括:
响应于通过逻辑地址的方式对数据进行更新,对所述数据按照预定粒度进行切分以得到多个粒度数据,并分别计算所述多个粒度数据的哈希值;
基于所述粒度数据的哈希值查询所述粒度数据对应的所述映射关系;
响应于不存在所述映射关系,将所述粒度数据写入磁盘中,并根据写入地址及所述粒度数据的哈希值建立所述映射关系。
在本发明的一些实施方式中,方法还包括:
响应于存在所述映射关系,根据所述映射关系的所述第一数据字段的值计算所述映射关系的所述第一数据字段对应的所述阶梯阈值,并判断所述第一数据字段的值是否小于所阶梯阈值;
响应于小于所述阶梯阈值,将所述第一数据字段的自增一。
如图3所示,本发明的又一方面还提出了一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序402,所述计算机程序402被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (8)

1.一种元数据管理方法,其特征在于,包括:
根据数据的哈希值,将所述数据存储到多个物理地址中,基于所述多个物理地址分别建立所述数据的哈希值对多个所述物理地址的映射关系;
对所述数据的多个所述映射关系中添加第一数据字段,并根据所述数据的写入或删除更新对应的多个所述映射关系中的所述第一数据字段的值;
所述根据所述数据的写入或删除更新对应的多个所述映射关系中的所述第一数据字段的值,包括:
采用阶梯轮询方式对所述多个所述映射关系中的每一个所述映射关系中的第一数据字段的值进行更新;
所述采用阶梯轮询方式对所述多个所述映射关系中的每一个所述映射关系中的第一数据字段的值进行更新,包括:
对所述多个所述映射关系编号,并根据编号对所述多个映射关系排序;
对所述多个所述映射关系的第一数据字段的值设立阶梯阈值;
基于所述映射关系的排序后的编号,选择所述多个映射关系中的一个作为当前活跃的所述映射关系;
响应于所述当前活跃的所述映射关系的第一数据字段的值等于所述阶梯阈值,在所述数据的写入时选中所述当前活跃映射关系排序的下一个映射关系作为待活跃映射关系,并更新所述待活跃映射关系的所述第一数据字段的值;以及
在所述数据删除时,更新所述当前活跃映射关系的所述第一数据字段的值。
2. 根据权利要求1所述的方法,其特征在于,还包括:
将所述数据对应的多个所述映射关系中的非当前活跃的所述映射关系存储到非活跃存储设备中保存;以及
响应于所述非活跃存储设备中的所述数据的多个非当前活跃的所述映射关系中存在所述待活跃映射关系,将所述待活跃映射关系存储到活跃存储设备中。
3.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述数据的所述映射关系的个数小于预定个数,在所述数据写入时,为所述数据创建新的所述映射关系;
响应于所述数据的所述映射关系的个数小于预定个数且所述第一数据字段的值大于所述阶梯阈值,在所述数据写入时,为所述数据创建新的所述映射关系。
4.根据权利要求3所述的方法,其特征在于,还包括:
响应于所述数据的多个所述映射关系中任意一个所述映射关系的所述第一数据字段的值为最小值,在所述数据删除时则删除所述第一数据字段为最小值的所述映射关系;
响应于所述数据的多个所述映射关系中任意一个所述映射关系的所述第一数据字段的值均为最小值,在所述数据删除时则删除所述第一数据字段为最小值的所述映射关系。
5.根据权利要求1所述的方法,其特征在于,所述根据数据的哈希值,将所述数据存储到多个物理地址中,基于所述多个物理地址分别建立所述数据的哈希值对多个所述物理地址的映射关系,包括:
响应于通过逻辑地址的方式对数据进行更新,对所述数据按照预定粒度进行切分以得到多个粒度数据,并分别计算所述多个粒度数据的哈希值;
基于所述粒度数据的哈希值查询所述粒度数据对应的所述映射关系;
响应于不存在所述映射关系,将所述粒度数据写入磁盘中,并根据写入地址及所述粒度数据的哈希值建立所述映射关系。
6.根据权利要求4所述的方法,其特征在于,还包括:
响应于存在所述映射关系,根据所述映射关系的所述第一数据字段的值计算所述映射关系的所述第一数据字段对应的所述阶梯阈值,并判断所述第一数据字段的值是否小于所述阶梯阈值;
响应于小于所述阶梯阈值,将所述第一数据字段的自增一。
7. 一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-6任意一项所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任意一项所述方法的步骤。
CN202111434359.6A 2021-11-29 2021-11-29 一种元数据管理方法、设备及存储介质 Active CN114253472B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111434359.6A CN114253472B (zh) 2021-11-29 2021-11-29 一种元数据管理方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111434359.6A CN114253472B (zh) 2021-11-29 2021-11-29 一种元数据管理方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114253472A CN114253472A (zh) 2022-03-29
CN114253472B true CN114253472B (zh) 2023-09-22

Family

ID=80791356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111434359.6A Active CN114253472B (zh) 2021-11-29 2021-11-29 一种元数据管理方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114253472B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017208096A (ja) * 2016-05-20 2017-11-24 三星電子株式会社Samsung Electronics Co.,Ltd. データの回収方法及び格納方法並びに重複除去モジュール
CN109766341A (zh) * 2018-12-27 2019-05-17 厦门市美亚柏科信息股份有限公司 一种建立哈希映射的方法、装置、存储介质
KR20190123819A (ko) * 2018-04-24 2019-11-04 동국대학교 산학협력단 데이터 저장장치의 주소 맵핑 테이블 운용 방법
CN111949624A (zh) * 2020-09-11 2020-11-17 苏州浪潮智能科技有限公司 一种数据重删操作的pl超限控制方法、装置及可读存储介质
CN113377709A (zh) * 2021-06-08 2021-09-10 北京计算机技术及应用研究所 一种基于哈希的hdfs后端存储系统
CN113419681A (zh) * 2021-06-28 2021-09-21 苏州浪潮智能科技有限公司 存储系统重删方法、系统、装置及存储介质
CN113535708A (zh) * 2021-09-17 2021-10-22 苏州浪潮智能科技有限公司 一种数据重删方法、系统、存储介质及设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017208096A (ja) * 2016-05-20 2017-11-24 三星電子株式会社Samsung Electronics Co.,Ltd. データの回収方法及び格納方法並びに重複除去モジュール
KR20190123819A (ko) * 2018-04-24 2019-11-04 동국대학교 산학협력단 데이터 저장장치의 주소 맵핑 테이블 운용 방법
CN109766341A (zh) * 2018-12-27 2019-05-17 厦门市美亚柏科信息股份有限公司 一种建立哈希映射的方法、装置、存储介质
CN111949624A (zh) * 2020-09-11 2020-11-17 苏州浪潮智能科技有限公司 一种数据重删操作的pl超限控制方法、装置及可读存储介质
CN113377709A (zh) * 2021-06-08 2021-09-10 北京计算机技术及应用研究所 一种基于哈希的hdfs后端存储系统
CN113419681A (zh) * 2021-06-28 2021-09-21 苏州浪潮智能科技有限公司 存储系统重删方法、系统、装置及存储介质
CN113535708A (zh) * 2021-09-17 2021-10-22 苏州浪潮智能科技有限公司 一种数据重删方法、系统、存储介质及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于块设备多版本快照的设计与实现;秦升;李怀阳;海杰;;计算机工程(第22期);71-73 *

Also Published As

Publication number Publication date
CN114253472A (zh) 2022-03-29

Similar Documents

Publication Publication Date Title
US10564850B1 (en) Managing known data patterns for deduplication
US10649897B2 (en) Access request processing method and apparatus, and computer device
EP3229142B1 (en) Read cache management method and device based on solid state drive
US9355112B1 (en) Optimizing compression based on data activity
US9223660B2 (en) Storage device to backup content based on a deduplication system
US8799601B1 (en) Techniques for managing deduplication based on recently written extents
US9727481B2 (en) Cache eviction of inactive blocks using heat signature
EP3153987B1 (en) Duplicate data deletion method and device
US11579777B2 (en) Data writing method, client server, and system
WO2019091085A1 (zh) 一种快照比对的方法和装置
KR20190019805A (ko) 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체
US20130054727A1 (en) Storage control method and information processing apparatus
CN109063192B (zh) 一种高性能海量文件存储系统工作方法
US11436102B2 (en) Log-structured formats for managing archived storage of objects
WO2020000492A1 (zh) 一种存储碎片管理方法及终端
US10509767B2 (en) Systems and methods for managing snapshots of a file system volume
CN114253908A (zh) 键值存储系统的数据管理方法及其装置
KR100443320B1 (ko) 메모리 저장 장치를 관리하기 위한 시스템 및 방법과, 컴퓨터 판독가능한 기록 매체
US20120173801A1 (en) Data processing device, data recording method and data recording program
CN107133334B (zh) 基于高带宽存储系统的数据同步方法
CN113867627A (zh) 一种存储系统性能优化方法及系统
CN114253472B (zh) 一种元数据管理方法、设备及存储介质
US20110264848A1 (en) Data recording device
US20180101475A1 (en) Method and device for combining entries in directory
CN113127376B (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