CN114221975A - 基于smr盘的云存储数据恢复方法及装置、电子设备 - Google Patents
基于smr盘的云存储数据恢复方法及装置、电子设备 Download PDFInfo
- Publication number
- CN114221975A CN114221975A CN202111442600.XA CN202111442600A CN114221975A CN 114221975 A CN114221975 A CN 114221975A CN 202111442600 A CN202111442600 A CN 202111442600A CN 114221975 A CN114221975 A CN 114221975A
- Authority
- CN
- China
- Prior art keywords
- zone
- task
- recovery
- damaged
- recovered
- 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.)
- Granted
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000002159 abnormal effect Effects 0.000 claims abstract description 22
- 230000003111 delayed effect Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于SMR盘的云存储数据恢复方法及装置、电子设备,包括:根据写入的对象划分的数据块的数量N+M,从预先分配的至少一个区域组ZG中选择Zone的数量为N+M的目标ZG,并指示目标ZG中各Zone所在的存储节点写入对应的数据块;确定至少一个ZG中出现异常Zone的待恢复ZG;统计待恢复ZG中各Zone的数据长度,根据统计结果判定待恢复ZG是否满足恢复条件;若待恢复ZG为满足恢复条件的第一ZG时,确定第一ZG中发生数据丢失的损坏Zone;确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone的任务。本申请避免了对每个文件的数据恢复追踪,简化了恢复的管理流程。
Description
技术领域
本发明涉及云存储技术领域,特别涉及一种基于SMR盘的云存储数据恢复方法及装置、电子设备。
背景技术
云存储系统中,文件在磁盘中写入时,文件按照预设的EC类型分为若干block数据块,block数据块是存在存储节点上,当文件中出现坏损需要恢复时,通过管理节点向存储节点下发待恢复block,告知存储节点来恢复block数据。
SMR(Shingled Magnetic Recording,叠瓦式磁记录)是一种领先的下一代磁盘技术,相邻磁道之间按序部分重叠,能提高单位存储介质的存储密度,降低存储成本。正是由于SMR磁盘物理上的特点,导致了它的读行为虽然与普通HDD(Hard Disk Drive,机械硬盘)无异,但是它的写行为却有着巨大的变化,它不支持随机写和原地更新写,因为这样会导致相重叠磁道数据被覆盖。因此SMR磁盘仅支持从头到尾的顺序写入。
SMR磁盘将磁道划分为多个带(Band),即连续磁道所构成的壳连续写入的区域,每个区域成为一个需要顺序写入的基本单元。Band是SMR磁盘物理概念,对应的逻辑概念称为“区域”(Zone)。
云存储系统中,对于SMR盘的管理,当文件分成数据块写入各存储节点的各个Zone中时,现有技术需要追踪每个文件的每个数据块在各个Zone中的情况,由于SMR磁盘在价格上有着无法规避的优势,因此分布式对象存储系统需要支持SMR磁盘,如何实现SMR磁盘上Zone的管理进行数据写入,和所有Zone信息在管理节点元数据的构建和维护,负载均衡、空间的复用,Zone的恢复等成为亟待解决的问题。
发明内容
本申请的目的是提供一种基于SMR盘的云存储数据恢复方法及装置、电子设备。
第一方面,本申请实施例提供了一种基于SMR盘的云存储数据恢复方法,所述方法包括:
响应于文件存储指令,根据写入的对象划分的数据块的数量N+M,从预先分配的至少一个区域组ZG中选择Zone的数量为N+M的目标ZG,并指示所述目标ZG中各Zone所在的存储节点写入对应的数据块;
响应于文件恢复检查指令,确定所述至少一个ZG中出现异常Zone的待恢复ZG;
统计所述待恢复ZG中各Zone的数据长度,根据统计结果判定所述待恢复ZG是否满足恢复条件;
若所述待恢复ZG为满足恢复条件的第一ZG时,确定所述第一ZG中发生数据丢失的损坏Zone;
确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone的任务。
在一种可能实现的方式中,确定所述第一ZG中发生数据丢失的损坏Zone,包括:
确定所述第一ZG中数据块长度或写指针位置被重置为0的Zone为损坏Zone;
确定所述第一ZG中数据块长度为非零但小于最大数据块长度的Zone为损坏Zone,所述最大数据块长度为所述第一ZG中zone的最大数据块长度。
在一种可能实现的方式中,响应于文件恢复检查指令,确定所述至少一个ZG中出现异常Zone的待恢复ZG,包括:
响应于文件恢复检查指令,确定任一ZG的至少一个Zone的数据块长度或写指针位置被重置为0,确定该ZG为出现异常Zone的待恢复ZG。
在一种可能实现的方式中,统计所述待恢复ZG中各Zone的数据长度,根据统计结果判定所述待恢复ZG是否满足恢复条件,包括:
统计所述待恢复ZG中各个Zone的数据块长度,得到至少一个数据块长度,并确定各数据块长度对应的Zone数量;
当最大的Zone数量L满足恢复条件时,确定所述待恢复ZG可以恢复,所述恢复条件为:所述L满足N<=L<N+M。
在一种可能实现的方式中,所述方法还包括:
接收存储节点按照预设时间间隔上报的预先分配的ZG中各个Zone的元数据信息;
以上报的Zone的元数据信息为基准,更新ZG缓存中缓存的预先分配的至少一个ZG中Zone的元数据;
所述元数据信息包括Zone所属的ZG、在所属ZG中的序号、位置索引信息、数据块长度及EC类型。
在一种可能实现的方式中,若所述待恢复ZG为满足恢复条件的第一ZG时,还包括:
将所述第一ZG添加到可恢复ZG队列中,将所述第一ZG中损坏Zone的元数据信息加入所述第一ZG对应的Zone任务队列,所述元数据信息包括Zone所属的ZG、在所属ZG中的序号、位置索引信息、数据块长度及EC类型;
确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone恢复的任务,包括:
确定所述可恢复ZG队列中第一ZG的恢复顺序,按照恢复顺序采用如下方式进行第一ZG恢复:根据所述第一ZG对应的Zone任务队列中损坏Zone的元数据信息,确定未损坏Zone及执行损坏Zone恢复的存储节点,生成利用所述未损坏Zone中数据进行损坏Zone数据恢复的任务,将所述损坏Zone恢复的任务加入正在恢复Zone任务队列并下发给确定的存储节点。
在一种可能实现的方式中,确定所述可恢复ZG队列的第一ZG的恢复顺序,包括:根据可恢复ZG队列中第一ZG中存储的对象的EC类型确定对应N+M,N为EC类型中正常数据块个数,M为EC类型中冗余数据块个数;
按照确定的第一ZG对应的M值进行从小到大排序,对可恢复队列中的第一ZG进行排序,得到可恢复ZG队列中第一ZG的恢复顺序。
在一种可能实现的方式中,将所述损坏Zone恢复的任务加入正在恢复Zone任务队列并下发给确定的存储节点之后,还包括:
确定存储节点执行损坏Zone恢复任务执行成功时,将执行成功的损坏Zone恢复的任务从正在恢复Zone任务队列中删除;
确定存储节点执行损坏Zone恢复任务失败时,
将执行失败的损坏Zone恢复的任务从所述正在恢复Zone任务队列中移除并加入到恢复失败Zone任务队列中,将执行失败的损坏Zone恢复的任务对应的失败次数加1;
判定当前失败次数超过预设失败阈值,且所述损坏Zone恢复的任务不为其所在的Zone任务队列中最后一个Zone任务,将所述损坏Zone恢复的任务从其所在恢复失败Zone任务队列和Zone任务队列中移除加入到延迟重试队列,以使损坏Zone恢复的任务经过预设时间间隔后进行恢复重试;
判定当前失败次数超过预设失败阈值,且所述损坏Zone恢复的任务为其所在的Zone任务队列中最后一个Zone任务,则将所述损坏Zone恢复的任务从其所在的恢复失败Zone任务队列及所在的Zone任务队列中移除,加入到延迟重试队列,以使损坏Zone恢复的任务经过预设时间间隔后进行恢复重试,将其所在的Zone任务队列清除。
在一种可能实现的方式中,将所述损坏Zone恢复的任务从其所在恢复失败Zone任务队列中移除加入到延迟重试队列之后,还包括:
按照预设时间间隔,从延迟重试队列中拉取损坏Zone恢复的任务到正在恢复Zone任务队列;
确定延迟重试队列超过预设长度,删除最早加入延迟重试队列中损坏Zone恢复的任务。
第二方面,本发明提供一种基于SMR盘的云存储数据恢复装置,该装置包括:
写入模块,用于响应于文件存储指令,根据写入的对象划分的数据块的数量N+M,从预先分配的至少一个区域组ZG中选择Zone的数量为N+M的目标ZG,并指示所述目标ZG中各Zone所在的存储节点写入对应的数据块;
确定待恢复ZG模块,用于响应于文件恢复检查指令,确定所述至少一个ZG中出现异常Zone的待恢复ZG;
统计模块,用于统计所述待恢复ZG中各Zone的数据长度,根据统计结果判定所述待恢复ZG是否满足恢复条件;
确定损坏Zone模块,用于若所述待恢复ZG为满足恢复条件的第一ZG时,确定所述第一ZG中发生数据丢失的损坏Zone;
下发模块,用于确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone的任务。
第三方面,本发明提供一种电子设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述的方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时执行第一方面所述方法对应的步骤。
基于以上本发明提供的基于SMR盘的云存储数据恢复方法,本发明具有以下有益效果:
本申请通过存储节点对管理节点的上报机制和管理节点通过接收上报的元数据信息进行全局ZG缓存的更新,不仅可以将云存储系统中写入时的异常数据检测出来;也可将云存储系统运行过程中,存储节点上报的目的是为了使缓存中的数据更准确。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请一个实施例的基于SMR盘的云存储数据恢复方法的流程示意图;
图2为根据本申请一个实施例的ZG结构的示意图;
图3为根据本申请一个实施例的基于SMR盘的云存储数据恢复装置结构示意图;
图4为根据本申请一个实施例的一种电子设备结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
在本申请实施例的描述中,除非另有说明,术语“多个”是指两个或两个以上,其它量词与之类似应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。方法在实际的处理过程中或者控制设备执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
鉴于相关技术中如何实现SMR磁盘上Zone的管理进行数据写入,和所有Zone信息在管理节点元数据的构建和维护,负载均衡、空间的复用,Zone的恢复的问题。本申请提出一种基于SMR盘的云存储数据恢复方法及装置、电子设备,能够提高云存储系统的恢复成功率和空间利用率。
有鉴于此,本申请的发明构思为:block数据块写在存储节点各个Zone上,SMR的管理节点下发时不涉及block数据块,而是通过下发区域组ZG包含的zone的元数据信息,告知存储节点进行zone数据恢复,来实现block数据块恢复从而恢复文件。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面结合附图对本申请实施例中的基于SMR盘的云存储数据恢复方法进行详细说明。
图1示出了本申请一个实施例提供的基于SMR盘的云存储数据恢复方法流程示意图,包括:
步骤101:响应于文件存储指令,根据写入的对象划分的数据块的数量N+M,从预先分配的至少一个区域组ZG中选择Zone的数量为N+M的目标ZG,并指示所述目标ZG中各Zone所在的存储节点写入对应的数据块。
具体来讲,纠删码(erasure coding,EC)是一种数据保护方法,它将数据分割成若干数据块和冗余块,把冗余块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其它地理位置,在出现异常数据不超过冗余数据时,可以根据其他数据块计算出异常的数据。N+M中N代表正常的数据块数量,M代表发生异常冗余的数据块数据量。
区域组ZG的作用为:因为SMR盘的Zone内仅支持顺序写入和一次性数据擦除特点,所以为了避免Zone内空间浪费,应该进行Zone的复用,结合云存储系统EC写入模式,多个文件的block数据块同时写入到多个Zone,同一时刻有一批Zone进行数据写入,和Zone的信息上报,因此设计了ZG,实现一组Zone的管理。
区域组ZG为若干Zone的集合,每个区域组ZG中包括它的EC类规则、每个Zone的上报状态、ZG创建的时间、ZG修改的时间、每个Zone所在存储节点的位置标号id,每个Zone有效数据长度。
参照图2的ZG结构的示意图,在进行文件数据写入时,一个文件数据可以划分为多个对象,一个对象可以划分为N+M个数据块,在接收到对象数据写入指令,需要将对应的一个文件中的数据以N+M个对象形式划分为多个数据块并写入N+M个多个zone时,以上述N+M个多个zone作为一个ZG(ZoneGroup,一组zone的集合)进行存储和管理,其中,一个ZG内包含N+M个多个zone,每个zone分别映射到不同存储节点上的固定SMR盘的某个具体zone区域。
在数据写入时,外部会指定N+M,例如外部指定文件按照EC类型为4+1写入磁盘时,管理节点选择一个5个Zone组成的目标ZG,然后指示5个Zone中各个Zone所在的存储节点写入对应的数据块。
步骤102:响应于文件恢复检查指令,确定所述至少一个ZG中出现异常Zone的待恢复ZG。
作为一种可选的实施方式,响应于文件恢复检查指令,确定所述至少一个ZG中出现异常Zone的待恢复ZG,包括:
响应于文件恢复检查指令,确定任一ZG的至少一个Zone的数据块长度或写指针位置被重置为0,确定该ZG为出现异常Zone的待恢复ZG。
写指针位置指数据写入各Zone的实时位置。
具体来讲,管理节点根据存储节点定期上报的各个Zone元数据信息对区域组ZG进行更新,当文件需要检查恢复时,管理节点统计所有区域组ZG的所有Zone的数据块长度或写指针位置,管理节点如果发现存储节点出现拔盘、坏盘、坏扇区、节点删除、节点离线且超时等情形,管理节点会将ZG缓存中对应的这些Zone信息主动进行重置(Zone的数据块长度或写指针位置被重置为0),如果有任一ZG的至少一个Zone的数据块长度或写指针位置被重置为0,则确定这个Zone中的数据需要恢复,即确定这个Zone所在的区域组ZG为出现异常Zone的待恢复ZG;而未出现数据块长度或写指针位置被重置为0的Zone及它所在的区域组ZG为不需要恢复的正常区域组ZG。
步骤103:统计所述待恢复ZG中各Zone的数据长度,根据统计结果判定所述待恢复ZG是否满足恢复条件。
作为一种可选的实施方式,统计所述待恢复ZG中各个Zone的数据块长度,得到至少一个数据块长度,并确定各数据块长度对应的Zone数量;
当最大的Zone数量L满足恢复条件时,确定所述待恢复ZG可以恢复,所述恢复条件为:所述L满足N<=L<N+M。
具体来讲,当步骤102中筛选出需要恢复的待恢复ZG后,从筛选出的待恢复ZG中进一步判断哪些ZG是可以恢复的。
假设有两个目标ZG分别为ZG1和ZG2,ZG1的EC类型为3+1,ZG2的EC类型为4+1;当统计各个Zone的数据块长度后发现ZG1中存在Zone的数据块长度被重置为0,ZG2中也存在Zone的数据块长度被重置为0,即ZG1和ZG2均为需要恢复的待恢复ZG。管理节点统计ZG1和ZG2中各个Zone的数据块长度得到ZG1的四个Zone的数据块长度分别为:100、0、200、200;ZG2的五个Zone的数据块长度分别为:300、0、300、300、100。
ZG1中最大的数据块长度为200,200出现频次最大为2次即L=2,ZG1的EC类型中N为3,M为1,因为3<=2<3+1这个不等式不成立,所以ZG1不可恢复;同理判断ZG2不可恢复。
步骤104:若所述待恢复ZG为满足恢复条件的第一ZG时,确定所述第一ZG中发生数据丢失的损坏Zone。
具体来讲,根据上述步骤103中的描述,当确定L满足N<=L<N+M时则管理节点确定第一ZG中存在发生数据丢失的损坏Zone。
作为一种可选的实施方式,确定所述第一ZG中发生数据丢失的损坏Zone,包括:
确定所述第一ZG中数据块长度或写指针位置被重置为0的Zone为损坏Zone;
确定所述第一ZG中数据块长度为非零但小于最大数据块长度的Zone为损坏Zone,所述最大数据块长度为所述第一ZG中zone的最大数据块长度。
本申请中的损坏Zone,包括数据块长度或写指针位置被重置为0的Zone以及数据块长度为非零但小于最大数据块长度的Zone,例如步骤103中的ZG1损坏Zone包括数据长度为100的Zone和数据长度为0的Zone。
步骤105:确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone的任务。
管理节点将需要恢复的损坏Zone恢复的任务下发给存储节点,存储节点接收恢复损坏Zone的任务并开始恢复。
本申请将文件恢复转换为第一ZG的恢复,Zone数据恢复正常后即实现了文件恢复,避免了对每个文件的数据恢复追踪,简化了数据恢复的管理流程。
作为一种可选的实施方式,所述方法还包括:
接收存储节点按照预设时间间隔上报的预先分配的ZG中各个Zone的元数据信息;
以上报的Zone的元数据信息为基准,更新ZG缓存中缓存的预先分配的至少一个ZG中Zone的元数据;
所述元数据信息包括Zone所属的ZG、在所属ZG中的序号、位置索引信息、数据块长度及EC类型。
具体来讲,管理节点接收存储节点全量上报的zone的元数据信息,并获取ZG缓存中的ZG的元数据,管理节点在获取最准确的zone的元数据信息与全局缓存对比,如果发现不一致以存储节点上报的zone的元数据信息为基准去更新全局缓存中的zone的元数据信息,保证ZG的元数据是正确的。
本申请通过存储节点对管理节点的上报机制和管理节点通过接收上报的元数据信息进行全局ZG缓存的更新,不仅可以将云存储系统中写入时的异常数据检测出来;也可将云存储系统运行过程中,存储节点上报的目的是为了使缓存中的数据更准确。
存储节点定期将Zone恢复结果的上报给存储节点,可以利用信号量通知机制,来保证管理节点及时获取Zone任务恢复的结果,然后更新全局ZG缓存,保证数据的可用性和准确性,提升空间使用率。
作为一种可选的实施方式,若所述待恢复ZG为满足恢复条件的第一ZG时,还包括:
将所述第一ZG添加到可恢复ZG队列中,将所述第一ZG中损坏Zone的元数据信息加入所述第一ZG对应的Zone任务队列,所述元数据信息包括Zone所属的ZG、在所属ZG中的序号、位置索引信息、数据块长度及EC类型;
具体来讲,根据上述方法判定所述待恢复ZG为第一ZG时,将所述第一ZG中损坏Zone的元数据信息添加到可恢复ZG队列中。
优选的可恢复ZG队列在本申请可以设定一个恢复周期,到达恢复周期时,管理节点查看可恢复ZG队列中未恢复的第一ZG,选择本恢复周期需要恢复的第一ZG组成一个ZG集合。本申请中将恢复周期定义为天。设计为按天为单位组织的ZG集合,便于灵活控制恢复某段时间范围(本申请以1天为一个时间范围)的异常数据。
将确定的某段时间范围例如确定的某一天要处理的第一ZG中损坏Zone的元数据信息加入到第一ZG对应的Zone任务队列,用于记录当前有哪些第一ZG包含处于正在恢复中的损坏Zone,每个Zone任务队列可能存在多个需要恢复的损坏Zone。
确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone恢复的任务,包括:
确定所述可恢复ZG队列的第一ZG的恢复顺序,按照恢复顺序进行第一ZG恢复;
根据可恢复ZG队列中第一ZG中存储的对象的EC类型确定对应N+M,N为EC类型中正常数据块个数,M为EC类型中冗余数据块个数;
按照确定的第一ZG对应的M值进行从小到大排序,对可恢复队列中的第一ZG进行排序,得到可恢复ZG队列的第一ZG的恢复顺序。
具体来讲,对于上述的可恢复ZG队列,管理节点将损坏Zone恢复的任务下发给存储节点进行恢复时,本申请中对恢复顺序进行分级处理,优先对损坏程度更严重的第一ZG进行恢复,对于可恢复的损坏Zone,为了避免再损坏一部分数据就导致不可恢复,优先处理损坏Zone数量更多的第一ZG。优先恢复EC类型中M值较小的对应的第一ZG,因为EC类型中冗余数据块个数M越小,在继续损坏一部分数据块的情况下,这部分ZG更容易导致不可恢复,所以对其进行优先恢复,有助于提升系统的恢复成功率和空间利用率。
其中,在对第一ZG恢复时,根据所述第一ZG对应的Zone任务队列中损坏Zone的元数据信息,确定未损坏Zone及执行损坏Zone恢复的存储节点,生成利用所述未损坏Zone中数据进行损坏Zone数据恢复的任务,将所述损坏Zone恢复的任务加入正在恢复Zone任务队列并下发给确定的存储节点。
具体来讲,执行损坏Zone恢复的存储节点包括两种情况:
情况一,对完全坏掉的Zone,管理节点重新确定存储节点,从中选择一个Zone,执行损坏Zone恢复的任务;
情况二,数据不完整,可能发生数据丢失,可以选择损坏Zone所在的存储节点或重新确定存储节点,从中选择一个Zone也可以。
具体来讲,管理节点在对第一ZG进行恢复时,可以确定对各个损坏Zone恢复的对应存储节点以及确定未损坏的Zone,管理节点下发恢复任务时,需要将未损坏的Zone数据下发给存储节点,存储节点利用未损坏Zone中数据进行恢复。
生成恢复任务下发给对应的存储节点,存储节点利用各个第一ZG对应的EC类型,利用所述未损坏Zone中数据进行损坏Zone数据恢复。
优选的,本申请管理节点通过定期心跳通知存储节点损坏Zone数据恢复的任务,使存储节点及时获取任务并进行恢复。
本申请中第一ZG中损坏Zone的整体恢复部署是由管理节点统筹安排,所以为了使整体恢复流程更加有序,本申请对存在异常且可恢复的ZG,设计了完善的队列流转控制策略,对损坏Zone恢复情况的状态进行流转控制,精细控制各个损坏Zone的恢复状态,减小数据操作的粒度,保证了数据恢复下发的高性能处理。
下面具体描述队列流转过程:
作为一种可选的实施方式,将所述损坏Zone恢复的任务加入正在恢复Zone任务队列并下发给确定的存储节点之后,还包括:
确定存储节点执行损坏Zone恢复任务执行成功时,将执行成功的损坏Zone恢复的任务从正在恢复Zone任务队列中删除;
确定存储节点执行损坏Zone恢复任务失败时,将执行失败的损坏Zone恢复的任务从所述正在恢复Zone任务队列中移除并加入到恢复失败Zone任务队列中,将执行失败的损坏Zone恢复的任务对应的失败次数加1;
判定当前失败次数超过预设失败阈值,且所述损坏Zone恢复的任务不为其所在的Zone任务队列中最后一个Zone任务,将所述损坏Zone恢复的任务从其所在恢复失败Zone任务队列和Zone任务队列中移除加入到延迟重试队列,以使损坏Zone恢复的任务经过预设时间间隔后进行恢复重试;
判定当前失败次数超过预设失败阈值,且所述损坏Zone恢复的任务为其所在的Zone任务队列中最后一个Zone任务,则将所述损坏Zone恢复的任务从其所在的恢复失败Zone任务队列及所在的Zone任务队列中移除,加入到延迟重试队列,以使损坏Zone恢复的任务经过预设时间间隔后进行恢复重试,将其所在的Zone任务队列清除。
具体来讲,管理节点向存储节点下发任务后,存储节点恢复失败。
超时未收到存储节点的反馈结果视为恢复失败,将损坏Zone恢复的任务从正在恢复Zone任务队列移除,加入到恢复失败Zone任务队列。
1、失败次数未超阈值;
失败次数+1,将损坏Zone恢复的任务从正在恢复Zone任务队列中移除,加入到恢复失败Zone任务队列。
2、失败次数超阈值;
情况一:所述损坏Zone恢复的任务不为其所在的Zone任务队列中最后一个Zone任务,从恢复失败Zone任务队列中移除,从所在的Zone任务中移除,放到延迟重试队列中等待重试,重试时在Zone任务队列中重建一个任务;
情况二:所述损坏Zone恢复的任务为其所在的Zone任务队列中最后一个Zone任务,从恢复失败Zone任务队列中移除,从所在的Zone任务中移除,加入到延迟重试队列,将其所在的Zone任务队列清除。
管理节点向存储节点下发任务后,存储节点恢复成功。
情况一:所述损坏Zone恢复的任务不为其所在的Zone任务队列中最后一个Zone任务,从正在恢复Zone任务队列中移除;
情况二:所述损坏Zone恢复的任务为其所在的Zone任务队列中最后一个Zone任务,从正在恢复Zone任务队列中移除,从所在的Zone任务队列中移除,将其所在的Zone任务队列清除。
作为一种可选的实施方式,将所述损坏Zone恢复的任务从其所在恢复失败Zone任务队列中移除加入到延迟重试队列之后,还包括:
按照预设时间间隔,从延迟重试队列中拉取损坏Zone恢复的任务到正在恢复Zone任务队列;
确定延迟重试队列超过预设长度,删除最早加入延迟重试队列中损坏Zone恢复的任务。
从延迟重试队列中拉取是指管理节点将损坏Zone恢复的任务按顺序从延迟重试队列中一个一个的加入到正在恢复Zone任务队列中,延迟重试队列中仍保留此损坏Zone恢复的任务。
优选的,延迟重试队列超过预设长度,本申请规定的预设长度为100万条,就删除最早加入延迟重试队列中损坏Zone恢复的任务。
为了防止因大批量失败同时重试造成的信令风暴和资源负载压力过大。管理节点对于上述的恢复失败Zone任务队列,判断当前时间间隔恢复任务启动的时间是否超过预设时间间隔,优选的本申请预设时间间隔为60秒,该预设时间间隔可通过配置文件灵活配置。超过预设时间间隔的失败任务,管理节点将其添加到延迟重试队列中,通过定期心跳通知给存储节点,完成任务下发。本申请通过重试机制,针对实际复杂的环境,提升了系统的健壮性和恢复成功率。
作为一种可选的实施方式,存储节点收到管理节点下发的损坏Zone数据恢复的任务后进行恢复处理,处理后的结果,上报给管理节点。管理节点保存结果,本申请中存储节点基于信号量机制,提前向管理节点发送通知信号以示提醒接收恢复结果,管理节点收到恢复结果后立即进行结果分支处理,分为恢复成功和恢复失败两个分支,而不需要等待固定周期,保证对恢复结果的高效更新,可以及时进行全局区域组ZG的更新,让恢复正常的ZG及时利用起来,进而提升云存储系统对外的空间利用率。
实施例2
基于相同的发明构思,本申请还提供一种基于SMR盘的云存储数据恢复装置300,如图3所示,该装置包括:
写入模块301,用于响应于文件存储指令,根据写入的对象划分的数据块的数量N+M,从预先分配的至少一个区域组ZG中选择Zone的数量为N+M的目标ZG,并指示所述目标ZG中各Zone所在的存储节点写入对应的数据块;
确定待恢复ZG模块302,用于响应于文件恢复检查指令,确定所述至少一个ZG中出现异常Zone的待恢复ZG;
统计模块303,用于统计所述待恢复ZG中各Zone的数据长度,根据统计结果判定所述待恢复ZG是否满足恢复条件;
确定损坏Zone模块304,用于若所述待恢复ZG为满足恢复条件的第一ZG时,确定所述第一ZG中发生数据丢失的损坏Zone;
下发模块305,用于确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone的任务。
可选的,确定损坏Zone模块304具体用于:
确定所述第一ZG中数据块长度或写指针位置被重置为0的Zone为损坏Zone;
确定所述第一ZG中数据块长度为非零但小于最大数据块长度的Zone为损坏Zone,所述最大数据块长度为所述第一ZG中zone的最大数据块长度。
可选的,确定待恢复ZG模块302具体用于:
响应于文件恢复检查指令,确定任一ZG的至少一个Zone的数据块长度或写指针位置被重置为0,确定该ZG为出现异常Zone的待恢复ZG。
可选的,统计模块303具体用于:
统计所述待恢复ZG中各个Zone的数据块长度,得到至少一个数据块长度,并确定各数据块长度对应的Zone数量;
当最大的Zone数量L满足恢复条件时,确定所述待恢复ZG可以恢复,所述恢复条件为:所述L满足N<=L<N+M。
可选的,所述装置还包括接收模块306,用于接收存储节点按照预设时间间隔上报的预先分配的ZG中各个Zone的元数据信息;
以上报的Zone的元数据信息为基准,更新ZG缓存中缓存的预先分配的至少一个ZG中Zone的元数据;
所述元数据信息包括Zone所属的ZG、在所属ZG中的序号、位置索引信息、数据块长度及EC类型。
可选的,确定损坏Zone模块304还用于:
将所述第一ZG添加到可恢复ZG队列中,将所述第一ZG中损坏Zone的元数据信息加入所述第一ZG对应的Zone任务队列,所述元数据信息包括Zone所属的ZG、在所属ZG中的序号、位置索引信息、数据块长度及EC类型;
确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone恢复的任务,包括:
确定所述可恢复ZG队列中第一ZG的恢复顺序,按照恢复顺序采用如下方式进行第一ZG恢复:根据所述第一ZG对应的Zone任务队列中损坏Zone的元数据信息,确定未损坏Zone及执行损坏Zone恢复的存储节点,生成利用所述未损坏Zone中数据进行损坏Zone数据恢复的任务,将所述损坏Zone恢复的任务加入正在恢复Zone任务队列并下发给确定的存储节点。
可选的,确定损坏Zone模块304具体用于:
根据可恢复ZG队列中第一ZG中存储的对象的EC类型确定对应N+M,N为EC类型中正常数据块个数,M为EC类型中冗余数据块个数;
按照确定的第一ZG对应的M值进行从小到大排序,对可恢复队列中的第一ZG进行排序,得到可恢复ZG队列中第一ZG的恢复顺序。
可选的,确定损坏Zone模块304还用于:
确定存储节点执行损坏Zone恢复任务执行成功时,将执行成功的损坏Zone恢复的任务从正在恢复Zone任务队列中删除;
确定存储节点执行损坏Zone恢复任务失败时,
将执行失败的损坏Zone恢复的任务从所述正在恢复Zone任务队列中移除并加入到恢复失败Zone任务队列中,将执行失败的损坏Zone恢复的任务对应的失败次数加1;
判定当前失败次数超过预设失败阈值,且所述损坏Zone恢复的任务不为其所在的Zone任务队列中最后一个Zone任务,将所述损坏Zone恢复的任务从其所在恢复失败Zone任务队列和Zone任务队列中移除加入到延迟重试队列,以使损坏Zone恢复的任务经过预设时间间隔后进行恢复重试;
判定当前失败次数超过预设失败阈值,且所述损坏Zone恢复的任务为其所在的Zone任务队列中最后一个Zone任务,则将所述损坏Zone恢复的任务从其所在的恢复失败Zone任务队列及所在的Zone任务队列中移除,加入到延迟重试队列,以使损坏Zone恢复的任务经过预设时间间隔后进行恢复重试,将其所在的Zone任务队列清除。
可选的,确定损坏Zone模块304还用于:
按照预设时间间隔,从延迟重试队列中拉取损坏Zone恢复的任务到正在恢复Zone任务队列;
确定延迟重试队列超过预设长度,删除最早加入延迟重试队列中损坏Zone恢复的任务。
在介绍了本申请示例性实施方式的基于SMR盘的云存储数据恢复方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的电子设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的基于SMR盘的云存储数据恢复方法中的步骤。
下面参照图4来描述根据本申请的这种实施方式的电子设备130,即上述基于SMR盘的云存储数据恢复设备。图4显示的电子设备130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,电子设备130以通用电子设备的形式表现。电子设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。
存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的一种基于SMR盘的云存储数据恢复方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种基于SMR盘的云存储数据恢复方法的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于监控的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务端上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和方框图来描述的。应理解可由计算机程序指令实现流程图和方框图中的每一流程和/或方框、以及流程图和方框图中的流程和方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种基于SMR盘的云存储数据恢复方法,其特征在于,所述方法包括:
响应于文件存储指令,根据写入的对象划分的数据块的数量N+M,从预先分配的至少一个区域组ZG中选择Zone的数量为N+M的目标ZG,并指示所述目标ZG中各Zone所在的存储节点写入对应的数据块;
响应于文件恢复检查指令,确定所述至少一个ZG中出现异常Zone的待恢复ZG;
统计所述待恢复ZG中各Zone的数据长度,根据统计结果判定所述待恢复ZG是否满足恢复条件;
若所述待恢复ZG为满足恢复条件的第一ZG时,确定所述第一ZG中发生数据丢失的损坏Zone;
确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone的任务。
2.根据权利要求1所述的方法,其特征在于,确定所述第一ZG中发生数据丢失的损坏Zone,包括:
确定所述第一ZG中数据块长度或写指针位置被重置为0的Zone为损坏Zone;
确定所述第一ZG中数据块长度为非零但小于最大数据块长度的Zone为损坏Zone,所述最大数据块长度为所述第一ZG中zone的最大数据块长度。
3.根据权利要求1所述的方法,其特征在于,响应于文件恢复检查指令,确定所述至少一个ZG中出现异常Zone的待恢复ZG,包括:
响应于文件恢复检查指令,确定任一ZG的至少一个Zone的数据块长度或写指针位置被重置为0,确定该ZG为出现异常Zone的待恢复ZG。
4.根据权利要求1~3任一所述的方法,其特征在于,统计所述待恢复ZG中各Zone的数据长度,根据统计结果判定所述待恢复ZG是否满足恢复条件,包括:
统计所述待恢复ZG中各个Zone的数据块长度,得到至少一个数据块长度,并确定各数据块长度对应的Zone数量;
当最大的Zone数量L满足恢复条件时,确定所述待恢复ZG可以恢复,所述恢复条件为:所述L满足N<=L<N+M。
5.根据权利要求1所述的方法,其特征在于,还包括:
接收存储节点按照预设时间间隔上报的预先分配的ZG中各个Zone的元数据信息;
以上报的Zone的元数据信息为基准,更新ZG缓存中缓存的预先分配的至少一个ZG中Zone的元数据;
所述元数据信息包括Zone所属的ZG、在所属ZG中的序号、位置索引信息、数据块长度及EC类型。
6.根据权利要求1所述的方法,其特征在于,若所述待恢复ZG为满足恢复条件的第一ZG时,还包括:
将所述第一ZG添加到可恢复ZG队列中,将所述第一ZG中损坏Zone的元数据信息加入所述第一ZG对应的Zone任务队列,所述元数据信息包括Zone所属的ZG、在所属ZG中的序号、位置索引信息、数据块长度及EC类型;
确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone恢复的任务,包括:
确定所述可恢复ZG队列中第一ZG的恢复顺序,按照恢复顺序采用如下方式进行第一ZG恢复:根据所述第一ZG对应的Zone任务队列中损坏Zone的元数据信息,确定未损坏Zone及执行损坏Zone恢复的存储节点,生成利用所述未损坏Zone中数据进行损坏Zone数据恢复的任务,将所述损坏Zone恢复的任务加入正在恢复Zone任务队列并下发给确定的存储节点。
7.根据权利要求6所述的方法,其特征在于,确定所述可恢复ZG队列的第一ZG的恢复顺序,包括:根据可恢复ZG队列中第一ZG中存储的对象的EC类型确定对应N+M,N为EC类型中正常数据块个数,M为EC类型中冗余数据块个数;
按照确定的第一ZG对应的M值进行从小到大排序,对可恢复队列中的第一ZG进行排序,得到可恢复ZG队列中第一ZG的恢复顺序。
8.根据权利要求6所述的方法,其特征在于,将所述损坏Zone恢复的任务加入正在恢复Zone任务队列并下发给确定的存储节点之后,还包括:
确定存储节点执行损坏Zone恢复任务执行成功时,将执行成功的损坏Zone恢复的任务从正在恢复Zone任务队列中删除;
确定存储节点执行损坏Zone恢复任务失败时,
将执行失败的损坏Zone恢复的任务从所述正在恢复Zone任务队列中移除并加入到恢复失败Zone任务队列中,将执行失败的损坏Zone恢复的任务对应的失败次数加1;
判定当前失败次数超过预设失败阈值,且所述损坏Zone恢复的任务不为其所在的Zone任务队列中最后一个Zone任务,将所述损坏Zone恢复的任务从其所在恢复失败Zone任务队列和Zone任务队列中移除加入到延迟重试队列,以使损坏Zone恢复的任务经过预设时间间隔后进行恢复重试;
判定当前失败次数超过预设失败阈值,且所述损坏Zone恢复的任务为其所在的Zone任务队列中最后一个Zone任务,则将所述损坏Zone恢复的任务从其所在的恢复失败Zone任务队列及所在的Zone任务队列中移除,加入到延迟重试队列,以使损坏Zone恢复的任务经过预设时间间隔后进行恢复重试,将其所在的Zone任务队列清除。
9.根据权利要求8所述的方法,其特征在于,将所述损坏Zone恢复的任务从其所在恢复失败Zone任务队列中移除加入到延迟重试队列之后,还包括:
按照预设时间间隔,从延迟重试队列中拉取损坏Zone恢复的任务到正在恢复Zone任务队列;
确定延迟重试队列超过预设长度,删除最早加入延迟重试队列中损坏Zone恢复的任务。
10.一种基于SMR盘的云存储数据恢复装置,其特征在于,所述装置包括:
写入模块,用于响应于文件存储指令,根据写入的对象划分的数据块的数量N+M,从预先分配的至少一个区域组ZG中选择Zone的数量为N+M的目标ZG,并指示所述目标ZG中各Zone所在的存储节点写入对应的数据块;
确定待恢复ZG模块,用于响应于文件恢复检查指令,确定所述至少一个ZG中出现异常Zone的待恢复ZG;
统计模块,用于统计所述待恢复ZG中各Zone的数据长度,根据统计结果判定所述待恢复ZG是否满足恢复条件;
确定损坏Zone模块,用于若所述待恢复ZG为满足恢复条件的第一ZG时,确定所述第一ZG中发生数据丢失的损坏Zone;
下发模块,用于确定执行损坏Zone恢复的存储节点,并向确定的存储节点下发执行损坏Zone的任务。
11.一种电子设备,其特征在于,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-9中任何一项所述的方法。
12.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序用于使计算机执行如权利要求1-9中任何一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111442600.XA CN114221975B (zh) | 2021-11-30 | 2021-11-30 | 基于smr盘的云存储数据恢复方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111442600.XA CN114221975B (zh) | 2021-11-30 | 2021-11-30 | 基于smr盘的云存储数据恢复方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114221975A true CN114221975A (zh) | 2022-03-22 |
CN114221975B CN114221975B (zh) | 2024-01-30 |
Family
ID=80698941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111442600.XA Active CN114221975B (zh) | 2021-11-30 | 2021-11-30 | 基于smr盘的云存储数据恢复方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114221975B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712389A (zh) * | 2022-10-28 | 2023-02-24 | 哈尔滨工业大学(深圳) | 一种数据存储介质间的调度方法、装置及电子设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477486A (zh) * | 2009-01-22 | 2009-07-08 | 中国人民解放军国防科学技术大学 | 一种基于扇区重组的文件备份恢复方法 |
EP2713275A1 (en) * | 2011-11-25 | 2014-04-02 | Huawei Technologies Co., Ltd. | Virtual tape library device and data restoration method |
CN105892932A (zh) * | 2014-10-20 | 2016-08-24 | 伊姆西公司 | 用于磁盘数据管理的方法和装置 |
US20170123944A1 (en) * | 2015-10-29 | 2017-05-04 | Netapp, Inc. | Storage system to recover and rewrite overwritten data |
CN106662983A (zh) * | 2015-12-31 | 2017-05-10 | 华为技术有限公司 | 分布式存储系统中的数据重建的方法、装置和系统 |
CN107748702A (zh) * | 2015-06-04 | 2018-03-02 | 华为技术有限公司 | 数据存储方法、恢复方法、相关装置以及系统 |
CN110865903A (zh) * | 2019-11-06 | 2020-03-06 | 重庆紫光华山智安科技有限公司 | 基于纠删码分布式存储的节点异常重连复用方法及系统 |
CN112000509A (zh) * | 2020-08-18 | 2020-11-27 | 中山大学 | 一种基于向量指令的纠删码编码方法、系统及装置 |
CN112579483A (zh) * | 2019-09-29 | 2021-03-30 | 杭州海康威视数字技术股份有限公司 | 一种叠瓦式磁记录磁盘的数据恢复方法、装置 |
CN113051104A (zh) * | 2021-03-11 | 2021-06-29 | 重庆紫光华山智安科技有限公司 | 基于纠删码的磁盘间数据恢复方法及相关装置 |
CN113190384A (zh) * | 2021-05-21 | 2021-07-30 | 重庆紫光华山智安科技有限公司 | 基于纠删码的数据恢复控制方法、装置、设备及介质 |
US20210279135A1 (en) * | 2020-03-09 | 2021-09-09 | EMC IP Holding Company LLC | Method, device and computer program product for recovering data |
CN113495889A (zh) * | 2021-07-07 | 2021-10-12 | 浙江大华技术股份有限公司 | 一种分布式对象存储方法、装置、电子设备及存储介质 |
CN113553216A (zh) * | 2021-06-28 | 2021-10-26 | 北京百度网讯科技有限公司 | 数据恢复方法、装置、电子设备及存储介质 |
CN113672175A (zh) * | 2021-08-09 | 2021-11-19 | 浙江大华技术股份有限公司 | 分布式对象存储方法、装置和设备及计算机存储介质 |
-
2021
- 2021-11-30 CN CN202111442600.XA patent/CN114221975B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477486A (zh) * | 2009-01-22 | 2009-07-08 | 中国人民解放军国防科学技术大学 | 一种基于扇区重组的文件备份恢复方法 |
EP2713275A1 (en) * | 2011-11-25 | 2014-04-02 | Huawei Technologies Co., Ltd. | Virtual tape library device and data restoration method |
CN105892932A (zh) * | 2014-10-20 | 2016-08-24 | 伊姆西公司 | 用于磁盘数据管理的方法和装置 |
CN107748702A (zh) * | 2015-06-04 | 2018-03-02 | 华为技术有限公司 | 数据存储方法、恢复方法、相关装置以及系统 |
US20170123944A1 (en) * | 2015-10-29 | 2017-05-04 | Netapp, Inc. | Storage system to recover and rewrite overwritten data |
CN106662983A (zh) * | 2015-12-31 | 2017-05-10 | 华为技术有限公司 | 分布式存储系统中的数据重建的方法、装置和系统 |
CN112579483A (zh) * | 2019-09-29 | 2021-03-30 | 杭州海康威视数字技术股份有限公司 | 一种叠瓦式磁记录磁盘的数据恢复方法、装置 |
CN110865903A (zh) * | 2019-11-06 | 2020-03-06 | 重庆紫光华山智安科技有限公司 | 基于纠删码分布式存储的节点异常重连复用方法及系统 |
US20210279135A1 (en) * | 2020-03-09 | 2021-09-09 | EMC IP Holding Company LLC | Method, device and computer program product for recovering data |
CN112000509A (zh) * | 2020-08-18 | 2020-11-27 | 中山大学 | 一种基于向量指令的纠删码编码方法、系统及装置 |
CN113051104A (zh) * | 2021-03-11 | 2021-06-29 | 重庆紫光华山智安科技有限公司 | 基于纠删码的磁盘间数据恢复方法及相关装置 |
CN113190384A (zh) * | 2021-05-21 | 2021-07-30 | 重庆紫光华山智安科技有限公司 | 基于纠删码的数据恢复控制方法、装置、设备及介质 |
CN113553216A (zh) * | 2021-06-28 | 2021-10-26 | 北京百度网讯科技有限公司 | 数据恢复方法、装置、电子设备及存储介质 |
CN113495889A (zh) * | 2021-07-07 | 2021-10-12 | 浙江大华技术股份有限公司 | 一种分布式对象存储方法、装置、电子设备及存储介质 |
CN113672175A (zh) * | 2021-08-09 | 2021-11-19 | 浙江大华技术股份有限公司 | 分布式对象存储方法、装置和设备及计算机存储介质 |
Non-Patent Citations (3)
Title |
---|
姜国松;邹辰;谢长生;: "RAID控制器中矩阵重构方法研究", 计算机科学, no. 07 * |
胡至洵;: "面向分布式文件存储系统的数据恢复策略", 能源与环保, no. 03 * |
赵强;: "浅谈数据恢复技术", 湖北警官学院学报, no. 03 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712389A (zh) * | 2022-10-28 | 2023-02-24 | 哈尔滨工业大学(深圳) | 一种数据存储介质间的调度方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114221975B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9170888B2 (en) | Methods and apparatus for virtual machine recovery | |
US8332354B1 (en) | Asynchronous replication by tracking recovery point objective | |
US7849356B2 (en) | Parity data management system apparatus and method | |
US7747830B2 (en) | Backup system with continuous data protection | |
US10977132B2 (en) | Selective placement and adaptive backups for point-in-time database recovery | |
JP5669823B2 (ja) | チェンジトラッキングを用いたシステムリカバリ方法 | |
CN113051104B (zh) | 基于纠删码的磁盘间数据恢复方法及相关装置 | |
US9342390B2 (en) | Cluster management in a shared nothing cluster | |
US10261696B2 (en) | Performance during playback of logged data storage operations | |
US10176065B2 (en) | Intelligent failure prediction and redundancy management in a data storage system | |
CN104735107A (zh) | 分布式存储系统中数据副本恢复方法及装置 | |
US20190384508A1 (en) | Method, electronic device and computer program product for maintenance of component in storage system | |
US11128708B2 (en) | Managing remote replication in storage systems | |
CN114221975B (zh) | 基于smr盘的云存储数据恢复方法及装置、电子设备 | |
JP5556192B2 (ja) | ストレージシステム | |
US9697081B2 (en) | Storage control device and data recovery method | |
CN117149527B (zh) | 一种服务器数据备份与恢复系统及方法 | |
US8555007B2 (en) | Storage system with journal disks dynamically assigned | |
CN114153395A (zh) | 一种对象存储数据生命周期管理方法、装置及设备 | |
CN114153389A (zh) | 一种异常zone自动补齐方法、装置及设备 | |
US11182261B1 (en) | Synchronizing a stale component of a distributed object using multiple delta components during maintenance | |
US11947827B2 (en) | Synchronizing a stale component of a distributed object using a delta component during maintenance | |
US20170235770A1 (en) | Method for restoring containers in a database based on priorities of the containers | |
CN114153800A (zh) | 一种数据一致性维护方法、装置及设备 | |
CN112347037A (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 |