CN110413454A - 基于存储阵列的数据重建方法、装置及存储介质 - Google Patents
基于存储阵列的数据重建方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110413454A CN110413454A CN201810404552.7A CN201810404552A CN110413454A CN 110413454 A CN110413454 A CN 110413454A CN 201810404552 A CN201810404552 A CN 201810404552A CN 110413454 A CN110413454 A CN 110413454A
- Authority
- CN
- China
- Prior art keywords
- data
- member disk
- array
- reconstruction
- disk
- 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
- 238000000034 method Methods 0.000 title claims abstract description 102
- 230000015654 memory Effects 0.000 claims description 31
- 239000007787 solid Substances 0.000 abstract description 69
- 230000008569 process Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000003491 array Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000226211 Salminus brasiliensis Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请实施例提供一种基于存储阵列的数据重建方法、装置及存储介质,该基于存储阵列的数据重建方法包括:当检测到第一成员盘出现故障时,获取预留阵列,存储阵列包括第一成员盘和至少两个第二成员盘,预留阵列包括第二成员盘的空闲空间;根据第二成员盘中数据,重建第一成员盘中的数据;将重建后的第一成员盘中的数据并行写入预留阵列。本申请实施例适用于固态硬盘阵列,且数据重建速率较高。
Description
技术领域
本申请实施例涉及计算机技术,尤其涉及一种基于存储阵列的数据重建方法、装置及存储介质。
背景技术
应服务器及企业级数据存储系统等的大数据存储需求,例如磁盘阵列和固态硬盘阵列等大存储容量的存储系统产生。
对于磁盘阵列和固态硬盘阵列,当其中成员盘发生故障后,均需进行数据重建。现有的数据重建方法大多是针对磁盘阵列的,将其直接应用到固态硬盘阵列时,存在数据重建速率低的问题。因此,目前亟需一种适用于固态硬盘阵列、且速率较高的数据重建方法。
发明内容
本申请实施例提供一种基于存储阵列的数据重建方法、装置及存储介质,以适用于固态硬盘阵列,且数据重建速率较高。
第一方面,本申请实施例提供一种基于存储阵列的数据重建方法,包括:当检测到第一成员盘出现故障时,获取预留阵列,该存储阵列包括第一成员盘和至少两个第二成员盘,预留阵列包括第二成员盘的空闲空间;根据第二成员盘中数据,重建第一成员盘中的数据;将重建后的第一成员盘中的数据并行写入预留阵列。
当检测到第一成员盘出现故障时,获取预留阵列,即热备份阵列,以便后续重建数据的写入;之后,根据至少两个第二成员盘中数据,重建第一成员盘中的数据,并将重建后的第一成员盘中的数据并行写入预留阵列。通过将重建后的数据并行写入存储阵列的方式,由于预留阵列包括至少两个第二成员盘的空闲空间,从而达到提高数据重建速率的目的。另外,该实施例提供的方法应用范围较广,适用于固态硬盘阵列。
一种可能的实施方式中,上述根据第二成员盘中数据,重建第一成员盘中的数据,可以包括:根据第一成员盘中数据的数据引用率从大到小的顺序,依次确定重建的条带,该数据引用率用于表示数据在重复数据删除系统中出现的次数;针对每一条带,执行以下操作:读取第二成员盘中对应条带的数据;根据读取到的数据,重建第一成员盘中对应该条带的数据。
一种可能的实施方式中,上述将重建后的第一成员盘中的数据并行写入预留阵列,可以包括:将重建后的第一成员盘中对应条带的数据并行写入预留阵列。
一种可能的实施方式中,上述将重建后的第一成员盘中对应条带的数据并行写入预留阵列,可以包括:将重建后的第一成员盘中对应条带的数据分割为预设大小的目标数据块;根据各目标数据块计算校验值;将目标数据块及校验值分别并行写入预留阵列。
一种可能的实施方式中,预设大小可以为第一成员盘中对应条带的数据大小的N分之一,N为第二成员盘的个数减去1后得到的差值。
上述实施方式通过利用固态硬盘的高随机访问性能的特点和数据引用率特点,优先恢复高数据引用率的数据块和并行写入预留阵列来加快数据重建速度,避免了串行重建对于提高固态硬盘阵列重建性能的不足。
一种可能的实施方式中,上述基于存储阵列的数据重建方法还可以包括:获取读请求,该读请求用于读取第一成员盘中的数据;判断对应读请求的数据的重建是否完成;若确定对应读请求的数据的重建已完成,从预留阵列进行数据读取;或者,若确定对应读请求的数据块的重建未完成,从第二成员盘进行数据读取。
一种可能的实施方式中,上述基于存储阵列的数据重建方法还可以包括:获取写请求,该写请求用于更新第一成员盘中的数据;判断对应写请求的数据的重建是否完成;若确定对应写请求的数据的重建已完成,在预留阵列进行数据更新;或者,若确定对应写请求的数据块的重建未完成,则等待重建完成之后,在预留阵列进行数据更新。
上述实施方式介绍了在对存储阵列中故障成员盘中数据进行数据重建的过程中,处理来自应用和用户的读请求/写请求,保证读写的数据的正确性。
一种可能的实施方式中,上述将重建后的第一成员盘中的数据并行写入预留阵列之后,还可以包括:当检测到第三成员盘出现故障时,优先重建该第三成员盘中对应预留阵列的数据,再重建第三成员盘中其他数据,第二成员盘包含第三成员盘。
一种可能的实施方式中,上述优先重建第三成员盘中对应所述预留阵列的数据,再重建第三成员盘中其他数据,可以包括:确定有新加入的成员盘;重建第三成员盘中对应预留阵列的数据;重建第三成员盘中其他数据;将重建后的第三成员盘中的数据写入新加入的成员盘。
在数据重建成功之后,同一存储阵列再次发生故障(二次故障)后,此时,数据重建过程是指当基于第1次成员盘故障的重建完成后又发生第2次成员盘故障,则优先重建预留阵列中丢失的数据(第1次故障的成员盘中的数据);当预留阵列中数据重建完成后,即可重建存储阵列中第2次成员盘故障后丢失的、非预留阵列中的数据。
第二方面,本申请实施例提供一种基于存储阵列的数据重建装置,包括:获取模块,用于在检测到第一成员盘出现故障时,获取预留阵列,该存储阵列包括所述第一成员盘和至少两个第二成员盘,预留阵列包括第二成员盘的空闲空间;重建模块,用于根据第二成员盘中数据,重建第一成员盘中的数据;写入模块,用于将重建后的第一成员盘中的数据并行写入预留阵列。
基于同一发明构思,由于该基于存储阵列的数据重建装置解决问题的原理与第一方面的方法设计中的方案对应,因此该基于存储阵列的数据重建装置的实施可以参见方法的实施,重复之处不再赘述。
一种可能的实施方式中,重建模块可具体用于:根据第一成员盘中数据的数据引用率从大到小的顺序,依次确定重建的条带,该数据引用率用于表示数据在重复数据删除系统中出现的次数;针对每一条带,执行以下操作:读取第二成员盘中对应条带的数据;根据读取到的数据,重建第一成员盘中对应条带的数据。
一种可能的实施方式中,写入模块可具体用于:将重建后的第一成员盘中对应条带的数据并行写入预留阵列。
一种可能的实施方式中,写入模块用于将重建后的第一成员盘中对应条带的数据并行写入预留阵列时,可具体为:将重建后的第一成员盘中对应条带的数据分割为预设大小的目标数据块;根据各目标数据块计算校验值;将目标数据块及校验值分别并行写入预留阵列。
一种可能的实施方式中,预设大小可以为第一成员盘中对应条带的数据大小的N分之一,N为第二成员盘的个数减去1后得到的差值。
一种可能的实施方式中,基于存储阵列的数据重建装置还可以包括读模块,用于:获取读请求,该读请求用于读取第一成员盘中的数据;判断对应读请求的数据的重建是否完成;若确定对应读请求的数据的重建已完成,从预留阵列进行数据读取;或者,若确定对应读请求的数据块的重建未完成,从第二成员盘进行数据读取。
一种可能的实施方式中,基于存储阵列的数据重建装置还可以包括写模块,用于:获取写请求,该写请求用于更新第一成员盘中的数据;判断对应写请求的数据的重建是否完成;若确定对应写请求的数据的重建已完成,在预留阵列进行数据更新;或者,若确定对应写请求的数据块的重建未完成,则等待重建完成之后,在预留阵列进行数据更新。
一种可能的实施方式中,重建模块还可以用于:在写入模块将重建后的第一成员盘中的数据并行写入预留阵列之后,当检测到第三成员盘出现故障时,优先重建第三成员盘中对应预留阵列的数据,再重建第三成员盘中其他数据。第二成员盘包含第三成员盘。
一种可能的实施方式中,重建模块在用于优先重建第三成员盘中对应预留阵列的数据,再重建第三成员盘中其他数据时,具体为:确定有新加入的成员盘;重建第三成员盘中对应预留阵列的数据;重建第三成员盘中其他数据;将重建后的第三成员盘中的数据写入新加入的成员盘。
第三方面,本申请实施例提供一种基于存储阵列的数据重建装置,包括:处理器和存储器。存储器用于存储指令。当处理器执行存储器存储的指令时,基于存储阵列的数据重建装置用于执行如第一方面中任一项所述的基于存储阵列的数据重建方法。
第四方面,本申请实施例提供一种计算机可读存储介质,该计算机可读指令在由处理器执行时实现如第一方面中任一项所述的基于存储阵列的数据重建方法。
第五方面,本申请实施例提供一种基于存储阵列的数据重建装置,包括用于执行以上第一方面的方法的至少一个处理元件(或芯片)。
第六方面,本申请实施例提供一种程序,该程序在被基于存储阵列的数据重建装置的处理器执行时用于执行以上第一方面的方法。
第七方面,本申请实施例提供一种计算机程序产品,包括第六方面的程序。
第八方面,本申请实施例提供了一种芯片,包括:处理模块与通信接口,所述处理模块能执行以上第一方面的方法。进一步地,所述芯片还包括存储模块(如,存储器),所述存储模块用于存储指令,所述处理模块用于执行所述存储模块存储的指令,并且对所述存储模块中存储的指令的执行使得所述处理模块执行上述第一方面的方法。
本申请的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
图1为本申请一实施例提供的基于存储阵列的数据重建方法的流程示意图;
图2示出重复数据删除系统中数据引用率的一示例图;
图3为本申请实施例提供的基于存储阵列的数据重建方法的一应用场景示例图;
图4为本申请实施例提供的基于存储阵列的数据重建方法中一位图表的示例图;
图5为本申请一实施例提供的基于存储阵列的数据重建方法的另一应用场景示例图;
图6为本申请另一实施例提供的基于存储阵列的数据重建方法的流程示意图;
图7为本申请又一实施例提供的基于存储阵列的数据重建方法的流程示意图;
图8为本申请又一实施例提供的基于存储阵列的数据重建方法的流程示意图;
图9为本申请一实施例提供的基于存储阵列的数据重建方法的又一应用场景示例图;
图10为本申请一实施例提供的基于存储阵列的数据重建装置的结构示意图;
图11为本申请另一实施例提供的基于存储阵列的数据重建装置的结构示意图;
图12为本申请又一实施例提供的基于存储阵列的数据重建装置的结构示意图。
具体实施方式
首先,对本申请实施例涉及的部分技术术语进行解释说明。
存储阵列,由多个成员盘组成,通常这多个成员盘排列成矩阵形式。存储阵列将数据以分段(striping)/分块的方式储存在不同的成员盘中,存取数据时,存储阵列中的相关成员盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。
例如,存储阵列可以具体为磁盘阵列(Redundant Array of Independent Disks,RAID),或固态硬盘阵列(Redundant Array of Independent SSDs,RAIS),或者,存储阵列同时包括磁盘和固态硬盘等。其中,磁盘阵列对应的成员盘即为磁盘;固态硬盘阵列对应的成员盘即为固态硬盘(Solid State Drives,SSD)。
固态硬盘,又称为固态盘或固盘,是使用固态电子存储芯片阵列而制成的硬盘。本申请实施例主要针对存储介质为闪存的固态硬盘所组成的固态硬盘阵列。
条带(stripe),是把连续的数据分割成相同大小的数据段/数据块,把每段数据/每块数据分别写入到存储阵列中的不同单元盘上的方法。
实际应用中,存储阵列中成员盘可能会发生故障。由于故障严重影响存储阵列的性能和可靠性,因此,需尽快对故障成员盘中的数据进行重建。具体地,利用存储阵列中仍活跃的成员盘中数据来重建该故障成员盘中的数据。鉴于磁盘的介质特性,适用于磁盘阵列的数据重建方法主要是保证数据重建的顺序性,例如,根据磁头位置导向的重建算法。
本申请人考虑到固态硬盘中闪存介质属性:读写性能不同,读性能明显优于写性能,并且具有高随机访问性能,而现有的针对磁盘阵列的数据重建方法不能充分利用固态硬盘的闪存介质属性,因此,若直接使用现有的针对磁盘阵列的数据重建方法对固态硬盘阵列的数据进行重建,数据重建性能有一定的局限性,例如,速率低等。
基于上述问题,针对存储介质为闪存的存储阵列,包括固态硬盘阵列、磁盘阵列和全闪存阵列,本申请实施例提供一种适用范围较广的基于存储阵列的数据重建方法、装置及存储介质。具体地,通过并行重建方式提高存储阵列的数据重建速率。
图1为本申请一实施例提供的基于存储阵列的数据重建方法的流程示意图。该实施例提供一种基于存储阵列的数据重建方法,该方法可以由基于存储阵列的数据重建装置执行,该基于存储阵列的数据重建装置可以通过软件和/或硬件的方式实现,该基于存储阵列的数据重建装置可以包括一个或多个物理实体。实际应用中,该基于存储阵列的数据重建装置可以是计算机等包含存储阵列的任一设备或系统或存储阵列本身。在后续实施例中,以计算机为例进行描述。
如图1所示,该实施例中的基于存储阵列的数据重建方法包括:
S101、当检测到第一成员盘出现故障时,获取预留阵列。
其中,存储阵列包括第一成员盘和至少两个第二成员盘。预留阵列包括第二成员盘的空闲空间。
可以理解,存储阵列包括至少两个成员盘。其中,出现故障的成员盘定义为第一成员盘,其他仍活跃(未出现故障)的成员盘定义为第二成员盘。且需说明的是,第一成员盘与第二成员盘中的第一和第二,仅为对不同成员盘进行区分的命名方式,并不代表成员盘之间的次序。
至于第一成员盘的个数和第二成员盘的个数,本申请实施例不对其进行限制。其中,第二成员盘的个数可以是多个,第一成员盘的个数例如为1个或更多,以保证数据可以重建成功。
第二成员盘中部分空间是空闲的,可以理解没有存储有效数据,本申请实施例利用该部分空闲空间,组成预留阵列,即热备份阵列。
S102、根据第二成员盘中数据,重建第一成员盘中的数据。
数据在存储阵列中是以条带形式存储的。具体地,对于存储阵列中的每个成员盘,其都有一部分存储介质是属于同一条带的,存储阵列可以对应多个条带,该多个条带的大小可以相同或者不同。同一条带中,一成员盘对应该条带的数据可以根据其他成员盘对应该条带的数据计算得到,且各成员盘对应该条带的数据可能是数据块也可能是校验块,其中,这里的数据块是指有效数据的一部分,校验块是指根据该条带中各数据块得到的校验值等信息。因此,对于出现故障的第一成员盘存储的数据,可以通过第二成员盘中的数据进行重建。
对于同一条带,若第一成员盘中的数据是数据块,则各第二成员盘中的数据可以是数据块或校验块;若第一成员盘中的数据是校验块,则各第二成员盘中的数据可以是数据块或校验块。也就是说,校验块可以存储在对应同一条带的一个或多个成员盘中,同理,数据块也可以存储在对应同一条带的一个或多个成员盘中。
S103、将重建后的第一成员盘中的数据并行写入预留阵列。
由于存储阵列包括至少一个第二成员盘的存储空间,因此,可以将重建后的第一成员盘中的数据并行写入各第二成员盘分别对应的预留阵列部分。
该实施例,当检测到第一成员盘出现故障时,获取预留阵列,即热备份阵列,以便后续重建数据的写入;之后,根据至少两个第二成员盘中数据,重建第一成员盘中的数据,并将重建后的第一成员盘中的数据并行写入预留阵列。通过将重建后的数据并行写入存储阵列的方式,由于预留阵列包括至少两个第二成员盘的空闲空间,从而可达到提高数据重建速率的目的。另外,该实施例提供的方法应用范围较广,适用于固态硬盘阵列。
在上述基础上,申请人发现基于佛罗里达国际大学(Florida InternationalUniversity,FIU)系统研究实验室收集的带指纹数据的存储负载分析发现高数据引用率的数据也是被经常访问到的数据。其中,数据引用率用于表示数据在重复数据删除系统中出现的次数。例如,图2示出重复数据删除系统中数据引用率的一示意图。如图2所示,文件1对应的数据划分为数据块A、数据块B、数据块C和数据块D;文件2对应的数据划分为数据块E、数据块B、数据块F;文件3对应的数据划分为数据块D、数据块A和数据块B;文件4对应的数据划分数据块B和数据块G。对这4个文件对应的数据进行数据去重处理,得到各数据块的数据引用率(Reference,Ref):
数据块A,数据引用率为2;
数据块B,数据引用率为4;
数据块C,数据引用率为1;
数据块D,数据引用率为2;
数据块E,数据引用率为1;
数据块F,数据引用率为1;
数据块G,数据引用率为1。
因此,利用重复数据删除系统中的数据引用率,在进行数据重建时,优先重建数据引用率高的数据块,可以恢复重要数据块并恢复高被访问数据块,减少应用请求访问时的数据重构的次数,提高应用访问性能。具体可通过基于数据引用率的指纹表(Index_table)记录数据引用率及根据数据引用率进行的数据恢复,指纹表(Index_table)可如表1所示。其中,Key为键值,用于表示重复数据删除系统唯一标明一个数据;LBA用于表示数据的逻辑地址(Logical Block Address,LBA);Count表示数据对应的数据引用率。
表1
参考上述示例,数据块B的数据引用率为4,为所有数据块中数据引用率最高的数据块,因此,在数据重建时,优先重建数据块B;之后,依次重建数据块A和数据块D,之中,数据块A和数据块D的重建顺序可以是任意的,例如,先重建数据块A,再重建数据块D,或者,先重建数据块D,再重建数据块A,具体可根据实际需求进行设定;再之后,重建数据块C、数据块E、数据块F和数据块G,其中,这几个数据块的重建顺序类似数据块A和数据块D的描述,此处不再赘述。可选地,可以预先设定各数据引用率的重建顺序,例如,对应数据引用率大于10的数据块优先重建,然后再是对应数据引用率大于5的数据块,最后是对应数据引用率大于1的数据块。
基于上述,存储阵列是基于重复数据删除技术的存储阵列。一种实现方式中,S102、根据第二成员盘中数据,重建第一成员盘中的数据,可以包括:根据第一成员盘中数据的数据引用率从大到小的顺序,依次确定重建的条带;针对每一条带,执行以下操作:读取第二成员盘中对应该条带的数据;根据读取到的数据,重建第一成员盘中对应该条带的数据。在读取第二成员盘中对应该条带的数据时,分别读取每一第二成员盘中对应该条带的数据,可选地,在读取完一个第二成员盘中对应该条带的数据之后,判断是否该条带的所有数据都已读取,如果否,则转继续读取目前未读取的第二成员盘中对应该条带的数据;如果是,则根据读取到的数据,重建第一成员盘中对应该条带的数据。
参考图3,存储阵列为固态硬盘阵列,该固态硬盘阵列包含的成员盘为:固态硬盘1、固态硬盘2、固态硬盘3、固态硬盘4和固态硬盘5,其中,固态硬盘2出现故障,因此,该示例中的第一成员盘为固态硬盘2,第二成员盘为固态硬盘1、固态硬盘3、固态硬盘4和固态硬盘5。
固态硬盘2中的数据包含对应数据引用率大于10的数据块、对应数据引用率大于5的数据块以及对应数据引用率等于1的数据块,其中,不同数据块对应不同的条带。设定固态硬盘2对应某一条带的数据块为数据块D8,且数据块D8为对应数据引用率大于10的数据块中数据引用率最大的数据块,因此,优先重建数据块D8,确定数据块D8所在的条带为首先进行数据重建的条带。
针对数据块D8所在的条带,分别读取固态硬盘1、固态硬盘3、固态硬盘4和固态硬盘5中对应该条带的数据,读取到的这些数据可能是数据块或者校验块:固态硬盘1对应该条带的数据为数据块D7、固态硬盘3对应该条带的数据为数据块D9、固态硬盘4对应该条带的数据为数据块D10、固态硬盘5对应该条带的数据为校验块P11;根据读取到的数据,重建固态硬盘2中对应该条带的数据,即数据块D8。
可选地,根据读取到的数据,重建第一成员盘中对应该条带的数据,可以通过多种方式实现。示例性地,该步骤可以具体为:对读取到的数据块和/或校验块进行异或处理,得到重建后的第一成员盘中对应条带的数据块。以图3所示示例为例,对数据块D7、数据块D9、数据块D10和校验块P11进行异或(XOR)处理,得到重建后的数据块D8。其中,异或对应数学运算符号为⊕。
之后,按照固态硬盘2中数据的数据引用率从大到小的顺序,依次确定重建的条带,并参考数据块D8的重建进行固态硬盘2中对应其他条带的数据块的数据重建,直至完成固态硬盘2中所有数据的数据重建。
对应上述描述,S103、将重建后的第一成员盘中的数据并行写入预留阵列,可以包括:将重建后的第一成员盘中对应条带的数据并行写入预留阵列。仍参考图3示例,将重建后的固态硬盘2中对应该条带的数据,即数据块D8,并行写入预留阵列,该预留阵列包括固态硬盘1、固态硬盘3、固态硬盘4和固态硬盘5中各固态硬盘的空闲空间。
可选地,上述将重建后的第一成员盘中对应条带的数据并行写入预留阵列,可以包括:将重建后的第一成员盘中对应条带的数据分割为预设大小的目标数据块;根据各目标数据块计算校验值;将目标数据块及校验值分别并行写入预留阵列。可以理解,目标数据块及校验值是同时并行写入预留阵列的。
例如,预设大小可以为第一成员盘中对应条带的数据大小的N分之一,N为第二成员盘的个数减去1后得到的差值。可以理解,第二成员盘的个数为当前处于活跃状态的成员盘的个数,这N个第二成员盘中,1个第二成员盘对应预留阵列的部分用于存储校验值,(N-1)个第二成员盘对应预留阵列的部分用于存储目标数据块。
数据重建过程中,可以使用位图表(Bit_Map)记录预留阵列中已重建的数据,例如,如图4所示。参考图4,其中,SSD 1Head用于表示存储阵列中第一个成员盘的头部,Entry11用于表示第一个成员盘中的第一块/段数据,Entry12用于表示第一个成员盘中的第二块/段数据,Entry1n用于表示第一个成员盘中的第n块/段数据,LBA表示逻辑地址,Count表示数据引用率,bit表示该数据块/数据段是否已经完成重建,例如,1表示完成,0表示未完成,以此类推。同理,其余符号的含义类似。
本申请实施例利用固态硬盘的高随机访问性能的特点和数据引用率特点,优先恢复高数据引用率的数据块和并行写入预留阵列来加快数据重建速度,避免了串行重建对于提高固态硬盘阵列重建性能的不足。
在上述实施例的基础上,在对预留阵列空间管理的初始化时,完成如下两个操作:
(1)固态硬盘阵列初始化:固态硬盘阵列中的固态硬盘都做擦除操作(如写0),保证所有条带的数据一致性,如图5所示。图5中,固态硬盘阵列包括n个固态硬盘,其中,固态硬盘1至固态硬盘n-1用于存储实际有效数据,固态硬盘n用于存储有关校验的数据(校验值等)。
(2)预留阵列空间初始化:当固态硬盘阵列中有固态硬盘发生故障,预留阵列直接转换为替换成员盘开始数据重建过程。
考虑到数据重建过程中,还存在对存储阵列的读写调度。因此,在上述进行数据重建的基础上,基于存储阵列的数据重建方法还可以包括关于读写调度的相关步骤,以下通过详细实施例说明。
图6为本申请另一实施例提供的基于存储阵列的数据重建方法的流程示意图。如图6所示,在图1所示流程的基础上,该实施例中的基于存储阵列的数据重建方法还可以包括:
S601、获取读请求。
其中,该读请求用于读取第一成员盘中的数据。对于该读请求的来源,本申请实施例不予限制,例如,读请求是来自应用的读请求,等等。
S602、判断对应读请求的数据的重建是否完成。
若确定对应读请求的数据的重建已完成,执行S603;若确定对应读请求的数据块的重建未完成,则执行S604。
S603、从预留阵列进行数据读取。
S604、从第二成员盘进行数据读取。
同时,继续执行对第一成员盘中数据的重建,并写入预留阵列。
补充说明的是,本申请实施例不限制S601至S604,与S101至S103,的执行顺序,可以理解,数据重建过程与读调度流程是相互独立的。
图7为本申请又一实施例提供的基于存储阵列的数据重建方法的流程示意图。如图7所示,在图1所示流程的基础上,该实施例中的基于存储阵列的数据重建方法还可以包括:
S701、获取写请求。
其中,写请求用于更新第一成员盘中的数据。为本领域技术人员所理解,数据写入与数据更新的实现方式是类似或一样的,数据更新本质也是数据的异地写入。
同读请求,对于该写请求的来源,本申请实施例也不予限制,例如,写请求是来自应用的写请求,等等。
S702、判断对应写请求的数据的重建是否完成。
若确定对应写请求的数据的重建已完成,执行S703;若确定对应写请求的数据块的重建未完成,则执行S704。
S703、在预留阵列进行数据更新。
S704、等待重建完成之后,在预留阵列进行数据更新。
上述图6和图7所示的实施例,介绍了在对存储阵列中故障成员盘中数据进行数据重建的过程中,处理来自应用和用户的读请求/写请求,保证读写的数据的正确性。
在数据重建成功之后,同一存储阵列再次发生故障(二次故障)后,此时,数据重建过程是指当基于第1次成员盘故障的重建完成后又发生第2次成员盘故障,则优先重建预留阵列中丢失的数据(第1次故障的成员盘中的数据);当预留阵列中数据重建完成后,即可重建存储阵列中第2次成员盘故障后丢失的、非预留阵列中的数据。
图8为本申请又一实施例提供的基于存储阵列的数据重建方法的流程示意图。如图8所示,在图1所示流程的基础上,S103、将重建后的第一成员盘中的数据并行写入预留阵列之后,该实施例中的基于存储阵列的数据重建方法还可以包括:
S801、当检测到第三成员盘出现故障时,优先重建该第三成员盘中对应预留阵列的数据,再重建该第三成员盘中其他数据。
其中,第二成员盘包含第三成员盘。且,第三成员盘的个数可以为1个或多个。
可选地,该步骤可以具体为:确定有新加入的成员盘;重建第三成员盘中对应预留阵列的数据;重建第三成员盘中其他数据;将重建后的第三成员盘中的数据写入新加入的成员盘。若无新加入的成员盘,则结束数据的重建。
如图9所示,存储阵列包含的成员盘为:成员盘1、成员盘2、成员盘3、成员盘4和成员盘5,其中,成员盘2为第1次故障的成员盘,成员盘3为第2次故障的成员盘,即第一成员盘为成员盘2,第三成员盘为成员盘3。在对成员盘3中的数据进行数据重建时,优先重建成员盘3中对应预留阵列的数据,再重建该成员盘3中其他数据。该示例中的存储阵列可以为固态硬盘阵列或其他存储介质为闪存的存储阵列等。
同上述实施例,对第三成员盘中的数据的重建,包括第三成员盘对应预留阵列的数据及该第三成员盘中其他数据,均可采用基于数据引用率的重建顺序对数据进行重建,具体参考上述实施例中相关描述,此处不再赘述。
本申请实施例对应的产品形态可以是固态硬盘阵列或全闪存阵列,例如华为的OceanStor Dorado V3系列产品。本申请实施例可以显著提高固态硬盘阵列的性能,具有较好的应用前景。
上述方案中,通过改变数据重建后的数据写入过程,由现有技术中的单次大数据(对应一个条带的数据块)写入变成同时的多个目标数据块并行写入,可以减轻数据重建过程中的写入瓶颈,从而加快数据重建速度,提高存储阵列的可靠性;其次,通过改变重建数据的顺序,优先重建数据引用率高的数据,这样可以减少由于用户访问而产生的频繁重构影响,进而加快用户请求的访问速度和重建速度,即可以同时提高存储阵列存储性能和可靠性。并行重建可以显著提高存储阵列的性能,实验结果表明相比现有技术单次大数据(对应一个条带的数据块)写入,对于故障响应时间平均有55.7%的减少。同时还明显减少了重建时间和重建过程中的用户响应延迟。对于不同的应用负载,本申请实施例均有良好的适应性。
图10为本申请一实施例提供的基于存储阵列的数据重建装置的结构示意图。如图10所示,本申请实施例提供的基于存储阵列的数据重建装置10包括:获取模块11,重建模块12和写入模块13。其中,
该获取模块11,用于在检测到第一成员盘出现故障时,获取预留阵列。该存储阵列包括第一成员盘和至少两个第二成员盘。预留阵列包括第二成员盘的空闲空间。
该重建模块12,用于根据第二成员盘中数据,重建第一成员盘中的数据。
该写入模块13,用于将重建后的第一成员盘中的数据并行写入预留阵列。
本实施例的基于存储阵列的数据重建装置可用于执行上述各实施例提供的基于存储阵列的数据重建方法的步骤,具体实现原理和技术效果类似,此处不再赘述。
在上述基础上,一种实现方式中,重建模块12可具体用于:根据第一成员盘中数据的数据引用率从大到小的顺序,依次确定重建的条带,该数据引用率用于表示数据在重复数据删除系统中出现的次数;针对每一条带,执行以下操作:读取第二成员盘中对应条带的数据;根据读取到的数据,重建第一成员盘中对应条带的数据。
对应地,写入模块13可具体用于:将重建后的第一成员盘中对应条带的数据并行写入预留阵列。
进一步地,写入模块13用于将重建后的第一成员盘中对应条带的数据并行写入预留阵列时,可具体为:将重建后的第一成员盘中对应条带的数据分割为预设大小的目标数据块;根据各目标数据块计算校验值;将目标数据块及校验值分别并行写入预留阵列。
可选地,预设大小可以为第一成员盘中对应条带的数据大小的N分之一,N为第二成员盘的个数减去1后得到的差值。
在上述实施例的基础上,基于存储阵列的数据重建装置10还可以包括读模块(未示出)。该读模块可以用于:获取读请求,该读请求用于读取第一成员盘中的数据;判断对应读请求的数据的重建是否完成;若确定对应读请求的数据的重建已完成,从预留阵列进行数据读取;或者,若确定对应读请求的数据块的重建未完成,从第二成员盘进行数据读取。
另一种实现方式中,基于存储阵列的数据重建装置10还可以包括写模块(未示出)。该写模块可以用于:获取写请求,该写请求用于更新第一成员盘中的数据;判断对应写请求的数据的重建是否完成;若确定对应写请求的数据的重建已完成,在预留阵列进行数据更新;或者,若确定对应写请求的数据块的重建未完成,则等待重建完成之后,在预留阵列进行数据更新。
更进一步地,重建模块12还可以用于:在写入模块将重建后的第一成员盘中的数据并行写入预留阵列之后,当检测到第三成员盘出现故障时,优先重建第三成员盘中对应预留阵列的数据,再重建第三成员盘中其他数据。第二成员盘包含第三成员盘。
可选地,重建模块12在用于优先重建第三成员盘中对应预留阵列的数据,再重建第三成员盘中其他数据时,具体为:确定有新加入的成员盘;重建第三成员盘中对应预留阵列的数据;重建第三成员盘中其他数据;将重建后的第三成员盘中的数据写入新加入的成员盘。
图11为本申请另一实施例提供的基于存储阵列的数据重建装置的结构示意图。如图11所示,本申请实施例提供的基于存储阵列的数据重建装置20可以包括:预留阵列管理模块21,读写调度模块22和并行重建模块23。其中,
该预留阵列管理模块21,用于负责预留阵列的初始化过程,当存储阵列中成员盘发生二次故障后负责预留阵列的数据重建过程。
该读写调度模块22,用于负责在存储阵列并行重建过程中处理来自应用和用户的读请求/写请求,保证应用和用户读请求/写请求的数据的正确性。
该并行重建模块23,用于负责成员盘故障后存储阵列的重建过程,从存储阵列的其他非故障成员盘(即第二成员盘)中读取数据重构故障成员盘(即第一成员盘)上的数据并分块后并行写入到预留阵列中。
该基于存储阵列的数据重建装置具体涉及阵列控制器管理层,包括存储阵列中数据布局和重建过程中的重建次序的改变。
本申请实施例所涉及的基于存储阵列的数据重建装置,可以为图12所示的基于存储阵列的数据重建装置30。
如图12所示,基于存储阵列的数据重建装置30包括:处理器31和存储器32。其中,存储器32用于存储指令。当处理器31执行存储器32存储的指令时,基于存储阵列的数据重建装置30执行本申请任一方法实施例的方法步骤。
可选地,基于存储阵列的数据重建装置30还可以包括收发器(未示出)。其中,处理器31、存储器32和收发器(可以包括发送器和接收器)相互连接。
其中,本申请实施例提供的基于存储阵列的数据重建装置30中各个模块或单元的详细描述以及各个模块或单元执行本申请任一方法实施例的方法步骤后所带来的技术效果可以参考本申请方法实施例中的相关描述,此处不再赘述。
本申请实施例提供了一种基于存储阵列的数据重建装置,包括用于执行上述任一方法实施例的至少一个处理元件(或芯片)。
本申请实施例还提供了一种芯片,包括:处理模块与通信接口,所述处理模块能执行上述任一方法实施例的方法流程。进一步地,所述芯片还包括存储模块(如,存储器),所述存储模块用于存储指令,所述处理模块用于执行所述存储模块存储的指令,并且对所述存储模块中存储的指令的执行使得所述处理模块执行上述任一方法实施例的方法流程。
本申请实施例提供一种计算机可读存储介质,当该计算机可读存储介质中的指令在由处理器执行时实现上述任一方法实施例中所述的基于存储阵列的数据重建方法。
本申请实施例提供一种程序或包括程序的一种计算机程序产品,该程序在被基于存储阵列的数据重建装置的处理器执行时,将会使该基于存储阵列的数据重建装置实现上述任一方法实施例的方法流程。
应理解,本申请实施例中提及的处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
还应理解,本文中涉及的第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请的范围。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,部分或全部步骤可以并行执行或先后执行,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,网络设备或者终端设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请各方法实施例之间相关部分可以相互参考;各装置实施例所提供的装置用于执行对应的方法实施例所提供的方法,故各装置实施例可以参考相关的方法实施例中的相关部分进行理解。
本申请各装置实施例中给出的装置结构图仅示出了对应的装置的简化设计。在实际应用中,该装置可以包含任意数量的发射器,接收器,处理器,存储器等,以实现本申请各装置实施例中该装置所执行的功能或操作,而所有可以实现本申请的装置都在本申请的保护范围之内。
本申请各实施例中提供的消息/帧/指示信息、模块或单元等的名称仅为示例,可以使用其他名称,只要消息/帧/指示信息、模块或单元等的作用相同即可。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
取决于语境,如在此所使用的词语“如果”或“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关硬件来完成,所述的程序可以存储于一个设备的可读存储介质中,该程序在执行时,包括上述全部或部分步骤,所述的存储介质,如:FLASH、EEPROM等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,不同的实施例可以进行组合,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何组合、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种基于存储阵列的数据重建方法,其特征在于,包括:
当检测到第一成员盘出现故障时,获取预留阵列,所述存储阵列包括所述第一成员盘和至少两个第二成员盘,所述预留阵列包括所述第二成员盘的空闲空间;
根据所述第二成员盘中数据,重建所述第一成员盘中的数据;
将重建后的所述第一成员盘中的数据并行写入所述预留阵列。
2.根据权利要求1所述的基于存储阵列的数据重建方法,其特征在于,所述根据所述第二成员盘中数据,重建所述第一成员盘中的数据,包括:
根据所述第一成员盘中数据的数据引用率从大到小的顺序,依次确定重建的条带,所述数据引用率用于表示数据在重复数据删除系统中出现的次数;
针对每一条带,执行以下操作:
读取所述第二成员盘中对应所述条带的数据;
根据读取到的数据,重建所述第一成员盘中对应所述条带的数据。
3.根据权利要求2所述的基于存储阵列的数据重建方法,其特征在于,所述将重建后的所述第一成员盘中的数据并行写入所述预留阵列,包括:
将重建后的所述第一成员盘中对应所述条带的数据并行写入所述预留阵列。
4.根据权利要求3所述的基于存储阵列的数据重建方法,其特征在于,所述将重建后的所述第一成员盘中对应所述条带的数据并行写入所述预留阵列,包括:
将重建后的所述第一成员盘中对应所述条带的数据分割为预设大小的目标数据块;
根据各所述目标数据块计算校验值;
将所述目标数据块及所述校验值分别并行写入所述预留阵列。
5.根据权利要求4所述的基于存储阵列的数据重建方法,其特征在于,所述预设大小为所述第一成员盘中对应所述条带的数据大小的N分之一,N为所述第二成员盘的个数减去1后得到的差值。
6.根据权利要求1至5中任一项所述的基于存储阵列的数据重建方法,其特征在于,还包括:
获取读请求,所述读请求用于读取所述第一成员盘中的数据;
判断对应所述读请求的数据的重建是否完成;
若确定对应所述读请求的数据的重建已完成,从所述预留阵列进行数据读取;
或者,若确定对应所述读请求的数据块的重建未完成,从所述第二成员盘进行数据读取。
7.根据权利要求1至6中任一项所述的基于存储阵列的数据重建方法,其特征在于,还包括:
获取写请求,所述写请求用于更新所述第一成员盘中的数据;
判断对应所述写请求的数据的重建是否完成;
若确定对应所述写请求的数据的重建已完成,在所述预留阵列进行数据更新;
或者,若确定对应所述写请求的数据块的重建未完成,则等待重建完成之后,在所述预留阵列进行数据更新。
8.根据权利要求1至7中任一项所述的基于存储阵列的数据重建方法,其特征在于,所述将重建后的所述第一成员盘中的数据并行写入所述预留阵列之后,还包括:
当检测到第三成员盘出现故障时,优先重建所述第三成员盘中对应所述预留阵列的数据,再重建所述第三成员盘中其他数据,所述第二成员盘包含所述第三成员盘。
9.根据权利要求8所述的基于存储阵列的数据重建方法,其特征在于,所述优先重建所述第三成员盘中对应所述预留阵列的数据,再重建所述第三成员盘中其他数据,包括:
确定有新加入的成员盘;
重建所述第三成员盘中对应所述预留阵列的数据;
重建所述第三成员盘中其他数据;
将重建后的所述第三成员盘中的数据写入所述新加入的成员盘。
10.一种基于存储阵列的数据重建装置,其特征在于,包括:
获取模块,用于在检测到第一成员盘出现故障时,获取预留阵列,所述存储阵列包括所述第一成员盘和至少两个第二成员盘,所述预留阵列包括所述第二成员盘的空闲空间;
重建模块,用于根据所述第二成员盘中数据,重建所述第一成员盘中的数据;
写入模块,用于将重建后的所述第一成员盘中的数据并行写入所述预留阵列。
11.根据权利要求10所述的基于存储阵列的数据重建装置,其特征在于,所述重建模块具体用于:
根据所述第一成员盘中数据的数据引用率从大到小的顺序,依次确定重建的条带,所述数据引用率用于表示数据在重复数据删除系统中出现的次数;
针对每一条带,执行以下操作:
读取所述第二成员盘中对应所述条带的数据;
根据读取到的数据,重建所述第一成员盘中对应所述条带的数据。
12.根据权利要求11所述的基于存储阵列的数据重建装置,其特征在于,所述写入模块具体用于:
将重建后的所述第一成员盘中对应所述条带的数据并行写入所述预留阵列。
13.根据权利要求12所述的基于存储阵列的数据重建装置,其特征在于,所述写入模块用于将重建后的所述第一成员盘中对应所述条带的数据并行写入所述预留阵列时,具体为:
将重建后的所述第一成员盘中对应所述条带的数据分割为预设大小的目标数据块;
根据各所述目标数据块计算校验值;
将所述目标数据块及所述校验值分别并行写入所述预留阵列。
14.根据权利要求13所述的基于存储阵列的数据重建装置,其特征在于,所述预设大小为所述第一成员盘中对应所述条带的数据大小的N分之一,N为所述第二成员盘的个数减去1后得到的差值。
15.根据权利要求10至14中任一项所述的基于存储阵列的数据重建装置,其特征在于,还包括读模块,用于:
获取读请求,所述读请求用于读取所述第一成员盘中的数据;
判断对应所述读请求的数据的重建是否完成;
若确定对应所述读请求的数据的重建已完成,从所述预留阵列进行数据读取;
或者,若确定对应所述读请求的数据块的重建未完成,从所述第二成员盘进行数据读取。
16.根据权利要求10至15中任一项所述的基于存储阵列的数据重建装置,其特征在于,还包括写模块,用于:
获取写请求,所述写请求用于更新所述第一成员盘中的数据;
判断对应所述写请求的数据的重建是否完成;
若确定对应所述写请求的数据的重建已完成,在所述预留阵列进行数据更新;
或者,若确定对应所述写请求的数据块的重建未完成,则等待重建完成之后,在所述预留阵列进行数据更新。
17.根据权利要求10至16中任一项所述的基于存储阵列的数据重建装置,其特征在于,所述重建模块还用于:
在所述写入模块将重建后的所述第一成员盘中的数据并行写入所述预留阵列之后,当检测到第三成员盘出现故障时,优先重建所述第三成员盘中对应所述预留阵列的数据,再重建所述第三成员盘中其他数据,所述第二成员盘包含所述第三成员盘。
18.根据权利要求17所述的基于存储阵列的数据重建装置,其特征在于,所述重建模块在用于优先重建所述第三成员盘中对应所述预留阵列的数据,再重建所述第三成员盘中其他数据时,具体为:
确定有新加入的成员盘;
重建所述第三成员盘中对应所述预留阵列的数据;
重建所述第三成员盘中其他数据;
将重建后的所述第三成员盘中的数据写入所述新加入的成员盘。
19.一种基于存储阵列的数据重建装置,其特征在于,包括:处理器和存储器;
所述存储器用于存储指令;
当所述处理器执行所述存储器存储的指令时,所述基于存储阵列的数据重建装置用于执行如权利要求1至9中任一项所述的基于存储阵列的数据重建方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读指令在由处理器执行时实现如权利要求1至9中任一项所述的基于存储阵列的数据重建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810404552.7A CN110413454B (zh) | 2018-04-28 | 2018-04-28 | 基于存储阵列的数据重建方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810404552.7A CN110413454B (zh) | 2018-04-28 | 2018-04-28 | 基于存储阵列的数据重建方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413454A true CN110413454A (zh) | 2019-11-05 |
CN110413454B CN110413454B (zh) | 2022-04-05 |
Family
ID=68357204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810404552.7A Active CN110413454B (zh) | 2018-04-28 | 2018-04-28 | 基于存储阵列的数据重建方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413454B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158596A (zh) * | 2019-12-28 | 2020-05-15 | 天地伟业技术有限公司 | 一种raid快速初始化方法 |
CN111158589A (zh) * | 2019-12-16 | 2020-05-15 | 绿晶半导体科技(北京)有限公司 | 存储阵列的动态管理方法和装置 |
CN111221473A (zh) * | 2019-12-30 | 2020-06-02 | 河南创新科信息技术有限公司 | 一种存储系统介质免维护的方法 |
CN113254256A (zh) * | 2020-02-10 | 2021-08-13 | 华为技术有限公司 | 数据重构方法、存储设备及存储介质 |
CN114510379A (zh) * | 2022-04-21 | 2022-05-17 | 山东百盟信息技术有限公司 | 一种分布式阵列视频数据存储装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100037091A1 (en) * | 2008-08-06 | 2010-02-11 | Anant Baderdinni | Logical drive bad block management of redundant array of independent disks |
CN101833422A (zh) * | 2010-03-08 | 2010-09-15 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列的数据处理方法及设备 |
CN102521068A (zh) * | 2011-11-08 | 2012-06-27 | 华中科技大学 | 一种固态盘阵列的重建方法 |
CN103699336A (zh) * | 2013-12-03 | 2014-04-02 | 中国科学院计算技术研究所 | 一种磁盘阵列数据分布与重建方法及系统 |
US20150347232A1 (en) * | 2012-12-06 | 2015-12-03 | Compellent Technologies | Raid surveyor |
CN107273048A (zh) * | 2017-06-08 | 2017-10-20 | 浙江大华技术股份有限公司 | 一种数据写入方法及装置 |
-
2018
- 2018-04-28 CN CN201810404552.7A patent/CN110413454B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100037091A1 (en) * | 2008-08-06 | 2010-02-11 | Anant Baderdinni | Logical drive bad block management of redundant array of independent disks |
CN101833422A (zh) * | 2010-03-08 | 2010-09-15 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列的数据处理方法及设备 |
CN102521068A (zh) * | 2011-11-08 | 2012-06-27 | 华中科技大学 | 一种固态盘阵列的重建方法 |
US20150347232A1 (en) * | 2012-12-06 | 2015-12-03 | Compellent Technologies | Raid surveyor |
CN103699336A (zh) * | 2013-12-03 | 2014-04-02 | 中国科学院计算技术研究所 | 一种磁盘阵列数据分布与重建方法及系统 |
CN107273048A (zh) * | 2017-06-08 | 2017-10-20 | 浙江大华技术股份有限公司 | 一种数据写入方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158589A (zh) * | 2019-12-16 | 2020-05-15 | 绿晶半导体科技(北京)有限公司 | 存储阵列的动态管理方法和装置 |
CN111158589B (zh) * | 2019-12-16 | 2023-10-20 | 绿晶半导体科技(北京)有限公司 | 存储阵列的动态管理方法和装置 |
CN111158596A (zh) * | 2019-12-28 | 2020-05-15 | 天地伟业技术有限公司 | 一种raid快速初始化方法 |
CN111221473A (zh) * | 2019-12-30 | 2020-06-02 | 河南创新科信息技术有限公司 | 一种存储系统介质免维护的方法 |
CN111221473B (zh) * | 2019-12-30 | 2023-06-06 | 河南创新科信息技术有限公司 | 一种存储系统介质免维护的方法 |
CN113254256A (zh) * | 2020-02-10 | 2021-08-13 | 华为技术有限公司 | 数据重构方法、存储设备及存储介质 |
CN113254256B (zh) * | 2020-02-10 | 2023-08-22 | 华为技术有限公司 | 数据重构方法、存储设备及存储介质 |
CN114510379A (zh) * | 2022-04-21 | 2022-05-17 | 山东百盟信息技术有限公司 | 一种分布式阵列视频数据存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110413454B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413454B (zh) | 基于存储阵列的数据重建方法、装置及存储介质 | |
US11042441B2 (en) | Stripe mapping in memory | |
US9910748B2 (en) | Rebuilding process for storage array | |
US20170147435A1 (en) | Non-volatile memory program failure recovery via redundant arrays | |
US8880843B2 (en) | Providing redundancy in a virtualized storage system for a computer system | |
US9916191B1 (en) | Techniques for efficiently performing a filesystem consistency check | |
US10261705B2 (en) | Efficient data consistency verification for flash storage | |
CN103699337B (zh) | 一种基于独立磁盘冗余阵列raid的写控制方法及系统 | |
CN101923441B (zh) | 混合磁盘冗余阵列的写请求处理方法、控制器和存储系统 | |
CN108255414B (zh) | 固态硬盘访问方法及装置 | |
TWI461901B (zh) | 資料儲存與重建的方法與系統 | |
US11029857B2 (en) | Offloading device maintenance to an external processor in low-latency, non-volatile memory | |
CN112513804B (zh) | 一种数据处理方法及装置 | |
CN113391947B (zh) | Ssd raid条带掉电快速恢复方法、装置、计算机设备及存储介质 | |
US11307804B2 (en) | Enhanced SSD reliability | |
CN112749039A (zh) | 用于数据写入和数据恢复的方法、设备和程序产品 | |
CN107885620B (zh) | 一种提高固态盘阵列性能和可靠性的方法及系统 | |
CN110737395B (zh) | I/o管理方法、电子设备和计算机可读存储介质 | |
CN109558066B (zh) | 存储系统中恢复元数据的方法和装置 | |
CN109542671B (zh) | 校验数据生成方法及固态硬盘 | |
US11934264B2 (en) | ECC parity biasing for Key-Value data storage devices | |
CN104461383B (zh) | 一种独立磁盘冗余阵列的实现方法及装置 | |
US9262424B1 (en) | Techniques for performing slice consistency checks | |
CN115454708A (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 |