CN101609420A - 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 - Google Patents
实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 Download PDFInfo
- Publication number
- CN101609420A CN101609420A CNA2009100894183A CN200910089418A CN101609420A CN 101609420 A CN101609420 A CN 101609420A CN A2009100894183 A CNA2009100894183 A CN A2009100894183A CN 200910089418 A CN200910089418 A CN 200910089418A CN 101609420 A CN101609420 A CN 101609420A
- Authority
- CN
- China
- Prior art keywords
- disk
- raid
- zone
- inefficacy
- address
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种实现磁盘冗余阵列(RAID)重建的方法、实现重建的RAID、以及一种RAID控制器。本发明在有成员磁盘失效导致RAID处于降级状态时,即便再有成员磁盘失效,只要所有失效成员磁盘的失效地址区域不重叠,则可继续使用各失效成员磁盘未失效地址区域内的数据,将各失效成员磁盘内的所有数据分别恢复至对应的热备盘中。这样,就使得RAID重建过程中的故障容忍度并不受限于RAID冗余度。而且,各失效成员磁盘中未失效地址区域内的数据仍可采用直接拷贝的方式,如果失效成员磁盘中未失效地址区域发生I/O写操作,则可以直接将I/O写数据拷贝至对应的热备盘,从而减少了RAID算法计算量,加快了RAID重建速度。
Description
技术领域
本发明涉及磁盘冗余阵列(RAID)的重建技术,特别涉及一种实现RAID重建的方法、一种实现重建的RAID、以及一种RAID控制器。
背景技术
RAID由多个磁盘聚合在一起,能够在提供大容量的同时,提供更高的访问速度、更好的可用性、以及数据冗余保护。其中,RAID中的磁盘可称为该RAID的成员磁盘,每个成员磁盘中不但存储了外部写入到该磁盘的数据,还存储其它成员磁盘中的冗余数据。
RAID会在如下三种状态之间变化:正常状态,即RAID中的所有成员磁盘都处于正常状态,则RAID阵列处于正常状态;降级状态,即部分成员磁盘失效,则RAID变为降级状态;失效状态,即RAID中的数据丢失,对应RAID5,通常的判断是处于降级状态的RAID中再有一个成员磁盘失效,则该RAID即变为失效状态;对应RAID6,通常的判断是总共有三个成员磁盘失效,则该RAID即变为失效状态。
其中,处于降级状态的RAID不再具有冗余性,但可以通过读取正常成员磁盘中的所有数据(包括冗余数据)进行RAID算法计算,得到失效成员磁盘中的数据,因而此时的RAID仍然可以对外提供正常的磁盘访问功能;处于失效状态的RAID无法对外提供正常的磁盘访问功能,即存放在该RAID中的数据将彻底丢失。
因此,在RAID处于降级状态时,需通过RAID的重建尽快使该RAID恢复冗余性。
如图1所示,以4个成员磁盘构成RAID 5、且RAID 5中设有1个热备盘为例,现有技术中通常通过如下方式来实现RAID的重建:
若干条带中,每个条带的各条块分布在成员磁盘0~3中。当成员磁盘1失效(如图1中的“×”所示)使RAID 5变为降级状态时,立即将该成员磁盘1从RAID 5中踢出,并利用剩余的成员磁盘0、成员磁盘2、成员磁盘3中各条块内的数据进行异或(Xor)运算,得到属于条带0的条块D1、属于条带1的条块D4、属于条带2的条块P2等原分布于成员磁盘2中的各条块,然后存入至热备盘中。
然而,上述重建方案需要针对失效成员磁盘中的所有条块进行Xor运算,会导致重建时间较长。
为了解决上述问题,参见图2,仍以4个成员磁盘构成RAID 5、且RAID5中设有1个热备盘为例,现有技术中还可以通过如下方式实现RAID的重建:
若干条带中,每个条带的各条块分布在成员磁盘0~3中。当成员磁盘2失效(如图2中的“×”所示)使RAID 5变为降级状态时,暂不将该失效成员磁盘1从RAID 5中踢出,而是先将失效成员磁盘1中所在扇区均未损坏的各条块直接拷贝至热备盘,然后再将该失效成员磁盘1从RAID 5中踢出,并利用剩余的成员磁盘0、成员磁盘2、成员磁盘3中各条块内的数据进行Xor运算,得到原分布于成员磁盘1中的未拷贝的各条块、存入至热备盘中。
虽然上述如图2所示的另一种重建方式能够尽可能少地进行Xor计算、以缩短RAID重建时间,但RAID重建时间仍然是比较长的,且在如此长的RAID重建时间内,如果再有成员磁盘失效就会导致RAID变为失效状态,则整个RAID中的数据也就不再完整、无法实现重建。
可见,现有如图2所示的结合拷贝和Xor运算的RAID重建方案,仅仅能够缩短RAID重建时间,但由于RAID重建过程中的故障容忍度受限于RAID冗余度,因而易出现RAID中数据失效的问题。
发明内容
有鉴于此,本发明提供了一种实现RAID重建的方法、一种实现重建的RAID、以及一种RAID控制器,能够提高RAID在重建过程中的故障容忍度。
本发明提供的一种实现RAID重建的方法,处于降级状态的RAID中又有其他成员磁盘失效、且各失效成员磁盘之间的失效地址区域不重叠时,该重建方法包括如下步骤:
对于每个失效成员磁盘未失效地址区域内的数据,直接拷贝至该成员磁盘对应的热备盘中;
对于每个失效成员磁盘已失效地址区域内的数据,读取RAID中其他正常成员磁盘、以及其他失效成员磁盘中的对应数据,并进行计算后写入到该成员磁盘对应的热备盘中。
该重建方法进一步将每个失效成员磁盘中已拷贝或已通过计算更新的未失效地址区域标记为无效状态;
且,该重建方法在读取未失效地址区域内的对应数据时,如果该数据所在未失效地址区域被标记为无效状态,则进一步读取对应热备盘中与该未失效地址区域对应的数据。
在拷贝过程中,有失效成员磁盘中的未失效地址区域发生I/O写操作,该重建方法直接将I/O写数据拷贝至该成员磁盘对应的热备盘中、并将该未失效地址区域标记为无效状态。
该重建方法进一步分别为每一成员磁盘设置一对应的映射MAP表;每一成员磁盘对应的MAP表中,每一元素分别对应该成员磁盘中一个地址区域,并可在该地址区域发生I/O读写错误标记为失效,以及在该地址区域内的数据已拷贝、或已通过计算更新后被标记为无效。
每一元素由两比特构成,其中一比特表示对应地址区域是否由于I/O读写错误而标记为失效、另一比特表示对应地址区域是否由于已拷贝、或已通过计算更新而被标记为无效。
一个地址区域为一个或多个条块、或者为一或多个扇区。
该重建方法在重建完成后,进一步将失效成员磁盘踢出RAID、删除失效成员磁盘对应的MAP表,并进一步将失效成员磁盘对应的热备盘作为新成员磁盘、设置对应的MAP表。
本发明提供的一种实现重建的RAID,包括:RAID控制器、以及多个聚合在一起的成员磁盘,该RAID处于失效状态时,又有其他成员磁盘失效、且各失效成员磁盘之间的失效地址区域不重叠;
对于每个失效成员磁盘未失效地址区域内的数据,RAID控制器直接拷贝至该成员磁盘对应的热备盘中;
对于每个失效成员磁盘已失效地址区域内的数据,RAID控制器读取RAID中其他正常成员磁盘、以及其他失效成员磁盘中的对应数据,并进行计算后写入到该成员磁盘对应的热备盘中。
RAID控制器进一步将每个失效成员磁盘中已拷贝或已通过计算更新的未失效地址区域标记为无效状态;
且,RAID控制器在读取未失效地址区域内的对应数据时,如果该数据所在未失效地址区域被标记为无效状态,则进一步读取对应热备盘中与该未失效地址区域对应的数据。
在拷贝过程中,有失效成员磁盘中的未失效地址区域发生I/O写操作,RAID控制器直接将I/O写数据直接拷贝至该成员磁盘对应的热备盘中、并将该未失效地址区域标记为无效状态。
RAID控制器中进一步为每一成员磁盘分别设置有一对应的映射MAP表;每一成员磁盘对应的MAP表中,每一元素分别对应该成员磁盘中一个地址区域,并可在该地址区域发生I/O读写错误标记为失效,以及在该地址区域内的数据已拷贝、或已通过计算更新后被标记为无效。
每一元素由两比特构成,其中一比特表示对应地址区域是否由于I/O读写错误而标记为失效、另一比特表示对应地址区域是否由于已拷贝、或已通过计算更新而被标记为无效。
一个地址区域为一个或多个条块、或者为一或多个扇区。
RAID控制器在重建完成后,进一步将失效成员磁盘踢出RAID、删除失效成员磁盘对应的MAP表,并进一步将失效成员磁盘对应的热备盘作为新成员磁盘、设置对应的MAP表。
本发明提供的一种RAID控制器,连接于RAID中的各成员磁盘以及热备盘,该RAID控制器包括:
主控单元,在处于降级状态的RAID中又有其他成员磁盘失效、且各失效成员磁盘之间的失效地址区域不重叠时,保持对拷贝单元和计算单元的使能;
拷贝单元,将失效成员磁盘未失效地址区域内的数据,直接拷贝至该成员磁盘对应的热备盘中;
计算单元,针对失效成员磁盘已失效地址区域内的数据,读取RAID中其他正常成员磁盘、以及其他失效成员磁盘中的对应地址区域内的数据,并进行计算后写入到该成员磁盘对应的热备盘中。
拷贝单元进一步将每个失效成员磁盘中已拷贝的未失效地址区域标记为无效状态;计算单元进一步将每个失效成员磁盘中已通过计算更新的未失效地址区域标记为无效状态;
且,计算单元在读取未失效地址区域内的对应数据时,如果该数据所在未失效地址区域被标记为无效状态,则进一步读取对应热备盘中与该未失效地址区域对应的数据。
在拷贝过程中,有失效成员磁盘中的未失效地址区域发生I/O写操作,拷贝单元直接将I/O写数据拷贝至该成员磁盘对应的热备盘中、并将该未失效地址区域标记为无效状态。
RAID控制器中进一步包括映射单元,存储为每一成员磁盘分别设置的一对应映射MAP表,每一成员磁盘对应的MAP表中,每一元素分别对应该成员磁盘中一个地址区域,并可在该地址区域发生I/O读写错误后标记为失效,以及在该地址区域已完成拷贝、或已通过计算更新后被标记为无效。
每一元素由两比特构成,其中一比特表示对应地址区域是否由于I/O读写错误而标记为失效、另一比特表示对应地址区域是否由于已拷贝、或已通过计算更新后而被标记为无效。
一个地址区域为一个或多个条块、或者为一或多个扇区。
主控单元在重建完成后,进一步将失效成员磁盘踢出RAID、删除失效成员磁盘对应的MAP表,并进一步将失效成员磁盘对应的热备盘作为新成员磁盘、设置对应的MAP表。
由上述技术方案可见,本发明在有成员磁盘失效导致RAID处于降级状态时,即便再有成员磁盘失效,只要所有失效成员磁盘的失效地址区域不重叠,则可继续使用各失效成员磁盘未失效地址区域内的数据,将各失效成员磁盘内的所有数据分别恢复至对应的热备盘中。这样,就使得RAID重建过程中的故障容忍度并不受限于RAID冗余度。
而且,各失效成员磁盘中未失效地址区域内的数据仍可采用直接拷贝的方式,如果失效成员磁盘中未失效地址区域发生I/O写操作,则可以直接将I/O写数据拷贝至对应的热备盘,从而减少了RAID算法计算量,加快了RAID重建速度。
进一步地,本发明可通过例如映射(MAP)表的方式,将每个失效成员磁盘中发生I/O读写错误标记为失效,用以识别失效地址区域;还将每个失效成员磁盘中已拷贝、或已通过计算更新地址区域标记为无效状态,即更新后的对应热备盘上的数据就是有效的,这样,可以依此选择是从失效成员磁盘中读取数据还是从热备盘中读取数据。
可选地,成员磁盘中的地址区域可以条块划分,这样会使计算相对简单;或者,成员磁盘中的地址区域可以以更小的粒度、甚至扇区来划分,此时虽然计算相对复杂、但各失效成员磁盘中重叠的失效地址区域不重叠的几率更大,可进一步提高RAID阵列的故障容忍度。
附图说明
图1为现有的一种RAID重建过程的示意图;
图2为现有的另一种RAID重建过程的示意图;
图3为本发明实施例中实现RAID重建的示意图;
图4为本发明实施例中RAID控制器的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本实施例中,以RAID5为例,当先有成员磁盘失效导致RAID处于降级状态时,例如RAID 5有1个成员磁盘失效导致降级状态,可按照如下方式实现重建:
对于失效成员磁盘未失效地址区域内的数据,直接拷贝至该成员磁盘对应的热备盘中的相同地址区域内;
对于失效成员磁盘已失效地址区域(即发生I/O读写错误的地址区域)内的数据,读取RAID中其他正常成员磁盘中对应地址区域内的数据进行Xor计算后,写入到该成员磁盘对应的热备盘中的相同地址区域内。
需要说明的是,上述“对应地址区域”是指同一地址区域组内的其他地址区域,且同一地址区域组中任意地址区域内的数据,可通过该组内其他地址区域内的数据进行Xor计算得到。如果每个地址区域包含一或多个条块,则一个地址区域组实际上就为一或多个相同数量的条带;如果每个地址区域包含一或多个扇区,则一个地址区域组实际上就可看作是以扇区为单位划分的一或多个相同数量的子条带。
此后,又有其他成员磁盘失效,例如降级状态的RAID 5再有至少1个成员磁盘失效,这种情况下,本实施例并不将RAID转换为失效状态、也不停止重建,而是首先判断各失效成员磁盘之间的失效地址区域是否不重叠(本文所述的“不重叠”是指各失效成员磁盘之间的失效地址区域分属于不同地址区域组),如果各失效成员磁盘之间的失效地址区域不重叠,例如RAID5中所有n(n小于等于成员磁盘总数)个失效成员磁盘的失效地址区域之间不重叠,则虽然整个RAID中的失效成员磁盘数量达到了2个,但对于可通过Xor计算恢复任意地址区域内数据的每个地址区域组来说,当各失效成员磁盘之间的失效地址区域不重叠时,本实施例中实现RAID的重建方法可按照如下方式继续进行重建:
对于每个失效成员磁盘未失效地址区域内的数据,直接拷贝至该成员磁盘对应的热备盘中的相同地址区域内;可选地,如果当前拷贝的未失效地址区域内有I/O写操作,则直接将I/O写操作的数据写入至对应的热备盘中的相同地址区域内,此时表示该未失效地址区域已完成拷贝;需要说明的是,发生I/O写操作的部分可能会小于一个地址区域、也可能刚好等于一个地址区域,那么对于发生I/O写操作的部分小于一个地址区域的情况,除了将I/O写数据拷贝至对应热备盘中之外,还需要将该地址区域内未发生I/O写操作的其他部分也拷贝至热备盘、以保证该地址区域内的数据完整性;
对于每个失效成员磁盘已失效地址区域内的数据,读取RAID中其他正常成员磁盘、以及其他失效成员磁盘中与该地址区域属于同一地址区域组的对应地址区域内的数据进行Xor计算后,写入到该成员磁盘对应的热备盘中的相同地址区域内。
上述RAID处于失效状态时的重建方式,可看作是将每个地址区域组分布于所有成员磁盘的各地址区域虚拟为一个子RAID,并分别实现每个虚拟子RAID的重建。
实际应用中,由于每个失效成员磁盘的数据计算还会需要其他失效成员磁盘中的数据,而其他失效成员磁盘中的对应数据可能已被恢复至热备盘,因此,本实施例中实现RAID的重建方法在RAID处于失效状态时的重建过程中,除了将由于I/O读写错误导致的真实已失效地址区域标记为失效状态之外,还可进一步将已完成拷贝(包括从地址区域拷贝和拷贝I/O写数据两种情况)、或已通过计算更新的未失效地址区域标记为无效状态。
这样,在读取未失效地址区域内的数据时,如果该未失效地址区域已被标记为无效状态,则进一步读取对应热备盘中对应地址区域内的数据。
为了实现对真实失效地址区域、以及完成拷贝的未失效地址区域的标记,本实施例中的一种可选的方式为:分别为每一成员磁盘设置一对应的映射MAP表;每一成员磁盘对应的MAP表中,每一元素分别对应该成员磁盘中的一个地址区域,并可在该地址区域发生I/O读写错误后标记为失效状态、以及在该地址区域中的数据已拷贝(包括从地址区域拷贝和拷贝I/O写数据两种情况)、或已通过计算更新后被标记为无效状态。
具体说,每一元素可仅由两比特构成,其中一比特表示对应地址区域是否由于I/O读写错误而被标记为失效、即表示真实的失效地址区域,另一比特表示对应地址区域是否被由于已完成拷贝(包括从地址区域拷贝和拷贝I/O写数据两种情况)、或由于已通过计算更新而被标记为无效、即数据已完成更新的未失效地址区域。
这种情况下,在重建完成后可进一步在将失效成员磁盘踢出RAID后,删除该失效成员磁盘对应的MAP表,并进一步将失效成员磁盘对应的热备盘作为新成员磁盘、添加设置对应的新MAP表。
如前所述,本实施例中所提及的成员磁盘中的地址区域可以以条块划分,相应地,每个失效地址区域即为包含有失效扇区的一或多个条块;或者,成员磁盘中的地址区域也可以以扇区划分,相应地,每个失效地址区域即为一或多个失效扇区。
上述两种不同的地址区域划分方式相比,以条块划分地址区域的Xor计算方式的复杂程度略低(本领域技术人员可直接选用现有任一种方式);以扇区划分地址区域的Xor计算方式的复杂程度略高(本领域技术人员需要、且能够对现有任一种方式略加改进),但各失效成员磁盘中重叠的失效地址区域不重叠的几率更大,可进一步提高RAID阵列的故障容忍度。
因此,实际应用中,可依据情况需要任意选择一种地址区域划分方式,但无论选择哪一种地址区域划分方式,重建的原理均相同。
参见图3,仍以4个成员磁盘构成RAID 5、RAID 5中设有2个热备盘、且以一个地址区域包含一个条块为例,本实施例中通过如下方式实现RAID的重建:
若干条带中,每个条带的各条块分布在成员磁盘0~3中。当成员磁盘1中条块D1、P2所在扇区损坏导致成员磁盘1失效(如图3中表示成员磁盘1的方框内的“×”所示),使RAID 5变为降级状态时,暂不将该失效成员磁盘1从RAID 5中踢出;
对于失效成员磁盘1中未失效条块D1、D4和条块D9内的数据,直接拷贝至该失效成员磁盘1对应的热备盘1中,如果在拷贝过程中,有I/O写操作访问条块D9,故直接将I/O写操作的数据写入至热备盘1中,如果I/O写操作的部分小于条块D9,则需要拷贝D9内未发生I/O写操作的其他部分数据进行补充;并在拷贝完成后将失效成员磁盘1中的条块D1、D4和条块D9标记为无效状态;
对于失效成员磁盘1中已失效条块P2(条块P2已由于I/O读写错误而被标记为失效状态)内的数据,分别读取RAID中其他正常成员磁盘0、成员磁盘2、成员磁盘3中属于条带2对应条块内的数据进行Xor计算后,写入到该失效成员磁盘1对应的热备盘1中。
然而,假设在失效成员磁盘1中条块D1、D4、D9内的数据拷贝完成并标记后、条块P2内的数据Xor计算未开始时,成员磁盘2由于其条块D10的I/O读写错误而被标记为失效(如图3中表示成员磁盘2的方框内的“×”所示)。
此时,由于失效成员磁盘2的失效条块D10属于条带3,与失效成员磁盘1中失效条块P2所属的条带2属于不同条带,即不重叠,因此:
对于失效成员磁盘1中已失效的条块P2内的数据,仍可分别读取RAID中其他正常成员磁盘0和成员磁盘3、以及失效成员磁盘2中属于条带2的对应条块内的数据进行Xor计算,并写入到该失效成员磁盘1对应的热备盘1中。
对于失效成员磁盘2中未失效的条块D2、P1、D7内的数据,分别直接拷贝至该失效成员磁盘2对应的热备盘2中,并在拷贝完成后将失效成员磁盘2中的条块D2、P1、D7标记为无效状态;
对于失效成员磁盘2中已失效的条块D10内的数据,分别读取RAID中其他正常成员磁盘0和成员磁盘3、以及热备盘1(失效成员磁盘1中属于条带3的条块D9已被标记为失效状态)中属于条带3的对应条块内的数据进行Xor计算后,写入到该失效成员磁盘2对应的热备盘2中。
当然,在失效成员磁盘1和成员磁盘2中的所有数据完成恢复之前,如果再有成员磁盘0中的条块D0失效和/或成员磁盘3中的条块D5失效,或者,再有成员磁盘0中的条块D3和/或成员磁盘3中的条块P0失效,则仍可继续重建。
可见,如图3所示的RAID 5的冗余度为1个成员磁盘,而故障容忍度则多于1个成员磁盘。
以上是对本实施例中实现RAID重建的方法的详细说明。下面,再对本实施例中能够实现RAID以及该RAID中的RAID控制器进行说明。
本实施例中能够实现重建的RAID包括RAID控制器、以及多个聚合在一起的成员磁盘。其中,RAID控制器按照本实施例中实现RAID重建的方法进行相应操作即可实现RAID重建。
参见图4,本实施例中的RAID控制器包括:主控单元401、以及拷贝单元402和计算单元403。
主控单元401,在有成员磁盘失效导致RAID处于降级状态时,触发对拷贝单元402和计算单元403的使能;在处于降级状态的RAID中又有其他成员磁盘失效、且各失效成员磁盘之间的失效地址区域不重叠、即分属于不同地址区域组时,保持对拷贝单元402和计算单元403的使能继续重建、而不是通过取消拷贝单元402和计算单元403的使能来停止重建;在拷贝单元402和计算单元403处于使能状态时,实时检测每个失效成员磁盘中未失效地址区域并通知拷贝单元402,实时检测每个失效成员磁盘中已失效地址区域并通知计算单元403;
拷贝单元401,将失效成员磁盘未失效地址区域内的数据,直接拷贝至该成员磁盘对应的热备盘中的相同地址区域内;可选地,如果当前拷贝的未失效地址区域内有I/O写操作,则拷贝单元401直接将I/O写操作的数据写入至对应的热备盘中的相同地址区域内,此时表示该未失效地址区域已完成拷贝;需要说明的是,发生I/O写操作的部分可能会小于一个地址区域、也可能刚好等于一个地址区域,那么对于发生I/O写操作的部分小于一个地址区域的情况,拷贝单元401除了将I/O写数据拷贝至对应热备盘中之外,还需要将该地址区域内未发生I/O写操作的其他部分也拷贝至热备盘、以保证该地址区域内的数据完整性;
计算单元403,针对失效成员磁盘已失效地址区域内的数据,读取RAID中其他正常成员磁盘、以及其他失效成员磁盘中属于同一地址区域组的对应地址区域内的数据进行计算后,写入到该成员磁盘对应的热备盘中的相同地址区域内。
实际应用中,由于每个失效成员磁盘的数据计算还会需要其他失效成员磁盘中的数据,而其他失效成员磁盘中的对应数据可能已被恢复至热备盘,因此,除了主控单元401将由于I/O读写错误导致的真实已失效地址区域标记为失效状态之外,还可由拷贝单元402进一步将每个失效成员磁盘中已完成拷贝(包括从地址区域拷贝和拷贝I/O写数据两种情况)的未失效地址区域标记为无效状态;
这样,计算单元403在读取RAID中未失效地址区域内的数据时,如果该未失效地址区域被标记为无效状态,则进一步读取对应热备盘中对应地址区域内的数据。
为了实现对真实失效地址区域、以及完成拷贝的未失效地址区域的标记,RAID控制器中可进一步包括映射单元404,存储为每一成员磁盘分别设置的一对应映射MAP表,每一成员磁盘对应的MAP表中,每一元素分别对应该成员磁盘中的一个地址区域,并可在该地址区域发生I/O读写错误后标记为失效,以及在该地址区域已完成拷贝(包括从地址区域拷贝和拷贝I/O写数据两种情况)、或已通过计算更新后被标记为无效。具体说,每一元素可仅由两比特构成,其中一比特表示对应地址区域是否由于I/O读写错误而被标记为失效、即表示真实的失效地址区域,另一比特表示对应地址区域是否被由于已完成拷贝(包括从地址区域拷贝和拷贝I/O写数据两种情况)、或已通过计算更新而被标记为无效、即数据已完成更新的未失效地址区域。
此外,主控单元401在重建完成后,进一步将失效成员磁盘踢出RAID,并进一步将失效成员磁盘对应的热备盘作为新成员磁盘。对于以MAP表实现标记的情况,主控单元401在将失效成员磁盘踢出RAID后,还应进一步删除该失效成员磁盘对应的MAP表,并在将失效成员磁盘对应的热备盘作为新成员磁盘后,进一步为新成员磁盘设置对应的新MAP表。
与本实施例中实现RAID重建的方法相同,对于实现重建的RAID及其RAID控制器来说,成员磁盘中的地址区域可以以条块划分,相应地,每个失效地址区域即为包含有失效扇区的一或多个条块;或者,成员磁盘中的地址区域也可以以扇区划分,相应地,每个失效地址区域即为一或多个失效扇区。
上述实施例主要是以RAID 5为例进行的说明,实际应用中,上述实施例中的技术方案也适用于RAID 6,且仅仅是RAID 6采用的RAID算法相较于RAID 5略有区别、且失效成员磁盘数量略有区别而已。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (21)
1、一种磁盘冗余阵列RAID的重建方法,其特征在于,处于降级状态的RAID中又有其他成员磁盘失效、且各失效成员磁盘之间的失效地址区域不重叠时,该重建方法包括如下步骤:
对于每个失效成员磁盘未失效地址区域内的数据,直接拷贝至该成员磁盘对应的热备盘中;
对于每个失效成员磁盘已失效地址区域内的数据,读取RAID中其他正常成员磁盘、以及其他失效成员磁盘中的对应数据,并进行计算后写入到该成员磁盘对应的热备盘中。
2、如权利要求1所述的重建方法,其特征在于,该重建方法进一步将每个失效成员磁盘中已拷贝或已通过计算更新的未失效地址区域标记为无效状态;
且,该重建方法在读取未失效地址区域内的对应数据时,如果该数据所在未失效地址区域被标记为无效状态,则进一步读取对应热备盘中与该未失效地址区域对应的数据。
3、如权利要求2所述的重建方法,其特征在于,在拷贝过程中,有失效成员磁盘中的未失效地址区域发生I/O写操作,该重建方法直接将I/O写数据拷贝至该成员磁盘对应的热备盘中、并将该未失效地址区域标记为无效状态。
4、如权利要求3所述的重建方法,其特征在于,该重建方法进一步分别为每一成员磁盘设置一对应的映射MAP表;每一成员磁盘对应的MAP表中,每一元素分别对应该成员磁盘中一个地址区域,并可在该地址区域发生I/O读写错误标记为失效,以及在该地址区域内的数据已拷贝、或已通过计算更新后被标记为无效。
5、如权利要求4所述的重建方法,其特征在于,每一元素由两比特构成,其中一比特表示对应地址区域是否由于I/O读写错误而标记为失效、另一比特表示对应地址区域是否由于已拷贝、或已通过计算更新而被标记为无效。
6、如权利要求4或5所述的重建方法,其特征在于,一个地址区域为一个或多个条块、或者为一或多个扇区。
7、如权利要求4或5所述的重建方法,其特征在于,该重建方法在重建完成后,进一步将失效成员磁盘踢出RAID、删除失效成员磁盘对应的MAP表,并进一步将失效成员磁盘对应的热备盘作为新成员磁盘、设置对应的MAP表。
8、一种实现重建的磁盘冗余阵列RAID,包括:RAID控制器、以及多个聚合在一起的成员磁盘,其特征在于,该RAID处于失效状态时,又有其他成员磁盘失效、且各失效成员磁盘之间的失效地址区域不重叠;
对于每个失效成员磁盘未失效地址区域内的数据,RAID控制器直接拷贝至该成员磁盘对应的热备盘中;
对于每个失效成员磁盘已失效地址区域内的数据,RAID控制器读取RAID中其他正常成员磁盘、以及其他失效成员磁盘中的对应数据,并进行计算后写入到该成员磁盘对应的热备盘中。
9、如权利要求8所述的RAID,其特征在于,RAID控制器进一步将每个失效成员磁盘中已拷贝或已通过计算更新的未失效地址区域标记为无效状态;
且,RAID控制器在读取未失效地址区域内的对应数据时,如果该数据所在未失效地址区域被标记为无效状态,则进一步读取对应热备盘中与该未失效地址区域对应的数据。
10、如权利要求8所述的RAID,其特征在于,在拷贝过程中,有失效成员磁盘中的未失效地址区域发生I/O写操作,RAID控制器直接将I/O写数据直接拷贝至该成员磁盘对应的热备盘中、并将该未失效地址区域标记为无效状态。
11、如权利要求10所述的RAID,其特征在于,RAID控制器中进一步为每一成员磁盘分别设置有一对应的映射MAP表;每一成员磁盘对应的MAP表中,每一元素分别对应该成员磁盘中一个地址区域,并可在该地址区域发生I/O读写错误标记为失效,以及在该地址区域内的数据已拷贝、或已通过计算更新后被标记为无效。
12、如权利要求11所述的RAID,其特征在于,每一元素由两比特构成,其中一比特表示对应地址区域是否由于I/O读写错误而标记为失效、另一比特表示对应地址区域是否由于已拷贝、或已通过计算更新而被标记为无效。
13、如权利要求11或12所述的RAID,其特征在于,一个地址区域为一个或多个条块、或者为一或多个扇区。
14、如权利要求11或12所述的RAID,其特征在于,RAID控制器在重建完成后,进一步将失效成员磁盘踢出RAID、删除失效成员磁盘对应的MAP表,并进一步将失效成员磁盘对应的热备盘作为新成员磁盘、设置对应的MAP表。
15、一种RAID控制器,连接于RAID中的各成员磁盘以及热备盘,其特征在于,该RAID控制器包括:
主控单元,在处于降级状态的RAID中又有其他成员磁盘失效、且各失效成员磁盘之间的失效地址区域不重叠时,保持对拷贝单元和计算单元的使能;
拷贝单元,将失效成员磁盘未失效地址区域内的数据,直接拷贝至该成员磁盘对应的热备盘中;
计算单元,针对失效成员磁盘已失效地址区域内的数据,读取RAID中其他正常成员磁盘、以及其他失效成员磁盘中的对应地址区域内的数据,并进行计算后写入到该成员磁盘对应的热备盘中。
16、如权利要求15所述的RAID控制器,其特征在于,拷贝单元进一步将每个失效成员磁盘中已拷贝的未失效地址区域标记为无效状态;计算单元进一步将每个失效成员磁盘中已通过计算更新的未失效地址区域标记为无效状态;
且,计算单元在读取未失效地址区域内的对应数据时,如果该数据所在未失效地址区域被标记为无效状态,则进一步读取对应热备盘中与该未失效地址区域对应的数据。
17、如权利要求16所述的RAID控制器,其特征在于,在拷贝过程中,有失效成员磁盘中的未失效地址区域发生I/O写操作,拷贝单元直接将I/O写数据拷贝至该成员磁盘对应的热备盘中、并将该未失效地址区域标记为无效状态。
18、如权利要求17所述的RAID控制器,其特征在于,RAID控制器中进一步包括映射单元,存储为每一成员磁盘分别设置的一对应映射MAP表,每一成员磁盘对应的MAP表中,每一元素分别对应该成员磁盘中一个地址区域,并可在该地址区域发生I/O读写错误后标记为失效,以及在该地址区域已完成拷贝、或已通过计算更新后被标记为无效。
19、如权利要求18所述的RAID控制器,其特征在于,每一元素由两比特构成,其中一比特表示对应地址区域是否由于I/O读写错误而标记为失效、另一比特表示对应地址区域是否由于已拷贝、或已通过计算更新后而被标记为无效。
20、如权利要求18或19所述的RAID控制器,其特征在于,一个地址区域为一个或多个条块、或者为一或多个扇区。
21、如权利要求18或19所述的RAID控制器,其特征在于,主控单元在重建完成后,进一步将失效成员磁盘踢出RAID、删除失效成员磁盘对应的MAP表,并进一步将失效成员磁盘对应的热备盘作为新成员磁盘、设置对应的MAP表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100894183A CN101609420A (zh) | 2009-07-17 | 2009-07-17 | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100894183A CN101609420A (zh) | 2009-07-17 | 2009-07-17 | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101609420A true CN101609420A (zh) | 2009-12-23 |
Family
ID=41483180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100894183A Pending CN101609420A (zh) | 2009-07-17 | 2009-07-17 | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101609420A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833422A (zh) * | 2010-03-08 | 2010-09-15 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列的数据处理方法及设备 |
CN101859265A (zh) * | 2010-06-02 | 2010-10-13 | 杭州华三通信技术有限公司 | 一种磁盘阵列重建方法和设备 |
CN101916173A (zh) * | 2010-08-27 | 2010-12-15 | 杭州华三通信技术有限公司 | 一种基于raid的数据读写方法及其*** |
CN102147714A (zh) * | 2011-03-17 | 2011-08-10 | 杭州宏杉科技有限公司 | 一种网络存储***的管理方法及装置 |
CN102385542A (zh) * | 2011-12-13 | 2012-03-21 | 云海创想信息技术(无锡)有限公司 | 一种raid0数据备份的方法及装置 |
CN102981778A (zh) * | 2012-11-15 | 2013-03-20 | 浙江宇视科技有限公司 | 一种raid阵列重建方法及装置 |
CN103064635A (zh) * | 2012-12-19 | 2013-04-24 | 华为技术有限公司 | 分布式存储方法和分布式存储装置 |
CN103488547A (zh) * | 2013-09-24 | 2014-01-01 | 浪潮电子信息产业股份有限公司 | 一种raid组故障硬盘快速重建的方法 |
CN103534688A (zh) * | 2013-05-29 | 2014-01-22 | 华为技术有限公司 | 数据恢复方法、存储设备和存储*** |
CN103677669A (zh) * | 2013-11-29 | 2014-03-26 | 华为技术有限公司 | 调度io的方法和装置 |
CN103729268A (zh) * | 2014-01-15 | 2014-04-16 | 浪潮电子信息产业股份有限公司 | 一种raid5掉两块盘的数据恢复方法 |
WO2015058542A1 (zh) * | 2013-10-21 | 2015-04-30 | 华为技术有限公司 | 独立冗余磁盘阵列的重构方法及装置 |
CN105094712A (zh) * | 2015-09-30 | 2015-11-25 | 浙江宇视科技有限公司 | 一种数据处理方法及装置 |
CN106371947A (zh) * | 2016-09-14 | 2017-02-01 | 郑州云海信息技术有限公司 | 一种用于raid的多故障盘数据恢复方法及其*** |
CN106610788A (zh) * | 2015-10-26 | 2017-05-03 | 华为技术有限公司 | 硬盘阵列控制方法及装置 |
WO2019056948A1 (zh) * | 2017-09-22 | 2019-03-28 | 华为技术有限公司 | 存储介质的管理方法、装置及可读存储介质 |
CN112000480A (zh) * | 2020-08-25 | 2020-11-27 | 深圳忆联信息***有限公司 | 提升ssd全盘扫描效率的方法、装置、设备及介质 |
CN114968129A (zh) * | 2022-07-28 | 2022-08-30 | 苏州浪潮智能科技有限公司 | 磁盘阵列冗余方法、***、计算机设备和存储介质 |
-
2009
- 2009-07-17 CN CNA2009100894183A patent/CN101609420A/zh active Pending
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833422A (zh) * | 2010-03-08 | 2010-09-15 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列的数据处理方法及设备 |
CN101859265A (zh) * | 2010-06-02 | 2010-10-13 | 杭州华三通信技术有限公司 | 一种磁盘阵列重建方法和设备 |
CN101859265B (zh) * | 2010-06-02 | 2012-09-26 | 杭州华三通信技术有限公司 | 一种磁盘阵列重建方法和设备 |
CN101916173B (zh) * | 2010-08-27 | 2013-08-28 | 杭州华三通信技术有限公司 | 一种基于raid的数据读写方法及其*** |
CN101916173A (zh) * | 2010-08-27 | 2010-12-15 | 杭州华三通信技术有限公司 | 一种基于raid的数据读写方法及其*** |
CN102147714A (zh) * | 2011-03-17 | 2011-08-10 | 杭州宏杉科技有限公司 | 一种网络存储***的管理方法及装置 |
CN102147714B (zh) * | 2011-03-17 | 2015-12-16 | 杭州宏杉科技有限公司 | 一种网络存储***的管理方法及装置 |
CN102385542A (zh) * | 2011-12-13 | 2012-03-21 | 云海创想信息技术(无锡)有限公司 | 一种raid0数据备份的方法及装置 |
CN102981778A (zh) * | 2012-11-15 | 2013-03-20 | 浙江宇视科技有限公司 | 一种raid阵列重建方法及装置 |
CN102981778B (zh) * | 2012-11-15 | 2016-11-16 | 浙江宇视科技有限公司 | 一种raid阵列重建方法及装置 |
CN103064635A (zh) * | 2012-12-19 | 2013-04-24 | 华为技术有限公司 | 分布式存储方法和分布式存储装置 |
CN103064635B (zh) * | 2012-12-19 | 2016-08-24 | 华为技术有限公司 | 分布式存储方法和分布式存储装置 |
CN103534688A (zh) * | 2013-05-29 | 2014-01-22 | 华为技术有限公司 | 数据恢复方法、存储设备和存储*** |
CN103534688B (zh) * | 2013-05-29 | 2016-03-09 | 华为技术有限公司 | 数据恢复方法、存储设备和存储*** |
CN103488547A (zh) * | 2013-09-24 | 2014-01-01 | 浪潮电子信息产业股份有限公司 | 一种raid组故障硬盘快速重建的方法 |
WO2015058542A1 (zh) * | 2013-10-21 | 2015-04-30 | 华为技术有限公司 | 独立冗余磁盘阵列的重构方法及装置 |
CN103677669A (zh) * | 2013-11-29 | 2014-03-26 | 华为技术有限公司 | 调度io的方法和装置 |
CN103677669B (zh) * | 2013-11-29 | 2016-08-17 | 华为技术有限公司 | 调度io的方法和装置 |
CN103729268A (zh) * | 2014-01-15 | 2014-04-16 | 浪潮电子信息产业股份有限公司 | 一种raid5掉两块盘的数据恢复方法 |
CN105094712A (zh) * | 2015-09-30 | 2015-11-25 | 浙江宇视科技有限公司 | 一种数据处理方法及装置 |
CN105094712B (zh) * | 2015-09-30 | 2019-01-11 | 浙江宇视科技有限公司 | 一种数据处理方法及装置 |
CN106610788A (zh) * | 2015-10-26 | 2017-05-03 | 华为技术有限公司 | 硬盘阵列控制方法及装置 |
CN106371947A (zh) * | 2016-09-14 | 2017-02-01 | 郑州云海信息技术有限公司 | 一种用于raid的多故障盘数据恢复方法及其*** |
CN106371947B (zh) * | 2016-09-14 | 2019-07-26 | 郑州云海信息技术有限公司 | 一种用于raid的多故障盘数据恢复方法及其*** |
WO2019056948A1 (zh) * | 2017-09-22 | 2019-03-28 | 华为技术有限公司 | 存储介质的管理方法、装置及可读存储介质 |
US11237929B2 (en) | 2017-09-22 | 2022-02-01 | Huawei Technologies Co., Ltd. | Method and apparatus, and readable storage medium |
US11714733B2 (en) | 2017-09-22 | 2023-08-01 | Huawei Technologies Co., Ltd. | Method and apparatus, and readable storage medium |
CN112000480A (zh) * | 2020-08-25 | 2020-11-27 | 深圳忆联信息***有限公司 | 提升ssd全盘扫描效率的方法、装置、设备及介质 |
CN112000480B (zh) * | 2020-08-25 | 2023-12-05 | 深圳忆联信息***有限公司 | 提升ssd全盘扫描效率的方法、装置、设备及介质 |
CN114968129A (zh) * | 2022-07-28 | 2022-08-30 | 苏州浪潮智能科技有限公司 | 磁盘阵列冗余方法、***、计算机设备和存储介质 |
CN114968129B (zh) * | 2022-07-28 | 2022-12-06 | 苏州浪潮智能科技有限公司 | 磁盘阵列冗余方法、***、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101609420A (zh) | 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器 | |
US8307159B2 (en) | System and method for providing performance-enhanced rebuild of a solid-state drive (SSD) in a solid-state drive hard disk drive (SSD HDD) redundant array of inexpensive disks 1 (RAID 1) pair | |
CN104035830B (zh) | 一种数据恢复方法和装置 | |
CN103049222B (zh) | 一种raid5的写io优化处理方法 | |
CN104246707B (zh) | 存储***和存储装置 | |
US8839028B1 (en) | Managing data availability in storage systems | |
KR100701563B1 (ko) | 스토리지 제어 장치 및 방법 | |
CN101916173B (zh) | 一种基于raid的数据读写方法及其*** | |
US8356292B2 (en) | Method for updating control program of physical storage device in storage virtualization system and storage virtualization controller and system thereof | |
US7418550B2 (en) | Methods and structure for improved import/export of raid level 6 volumes | |
CN102799533B (zh) | 一种磁盘损坏扇区屏蔽方法及装置 | |
US11150846B2 (en) | Storage system, computer-readable recording medium, and control method for system that reconstructs and distributes data | |
CN102981778B (zh) | 一种raid阵列重建方法及装置 | |
JPH06504863A (ja) | コピーバックキャッシュを有する記憶装置アレイ | |
CN110187830A (zh) | 一种加速磁盘阵列重建的方法及*** | |
JPH05505264A (ja) | データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶 | |
CN105531677A (zh) | Raid奇偶校验条带重建 | |
CN102508620B (zh) | 一种处理raid5坏扇区的方法 | |
CN102520890B (zh) | 基于gpu的rs-draid***及存储设备数据控制方法 | |
CN101840360A (zh) | Raid***的快速重建方法及装置 | |
CN111857540B (zh) | 数据存取方法、装置和计算机程序产品 | |
TW201017404A (en) | System and method for loose coupling between RAID volumes and drive groups | |
US10409682B1 (en) | Distributed RAID system | |
CN111124262A (zh) | 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质 | |
CN103544995B (zh) | 一种坏道修复方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091223 |