一种分布式纠删码存储系统的数据修复方法技术方案

技术编号:14753554 阅读:109 留言:0更新日期:2017-03-02 11:13
本发明专利技术涉及一种分布式纠删码存储系统的数据修复方法,包括以下步骤:1)获得更新后的条带修复队列,所述条带修复队列包括与各条带对应的条带记录,所述条带保留原始数据,且条带中校验块个数大于等于3;2)判断所述条带修复队列是否为空,若是,则执行步骤5),若否,则执行步骤3);3)取出所述条带修复队列的第一个条带,根据与该条带对应的条带记录获取该条带的数据丢失状态;4)根据所述数据丢失状态对条带进行相应修复处理,返回步骤1);5)所有条带修复完成,退出。与现有技术相比,本发明专利技术具有减少降级读次数、降低资源开销等优点。

【技术实现步骤摘要】

本专利技术属于云存储
及计算机信息技术存储领域,尤其是涉及一种分布式纠删码存储系统的数据修复方法
技术介绍
大数据时代的来临使得云存储系统的规模日益增长。云存储系统是包含数量庞大的服务器(称为节点)、存储介质(主要是机械硬盘和固态硬盘)以及网络互连设备的分布式存储系统。庞大的规模导致系统中出现节点或硬盘故障成为常态。为了在数据可靠性、存储设备开销和系统性能之间做出权衡,越来越多的分布式存储系统(例如HDFS、GFS-II、Ceph、Azure)倾向于使用纠删码策略来替代三副本策略存放占用空间巨大而访问频度不高的数据。这些数据大多具有WORM(Write-Once-Read-Many,单写多读,不可更改)特性。纠删码(ErasureCoding,简称EC)是一种将数据耦合编码以保证低空间占用和高容错的存储策略。如图1所示,原始数据被分成k个原始数据块(简称原始块),编码(encode)得到n个编码数据块(简称编码块),组成一个条带。每个条带包含k个原始块,m个校验数据块(简称校验块),n=k+m。这种纠删码记为EC(k,m)。当这个条带中有数据块丢失时,可以通过任意k个块解码(decode)得到原始数据。能同时容忍m个块丢失,容错能力为m,如图2所示。当数据块丢失时,系统先解码得到k个原始块,再编码得到整个条带,最后将丢失的块重新写入到系统中,这个过程被称为数据修复。设数据块丢失的个数为f(f≤m),则数据修复的开销为k+f块。这个开销k+f倍于数据拷贝,因此被称为纠删码的修复风暴。若丢失的是原始块,且该原始块被客户端访问,则系统需要获取k个块解码得到原始块以提供给客户端,这个过程被称为降级读。k倍的开销也直接影响系统的性能。使用纠删码策略的分布式系统可称为分布式纠删码存储系统。它将多个条带分布于集群中,一个条带内的块必须分布在不同的容错区间(一般为节点或机架),如图3所示,图中举出4个条带,1D表示条带1的原始块,1P表示条带1的校验块,依次类推,一个条带的多个块分布在不同的节点,同一块硬盘存储多个条带的原始数据和校验数据。节点离线、硬盘损坏或网络断开将使一部分条带丢失原始块或校验块。目前,业界在数据修复流程中并没有对原始块和数据块做区分,这使得存储系统要承担修复风暴对资源的开销。因此,有必要对现有的修复方法进行优化。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种减少降级读次数、降低资源开销的分布式纠删码存储系统的数据修复方法。本专利技术的目的可以通过以下技术方案来实现:一种分布式纠删码存储系统的数据修复方法,包括以下步骤:1)获得更新后的条带修复队列,所述条带修复队列包括与各条带对应的条带记录,所述条带保留原始数据,且条带中校验块个数大于等于3;2)判断所述条带修复队列是否为空,若是,则执行步骤5),若否,则执行步骤3);3)取出所述条带修复队列的第一个条带,根据与该条带对应的条带记录获取该条带的数据丢失状态;4)根据所述数据丢失状态对条带进行相应修复处理,返回步骤1);5)所有条带修复完成,退出。所述步骤1)中,在集群拓扑结构变动时进行条带修复队列的更新。所述步骤3)中,所述数据丢失状态包括数据丢失时刻和丢失的数据块集合。所述步骤4)中,根据所述数据丢失状态对条带进行相应修复处理具体为:401)根据数据丢失状态判断是否为多数据块丢失,若是,则执行步骤405),若否,则执行步骤402);402)根据数据丢失状态判断是否为单个校验块丢失,若是,则执行步骤403),若否,则执行步骤405);403)根据数据丢失状态判断数据丢失时长是否大于延迟等待阈值,若是,则执行步骤405),若否,则执行步骤404);404)不进行条带修复,将当前获取的条带加入到所述条带修复队列的队尾,返回步骤1);405)对当前获取的条带进行修复处理,处理完成后返回步骤1)。所述延迟等待阈值的最优取值为从数据修复开始直到所有丢失原始块的条带修复完成的时长。所述延迟等待阈值的取值为60分钟。与现有技术相比,本专利技术具有以下优点:(1)本专利技术在进行数据修复时对各条带的数据丢失状态进行分类,不同状态采用不同修复方式,达到保证数据可靠性的同时提高修复效率。(2)本专利技术的修复过程延迟修复校验数据以优先修复原始数据,原始数据的修复任务排在校验数据的修复任务之前,减少降级读的次数,最终效果是减小数据修复对系统性能的负面影响。下面进行估算:分布式存储系统达到一定规模后可认为数据分布均匀。对EC(k,m)而言,在一块硬盘离线丢失的数据中,是原始数据,是校验数据。延迟校验数据的修复使得修复过程的后段不再有原始数据丢失,因此降级读次数减少以k=6,m=3为例,则降级读次数大约减少33%。(3)避免短时间内硬盘陆续离线导致的重复修复,最终效果是数据修复占用的资源开销得以减小。以先后有2个硬盘离线为例进行说明。对EC(k,m)而言,先后分两次,每次修复1个块的总开销为2(k+1)个块,而一次性修复2个块的开销为k+2个块。设延迟等待阈值内发生2个硬盘离线的概率为f,则资源开销减小比例为假设k=6,资源开销减小比例为43%*f。附图说明图1为纠删码的编码示意图;图2为纠删码的解码示意图;图3为纠删码条带在分布式系统中的分布图;图4为本专利技术条带修复队列的示意图;图5为本专利技术延迟校验块修复流程图。具体实施方式下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。本专利技术提供一种分布式纠删码存储系统的数据修复方法,该方法对原始数据和校验数据的丢失情况进行区分,延迟修复校验数据以优先修复原始数据,同时出于数据可靠性的考虑,在达到一定条件时取消这种延迟。实际上,丢失的校验块从性能的角度来看,它们并不会被客户端直接访问,不会触发降级读,所以不影响性能;从资源消耗的角度来看,过早地修复它们并不划算。从数据可靠性的角度来看,纠删码策略可以容忍多个块丢失。运用上述方法需要满足以下限制性条件:A、条带直接保留原始数据。说明:纠删码种类繁多,其中一种分类方法将纠删码分为系统码(systematiccode)和非系统码(non-systematiccode)。系统码直接保留原始数据,也是业界最常用的一类;非系统码不保留原始数据,它的条带中全部都是校验块。本专利技术区分原始块和校验块的修复,因此适用于系统码。B、条带中的校验块个数m≥3。说明:校验块的个数与条带的容错能力呈正相关。m为条带允许丢失的数据块上限。由于本专利技术延迟修复校验块,因此适用的纠删码必须保证有足够的容错能力。m≥3不仅在单块丢失的条件下仍有至少2的容错能力,也是目前业界绝大多数纠删码策略的取值范围。上述方法遵循以下规则延迟修复校验块:A、不延迟修复丢失块数量超过延迟容错阈值的条带。说明:虽然纠删码策略容忍多个块丢失,但当第2个块丢失时存储系统已经处于脆弱状态。若继续延迟修复将降低数据可靠性。因此,本专利技术的延迟容错阈值为2,不可更改。当条带丢失第2个块时,不论丢失的是原始块还是校验块,都启动修复。B、不延迟修复丢失单个原始块的条带。说明:丢失的原始块被客户端直接访问,会触发降级读影响本文档来自技高网
...
一种分布式纠删码存储系统的数据修复方法

【技术保护点】
一种分布式纠删码存储系统的数据修复方法,其特征在于,包括以下步骤:1)获得更新后的条带修复队列,所述条带修复队列包括与各条带对应的条带记录,所述条带保留原始数据,且条带中校验块个数大于等于3;2)判断所述条带修复队列是否为空,若是,则执行步骤5),若否,则执行步骤3);3)取出所述条带修复队列的第一个条带,根据与该条带对应的条带记录获取该条带的数据丢失状态;4)根据所述数据丢失状态对条带进行相应修复处理,返回步骤1);5)所有条带修复完成,退出。

【技术特征摘要】
1.一种分布式纠删码存储系统的数据修复方法,其特征在于,包括以下步骤:1)获得更新后的条带修复队列,所述条带修复队列包括与各条带对应的条带记录,所述条带保留原始数据,且条带中校验块个数大于等于3;2)判断所述条带修复队列是否为空,若是,则执行步骤5),若否,则执行步骤3);3)取出所述条带修复队列的第一个条带,根据与该条带对应的条带记录获取该条带的数据丢失状态;4)根据所述数据丢失状态对条带进行相应修复处理,返回步骤1);5)所有条带修复完成,退出。2.根据权利要求1所述的分布式纠删码存储系统的数据修复方法,其特征在于,所述步骤1)中,在集群拓扑结构变动时进行条带修复队列的更新。3.根据权利要求1所述的分布式纠删码存储系统的数据修复方法,其特征在于,所述步骤3)中,所述数据丢失状态包括数据丢失时刻和丢失的数据块集合。4.根据权利要求1所述的分布式纠删码存储系统的数据修复方法,其特征...

【专利技术属性】
技术研发人员:黄思倜
申请(专利权)人:上海爱数信息技术股份有限公司
类型:发明
国别省市:上海;31

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

1