一种分布式存储系统中纠删数据恢复的方法、装置及介质制造方法及图纸

技术编号:35894546 阅读:62 留言:0更新日期:2022-12-10 10:27
本申请公开了一种分布式存储系统中纠删数据恢复的方法、装置及介质,涉及分布式存储系统领域。包括:获取待恢复的数据块的分布位置以及正常数据块的数据;通过纠删插件、纠删插件对应的纠删算法并根据正常数据块的数据确定待恢复的数据块的数据;将待恢复的数据块的数据写入分布位置以便于对待恢复的对象进行恢复。由此可见,该方法中通过纠删插件和纠删算法实现了对待恢复的数据块的数据的恢复,进而实现了对待恢复的对象的恢复;此外,相比于之前的通过读取整对象的所有条带的数据计算纠删码恢复数据的方式,本申请的方法中以数据块为单位进行数据的恢复,提高数据的恢复效率。率。率。

【技术实现步骤摘要】
一种分布式存储系统中纠删数据恢复的方法、装置及介质


[0001]本申请涉及分布式存储系统领域,特别是涉及一种分布式存储系统中纠删数据恢复的方法、装置及介质。

技术介绍

[0002]在分布式存储系统中,存储池一般使用纠删池存储数据。纠删池即纠删码存储池,在实际存储数据时,将实际存储数据进行纠删码计算,然后将计算结果写入存储池。纠删算法一般会以纠删对象存储资源为单位把一个对象切割成k+m个块,表示存放在不同的对象存储资源(Object Storage Device,OSD)上,其中,k代表原始数据块、m代表校验块。
[0003]一个对象会被切分成多个条带进行存储;对象数据进行修改时,为了方便数据重构,一般会记录一个用户数据版本号。受限于前述两点,用户数据只能以对象为单位进行记录修改版本号信息,当发生磁盘故障引发数据重构时,只能通过读取整对象的所有条带的数据计算纠删码(Erasure coding,EC)才可以恢复数据。但是,若条带中存在被破坏的数据时,则无法获取到该条带上的数据,进而不能根据所有条带上的数据计算纠删码完成对对象的数据恢复。
[0004]由此可见,如何对对象数据进行恢复是本领域人员亟需解决的技术问题。

技术实现思路

[0005]本申请的目的是提供一种分布式存储系统中纠删数据恢复的方法、装置及介质,用于对对象数据进行恢复。
[0006]为解决上述技术问题,本申请提供一种分布式存储系统中纠删数据恢复的方法,包括:获取待恢复的数据块的分布位置以及正常数据块的数据;通过纠删插件、所述纠删插件对应的纠删算法并根据所述正常数据块的数据确定所述待恢复的数据块的数据;将所述待恢复的数据块的数据写入所述分布位置以便于对待恢复的对象进行恢复。
[0007]优选地,所述获取待恢复的数据块的分布位置包括:获取所述待恢复的数据块的编号、所述待恢复的数据块所在的条带的编号以及所述待恢复的数据块在对象存储资源上的物理分布位置。
[0008]优选地,所述通过纠删插件、所述纠删插件对应的纠删算法并根据所述正常数据块的数据确定所述待恢复的数据块的数据包括:根据所述待恢复的数据块所在的所述条带的编号、所述物理分布位置获取预设数量的所述正常数据块;其中,所述预设数量的所述正常数据块的数量至少等于纠删码中原始数据块的数量;通过所述纠删插件、所述纠删算法并根据所述预设数量的所述正常数据块的数量
确定所述待恢复的数据块的数据。
[0009]优选地,所述待恢复的对象为多个;在获取所述物理分布位置之前,所述方法还包括:分别获取各所述待恢复的对象与所述对象存储资源的映射关系;根据所述映射关系确定各所述待恢复的对象所在的所述对象存储资源。
[0010]优选地,在所述获取待恢复的数据块的分布位置以及正常数据块的数据之前,所述方法还包括:判断所述待恢复的数据对应的所述对象存储资源中是否存在发生故障的所述对象存储资源;若是,则对所述发生故障的所述对象存储资源上电以便于对所述发生故障的所述对象存储资源进行数据恢复。
[0011]优选地,在所述获取待恢复的数据块的分布位置以及正常数据块的数据之前,所述方法还包括:在确定出存在修改的所述对象存储资源的情况下,判断所述修改的所述对象存储资源是否为所述待恢复的数据块所在的所述对象存储资源;若否,则更新所述待恢复的对象映射的所述对象存储资源中除所述待恢复的数据块所在的所述对象存储资源外的所述对象存储资源的版本号。
[0012]优选地,在所述将所述待恢复的数据块的数据写入所述分布位置以便于对待恢复的对象进行恢复之前,所述方法还包括:在所述待恢复的对象对应的所述对象存储资源中存在写业务的情况下,判断是否在所述待恢复的数据块上进行所述写业务;若是,则停止对所述待恢复的数据块进行所述写业务,进入所述将所述待恢复的数据块的数据写入所述分布位置以便于对待恢复的对象进行恢复的步骤;在对所述待恢复的对象完成恢复的情况下,则对所述待恢复的数据块进行所述写业务;若否,则继续对所述待恢复的数据块进行所述写业务,并进入所述将所述待恢复的数据块的数据写入所述分布位置以便于对待恢复的对象进行恢复的步骤。
[0013]优选地,在所述将所述待恢复的数据块的数据写入所述分布位置之后,所述方法还包括:判断所述待恢复的对象是否完成恢复;若否,则返回所述获取待恢复的数据块的分布位置以及正常数据块的数据的步骤;若是,则结束。
[0014]优选地,确定所述待恢复的对象完成恢复包括:获取所述待恢复的对象所在的集群的状态和/或所述待恢复的对象中归置组的状态;在所述集群的状态和/或所述归置组的状态为正常状态的情况下,确定所述待恢复的对象完成恢复。
[0015]优选地,在所述获取待恢复的数据块的分布位置以及正常数据块的数据之前,所述方法还包括:
对所述待恢复的对象进行标记;对应地,确定所述待恢复的对象完成恢复包括:自将所述待恢复的数据块的数据写入所述分布位置开始,判断预设时间内所述标记是否存在;若否,则确定所述待恢复的对象完成恢复;若是,则返回所述获取待恢复的数据块的分布位置以及正常数据块的数据的步骤。
[0016]优选地,获取所述待恢复的数据块所在的条带的编号包括:通过Crush算法计算所述待恢复的数据块所在的所述条带的编号;所述分别获取各所述待恢复的对象与所述对象存储资源的映射关系包括:通过PGMap分别获取各所述待恢复的对象与所述对象存储资源的所述映射关系;所述获取所述物理分布位置包括:通过OSDMap获取所述物理分布位置。
[0017]优选地,所述纠删插件为临时积载组件插件或jerasure插件。
[0018]为了解决上述技术问题,本申请还提供一种分布式存储系统中纠删数据恢复的装置,包括:获取模块,用于获取待恢复的数据块的分布位置以及正常数据块的数据;确定模块,用于通过纠删插件、所述纠删插件对应的纠删算法并根据所述正常数据块的数据确定所述待恢复的数据块的数据;写入模块,用于将所述待恢复的数据块的数据写入所述分布位置以便于对待恢复的对象进行恢复。
[0019]为了解决上述技术问题,本申请还提供一种分布式存储系统中纠删数据恢复的装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述的分布式存储系统中纠删数据恢复的方法的步骤。
[0020]为了解决上述技术问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的分布式存储系统中纠删数据恢复的方法的步骤。
[0021]本申请所提供的分布式存储系统中纠删数据恢复的方法,包括:获取待恢复的数据块的分布位置以及正常数据块的数据;通过纠删插件、纠删插件对应的纠删算法并根据正常数据块的数据确定待恢复的数据块的数据;将待恢复的数据块的数据写入分布位置以便于对待恢复的对象进行恢复。由此可见,该方法中通过纠删插件和纠删算法实现了对待恢复的数据块的数据的恢复,进而实现了对待恢复的对象的恢复;此外,相比于之前的通过读取本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式存储系统中纠删数据恢复的方法,其特征在于,包括:获取待恢复的数据块的分布位置以及正常数据块的数据;通过纠删插件、所述纠删插件对应的纠删算法并根据所述正常数据块的数据确定所述待恢复的数据块的数据;将所述待恢复的数据块的数据写入所述分布位置以便于对待恢复的对象进行恢复。2.根据权利要求1所述的分布式存储系统中纠删数据恢复的方法,其特征在于,所述获取待恢复的数据块的分布位置包括:获取所述待恢复的数据块的编号、所述待恢复的数据块所在的条带的编号以及所述待恢复的数据块在对象存储资源上的物理分布位置。3.根据权利要求2所述的分布式存储系统中纠删数据恢复的方法,其特征在于,所述通过纠删插件、所述纠删插件对应的纠删算法并根据所述正常数据块的数据确定所述待恢复的数据块的数据包括:根据所述待恢复的数据块所在的所述条带的编号、所述物理分布位置获取预设数量的所述正常数据块;其中,所述预设数量的所述正常数据块的数量至少等于纠删码中原始数据块的数量;通过所述纠删插件、所述纠删算法并根据所述预设数量的所述正常数据块的数量确定所述待恢复的数据块的数据。4.根据权利要求3所述的分布式存储系统中纠删数据恢复的方法,其特征在于,所述待恢复的对象为多个;在获取所述物理分布位置之前,所述方法还包括:分别获取各所述待恢复的对象与所述对象存储资源的映射关系;根据所述映射关系确定各所述待恢复的对象所在的所述对象存储资源。5.根据权利要求4所述的分布式存储系统中纠删数据恢复的方法,其特征在于,在所述获取待恢复的数据块的分布位置以及正常数据块的数据之前,所述方法还包括:判断所述待恢复的数据对应的所述对象存储资源中是否存在发生故障的所述对象存储资源;若是,则对所述发生故障的所述对象存储资源上电以便于对所述发生故障的所述对象存储资源进行数据恢复。6.根据权利要求5所述的分布式存储系统中纠删数据恢复的方法,其特征在于,在所述获取待恢复的数据块的分布位置以及正常数据块的数据之前,所述方法还包括:在确定出存在修改的所述对象存储资源的情况下,判断所述修改的所述对象存储资源是否为所述待恢复的数据块所在的所述对象存储资源;若否,则更新所述待恢复的对象映射的所述对象存储资源中除所述待恢复的数据块所在的所述对象存储资源外的所述对象存储资源的版本号。7.根据权利要求2至6任意一项所述的分布式存储系统中纠删数据恢复的方法,其特征在于,在所述将所述待恢复的数据块的数据写入所述分布位置以便于对待恢复的对象进行恢复之前,所述方法还包括:在所述待恢复的对象对应的所述对象存储资源中存在写业务的情况下,判断是否在所述待恢复的数据块上进行所述写业务;若是,则停止对所述待恢复的数据块进行所述写业务,进入所述将所述待恢复的数据
块的数据写入所述分布位置以便于对待恢复的对象进行恢复的步骤;在对所述待恢复的对象完...

【专利技术属性】
技术研发人员:孔军
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1