CN108733314A - 用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质 - Google Patents

用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN108733314A
CN108733314A CN201710250537.7A CN201710250537A CN108733314A CN 108733314 A CN108733314 A CN 108733314A CN 201710250537 A CN201710250537 A CN 201710250537A CN 108733314 A CN108733314 A CN 108733314A
Authority
CN
China
Prior art keywords
raid
memory block
mapping table
logic
mapping
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
Application number
CN201710250537.7A
Other languages
English (en)
Other versions
CN108733314B (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 CN201710250537.7A priority Critical patent/CN108733314B/zh
Priority to US15/955,082 priority patent/US10922177B2/en
Publication of CN108733314A publication Critical patent/CN108733314A/zh
Application granted granted Critical
Publication of CN108733314B publication Critical patent/CN108733314B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • 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/0614Improving the reliability of storage systems
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Abstract

本公开的实施例涉及用于独立冗余阵列(RAID)重建的方法、设备和计算机可读存储介质。该方法包括:响应于检测到RAID中的至少一个故障盘,向RAID添加新盘以执行重建;根据映射表确定至少一个故障盘中被标记为空闲的第一组存储块,映射表指示RAID中的存储空间的使用状态;以及向新盘中与第一组存储块对应的第二组存储块写入预定值。

Description

用于独立冗余阵列(RAID)重建的方法、设备和计算机可读存 储介质
技术领域
本公开的实施例总体涉及数据存储领域,具体涉及用于独立冗余阵列(RAID)重建的方法、设备和计算可读存储介质。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提出了越来越高的需求。
目前,已经开发出了基于独立冗余阵列(Redundant Array of IndependentDisks,RAID)的多种数据存储系统来提高数据的可靠性。当RAID中的一个或者多个盘出现故障时,可以从其他正常操作的盘上的数据来恢复出故障盘中的数据。由于现有重建过程通常需要较长时间,在此过程中RAID将不具备冗余能力,因此可能产生数据丢失的风险。因而,如何能够快速地完成RAID的重建成为一个研究热点。
发明内容
本公开的实施例提供了用于独立冗余阵列(RAID)重建的方法、设备和计算机可读介质。
在本公开的第一方面,提供了一种用于独立冗余阵列(RAID)重建的方法。该方法包括:响应于检测到RAID中的至少一个故障盘,向RAID添加新盘以执行重建;根据映射表中确定至少一个故障盘中被标记为空闲的第一组存储块,映射表指示RAID中的存储空间的使用状态;以及向新盘中与第一组存储块对应的第二组存储块写入预定值。
在本公开的第二方面,提供了一种用于独立冗余阵列(RAID)重建的设备。该设备包括:至少一个处理单元;至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令当由至少一个处理单元执行时,使得设备执行动作,该动作包括:响应于检测到RAID中的至少一个故障盘,向RAID添加新盘以执行重建;根据映射表中确定至少一个故障盘中被标记为空闲的第一组存储块,映射表指示RAID中的存储空间的使用状态;以及向新盘中与第一组存储块对应的第二组存储块写入预定值。
在本公开的第三方面,提供了一种计算机可读存储介质。该计算机可读存储介质具有存储在其上的计算机可读程序指令,计算机可读程序指令在被处理单元执行时使得处理单元实现根据本公开第一方面的方法。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1A示出了独立冗余阵列(RAID)的示例结构的示意图;
图1B示出了RAID的传统重建过程的示意图;
图2本公开的实施例可以在其中执行的存储系统的架构图;
图3示出了根据本公开的某些实施例的用于RAID重建的方法的流程图;
图4示出了根据本公开的某些实施例的更新映射表的过程的示意图;
图5示出了根据本公开的某些其他实施例的更新映射表的过程的示意图;
图6示出了根据本公开的某些其他实施例的用于RAID重建的方法;
图7示出了根据本公开的某些实施例的用于RAID重建的装置的框图;
图8示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,现有重建过程通常需要较长时间,在此过程中RAID将不具备冗余能力,因此可能产生数据丢失的风险。图1A示出了独立冗余阵列(RAID)100的示例结构。RAID 100被示出为包括五个独立存储设备(110A、112A、114A、116A以及118A)的RAID-5(4+1)阵列。应当注意,尽管图1A中示意性示出了五个存储设备,在其他的实施方式中,根据RAID的版本不同,还可以包括更多或者更少的存储设备。尽管图1A中示出了条带120A、122A和124A,在其他的示例中,RAID 100还可以包括不同数量的条带。
在RAID 100中,条带跨越多个物理存储设备(例如,条带120A跨越了存储设备110A、112A、114A、116A以及118A)。可以简单地将条带理解为多个存储设备中的满足一定地址范围的存储区域。在条带120A中存储的数据包括多个部分:存储在存储设备110A上的数据块D11、存储在存储设备112A上的数据块D12、存储在存储设备114A上的数据块D13、存储在存储设备116A上的数据块D14、以及存储在存储设备118A上的数据块P1。在此示例中,数据块D11、D12、D13、以及D14是被存储的数据,而数据块P1是被存储数据的校验值。
其他条带(例如,条带122A)中存储数据的方式也类似于条带120A,不同之处在于,相关校验值可以存储在不同于存储设备118A的存储设备上(例如,存储设备110A)。以此方式,当多个存储设备110A、112A、114A、116A以及118A中的一个存储设备出现故障时,可以从其他的正常的存储设备中恢复出故障设备中的数据。
图1B示出了RAID 100的传统重建过程。如图1B所示,当一个存储设备(例如,以阴影示出的存储设备118A)出现故障时,可以从其余的正常操作的多个存储设备110A、112A、114A、116A中恢复数据。此时,可以向RAID中加入新的后备存储设备118B来替代存储设备118A,以此方式,可以将恢复的数据写入118B并实现系统的重建。
存储系统在重建期间仍然可以接收来自外部的数据访问(例如,读取/写入)请求。然而,当该访问请求需要针对故障的存储设备执行数据访问(例如,写入)时,由于存储系统正在被重建,因而常规的数据访问操作将被一系列复杂操作替代。具体而言,如果存储系统接收到针对故障存储设备的写入请求,则在存储系统中需要执行以下操作:(1)向日志写入数据;(2)向RAID地址空间写入数据;(3)将步骤(1)和(2)中写入的数据进行比较以验证RAID地址空间中的数据是正确的;以及(4)将日志中的数据无效。相对于常规写入而言,上文中的步骤(1)、(3)和(4)都是额外的附加步骤。
传统上,在存储系统重建期间,需要在存储系统内部执行如上所述的附加步骤。然而,这些附加步骤将会对重建造成极大干扰。而且,这些附加步骤将会对存储系统的重建造成额外的负担,并且增加重建过程的时间。
另外,重建期间的存储系统安全性较差。对于如图1A和图1B所示的实现为RAID 5的RAID 100而言,在重建期间只有4个存储设备正常操作,一旦4个存储设备中的一个出现故障,则将会对存储系统造成不可恢复的数据损失。重建的时间越长,重建中的存储系统所面临的风险越大。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的实施例提出了一种用于独立冗余阵列(RAID)重建的方案。该方案在RAID控制器中建立指示RAID中的盘的存储空间的使用状态的映射表,从而在重建时可以只重建故障盘中已使用的存储块。因此,该方案可以实现快速、高效以及更低数据丢失风险的RAID重建。
图2示出了本公开的实施例可以在其中执行的存储系统200的架构。如图2所示,存储系统200包括文件系统210、映射逻辑单元220以及RAID控制器230。
RAID控制器230可以根据不同的RAID标准将多个物理存储设备组合成一个或多个RAID。例如,如图2所示,RAID控制器中230可以包括两个RAID 5型RAID 232和234。RAID控制器230将组合后的每个RAID以逻辑单元(LU)的形式提供给映射逻辑单元220。例如,如图2所示,RAID 232以及RAID 224分别以LU 240以及LU 242的形式提供给映射逻辑单元220。
映射逻辑单元220中可以将RAID控制器230所提供的一个或多个LU所对应的空间切分成一些大小固定的逻辑存储片。例如,映射逻辑单元220可以将LU 240和LU 242切成若干个256MB大小的逻辑存储片,从而形成逻辑存储片池。
在一些实施例中,映射逻辑单元220中可以包括稀疏卷226,其用于动态地申请逻辑存储片池中的逻辑存储片和/或将已使用的逻辑存储片释放到逻辑存储片池中。映射逻辑单元220可以响应于文件系统210向映射逻辑单元220发出的IO请求,从逻辑存储片池中动态地获取用于文件系统210的逻辑存储片。例如,图2中稀疏卷226中标斜线的逻辑存储片222表示该逻辑存储片已被文件系统210所使用。图2中稀疏卷226中空白的位置224表示未被文件系统210所使用的逻辑存储空间,也被称为空洞。映射逻辑单元220还可以响应于文件系统210发出的释放空间的请求,将稀疏卷226中被文件系统使用的逻辑存储片释放到切逻辑存储片池中。这些具体的过程将在下文详细描述。
基于上文描述的存储机制,存储系统200的物理存储空间可以被动态地添加到文件系统210中,也可以从文件系统210中动态地释放。同时,稀疏卷中的逻辑存储片222可以通过映射逻辑单元220映射到一个或多个LU中,如LU 240或LU 242。同时LU 240与LU 242中存储空间的使用状态与其各自对应的RAID 232和RAID234中所有盘中物理存储空间的使用状态一致。因此,这样的机制提供了获取RAID中各个盘中的物理存储空间的使用状态的可能性。
RAID控制器230中还可以包括与一个或多个RAID所对应的映射表。例如,如图2所示,RAID控制器230中可以包括与RAID 232对应的映射表236以及与RAID 234对应的映射表238。映射表236和238中存储有对应于稀疏卷226中逻辑存储片大小的物理存储空间的使用状态。在一些实施例中,在映射表236和/或238中可以通过比特表示存储块的使用状态,例如1可以表示使用,0可以表示空闲。
根据本公开的实施例,在出现故障盘时,RAID控制器230可以根据映射表236和238确定故障盘中的空闲的一组存储块(称为“第一组存储块”)。继而,在重建新盘时,RAID控制器230可以向新盘中与第一组存储块对应的另一组存储块(称为“第二组存储块”)写入预定值。以此方式,在重建时可以只重建故障盘中已使用的存储块,从而提高重建的效率和安全性。下面结合图3到图6详细描述根据本公开的实施例的与RAID重建相关的操作。
图3示出了根据本公开的某些实施例的RAID重建的方法300的流程图。方法300可以在图2中所示的存储系统200中执行。
在框302中,RAID控制器230响应于检测到RAID 232中的至少一个故障盘250,向RAID添加新盘252以执行重建。在一些实施例中,新盘252可以是热备盘。
在框304中,RAID控制器230根据映射表中确定至少一个故障盘118B中被标记为空闲的第一组存储块,映射表指示RAID中的存储空间的使用状态。例如,如图2所示,RAID控制器230可以通过检查RAID 232所对应的映射表236来确定表标记为空闲的第一组存储块,即如图2所示映射表236中被标记为空白的区域260所对应的故障盘250中的未被使用的存储块262。
以下将结合图4和图5说明映射表中存储的物理存储空间的使用状态如何被确定。图4示出了根据本公开的某些实施例的更新映射表的过程400的示意图。
在一些实施例中,文件系统(例如,图2所示的文件系统210)可以向映射逻辑单元420申请分配新的逻辑存储片。例如,基于文件系统向映射逻辑单元420发出的写入请求,映射逻辑单元420判断需要申请新的逻辑存储片以响应文件系统的写入请求。
映射逻辑单元420可以从逻辑存储片池中分配新的逻辑存储片以供文件系统使用,同时向RAID控制器430指示映射逻辑单元420中将被使用的逻辑存储片的指示(称为“第一指示”)。作为示例,该指示可用于指示RAID控制器430提供的LU 440的空间442’将被映射逻辑单元420使用。
响应于第一指示,RAID控制器430在映射表438中将与LU 440将被使用的空间442’对应的存储块434’标记为使用状态。如图4所示,映射表438中与LU 440中将被使用的空间442’对应的物理存储块434’被标记为使用(图4中斜线示出)。即如图4所示,LU 440中的空间442更新为442’,映射表438中的位置450更新为450’,RAID 432中物理存储块434更新为434’。在一些实施例中,可以通过比特来表示对应物理存储块的使用状态,1可以表示已使用,0表示空闲状态。
RAID控制器430完成对物理存储块434’的标记后,向映射逻辑单元420发送用于指示与将被使用的逻辑存储片相对应的存储块(例如,物理存储块434’)已经在所述映射表中被标记为可使用的指示(称为“第二指示”)。响应于第二指示,映射逻辑单元420将分配的新逻辑存储片422’标记为可用状态以供文件系统210使用,即如图4所示,空洞422更新为被使用的逻辑存储片422’。
图5示出了根据本公开的某些其他实施例的更新映射表的过程500的示意图。在一些实施例中,文件系统可以向映射逻辑单元520发出释放空间的请求。响应于该请求,映射逻辑单元520向RAID控制器530发出用于指示映射逻辑单元520中将被释放的逻辑存储片的指示(称为“第三指示”)。例如,该指示可用于指示LU 540的空间542将不再被映射逻辑单元520使用。
响应于第三指示,RAID控制器530在映射表538中将与LU 540将被使用的空间542’对应的存储块534’标记为空闲状态。即如图5所示,LU 540中的空间542更新为542’,映射表538中的位置550更新为550’,RAID 532中物理存储块534更新为534’。在一些实施例中,可以通过比特来表示对应物理存储块的使用状态,1可以表示已使用,0表示空闲状态。
RAID控制器530完成对物理存储块534’的标记后,向映射逻辑单元220发送用于指示与将被释放的逻辑存储片相对应的存储块(例如,物理存储块534’)已经在映射表(例如,映射表538)中被标记为已释放的指示(称为“第四指示”)。响应于第四指示,映射逻辑单元220将逻辑存储片522标记为已释放状态,即逻辑存储片522被更新为空洞522’。
基于以上的描述,映射逻辑单元220能够实时获得其所管理的一个或多个RAID,如RAID 232和/或RAID 234中盘的存储块的使用状态,并在其对应的一个或多个映射表,如映射表236和/或映射表238中标注各自盘的存储块的使用状态。即RAID 232可以根据映射表236中所存储的故障盘250的使用状态来确定故障盘250中被标记为空闲的第一组存储块262。
在框306中,RAID控制器230可以向新盘252中与第一存储块262对应的第二组存储块写入预定值。该预定值可以是任意适当值。在一些实施例中,该预定值可以设为零。相应地,RAID控制器230可以向第二组存储块写零。
通过以上描述的方法,RAID 232在重建过程中不需要完全重建故障盘250的全部存储块,而是通过映射表机制提前判断故障盘250中的未使用存储块262,并向新盘252中与未使用存储块对应的存储块执行写零,从而能够减少RAID 232重建所需的时间,减少RAID232重建过程中数据丢失的风险。
图6示出了根据本公开的某些其他实施例的RAID重建的方法600的流程图。方法600可以在图2中所示的存储系统200中执行。应理解,方法600还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在框602中,RAID控制器230检测到RAID 232中的至少一个故障盘250。在框604中,RAID控制器230添加新的盘252到RAID 232中以进行重建。在框606中,RAID控制器230遍历RAID 232所对应的映射表236,该映射表中存储有故障盘250中的磁盘块的使用状态。在框608中判断映射表236的遍历是否完成,如果已经完成,则表示已完成对RAID 232的重建,则操作前进至框610;否则,操作前进至框612。
在框612中,RAID控制器230根据映射表236中存储的存储块的使用状态判断当前需要被重建的存储块是否被使用。在一些实施例中,可以使用比特表示存储块的使用状态,1表示被使用,0表示空闲。
如果当前需要被重建的存储块未被使用,则操作前进至框614。在框614中,向在新盘252中对应的存储块写入预定值。在某些实施例中,可以向新盘252中的对应的存储块中写零。完成该存储块的写入后,操作返回到框606,继续遍历映射表236。
如果当前需要被重建的存储块已使用,则操作前进至框616。在框616中,RAID控制器230从RAID 232中的其他盘中获取数据。在一些实施例,可以从RAID 232中未发生故障的盘中获取数据块和/或校验值。在框618中,RAID控制器230利用未发生故障的盘中获取的数据恢复处冗余数据。在框620中,RAID控制器230将所恢复的冗余数据写入新盘252中的对应的存储块中。完成该存储块的写入后,操作返回到框606,继续遍历映射表230。
通过上述的重建方法,RAID可以针对故障盘中不同使用状态的存储块使用不同的重建策略,尤其是对于空闲的磁盘块执行诸如写零的操作,从而减少重建RAID所需的时间,降低数据丢失的风险。
图7图示了根据本公开的实施例的用于数据同步的装置700的框图。例如,如图2所示的RAID控制器230、图3所示的RAID控制器330以及图4所示的RAID控制器430中的任一项可以由装置700实现。如图7所示,装置700可以包括添加模块710,被配置为响应于检测到RAID中的至少一个故障盘,向RAID添加新盘以执行重建。装置500还可以包括确定720,被配置为根据映射表中确定至少一个故障盘中被标记为空闲的第一组存储块。此外,装置500还可以包括数据提交模块730,向新盘中与第一组存储块对应的第二组存储块写入预定值。
出于清楚的目的,在图7中没有示出装置700的某些可选模块。然而,应当理解,上文参考图1-6所描述的各个特征同样适用于装置700。而且,装置700的各个模块可以是硬件模块,也可以是软件模块。例如,在某些实施例中,装置700可以部分或者全部利用软件和/或固件来实现,例如被实现为包含在计算机可读介质上的计算机程序产品。备选地或附加地,装置700可以部分或者全部基于硬件来实现,例如被实现为集成电路(IC)、专用集成电路(ASIC)、片上系统(SOC)、现场可编程门阵列(FPGA)等。本公开的范围在此方面不受限制。
图8示出了可以用来实施本公开内容的实施例的示例设备800的示意性框图。例如,如图2所示的RAID系统230、图3所示的RAID控制器330以及图4所示的RAID控制器430中的任一项可以由设备800来实施。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300,可由处理单元801执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法300的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (17)

1.一种用于独立冗余阵列(RAID)重建的方法,所述方法包括:
响应于检测到所述RAID中的至少一个故障盘,向所述RAID添加新盘以执行重建;
根据映射表确定所述至少一个故障盘中被标记为空闲的第一组存储块,所述映射表指示所述RAID中的存储空间的使用状态;以及
向所述新盘中与所述第一组存储块对应的第二组存储块写入预定值。
2.根据权利要求1所述的方法,还包括:
从所述RAID中未发生故障的盘中读取与所述故障盘在所述映射表中被标记为已使用的第三组存储块相关联的数据;
基于读取的所述数据,计算与所述第三组存储块相对应的冗余数据;以及
向所述新盘中与所述第三组存储块对应的第四组存储块写入所述冗余数据。
3.根据权利要求1所述的方法,其中所述映射表指示所述RAID中的存储块的使用状态,所述存储块与映射逻辑单元中的逻辑存储片相对应。
4.根据权利要求3所述的方法,还包括更新所述映射表,所述更新包括:
响应于从所述映射逻辑单元接收到用于指示所述映射逻辑单元中将被使用的逻辑存储片的第一指示,在所述映射表中将与所述将被使用的逻辑存储片相对应的所述存储块标记为已使用。
5.根据权利要求4所述的方法,所述更新还包括:
向所述映射逻辑单元发送用于指示与所述将被使用的逻辑存储片相对应的所述存储块已经在所述映射表中被标记为可使用的第二指示。
6.根据权利要求3所述的方法,还包括更新所述映射表,所述更新包括:
响应于从所述映射逻辑单元接收到用于指示所述映射逻辑单元中将被释放的逻辑存储片的第三指示,在所述映射表中将与所述将被释放的逻辑存储片相对应的所述存储块标记为空闲。
7.根据权利要求6所述的方法,所述更新还包括:
向所述映射逻辑单元发送用于指示与所述将被释放的逻辑存储片相对应的所述存储块已经在所述映射表中被标记为已释放的第四指示。
8.根据权利要求1所述的方法,其中所述RAID中的盘为硬盘驱动器。
9.一种用于独立冗余阵列(RAID)重建的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
响应于检测到所述RAID中的至少一个故障盘,向所述RAID添加新盘以执行重建;
根据映射表中确定所述至少一个故障盘中被标记为空闲的第一组存储块,所述映射表指示所述RAID中的存储空间的使用状态;以及
向所述新盘中与所述第一组存储块对应的第二组存储块写入预定值。
10.根据权利要求9所述的设备,所述动作还包括:
从所述RAID中未发生故障的盘中读取与所述故障盘在所述映射表中被标记为已使用的第三组存储块相关联的数据;
基于读取的所述数据,计算与所述第三组存储块相对应的冗余数据;以及
向所述新盘中与所述第三组存储块对应的第四组存储块写入所述冗余数据。
11.根据权利要求9所述的设备,其中所述映射表指示所述RAID中的存储块的使用状态,所述存储块与映射逻辑单元中的逻辑存储片相对应。
12.根据权利要求11所述的设备,所述动作还包括更新所述映射表,所述更新包括:
响应于从所述映射逻辑单元接收到用于指示所述映射逻辑单元中将被使用的逻辑存储片的第一指示,在所述映射表中将与所述将被使用的逻辑存储片相对应的所述存储块标记为已使用。
13.根据权利要求12所述的设备,所述更新还包括:
向所述映射逻辑单元发送用于指示与所述将被使用的逻辑存储片相对应的所述存储块已经在所述映射表中被标记为可使用的第二指示。
14.根据权利要求11所述的设备,还包括更新所述映射表,所述更新包括:
响应于从所述映射逻辑单元接收到用于指示所述映射逻辑单元中将被释放的逻辑存储片的第三指示,在所述映射表中将与所述将被释放的逻辑存储片相对应的所述存储块标记为空闲。
15.根据权利要求14所述的设备,所述更新还包括:
向所述映射逻辑单元发送用于指示与所述将被释放的逻辑存储片相对应的所述存储块已经在所述映射表中被标记为已释放的第四指示。
16.根据权利要求9所述的设备,其中所述RAID中的盘为硬盘驱动器。
17.一种计算机可读存储介质,所述计算机可读存储介质具有存储在其上的计算机可读程序指令,所述计算机可读程序指令在被处理单元执行时使得所述处理单元实现根据权利要求1-8中的任一项所述的方法。
CN201710250537.7A 2017-04-17 2017-04-17 用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质 Active CN108733314B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710250537.7A CN108733314B (zh) 2017-04-17 2017-04-17 用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质
US15/955,082 US10922177B2 (en) 2017-04-17 2018-04-17 Method, device and computer readable storage media for rebuilding redundant array of independent disks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710250537.7A CN108733314B (zh) 2017-04-17 2017-04-17 用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN108733314A true CN108733314A (zh) 2018-11-02
CN108733314B CN108733314B (zh) 2021-06-29

Family

ID=63790617

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710250537.7A Active CN108733314B (zh) 2017-04-17 2017-04-17 用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质

Country Status (2)

Country Link
US (1) US10922177B2 (zh)
CN (1) CN108733314B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752478A (zh) * 2019-03-28 2020-10-09 国际商业机器公司 实现其中存储有压缩数据的独立盘冗余阵列(raid)
CN111857554A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 Raid冗余级别的自适应改变
CN111857560A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 用于管理数据的方法、设备和计算机程序产品
CN112306372A (zh) * 2019-07-31 2021-02-02 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和程序产品
CN112748856A (zh) * 2019-10-30 2021-05-04 伊姆西Ip控股有限责任公司 管理盘的方法、电子设备和计算机程序产品
CN113552998A (zh) * 2020-04-24 2021-10-26 伊姆西Ip控股有限责任公司 用于管理存储系统中的条带的方法、设备和程序产品
CN114385069A (zh) * 2020-10-22 2022-04-22 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
CN116166203A (zh) * 2023-04-19 2023-05-26 苏州浪潮智能科技有限公司 一种raid卡的命名空间管理方法、装置、设备及介质
CN114385069B (zh) * 2020-10-22 2024-05-17 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
US10825477B2 (en) 2018-08-02 2020-11-03 Western Digital Technologies, Inc. RAID storage system with logical data group priority
US11132256B2 (en) * 2018-08-03 2021-09-28 Western Digital Technologies, Inc. RAID storage system with logical data group rebuild
CN111104047B (zh) * 2018-10-25 2023-08-25 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
CN111124260B (zh) * 2018-10-31 2023-09-08 伊姆西Ip控股有限责任公司 管理独立盘冗余阵列的方法、电子设备和计算机程序产品
TWI704567B (zh) * 2019-04-18 2020-09-11 大陸商上海川源信息科技有限公司 磁碟陣列系統的資料還原方法
CN111857535A (zh) * 2019-04-24 2020-10-30 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机可读存储介质
CN111857557B (zh) * 2019-04-30 2024-04-05 伊姆西Ip控股有限责任公司 Raid类型转换的方法、设备和计算机程序产品
US11442826B2 (en) * 2019-06-15 2022-09-13 International Business Machines Corporation Reducing incidents of data loss in raid arrays having the same raid level
CN112084061A (zh) * 2019-06-15 2020-12-15 国际商业机器公司 减少相同raid级别的raid阵列中的数据丢失事件
CN112148204B (zh) * 2019-06-27 2024-02-02 伊姆西Ip控股有限责任公司 用于管理独立冗余盘阵列的方法、设备和介质
CN112685331B (zh) * 2019-10-17 2024-03-29 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
CN110989926B (zh) * 2019-11-11 2024-02-13 北京字节跳动网络技术有限公司 故障磁盘槽位定位方法、装置及电子设备
CN111221473B (zh) * 2019-12-30 2023-06-06 河南创新科信息技术有限公司 一种存储系统介质免维护的方法
CN113391937A (zh) 2020-03-12 2021-09-14 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备以及计算机程序产品
CN113590016A (zh) * 2020-04-30 2021-11-02 伊姆西Ip控股有限责任公司 用于管理存储盘的方法、电子设备和计算机程序产品
US11474900B2 (en) 2020-08-04 2022-10-18 International Business Machines Corporation Dynamic rebuild capability in redundant array of independent disks (RAID) arrays using compressing drives
US11494090B2 (en) * 2020-09-25 2022-11-08 Vmware, Inc. Systems and methods of maintaining fault tolerance for new writes in degraded erasure coded distributed storage
CN112328182B (zh) * 2020-11-27 2022-04-22 长沙景嘉微电子股份有限公司 一种raid数据管理方法、装置和计算机可读存储介质
CN114035994B (zh) * 2021-11-17 2022-06-07 北京极光星通科技有限公司 数据存储系统、故障处理方法、电子设备及存储介质
CN114546272B (zh) * 2022-02-18 2024-04-26 山东云海国创云计算装备产业创新中心有限公司 快速通用的raid降级为raid5的方法、系统、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101576833A (zh) * 2009-06-26 2009-11-11 杭州华三通信技术有限公司 一种独立磁盘冗余阵列raid数据重建方法和装置
US7711897B1 (en) * 2005-06-10 2010-05-04 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for improving disk array performance
US20140208046A1 (en) * 2013-01-23 2014-07-24 Lsi Corporation Storage device out-of-space handling
US9639296B1 (en) * 2013-04-05 2017-05-02 Amazon Technologies, Inc. Deallocating portions of data storage based on notifications of invalid data

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271659A1 (en) * 2008-04-24 2009-10-29 Ulf Troppens Raid rebuild using file system and block list
US8825950B2 (en) * 2011-03-01 2014-09-02 Lsi Corporation Redundant array of inexpensive disks (RAID) system configured to reduce rebuild time and to prevent data sprawl
US9286007B1 (en) 2013-03-14 2016-03-15 Emc Corporation Unified datapath architecture
SG11201601215QA (en) * 2013-08-27 2016-03-30 Agency Science Tech & Res Raid parity stripe reconstruction
US9990263B1 (en) * 2015-03-20 2018-06-05 Tintri Inc. Efficient use of spare device(s) associated with a group of devices
US9804939B1 (en) 2015-09-30 2017-10-31 EMC IP Holding Company LLC Sparse raid rebuild based on storage extent allocation
US10585855B1 (en) 2015-12-28 2020-03-10 EMC IP Holding Company LLC Optimizing file system layout for reduced raid processing
US9910748B2 (en) * 2015-12-31 2018-03-06 Futurewei Technologies, Inc. Rebuilding process for storage array
CN107515726B (zh) * 2016-06-16 2020-05-19 伊姆西Ip控股有限责任公司 用于管理存储设备的方法和系统
US10496482B1 (en) 2016-09-30 2019-12-03 EMC IP Holding Company LLC Selective raid repair based on content mapping
US10365983B1 (en) 2017-04-27 2019-07-30 EMC IP Holding Company LLC Repairing raid systems at per-stripe granularity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711897B1 (en) * 2005-06-10 2010-05-04 American Megatrends, Inc. Method, system, apparatus, and computer-readable medium for improving disk array performance
CN101576833A (zh) * 2009-06-26 2009-11-11 杭州华三通信技术有限公司 一种独立磁盘冗余阵列raid数据重建方法和装置
US20140208046A1 (en) * 2013-01-23 2014-07-24 Lsi Corporation Storage device out-of-space handling
US9639296B1 (en) * 2013-04-05 2017-05-02 Amazon Technologies, Inc. Deallocating portions of data storage based on notifications of invalid data

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752478A (zh) * 2019-03-28 2020-10-09 国际商业机器公司 实现其中存储有压缩数据的独立盘冗余阵列(raid)
CN111857554A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 Raid冗余级别的自适应改变
CN111857560A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 用于管理数据的方法、设备和计算机程序产品
CN111857554B (zh) * 2019-04-30 2024-04-05 伊姆西Ip控股有限责任公司 Raid冗余级别的自适应改变
CN112306372A (zh) * 2019-07-31 2021-02-02 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和程序产品
CN112748856A (zh) * 2019-10-30 2021-05-04 伊姆西Ip控股有限责任公司 管理盘的方法、电子设备和计算机程序产品
CN113552998A (zh) * 2020-04-24 2021-10-26 伊姆西Ip控股有限责任公司 用于管理存储系统中的条带的方法、设备和程序产品
CN113552998B (zh) * 2020-04-24 2023-09-15 伊姆西Ip控股有限责任公司 用于管理存储系统中的条带的方法、设备和程序产品
CN114385069A (zh) * 2020-10-22 2022-04-22 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
US11789622B2 (en) 2020-10-22 2023-10-17 EMC IP Holding Company LLC Method, device and computer program product for storage management
CN114385069B (zh) * 2020-10-22 2024-05-17 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
CN116166203A (zh) * 2023-04-19 2023-05-26 苏州浪潮智能科技有限公司 一种raid卡的命名空间管理方法、装置、设备及介质

Also Published As

Publication number Publication date
CN108733314B (zh) 2021-06-29
US10922177B2 (en) 2021-02-16
US20180300212A1 (en) 2018-10-18

Similar Documents

Publication Publication Date Title
CN108733314A (zh) 用于独立冗余阵列(raid)重建的方法、设备和计算机可读存储介质
CN104881333B (zh) 一种存储系统及其使用的方法
CN108228086A (zh) Raid重建的方法和设备
CN107870730A (zh) 用于管理存储系统的方法和系统
CN110389858A (zh) 存储设备的故障恢复方法和设备
CN109725822A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN107526531B (zh) 为映射独立盘冗余阵列(raid)选择raid级别的方法和设备
CN109213618A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN110413205A (zh) 用于向磁盘阵列进行写入的方法、设备和计算机可读存储介质
CN110413216A (zh) 用于管理存储系统的方法、设备和计算机程序产品
US20190163587A1 (en) Shared storage parity on raid
CN109725824A (zh) 用于向存储系统中的盘阵列写入数据的方法和设备
CN108733518A (zh) 用于管理存储系统的方法、设备和计算机可读介质
CN110413201A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN107526743A (zh) 用于压缩文件系统元数据的方法和设备
CN103534688B (zh) 数据恢复方法、存储设备和存储系统
CN110413208A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN108733506A (zh) 用于数据同步的方法、设备和计算机可读介质
CN108733316A (zh) 用于管理存储系统的方法和管理器
CN109213619A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN107515726A (zh) 用于管理存储设备的方法和系统
CN108733311A (zh) 用于管理存储系统的方法和设备
CN110413198A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN110058787A (zh) 用于写入数据的方法、设备和计算机程序产品
CN110058964A (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