CN108228086B - Raid重建的方法和设备 - Google Patents

Raid重建的方法和设备 Download PDF

Info

Publication number
CN108228086B
CN108228086B CN201611194062.6A CN201611194062A CN108228086B CN 108228086 B CN108228086 B CN 108228086B CN 201611194062 A CN201611194062 A CN 201611194062A CN 108228086 B CN108228086 B CN 108228086B
Authority
CN
China
Prior art keywords
raid group
disks
disk
spare
logical unit
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
CN201611194062.6A
Other languages
English (en)
Other versions
CN108228086A (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN202110777420.0A priority Critical patent/CN113407122B/zh
Priority to CN201611194062.6A priority patent/CN108228086B/zh
Priority to US15/846,762 priority patent/US10592366B2/en
Publication of CN108228086A publication Critical patent/CN108228086A/zh
Priority to US16/814,003 priority patent/US11099955B2/en
Application granted granted Critical
Publication of CN108228086B publication Critical patent/CN108228086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1084Degraded mode, e.g. caused by single or multiple storage removals or disk failures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices

Abstract

本公开的实施例提供了RAID重建的方法和设备。在一些实施例中,提供了一种由计算机实现的方法。该方法包括:从存储池的至少一个独立盘冗余阵列(RAID)组包含的多个盘中,确定具有预备容量的预备RAID组;从所述预备RAID组建立预备逻辑单元;以及响应于所述存储池中的所述至少一个RAID组中的一个处于降级状态,利用所述预备逻辑单元重建降级的RAID组中的故障盘。

Description

RAID重建的方法和设备
技术领域
本公开的实施例总体涉及数据存储,更具体地,涉及独立盘冗余阵列(RAID)的重建方法。
背景技术
独立盘冗余阵列(RAID)是一种数据存储虚拟化技术,其出于数据冗余备份和/或性能改进的目的将多个物理盘驱动器组合成单个逻辑单元。以RAID5为例,其可以由具有分布式校验信息的块级别条带构成。当单个盘发生故障时,后续的读取能够通过分布式校验信息来计算,使得没有数据被丢失。同时,预备盘将被选择以替代故障盘,并且故障盘上的所有数据将被重建并被写入到预备盘上。在传统RAID中,RAID组(RG)将消耗掉该组内的所有盘空间,这将对故障重建的效果和代价带来不利影响。
发明内容
本公开的实施例旨在提供一种改进RAID重建性能的方案。
在本公开的一个方面,提供了一种由计算机执行的方法。该方法包括从存储池的至少一个RAID组包含的多个盘中,确定具有预备容量的预备RAID组;从所述预备RAID组建立预备逻辑单元;以及响应于所述存储池中的所述至少一个RAID组中的一个处于降级状态,利用所述预备逻辑单元重建降级的RAID组中的故障盘。
在一些实施例中,确定具有预备容量的预备RAID组包括:基于在所述存储池中的所述盘的数量与预备盘的数量的对应关系,确定所述多个盘中的预备容量的分配。
在一些实施例中,从所述预备RAID组建立预备逻辑单元包括:根据所述预备容量的大小,确定从所述预备RAID组所建立的预备逻辑单元的个数。
在一些实施例中,利用所述预备逻辑单元重建所述降级的RAID组中故障的盘包括:检测所述预备逻辑单元是否可用;响应于所述预备逻辑单元是可用的,将所述预备逻辑单元指派给在所述降级的RAID组;以及响应于所述降级的RAID组启动重建动作,将所述故障盘中的数据写入所述预备逻辑单元中。
在一些实施例中,该方法还包括:在所述故障盘被更换之后,释放所述预备逻辑单元。
在一些实施例中,释放所述预备逻辑单元包括:响应于所述故障盘的更换,将写入到所述预备逻辑单元中的所述故障的盘的数据写回更换后的盘中;将所述预备逻辑单元从所述降级的RAID组中移除;以及将所述更换后的盘添加到所述降级的RAID组中。
在本公开的第二方面,提供了一种由计算机实现的设备。该设备包括至少一个处理单元;以及至少一个存储器。至少一个存储器耦合至至少一个处理单元并且在其上存储指令,指令在由所述至少一个处理单元执行时执行包括以下各项的动作:从存储池的至少一个独立盘冗余阵列(RAID)组包含的多个盘中,确定具有预备容量的预备RAID组;从所述预备RAID组建立预备逻辑单元;以及响应于所述存储池中的所述至少一个RAID组中的一个处于降级状态,利用所述预备逻辑单元重建降级的RAID组中的故障盘。
在本公开的第三方面,提供了一种计算机程序产品,其被有形地存储在非瞬态计算机可读介质上并且包括计算机可读程序指令,当所述计算机可读程序指令在设备上被执行时使得所述设备执行根据以上第一方面所描述的方法的步骤。
与现有技术相比,本公开的实施例能够显著改进传统RAID的重建性能。此外,由于取消了存储池中的专用预备盘,使得在存储池中的所有盘都能够用于用户IO,这进一步提高了盘的有效率。使用RAID-X0类型的RAID组管理分布式的预备盘空间,这能够在重建期间将写入IO分布给在存储池中的所有盘。本公开的实施例的重建方法能够基于传统的RAID技术来实施。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开内容的关键特征或主要特征,也无意限制本公开内容的范围。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例而非限制性的方式示出了本公开的若干实施例,其中:
图1示出了传统RAID的重建的示意图;
图2示出了传统RAID的用于重建的内部行为的示意图;
图3示出了根据本发明的实施例的具有多个RAID组和专用预备盘的存储池的示意图;
图4示出了根据本公开的实施例的用于RAID的重建方法400的流程图;
图5示出了根据本发明的实施例的具有多个RAID组和分布式预备盘的存储池的示意图;
图6示出了根据本发明的实施例的采用分布式预备盘对RAID的进行重建的示意图;
图7示出了根据本公开的实施例的利用IO生成器对传统RAID的重建过程的模拟的示意图;
图8示出了根据本公开的实施例的利用IO生成器进行分布式重建过程的模拟的示意图;以及
图9示出了可以用来实施本公开的实施例的设备900的示意性框图。
图10示出了根据本公开的实施例的用于RAID重建的设备1000的示例性结构图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
在下文中,将参考附图详细描述本公开的各个示例性实施例。应当注意,这些附图和描述涉及的仅仅是作为示例性的实施例。应该指出的是,根据随后描述,很容易设想出此处公开的结构和方法的替换实施例,并且可以在不脱离本公开要求保护的原理的情况下使用这些替代实施例。
应当理解,给出这些示例性实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在此使用的术语“包括”、“包含”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。其他术语的相关定义将在下文描述中给出。
在下文中,将参考附图来详细描述根据本公开的实施例的用于评估RAID的重建性能的方案。出于便于描述的目的,以下以具有4个数据块和1个校验块(4D+1P)的RAID5为例来详细地说明本公开的实施例。然而,应当理解的是,本公开的实施例的原理和方法可以应用于任何级别或布局的RAID而不仅限于以下所列举的示例,并且本公开的保护范围在此方面不受限制。
如上所述,在传统RAID中,RAID组(RG)将消耗掉该组内的所有盘空间。通过发明人的研究发现,传统方案将导致以下问题:首先,如果单个盘发生故障,则用于重建的写输入输出(IO)将针对唯一的预备盘,因此该预备盘的带宽将成为重建性能的瓶颈。主轴盘(spindle)具有不同的读/写IO性能,用于读IO或写IO的带宽也不同。其次,针对相同RG的用户IO将受到严重影响,这些用户IO的响应时间将显著增加,因为RG的IO性能受限于该RG中最慢的盘;并且在重建情况下,处于重建中的盘将限制用户IO性能。再次,RAID组在重建过程中需要特定的用户IO进程,如在该重建过程中出现其他盘的故障就会造成数据丢失。而特定的用户IO进程也会使用户IO性能明显降级。而且,由于盘容量逐年增加,使得上述几个问题被放大,从而对用户造成了更大的数据丢失风险。
图1示出了传统RAID的重建的示意图。传统RAID由具有分布式校验信息的块级别条带构成,校验信息可以被分布在多个盘中。图1示出了RG 110,其是具有4个数据块和1个校验块(4D+1P)的RAID5。如图1中的(1A)所示,RG 110使用了5个盘,分别为盘1200、盘1201、盘1202、盘1203和盘1204。此外,RG 110利用盘1205作为其预备盘。RG 110的每个条带可以包括5个块,该5个块由4个数据块(即,存储D00、D01……DN3的块)和1个校验块(即,存储P0、P1……PN的块)构成。图1中的(1B)示出了RG 110中的一个盘(例如,盘1202)发生故障。此时,如图1中的(1C)所示,预备盘(例如,盘1205)将会替代故障盘(即,盘1202);并且如图1中的(1D)所示,故障盘(即,盘1202)上的所有数据将被重建并被写入到预备盘(即,盘1205)上。
进一步地,图2示出了如图1所示的RG 110的用于重建的内部行为的示意图。用于重建的内部行为可以包括在盘中备份、预读取、异或(XOR)和写回三个步骤。如已经参考图1所描述的,RG 110中的盘1202发生故障,并且盘1202上的所有数据将被重建并被写入到盘1205(即,预备盘)上。例如,如图2中的(2A)所示,此时RG 110将要重建P4之后的块。首先进行的步骤是预读取,如图2中的(2B)所示,RG 110从4个未发生故障的盘中(即,盘1200、盘1201、盘1203和盘1204)分别读取相同条带中的数据D50、D51、D52和D53;然后进行的步骤是异或,如图2中的(2C)所示,RG 110对读取的数据执行异或操作以得到发生故障的盘中的相应块中存储的数据(例如,D50XOR D51XOR D52XOR D53=P5);最后进行的步骤是写回,如图2中的(2D)所示,RG 110将异或操作的结果(例如,P5)写入预备盘的相应块中,以完成对该块的重建。
在一个存储池中,通常串接具有相同的RAID类型和宽度(在RAID组中的盘的数量),并且具有用于保持在精简型逻辑单元(Thin LUN)地址空间以及非精简型逻辑单元(Thick LUN)地址空间的映射的组成部分,之后在必要时能够启动/分配从Thick LUN切分出Thin LUN。因此,一般地,在同一个存储池中,具有相同的盘技术的RAID组需要具有相同的类型和宽度,而用户需要为每个存储池配置预备盘,或者预备盘能够在存储池中被共享,不管怎样,存储池都需要呈阵列形式的预备盘。图3示出了根据本发明的实施例的具有多个RAID组和专用预备盘的存储池的示意图。如图3所示,在存储池中包括多个RAID组(即,RG3101,RG3102,…RG310N)以及专用的预备盘。该预备盘用于在这个存储池中的RAID组中的一个处于降级的状态时,对该降级的RAID组中的RAID进行重建。然而,如果在存储池中没有出现故障盘的情况下,这样的专用预备盘的配置是浪费客户资源的。
因此,需要实现一种能够行之有效的改进传统RAID的重建性能的方案。图4示出了根据本公开的实施例的用于RAID的重建方法400的流程图。
在401处,从存储池的至少一个RAID组包含的多个盘中,确定具有预备容量的预备RAID组。在某些实施例中,可以基于在所述存储池中的所述盘的数量与预备盘的数量的对应关系,确定所述多个盘中的预备容量的分配。以下将参考图5对方法400进行详细描述,其示出了根据本发明的实施例的具有多个RAID组和分布式预备盘的存储池的示意图。图5示出了存储池,在该存储池中包括多个RAID组,即RG 5101、RG 5102…RG 510N。以RG 5101为例,其为4D+1P的传统RAID 5,包括盘5200、盘5201、盘5202、盘5203和盘5204。可以看出,相较于在图3中示出的实施例,在图5示出的实施例中取消了专用预备盘的配置。相反地,将预备盘分布在存储池的RAID组中的每个盘中。在每个盘中所划分出预备容量的大小,可以取决于盘的数量与预备盘的数量的对应关系,也就是预定的预备盘率。例如,30个盘对应1个预备盘。如果存储池包括少于30的盘,则从包含在存储池中的所有盘中划分出1个盘容量的预备盘。如果存储池包含多于30但少于60的盘,则划分出2个盘容量的预备盘。被划分出的预备盘形成了预备RAID组,即在图5中的预备RG。
需要说明的是,在存储池中的RAID组可以以RAID-X的形式来提供,例如RAID 5(宽度Y)或RAID 6(宽度Z),这通常是在存储池的初始化阶段由用户预定的。而由从这些RAID组(RAID-X)中划分出的预备盘区段(piece)建立的预备RAID组可以是RAID-X0形式的RAID组(宽度Y/Z),也就是说,该预备RAID组能够支持所有传统类型的RAID。并且,预备RG(RAID-X0)能跨所有盘地均匀分配IO,其通常能够将IO分配到所有盘并且分配成几千比特的粒度。
另外,尽管在图5所示的实施例中,在存储池的每个RAID组中的每个盘中均划分出了一些容量作为预备盘。然而,也可以仅仅在存储池的一部分RAID组中划分出作为预备盘的容量。例如,可以仅仅使用在存储池中的一个RAID组。图5中的实施例仅仅旨在示例性地示出分布式预备盘的布局,而非作为预备盘的布局的限定。
在420处,从所述预备RAID组建立预备逻辑单元。为此,在某些实施例中,可以根据预备容量的大小,确定从预备RAID组所建立的预备逻辑单元的个数。例如,如果划分出的预备盘容量等于1个盘的容量,则从预备RG中建立一个预备逻辑单元,例如LUN 0,如果划分出的预备盘容量等于2个盘的容量,则从预备RG中建立预备逻辑单元,例如LUN 0和LUN 1,以此类推。例如在图5中示出的,从预备RG中建立预备逻辑单元LUN 0、LUN 1…LUN n。这些预备逻辑单元提供块设备访问接口,其实际上非常类似于物理盘,所需要做的仅仅是在这些预备逻辑单元上添加非常薄的垫片(shim)以将该预备逻辑单元模拟为盘。
在430处,响应于所述存储池中的所述至少一个RAID组中的一个处于降级状态,利用所述预备逻辑单元重建降级的RAID组中的故障盘。下面参考图6来描述430处操作的示例实现,其示出了根据本发明的实施例的采用分布式预备盘对RAID的进行重建的示意图。
根据本发明的实施例,可以检测所述预备逻辑单元是否可用。一旦该预备逻辑单元是可用的,将所述预备逻辑单元指派给在所述降级的RAID组。如果降级的RAID组启动重建动作,将故障盘中的数据写入所述预备逻辑单元中。例如,在图6中,RG 5102中的盘5206出现故障,使得RG 5102处于降级状态。在这种情况下,例如可以检测预备逻辑单元LUN 0是否可用。一旦确定预备逻辑单元LUN 0是可用的,可以将其指派给RG 5102来用于盘5206的重建。当RG 5102启动重建时,将盘5206中的数据写入到LUN 0中。该重建动作仍然包括读动作、异或动作以及写入动作,其与在图2中的过程类似,故在此不再赘述。在图6中,由于预备逻辑单元从预盘RAID(RAID-X0)组建立,因此写入IO可以被分给在存储池中的所有盘。通过这一改变,RAID的重建性能能够被显著的提高。
当在RAID组中的盘出现故障时,客户将接收到用新盘代替旧盘的警报。然而,在实际中,不管配置了多少预备盘的容量,预备逻辑单元的数量也是有限的,因此,在将故障盘中的所有数据重建到预备逻辑单元之后,将对故障盘进行更换。根据本发明的实施例,方法400还可以包括在所述故障盘被更换之后,释放所述预备逻辑单元。
根据本公开的实施例,如果要将故障盘更换掉,则将写入到预备逻辑单元中的故障盘的数据写回更换后的盘中。在写回之后,将该预备逻辑单元从降级的RAID组中移除并且将更换后的盘纳入到降级的RAID组中。例如在图6中,如果插入新的盘来代替故障盘5206,则需要启动复制过程,即将预备逻辑单元LUN 0上的数据复制到新盘上,以便释放预备逻辑单元LUN 0以用于下次重建。即便这个过程需要较长时间,也不会影响如果在RG5102中出现第二个盘的损坏,因为这时该预备逻辑单元LUN 0已经具有全部的原始数据。一旦完成了将预备逻辑单元LUN 0复制到新盘,基于预备逻辑单元LUN 0的模拟盘将从RG5102中被移除,并且新盘将被纳入RG 5102
图7根据本公开的实施例的利用IO生成器对传统RAID的重建过程的模拟的示意图,其中示出了RG 110和IO生成器710。如图6所示,RG 110中的盘1202故障,使得RG 110处于降级状态。IO生成器710向RG 110中的盘1202发起读请求。由于RG 110处于降级模式,针对RG 110中故障的盘1202的读请求将会触发RG 110从4个其他盘(即,盘1200、盘1201、盘1203和盘1204)中分别读取相应的数据,将来自该4个盘的数据进行异或以得到故障的盘中的数据,以及向IO生成器710返回所得到的数据。IO生成器710将所得到的数据写入盘1205中。
下表中列出了模拟的重建结果与实际的传统RAID重建结果:
表1:模拟的重建结果与实际的传统RAID重建结果
Figure BDA0001187748170000091
图8示出了根据本公开的实施例的利用IO生成器进行分布式重建过程的模拟的示意图。这里的重建模型属于分布式重建,其中降级的盘能够被重建到多个盘中而不是在传统的RAID重建中的一个专用预备盘。在重建过程中,预读取IO将指向盘的特定子集或一个指派的RAID组,例如在图6示出的那样,所有的预读取IO指向RG 5102
在此,模拟过程满足以下条件:
●仅仅存在一个源RAID组,所有的预读取IO都被指向该RAID;多于一个重建目标盘;
●通过增加的IO生成器线程测量并行比例(scaling);以及
●通过增加的目标盘测量重建率比例。
图8示出了RG 810,其为4D+1P的传统RAID 5,包括盘8301、8302……8304。RG 810作为源RG被用于模拟对如图7所示的RG 710的重建过程,并且所有读请求将针对RG 810。此外,图8还示出了4个预备盘8305、8306、8307和8308以及4个IO生成器8200、8201、8202和8203
首先,RG 810中的盘(例如,盘8302)故障,因此RG 810处于降级状态。然后,可以经由IO生成器向故障的盘8302发起读请求。无需将整个RAID组作为每个重建线程的重建目标,因为到目标盘中的每个盘的所有写IO负载彼此相同。例如,可以利用4个IO生成器8200、8201、8202和8203并行地向盘8302的25%的数据区域并行地发起读请求,以使得读IO负载与所模拟的映射RG。
接下来,响应于接收到所请求的数据,经由IO生成器向预备盘写入所请求的数据。例如,可以利用4个IO生成器8200、8201、8202和8203向4个预备盘8305、8306、8307和8308并行地写入所请求的数据,以使得写IO负载与所模拟的映射RG大致相同。
通过上述模型,例如将目标盘数量增加到8个,和/或将IO生成器线程增加到8个。在该模拟过程中,CPU使用率和内存占用并没有明显的增长。下表中示出了经由上述模型测量的结果:
表2:模拟分布重建结果
Figure BDA0001187748170000101
由此可见,与传统的RAID重建方法相比,模拟的分布式重建的重建速率被显著地提高了五至六倍。
图9示出了可以用来实施本公开的实施例的设备900的示意性框图。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法400,可由处理单元901执行。例如,在一些实施例中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM 903并由CPU 901执行时,可以执行上文描述的方法400的一个或多个步骤。
图10示出了根据本公开的实施例的用于RAID重建的设备1000的示例性结构图。装置1000可操作用于执行参照图4所描述的方法400和结合图5和图6所描述的处理和方法以及任何其他的处理和方法。
为此,装置1000包括:确定单元1002,被配置为从存储池的至少一个RAID组包含的多个盘中,确定具有预备容量的预备RAID组;建立单元1004,被配置为从预备RAID组建立预备逻辑单元;以及重建单元1006,被配置为响应于所述存储池中的至少一个RAID组中的一个处于降级状态,利用所述预备逻辑单元重建降级的RAID组中的故障盘。
在某些实施例中,确定单元1002还被配置为基于在所述存储池中的所述盘的数量与预备盘的数量的对应关系,确定所述多个盘中的预备容量的分配。在某些实施例中,建立单元1004还被配置为根据所述预备容量的大小,确定从所述预备RAID组所建立的预备逻辑单元的个数。在某些实施例中,重建单元1006还被配置为检测预备逻辑单元是否可用。在预备逻辑单元是可用的情况下,将该预备逻辑单元指派给在降级的RAID组。一旦该降级的RAID组启动重建动作,将故障盘中的数据写入所述预备逻辑单元中。
在某些实施例中,装置1000还包括释放单元,被配置为在故障盘被更换之后,释放预备逻辑单元。该释放单元还被配置为在要将故障盘的更换掉的情况下,则将写入到所述预备逻辑单元中的故障盘的数据写回更换后的盘中。在写回之后,将该预备逻辑单元从降级的RAID组中移除并且将所述更换后的盘添加到所述纳入到降级的RAID组中。
装置1000中所包括的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。在一个实施例中,一个或多个单元可以使用软件和/或固件来实现,例如存储在存储介质上的机器可执行指令。除了机器可执行指令之外或者作为替代,装置1000中的部分或者全部单元可以至少部分地由一个或多个硬件逻辑组件来实现。作为示例而非限制,可以使用的示范类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD),等等。
综上所述,本公开的实施例提供了一种用于改善独立盘冗余阵列的重建性能的方案。与现有技术相比,本公开的实施例能够显著改进传统RAID的重建性能。此外,由于取消了存储池中的专用预备盘,使得在存储池中的所有盘都能够用于用户IO,这进一步提高了盘的有效率。使用RAID-X0类型的RAID组管理分布式的预备盘空间,这能够在重建期间将写入IO分布给在存储池中的所有盘。本公开的实施例的重建方法能够基于传统的RAID技术来实施。
本公开内容可以是方法、设备和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开内容的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开内容操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开内容的各个方面。
这里参照根据本公开内容实施例的方法、装置(设备)和计算机程序产品的流程图和/或框图描述了本公开内容的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开内容的多个实施例的方法、设备和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开内容的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文公开的各实施例。

Claims (13)

1.一种由计算机执行的方法,包括:
从存储池的至少一个独立盘冗余阵列(RAID)组包含的多个盘中,确定具有预备容量的预备RAID组;
从所述预备RAID组建立预备逻辑单元;
响应于所述存储池中的所述至少一个RAID组中的一个处于降级状态,利用所述预备逻辑单元重建降级的RAID组中的故障盘;
其中所述预备逻辑单元跨所述存储池中的多个目标盘分布,并且其中重建所述故障盘包括:
向所述多个目标盘分配相应的I/O生成器;
由每个I/O生成器从处于所述降级状态的所述RAID组中读取所述故障盘的相应的数据;以及
由每个I/O生成器将所述相应的数据写入到所述相应的I/O生成器被分配到的所述目标盘,
其中每个I/O生成器在相应的线程中运行,其中由每个I/O生成器写入所述数据包括并行地运行所述I/O生成器线程以并行地向所述相应的目标盘有效写入,所述多个目标盘包括N个目标盘,所述故障盘具有数据区域,并且其中由每个I/O生成器从所述故障盘读取所述相应的数据包括每个I/O生成器读取大致1/N的数据。
2.根据权利要求1所述方法,其中确定具有预备容量的预备RAID组包括:
基于在所述存储池中的所述盘的数量与预备盘的数量的对应关系,确定所述多个盘中的预备容量的分配。
3.根据权利要求1所述方法,其中从所述预备RAID组建立预备逻辑单元包括:
根据所述预备容量的大小,确定从所述预备RAID组所建立的预备逻辑单元的个数。
4.根据权利要求1所述的方法,其中利用所述预备逻辑单元重建所述降级的RAID组中故障的盘包括:
检测所述预备逻辑单元是否可用;
响应于所述预备逻辑单元是可用的,将所述预备逻辑单元指派给在所述降级的RAID组;
响应于所述降级的RAID组启动重建动作,将所述故障盘中的数据写入所述预备逻辑单元中。
5.根据权利要求1所述的方法,还包括:
在所述故障盘被更换之后,释放所述预备逻辑单元。
6.根据权利要求5所述的方法,其中释放所述预备逻辑单元包括:
响应于所述故障盘的更换,将写入到所述预备逻辑单元中的所述故障的盘的数据写回更换后的盘中;
将所述预备逻辑单元从所述降级的RAID组中移除;以及
将所述更换后的盘添加到所述降级的RAID组中。
7.一种由计算机实现的设备,包括:
至少一个处理单元;以及
至少一个存储器,所述至少一个存储器耦合至所述至少一个处理单元并且在其上存储指令,所述指令在由所述至少一个处理单元执行时执行包括以下各项的动作:
从存储池的至少一个独立盘冗余阵列(RAID)组包含的多个盘中,确定具有预备容量的预备RAID组;
从所述预备RAID组建立预备逻辑单元;
响应于所述存储池中的所述至少一个RAID组中的一个处于降级状态,利用所述预备逻辑单元重建降级的RAID组中的故障盘;其中所述预备逻辑单元跨所述存储池中的多个目标盘分布,并且其中重建所述故障盘包括:
向所述多个目标盘分配相应的I/O生成器;
由每个I/O生成器从处于所述降级状态的所述RAID组中读取所述故障盘的相应的数据;以及
由每个I/O生成器将所述相应的数据写入到所述相应的I/O生成器被分配到的所述目标盘,
其中每个I/O生成器在相应的线程中运行,其中由每个I/O生成器写入所述数据包括并行地运行所述I/O生成器线程以并行地向所述相应的目标盘有效写入,所述多个目标盘包括N个目标盘,所述故障盘具有数据区域,并且其中由每个I/O生成器从所述故障盘读取所述相应的数据包括每个I/O生成器读取大致1/N的数据。
8.根据权利要求7所述的设备,其中确定具有预备容量的预备RAID组包括:
基于在所述存储池中的所述盘的数量与预备盘的数量的对应关系,确定所述多个盘中的预备容量的分配。
9.根据权利要求7所述的设备,其中从所述预备RAID组建立预备逻辑单元包括:
根据所述预备容量的大小,确定从所述预备RAID组所建立的预备逻辑单元的个数。
10.根据权利要求7所述的设备,其中利用所述预备逻辑单元重建降级的RAID组中的故障的盘包括:
检测所述预备逻辑单元是否可用;
响应于所述预备逻辑单元是可用的,将所述预备逻辑单元指派给在所述降级的RAID组;
响应于所述降级的RAID组启动重建动作,将所述故障盘中的数据写入所述预备逻辑单元中。
11.根据权利要求7所述的设备,其中所述动作还包括:
在所述故障盘被更换之后,释放所述预备逻辑单元。
12.根据权利要求11所述的设备,其中释放所述预备逻辑单元包括:
响应于所述故障盘的更换,将写入到所述预备逻辑单元中的所述故障的盘的数据写回更换后的盘中;
将所述预备逻辑单元从所述降级的RAID组中移除;以及
将所述更换后的盘添加到所述降级的RAID组中。
13.一种计算机可读介质,存储有计算机可读程序指令,当所述计算机可读程序指令在设备上被执行时使得所述设备执行根据权利要求1-6中任一项所述的方法。
CN201611194062.6A 2016-12-21 2016-12-21 Raid重建的方法和设备 Active CN108228086B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110777420.0A CN113407122B (zh) 2016-12-21 2016-12-21 Raid重建的方法和设备
CN201611194062.6A CN108228086B (zh) 2016-12-21 2016-12-21 Raid重建的方法和设备
US15/846,762 US10592366B2 (en) 2016-12-21 2017-12-19 Method and device for rebuilding RAID
US16/814,003 US11099955B2 (en) 2016-12-21 2020-03-10 Method and device for rebuilding raid

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611194062.6A CN108228086B (zh) 2016-12-21 2016-12-21 Raid重建的方法和设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110777420.0A Division CN113407122B (zh) 2016-12-21 2016-12-21 Raid重建的方法和设备

Publications (2)

Publication Number Publication Date
CN108228086A CN108228086A (zh) 2018-06-29
CN108228086B true CN108228086B (zh) 2021-07-16

Family

ID=62656007

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110777420.0A Active CN113407122B (zh) 2016-12-21 2016-12-21 Raid重建的方法和设备
CN201611194062.6A Active CN108228086B (zh) 2016-12-21 2016-12-21 Raid重建的方法和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110777420.0A Active CN113407122B (zh) 2016-12-21 2016-12-21 Raid重建的方法和设备

Country Status (2)

Country Link
US (2) US10592366B2 (zh)
CN (2) CN113407122B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625523B2 (en) 2016-12-14 2023-04-11 iCometrue Company Ltd. Logic drive based on standard commodity FPGA IC chips
TW202404049A (zh) 2016-12-14 2024-01-16 成真股份有限公司 標準大宗商品化現場可編程邏輯閘陣列(fpga)積體電路晶片組成之邏輯驅動器
CN113407122B (zh) * 2016-12-21 2023-08-25 伊姆西Ip控股有限责任公司 Raid重建的方法和设备
US10957679B2 (en) 2017-08-08 2021-03-23 iCometrue Company Ltd. Logic drive based on standardized commodity programmable logic semiconductor IC chips
US10630296B2 (en) 2017-09-12 2020-04-21 iCometrue Company Ltd. Logic drive with brain-like elasticity and integrality based on standard commodity FPGA IC chips using non-volatile memory cells
US10608642B2 (en) 2018-02-01 2020-03-31 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile radom access memory cells
US10623000B2 (en) * 2018-02-14 2020-04-14 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips
US10608638B2 (en) 2018-05-24 2020-03-31 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips
US11309334B2 (en) 2018-09-11 2022-04-19 iCometrue Company Ltd. Logic drive using standard commodity programmable logic IC chips comprising non-volatile random access memory cells
CN110908828A (zh) * 2018-09-18 2020-03-24 杭州海康威视数字技术股份有限公司 数据存储方法、装置、电子设备及存储介质
CN111104046B (zh) 2018-10-25 2023-08-25 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
CN111124251B (zh) * 2018-10-30 2023-08-29 伊姆西Ip控股有限责任公司 用于i/o控制的方法、装置以及计算机可读介质
US11616046B2 (en) 2018-11-02 2023-03-28 iCometrue Company Ltd. Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip
US11211334B2 (en) 2018-11-18 2021-12-28 iCometrue Company Ltd. Logic drive based on chip scale package comprising standardized commodity programmable logic IC chip and memory IC chip
CN109871186B (zh) * 2019-03-12 2021-12-07 北京计算机技术及应用研究所 面向可重组raid的多目标快速重构系统
CN109885263B (zh) * 2019-03-12 2022-02-01 北京计算机技术及应用研究所 面向可重组raid的多目标快速重构方法
CN112148204B (zh) * 2019-06-27 2024-02-02 伊姆西Ip控股有限责任公司 用于管理独立冗余盘阵列的方法、设备和介质
US11227838B2 (en) 2019-07-02 2022-01-18 iCometrue Company Ltd. Logic drive based on multichip package comprising standard commodity FPGA IC chip with cooperating or supporting circuits
US11887930B2 (en) 2019-08-05 2024-01-30 iCometrue Company Ltd. Vertical interconnect elevator based on through silicon vias
US11637056B2 (en) 2019-09-20 2023-04-25 iCometrue Company Ltd. 3D chip package based on through-silicon-via interconnection elevator
CN112732167B (zh) 2019-10-28 2024-04-16 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备
CN111208942B (zh) * 2019-12-25 2023-07-14 曙光信息产业股份有限公司 一种分布式存储系统及其存储方法
US11600526B2 (en) 2020-01-22 2023-03-07 iCometrue Company Ltd. Chip package based on through-silicon-via connector and silicon interconnection bridge
CN113641298A (zh) * 2020-04-27 2021-11-12 伊姆西Ip控股有限责任公司 数据存储方法、设备和计算机程序产品
CN113590019B (zh) * 2020-04-30 2023-11-07 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机程序产品
CN112817520B (zh) * 2020-12-31 2022-08-09 杭州宏杉科技股份有限公司 数据刷盘方法及装置
US11829269B2 (en) * 2021-01-28 2023-11-28 EMC IP Holding Company LLC Storage array disk recovery

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567211A (zh) * 2009-05-27 2009-10-28 杭州华三通信技术有限公司 一种提高磁盘可用性的方法和磁盘阵列控制器
US7664913B2 (en) * 2003-03-21 2010-02-16 Netapp, Inc. Query-based spares management technique
CN101984400A (zh) * 2010-11-05 2011-03-09 成都市华为赛门铁克科技有限公司 一种raid控制方法、装置及系统
US8086893B1 (en) * 2009-07-31 2011-12-27 Netapp, Inc. High performance pooled hot spares

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146524B2 (en) * 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
TWI310497B (en) * 2004-02-06 2009-06-01 Hon Hai Prec Ind Co Ltd System and method for disk fault tolerance
US20060123312A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation Method and system for increasing parallelism of disk accesses when restoring data in a disk array system
JP4754852B2 (ja) * 2005-03-15 2011-08-24 富士通株式会社 ストレージ制御装置および方法
US8099623B1 (en) * 2008-10-08 2012-01-17 Netapp, Inc. Efficient distributed hot sparing scheme in a parity declustered RAID organization
JP5056747B2 (ja) * 2008-12-25 2012-10-24 富士通株式会社 記憶領域管理装置、記憶領域管理方法
US8065558B2 (en) * 2009-03-24 2011-11-22 Lsi Corporation Data volume rebuilder and methods for arranging data volumes for improved RAID reconstruction performance
US8677063B2 (en) * 2010-07-30 2014-03-18 International Business Machines Corporation Parity declustered storage device array with partition groups
US8589625B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US9229808B2 (en) * 2010-10-01 2016-01-05 Pure Storage, Inc. Reconstruct reads in a raid array with dynamic geometries
US8959389B2 (en) * 2011-11-23 2015-02-17 International Business Machines Corporation Use of a virtual drive as a hot spare for a raid group
US20130227345A1 (en) * 2012-02-28 2013-08-29 International Business Machines Corporation Logically Extended Virtual Disk
GB2503274A (en) * 2012-06-22 2013-12-25 Ibm Restoring redundancy in a RAID
US8874494B1 (en) 2012-09-28 2014-10-28 Emc Corporation Dynamic selection of spare storage element types in array
US8943359B2 (en) * 2012-10-05 2015-01-27 Lsi Corporation Common hot spare for multiple RAID groups
US9104604B2 (en) * 2013-02-26 2015-08-11 International Business Machines Corporation Preventing unrecoverable errors during a disk regeneration in a disk array
US9690660B1 (en) 2015-06-03 2017-06-27 EMC IP Holding Company LLC Spare selection in a declustered RAID system
US9804939B1 (en) 2015-09-30 2017-10-31 EMC IP Holding Company LLC Sparse raid rebuild based on storage extent allocation
US9921912B1 (en) 2015-09-30 2018-03-20 EMC IP Holding Company LLC Using spare disk drives to overprovision raid groups
CN107203442B (zh) * 2016-03-16 2020-04-21 伊姆西Ip控股有限责任公司 独立磁盘冗余阵列的重建性能的评估方法和设备
CN113407122B (zh) * 2016-12-21 2023-08-25 伊姆西Ip控股有限责任公司 Raid重建的方法和设备
US10089026B1 (en) * 2016-12-29 2018-10-02 EMC IP Holding Company LLC Virtual drive based RAID groups
US10678643B1 (en) * 2017-04-26 2020-06-09 EMC IP Holding Company LLC Splitting a group of physical data storage drives into partnership groups to limit the risk of data loss during drive rebuilds in a mapped RAID (redundant array of independent disks) data storage system
US10365983B1 (en) 2017-04-27 2019-07-30 EMC IP Holding Company LLC Repairing raid systems at per-stripe granularity
US10210045B1 (en) 2017-04-27 2019-02-19 EMC IP Holding Company LLC Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664913B2 (en) * 2003-03-21 2010-02-16 Netapp, Inc. Query-based spares management technique
CN101567211A (zh) * 2009-05-27 2009-10-28 杭州华三通信技术有限公司 一种提高磁盘可用性的方法和磁盘阵列控制器
US8086893B1 (en) * 2009-07-31 2011-12-27 Netapp, Inc. High performance pooled hot spares
CN101984400A (zh) * 2010-11-05 2011-03-09 成都市华为赛门铁克科技有限公司 一种raid控制方法、装置及系统

Also Published As

Publication number Publication date
US20200210298A1 (en) 2020-07-02
CN113407122A (zh) 2021-09-17
US10592366B2 (en) 2020-03-17
CN113407122B (zh) 2023-08-25
US20180210799A1 (en) 2018-07-26
US11099955B2 (en) 2021-08-24
CN108228086A (zh) 2018-06-29

Similar Documents

Publication Publication Date Title
CN108228086B (zh) Raid重建的方法和设备
US11947423B2 (en) Data reconstruction in distributed storage systems
CN109213618B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN108733314B (zh) 用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质
US10210045B1 (en) Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system
US10664367B2 (en) Shared storage parity on RAID
US10146447B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with drive extents allocated to individual RAID extents from individual sub-groups of storage made up of ranges of logical block addresses defined across a group of hard disk drives
CN107203442B (zh) 独立磁盘冗余阵列的重建性能的评估方法和设备
CN109725831B (zh) 管理存储系统的方法、系统和计算机可读介质
US9678680B1 (en) Forming a protection domain in a storage architecture
US20150220398A1 (en) Prioritizing Data Reconstruction in Distributed Storage Systems
CN110413208B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN109725830B (zh) 管理独立磁盘冗余阵列的方法、设备和存储介质
CN110096218B (zh) 用于为存储对象提供raid数据保护的方法、系统和介质
US11074130B2 (en) Reducing rebuild time in a computing storage environment
US10521145B1 (en) Method, apparatus and computer program product for managing data storage
CN111124264A (zh) 用于重建数据的方法、设备和计算机程序产品
US10210062B2 (en) Data storage system comprising an array of drives
US11003559B2 (en) Underperforming drive handling in redundant arrays
US20190042365A1 (en) Read-optimized lazy erasure coding
Krishnan et al. Evaluation of codes with inherent double replication for hadoop
US11269745B2 (en) Two-node high availability storage system
CN111857560A (zh) 用于管理数据的方法、设备和计算机程序产品
US11620080B2 (en) Data storage method, device and computer program product
US10423506B1 (en) Fast rebuild using layered RAID

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