专利名称:数据重构方法和存储设备的制作方法
技术领域:
本发明涉及存储技木,尤其涉及ー种数据重构方法和存储设备。
背景技术:
独立磁盘冗余阵列(Redundant Array of Independent Disks ;RAID)技术为存储领域最常用的技术之一,它将多块硬盘虚拟成ー个大容量的硬盘进,利用多块硬盘来提升系统容量,通过同时读写来加快整体存储速度,并利用冗余设置实现一定的容错能力,从而提供比单个硬盘更高的存储性能与数据备份能力。在现有技术中,通常在RAID组的基础之上配置ー个或多个热备盘,在成员盘正常吋,热备盘不參与RAID组的正常读写过程;当系统中某个成员盘损坏时,则将成员盘的数据及时重构备份到热备盘中,由热备盘接替损坏的成员盘的工作,以保证重构完成后RAID 组可以恢复原有的容错能力。然而,现有技术中的重构过程需要将损坏的成员盘上的所有数据都重构备份到热备盘中,重构数据量大,且主要的写压カ均集中在热备盘上,从而造成写瓶颈,导致较长的重构时间。
发明内容
本发明提供ー种数据重构方法和存储设备,克服现有技术中存在的写瓶颈,减少重构时间。本发明的第一个方面是提供一种数据重构方法,包括当一个成员盘损坏吋,判断所述成员盘中各成员空间是否存在镜像的热备空间, 其中,独立磁盘冗余阵列RAID组中的每个成员盘均包含至少ー个热备空间,各所述热备空间分别与下一个成员盘中与所述热备空间对应的成员空间互为镜像;若ー个成员空间存在镜像的热备空间,则利用所述成员空间的镜像的热备空间替代所述成员空间,对所述成员空间中的数据进行读写操作;若一个成员空间不存在镜像的热备空间,则将所述成员空间中的数据重构到与所述成员空间对应的ー个热备空间上。本发明的另ー个方面是提供一种存储设备,包括存储控制器和独立磁盘冗余阵列 RAID組,所述RAID组包括至少两个成员盘,每个所述成员盘均包含至少ー个热备空间,各所述热备空间分别与下一个成员盘中与所述热备空间对应的成员空间互为镜像;所述存储控制器用于当ー个成员盘损坏吋,判断所述成员盘中各成员空间是否存在镜像的热备空间;若ー个成员空间存在镜像的热备空间,则利用所述成员空间的镜像的热备空间替代所述成员空间,对所述成员空间中的数据进行读写操作;若一个成员空间不存在镜像的热备空间,则将所述成员空间中的数据重构到与所述成员空间对应的一个热备空间上。本发明的技术效果是当RAID组中的一个成员盘损坏吋,先判断该成员盘中各成员空间是否存在镜像的热备空间,对于存在镜像的热备空间的成员空间来说,则通过读写该热备空间来替代对成员空间的读写操作,对于不存在镜像的热备空间的成员空间来说, 则将该成员空间中的数据重构到与成员空间的地址相同的ー个热备空间上。本实施例的重构过程无需重构损坏的成员盘中的所有数据,减小了重构数据量;重构时,查找损坏成员盘各成员空间对应在其他盘的热备空间,将各成员空间的内容重构到与其对应的一个热备空间中,由于这些热备空间分布在各个成员盘上,因此重构的写压カ分散到各个成员盘上,从而克服了现有技术中存在的写瓶颈,大大减少了重构时间。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明数据重构方法实施例一的流程图;图2为本发明数据重构方法实施例一中的热备空间分布示意图;图3为本发明数据重构方法实施例ニ的流程图;图4为本发明数据重构方法实施例ニ中的热备空间分布示意图;图5为本发明存储设备实施例的结构图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。现有技术中,为了进一步提高RAID组的可靠性,通常会增设ー个或者多个热备盘,当某个盘出现故障时,将故障盘的数据恢复到热备盘中,实现数据的安全。本发明实施例不再设置独立的热备盘,而是以盘内热备空间的形式,将热备盘的功能整合到RAID组的每个硬盘中,本发明实施例占用的总存储资源与现有技术相同,但由于对已经有热备的数据不用做恢复,减少了数据恢复量;对没有热备的数据虽然要做恢复,但恢复数据分别写入各个硬盘的热备空间中,而不是集中写到ー个热备盘中,因此写入速度更快。需要特别说明的是,本领域普通技术人员应该明白,本发明实施例中的成员盘可以是可以组成RAID的可擦写存储介质,例如软盘、硬盘、可擦写光盘、固态硬盘等。图1为本发明数据重构方法实施例一的流程图,如图1所示,本实施例提供了ー种数据重构方法,可以具体包括如下步骤步骤101,当一个成员盘损坏吋,判断所述成员盘中各成员空间是否存在镜像的热备空间,其中,RAID组中的每个成员盘上均包含至少ー个热备空间,各所述热备空间与下一个成员盘中与所述热备空间对应的成员空间互为镜像。为了解决现有技术中热备盘替换损坏的成员盘时需要重构的数据量大等的缺陷, 本实施例将热备盘的热备功能分散到各个成员盘,RAID组中的每个成员盘均包含至少ー个热备空间,每个热备空间分别与相邻成员盘中与该热备空间的地址相同的成员空间互为镜像。即本实施例中的每个成员盘可以均包含一个热备空间,或者均包含多个热备空间,每个成员盘中的热备空间的大小是相等的。每个成员盘中的热备空间在该成员盘的下ー个成员盘中存在与之相对应的成员空间,该热备空间与下一个成员盘中与该热备空间相对应的成员空间互为镜像。本实施例中所指的下ー个成员盘表示逻辑意义上的下ー个成员盘,并不一定是物理意义上的下ー个成员盘位置关系,只要保证每ー个成员盘都拥有下一个成员盘,而且不同成员盘的下ー个成员盘不同即可。例如将η个成员盘按照任意的规律分别编号为1、2、3、……η共计η个成员盘,2号成员盘是1号成员盘的下ー个成员盘,2号成员盘是1号成员盘的下ー个成员盘,3号成员盘是2号成员盘的下ー个成员盘……,1号成员盘是η号成员盘的下一个成员盘;本实施例中成员空间与热备空间之间的对应关系可以根据实际情况预先设定,可以各种方式来表示互为镜像的成员空间与热备空间的对应关系,只需满足ー个热备空间唯一对应到一个成员空间,不同热备空间对应的成员空间各不相同即可。例如,可以将对应关系具体设定为一个热备空间和下一个成员盘中与该热备空间的地址相同的成员空间相对应,也可以设定为ー个热备空间和下一个成员盘中与地址等于该热备空间的地址加1的成员空间相对应,等等。此处的镜像关系具体理解为两个互为镜像的空间中存储的数据完全相同,在数据读写过程中二者互相备份,当其中一个空间出现问题损坏吋,另ー个空间可以直接替代损坏的空间,替代是指将原本读写损坏空间的操作,改为读取损坏空间的镜像空间。此处的与热备空间对应的成员空间可以具体为下ー个成员盘中与热备空间的地址相同的成员空间。本实施例中RAID组中的每个成员盘的容量相等,每个成员盘被划分为大小均等的多个空间,每个空间在成员盘中具有与其他空间相区別的地址,该地址仅用于标识该空间在其所处的成员盘中的位置。假设ー个成员盘的容量大小为T,如果该成员盘划分为η个大小相等的空间,则该成员盘中第一个空间的地址可以表示为0 Τ/η,第二个空间的地址可以表示为(Τ+1)/η 2Τ/η,以此类推。因此,在本实施例中,由于ー个RAID 组中各成员盘的空间划分方式相同,则每个成员盘中均存在与其他成员盘中地址相等的空间。对于每个热备空间来说,与相邻成员盘中地址与其相同的成员空间互为镜像,例如,当热备空间位于成员盘中第一个位置吋,该热备空间的地址可以表示为0 T/n,则该成员盘的相邻成员盘中地址为0 Τ/η的成员空间与该热备空间互为镜像,即相邻成员盘中第一个成员空间与该热备空间互为镜像,该热备空间为该成员空间的镜像的热备空间。本实施例中所指的相邻成员盘是逻辑上的相邻关系,并不一定是物理上的相邻关系。图2为本发明数据重构方法实施例一中的热备空间分布示意图,如图2所示,RAID 组中包含6个成员盘,每个成员盘中单独分配一个空间用作热备空间;将第一个成员盘中的第一个空间作为该成员盘中的热备空间,即标号为Al的空间为该成员盘中的热备空间; 第二个成员盘中的第二个空间作为该成员盘中的热备空间,即标号为B2的空间为该成员盘中的热备空间;第三个成员盘中的第三个空间作为该成员盘中的热备空间,即标号为C3 的空间为该成员盘中的热备空间;第四个成员盘中的第四个空间作为该成员盘中的热备空间,即标号为D4的空间为该成员盘中的热备空间;第五个成员盘中的第五个空间作为该成员盘中的热备空间,即标号为E5的空间为该成员盘中的热备空间;第六个成员盘中的第六个空间作为该成员盘中的热备空间,即标号为F6的空间为该成员盘中的热备空间。
其中,每个热备空间在相邻成员盘中均设置有与其镜像的成员空间,此处的相邻成员盘可以为热备空间所在成员盘的下ー个成员盘。以上述图2为例,第一个成员盘中标号为Al的热备空间与第二个成员盘中标号为Bl的成员空间地址相同,则可以将二者设置为互为镜像,第二个成员盘中标号为B2的热备空间与第三个成员盘中标号为C2的成员空间互为镜像,第三个成员盘中标号为C3的热备空间与第四个成员盘中标号为D3的成员空间互为镜像,第四个成员盘中标号为D4的热备空间与第五个成员盘中标号为E4的成员空间互为镜像,第五个成员盘中标号为E5的热备空间与第六成员盘中标号为F5的成员空间互为镜像,第六个成员盘中标号为F6的热备空间与第一成员盘中标号为A6的成员空间互为镜像。本步骤为当RAID中的一个成员盘损坏吋,依次判断该成员盘中各成员空间是否存在镜像的热备空间。在ー个成员盘中,包括多个成员空间和至少ー个热备空间,本实施例对多个成员空间依次进行判断,判断其中哪个或哪几个成员空间存在镜像的热备空间。当 ー个RAID中的每个成员盘中均包含两个大小相等的热备空间时,ー个成员盘中可能有两个成员空间存在镜像的热备空间。以上述图2为例,当RAID组中第三个成员盘损坏吋,判断其中的成员空间Cl、C2、C4、C5、C6是否存在镜像的热备空间。步骤102,若ー个成员空间存在镜像的热备空间,则利用所述成员空间的镜像的热备空间替代所述成员空间,对该成员空间中的数据进行读写操作。在本实施例中,互为镜像的两个空间中的数据是完全一致的,即成员空间的镜像的热备空间中保存有该成员空间的数据。经过上述步骤的判断,若其中某个成员空间存在镜像的热备空间时,由于该热备空间中保存有该成员空间的数据,则可以利用该镜像的热备空间直接替代该成员空间,将所述成员空间替换为成员空间的镜像的热备空间,使通过读写该热备空间来替代对成员空间的读写操作,从而无需对该成员空间的数据再进行重构备份。例如,第三个成员盘中的成员空间C2与第二个成员盘中的热备空间B2互为镜像,则当第三个成员盘损坏吋,无需对成员空间C2中的数据进行重构备份,而直接使用热备空间 B2替代成员空间C2进行数据读取即可。步骤103,若一个成员空间不存在镜像的热备空间,则将所述成员空间中的数据重构到与所述成员空间对应的ー个热备空间上。经过上述步骤的判断,若某个成员空间不存在镜像的热备空间时,则将该成员空间中的数据重构到与该成员空间对应的ー个热备空间上。假设本实施例中的成员空间与热备空间的对应关系具体为地址相同,则本步骤可以具体为将该成员空间中的数据重构到与该成员空间地址相同的ー个热备空间上。由于热备空间有序分散在各成员盘中,且在不同成员盘中热备空间的地址均不相同,当RAID组中每个成员盘只包含一个热备空间时,成员盘中的每个成员空间在其他成员盘上均能找到与其地址相同的ー个热备空间;当RAID组中每个成员盘均包含多个热备空间时,成员盘中的每个成员空间在其他成员盘上均能找到与其地址相同的多个热备空间。在本实施例中,在对ー个成员空间的数据进行重构备份吋, 只选择ー个与其地址相同的热备空间进行重构。以上述图2为例,当第三个成员盘损坏吋, 其中成员空间Cl不存在镜像的热备空间,在其他成员盘中选择与其地址相同的热备空间, 则获取到第一个成员盘中的热备空间Al的地址与成员空间Cl的地址相同,从而将成员空间Cl中的数据重构到热备空间Al上。如果某个成员空间中的数据因成员盘损坏而丢失,则在重构之前可以通过现有的RAID恢复技术将该数据恢复出来。在RAID技术中,由于每个地址上均保存有用户数据和校验数据,而用户数据与校验数据的异或的结果为0,则可以由此反推恢复出用户数据。由此,损坏的成员盘中不同成员空间中的数据将重构到不同成员盘中的热备空间上,从而避免了对ー个盘造成的重构压力。本实施例提供了ー种数据重构方法,当RAID组中的一个成员盘损坏吋,先判断该成员盘中各成员空间是否存在镜像的热备空间,对于存在镜像的热备空间的成员空间来说,则通过读写该热备空间来替代对成员空间的读写;对于不存在镜像的热备空间的成员空间来说,则将该成员空间中的数据重构到与成员空间的地址相同的ー个热备空间上。由于存在热备空间的成员空间可以不用重构,因此本实施例的重构过程无需重构损坏的成员盘中的所有数据,减小了重构数据量;重构时,查找损坏成员盘各成员空间对应在其他盘的热备空间,将各成员空间的内容重构到与其对应的ー个热备空间中,由于这些热备空间分布在各个成员盘上,因此重构的写压カ分散到各个成员盘上,从而克服了现有技术中存在的写瓶颈,大大减少了重构时间。图3为本发明数据重构方法实施例ニ的流程图,如图3所示,本实施例提供了ー种数据重构方法,可以具体包括如下步骤步骤301,在RAID组中的η个成员盘中的每个成员盘上分別设置m个所述热备空间,其中,mXn个所述热备空间构成m组热备空间组,每组热备空间组包含η个热备空间, 每组热备空间中的η个所述热备空间的地址各不相同。本步骤为在RAID组中的η个成员盘中的每个成员盘上分別设置m个热备空间,即每个成员盘均包含m个大小相等的热备空间,其中,η为RAID组中成员盘的数量,m为每个成员盘上预设的热备空间的数量,且m和η均为正整数。在本实施例中,RAID组中的mXn 个热备空间构成了 m组热备空间组,每组热备空间组分别包含η个热备空间,每组热备空间中的η个热备空间的地址各不相同。本实施例将mXn个热备空间分别分散到η个不同的成员盘中,每个成员盘中包含m个热备空间,其中,热备空间1,2,···!!构成ー组热备空间组,这η个热备空间分别设置在η个成员盘上,热备空间(η+1),(η+2),…2η构成另ー组热备空间組,这η个热备空间分别设置在η个成员盘上,以此类推,成员盘1包含热备空间1, (η+1),…((m-1) Χη+1),成员盘2包含热备空间2,(η+2),…((m_l) Χη+2),成员盘η包含热备空间n,2n,-mXn.每个热备空间在成员盘中对应ー个地址,该地址为与该成员盘中其他空间相区別的地址,该地址仅用于标识该空间在其所处的成员盘中的位置,且该地址与该热备空间所属的热备空间组中其他热备空间在其所属成员盘中的地址不同。假设ー个成员盘的容量大小为T,如果该成员盘划分为η个大小相等的空间,则该成员盘中第一个空间的地址可以表示为0 Τ/η,第二个空间的地址可以表示为(Τ/η+1) 2Τ/η,以此类推。本实施例在每个成员盘中设置热备空间吋,需要将各热备空间设置为地址各不相同的位置上。例如,将第一个成员盘中地址为0 Τ/η的空间设置为热备空间,将第 ニ个成员盘中的地址为(Τ/η+1) 2Τ/η的空间设置为热备空间,以此类推,将第η个成员盘中地址为((n-l)T/n+l) T的设置为热备空间,从而达到了将热备空间按序分散到各成员盘的目的,且各热备空间的地址各不相同。如果需要在η个成员盘中设置2η个热备空间,每个成员盘中设置两个热备空间, 类似的,每个热备空间组中η个热备空间的地址各不相同。如图4所示为本发明数据重构方法实施例ニ中的热备空间分布示意图,图中的热备空间为空间Al、B2、C3、D4、E5、F6,以及A5、B6、Cl、D2、E3、F4,构成两个热备空间组,一个热备空间组中的热备空间Al、B2、C3、 D4、E5、F6的地址各不相同,另ー个热备空间组中的热备空间A5、B6、Cl、D2、E3、F4的地址各不相同。步骤302,将第i个成员盘中的热备空间设置为与第Hl个成员盘中与所述热备空间对应的成员空间互为镜像,将第η个成员盘中的热备空间设置为与第1个成员盘中与所述热备空间对应的成员空间互为镜像。在通过上述步骤在各成员盘中设置热备空间后,对各热备空间进行镜像设置,具体将第i个成员盘中的热备空间设置为与第i+Ι个成员盘中与该热备空间对应的成员空间互为镜像,其中,i = 1,2,3…n-1,将第η个成员盘中的热备空间设置为与第1个成员盘中与所述热备空间对应的成员空间互为镜像。其中,互为镜像的热备空间与成员空间之间的对应关系可以根据不同的情况来设定,如设定为地址相同的热备空间与成员空间互为镜像,或者,设定为与热备空间互为镜像的成员空间的地址为热备空间的地址加1等,此处具体以地址相同为例进行说明。以上述图4为例,对于第一组热备空间组来说,将第一个成员盘中的热备空间Al设置为与第二个成员盘中与该热备空间Al的地址相同的成员空间互为镜像,第二个成员盘中与热备空间Al的地址相同的成员空间为Bi,则将热备空间Al设置为成员空间Bl的镜像的热备空间。将第二个成员盘中的热备空间Β2设置为与第三个成员盘中与该热备空间Β2的地址相同的成员空间互为镜像,第三个成员盘中与热备空间Β2的地址相同的成员空间为C2,则将热备空间Β2设置为成员空间C2的镜像的热备空间。以此类推,将热备空间C3设置为成员空间D3的镜像的热备空间,将热备空间D4设置为成员空间Ε4的镜像的热备空间,将热备空间Ε5设置为成员空间F5的镜像的热备空间,将热备空间F6设置为成员空间Α6的镜像的热备空间,从而完成了第一组热备空间组A1、B2、C3、D4、 E5、F6的设置。继续參见图4,对于第二组热备空间组来说,将第一个成员盘中的热备空间A5设置为与第二个成员盘中与该热备空间A5的地址相同的成员空间互为镜像,第二个成员盘中与热备空间A5的地址相同的成员空间为B5,则将热备空间A5设置为成员空间B5的镜像的热备空间。将第二个成员盘中的热备空间B6设置为与第三个成员盘中与该热备空间B6 的地址相同的成员空间互为镜像,第三个成员盘中与热备空间B6的地址相同的成员空间为C6,则将热备空间B6设置为成员空间C6的镜像的热备空间。以此类推,将热备空间Cl 设置为成员空间Dl的镜像的热备空间,将热备空间D2设置为成员空间E2的镜像的热备空间,将热备空间E3设置为成员空间F3的镜像的热备空间,将热备空间F4设置为成员空间 A4的镜像的热备空间,从而完成了第ー组热备空间组ム5、86、(1、02』3、ド4的设置。步骤303,当对RAID组执行写操作时,将待写数据写入到一个成员空间以及所述成员空间的镜像的热备空间中。在完成热备空间的设置之后,本实施例可以利用热备空间对RAID组中各成员盘中的数据进行正常的读写操作。当需要对RAID组执行写操作时,将待写数据写入到ー个成员空间以及该成员空间的镜像的热备空间中,即每次在一个成员空间中写入数据,则同时将写入的数据也写入到该成员空间的镜像的热备空间中,使得该热备空间上保存的数据可以与该成员空间同歩,以备后续成员盘损坏时使用。
步骤304,当对RAID组中的数据执行读操作吋,从待读数据所在的成员空间中读取待读数据。当需要对RAID组中的数据执行读操作时,从待读数据所在的成员空间中读取待读数据。具体地,当某个成员盘中某个成员空间的读压カ过大或者成员空间不稳定或者其他情况时,或者完全根据使用者的设置,也可以考虑从该成员盘的镜像的热备空间中读取数据。步骤305,当一个成员盘损坏吋,依次判断所述成员盘中各成员空间是否存在镜像的热备空间,如果是,则执行步骤306,否则执行步骤307。当一个成员盘损坏吋,先判断该成员盘中ー个成员空间是否存在镜像的热备空间,如果是,则执行步骤306,并对下一个成员空间进行判断,直到完成该成员盘中所有成员空间的判断,否则执行步骤307,并对下一个成员空间进行判断,直到完成该成员盘中所有成员空间的判断。步骤306,利用成员空间的镜像的热备空间替代所述成员空间,对所述成员空间中的数据进行读写操作。当ー个成员空间存在镜像的热备空间时,由于该热备空间中保存有该成员空间的数据,则可以利用该镜像的热备空间直接替代该成员空间,通过读写该热备空间来替代对成员空间的读写操作,从而无需对该成员空间的数据再进行重构备份。例如,仍以上述图2 为例,当第三个成员盘损坏吋,第三个成员盘中的成员空间C2与第二个成员盘中的热备空间B2互为镜像,则当第三个成员盘损坏吋,无需对成员空间C2中的数据进行重构备份,而直接使用热备空间B2代替成员空间C2进行数据读取即可。步骤307,将成员空间中的数据重构到与成员空间对应的ー个热备空间上。若某个成员空间不存在镜像的热备空间时,则将该成员空间中的数据重构到与该成员空间对应的ー个热备空间上。假设本实施例中的成员空间与热备空间的对应关系具体为地址相同,则本步骤可以具体为将该成员空间中的数据重构到与该成员空间地址相同的 ー个热备空间上。由于热备空间有序分散在各成员盘中,且在不同成员盘中热备空间的地址均不相同,当RAID组中每个成员盘只包含一个热备空间时,成员盘中的每个成员空间在其他成员盘上均能找到与其地址相同的ー个热备空间;当RAID组中每个成员盘包含多个热备空间时,成员盘中的每个成员空间在其他成员盘上均能找到与其地址相同的多个热备空间,在本实施例中,在对ー个成员空间的数据进行重构备份吋,只选择ー个与其地址相同的热备空间进行重构,在其他实施例中,也可以选择多个与其地址相同的热备空间进行重构。以上述图2为例,当第三个成员盘损坏吋,其中成员空间Cl不存在镜像的热备空间,在其他成员盘中选择与其地址相同的热备空间,则获取到第一个成员盘中的热备空间Al的地址与成员空间Cl的地址相同,从而将成员空间Cl中的数据重构到热备空间Al上。由此, 损坏的成员盘中不同成员空间中的数据将重构到不同成员盘中的热备空间上,从而避免了对ー个盘造成的重构压力。本实施例提供了ー种数据重构方法,当RAID组中的一个成员盘损坏吋,先判断该成员盘中各成员空间是否存在镜像的热备空间,对于存在镜像的热备空间的成员空间来说,则通过读写该热备空间来替代对成员空间的读写;对于不存在镜像的热备空间的成员空间来说,则将该成员空间中的数据重构到与成员空间的地址相同的ー个热备空间上。由于存在热备空间的成员空间可以不用重构,因此本实施例将现有技术中的热备盘方式修改为将热备空间均勻分布于各成员盘中,并使得成员盘中的部分数据与对应的热备空间构成镜像,当成员盘损坏时,本实施例的重构过程无需重构损坏的成员盘中的所有数据,减小了重构的数据量;重构时,查找损坏成员盘各成员空间对应在其他盘的热备空间,将各成员空间的内容重构到与其对应的ー个热备空间中,由于这些热备空间分布在各个成员盘上,因此重构的写压カ分散到各个成员盘上,从而克服了现有技术中存在的数据写瓶颈,大大减少了重构时间,加快了重构过程中数据的恢复速度。由于镜像的存在,热备空间可以为成员空间承担一定的读压力。本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于ー计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图5为本发明存储设备实施例的结构图,如图5所示,本实施例提供了ー种存储设备,可以具体执行上述方法实施例中的各个步骤,此处不再赘述。本实施例提供的存储设备可以包括存储控制器1和RAID组2,所述RAID组2包括至少两个成员盘21,每个成员盘21 均包含至少ー个热备空间,各所述热备空间分别与下一个成员盘中与所述热备空间对应的成员空间互为镜像。存储控制器1用于当ー个成员盘损坏吋,判断所述成员盘中各成员空间是否存在镜像的热备空间;若ー个成员空间存在镜像的热备空间,则利用所述成员空间的镜像的热备空间替代所述成员空间,对所述成员空间中的数据进行读写操作;若ー个成员空间不存在镜像的热备空间,则将所述成员空间中的数据重构到与所述成员空间对应的 ー个热备空间上。进ー步地,本实施例中的存储控制器1还用于在RAID组中的η个成员盘21中的每个成员盘21上分別设置m个热备空间,将第i个成员盘21中的热备空间设置为与第i+1 个成员盘21中与所述热备空间对应的成员空间互为镜像,将第η个成员盘21中的热备空间设置为与第1个成员盘21中与所述热备空间对应的成员空间互为镜像,其中,mXn个所述热备空间构成m组热备空间组,每组热备空间组包含η个热备空间。所述η为所述RAID 组中成员盘21的数量,所述m为每个成员盘21上预设的热备空间的数量,且m和η均为正整数,i = 1,2,3…n-1。进ー步地,本实施例中的成员盘21用于当接收到写操作时,将待写数据写入到一个成员空间以及所述成员空间的镜像的热备空间中,当接收到读操作时,从待读数据所在的成员空间中读取所述待读数据。本实施例提供了一种存储设备,当RAID组中的一个成员盘损坏吋,先判断该成员盘中各成员空间是否存在镜像的热备空间,对于存在镜像的热备空间的成员空间来说,则通过读写该热备空间来替代对成员空间的读写,对于不存在镜像的热备空间的成员空间来说,则将该成员空间中的数据重构到与成员空间的地址相同的ー个热备空间上。由于存在热备空间的成员空间可以不用重构,因此本实施例将现有技术中的热备盘方式修改为将热备空间均勻分布于各成员盘中,并使得成员盘中的部分数据与对应的热备空间构成镜像, 当成员盘损坏时,本实施例的重构过程无需重构损坏的成员盘中的所有数据,减小了重构的数据量;重构时,查找损坏成员盘各成员空间对应在其他盘的热备空间,将各成员空间的内容重构到与其对应的ー个热备空间中,由于这些热备空间分布在各个成员盘上,因此重构的写压カ分散到各个成员盘上,从而克服了现有技术中存在的数据写瓶颈,大大减少了重构时间,加快了重构过程中数据的恢复速度。由于镜像的存在,热备空间可以为成员空间承担一定的读压力。 最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制; 尽管參照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.ー种数据重构方法,其特征在干,包括当一个成员盘损坏吋,判断所述成员盘中各成员空间是否存在镜像的热备空间,其中, 独立磁盘冗余阵列RAID组中的每个成员盘均包含至少ー个热备空间,各所述热备空间分别与下一个成员盘中与所述热备空间对应的成员空间互为镜像;若ー个成员空间存在镜像的热备空间,则利用所述成员空间的镜像的热备空间替代所述成员空间,对所述成员空间中的数据进行读写操作;若一个成员空间不存在镜像的热备空间,则将所述成员空间中的数据重构到与所述成员空间对应的ー个热备空间上。
2.根据权利要求1所述的方法,其特征在于,还包括在RAID组中的η个成员盘中的每个成员盘上分別设置m个热备空间,其中,mXn个所述热备空间构成m组热备空间组,每组热备空间组包含η个热备空间;将第i个成员盘中的热备空间设置为与第i+Ι个成员盘中与所述热备空间对应的成员空间互为镜像,将第η个成员盘中的热备空间设置为与第1个成员盘中与所述热备空间对应的成员空间互为镜像;其中,所述η为所述RAID组中成员盘的数量,所述m为每个成员盘上预设的热备空间的数量,且m和η均为正整数,i = 1,2,3···η-1。
3.根据权利要求1或2所述的方法,其特征在干,所述各所述热备空间分别与下ー个成员盘中与所述热备空间对应的成员空间互为镜像具体为各所述热备空间分别于下ー个成员盘中与所述热备空间的地址相同的成员空间互为镜像。
4.根据权利要求1或2所述的方法,其特征在于,还包括当对所述RAID组执行写操作时,将待写数据写入到一个成员空间以及所述成员空间的镜像的热备空间中。
5.根据权利要求1或2所述的方法,其特征在于,还包括当对所述RAID组中的数据执行读操作时,从待读数据所在的成员空间中读取所述待读数据。
6.一种存储设备,其特征在干,包括存储控制器和独立磁盘冗余阵列RAID組,所述 RAID组包括至少两个成员盘,每个所述成员盘均包含至少ー个热备空间,各所述热备空间分別与下一个成员盘中与所述热备空间对应的成员空间互为镜像;所述存储控制器用于当ー个成员盘损坏吋,判断所述成员盘中各成员空间是否存在镜像的热备空间;若ー个成员空间存在镜像的热备空间,则利用所述成员空间的镜像的热备空间替代所述成员空间,对所述成员空间中的数据进行读写操作;若一个成员空间不存在镜像的热备空间,则将所述成员空间中的数据重构到与所述成员空间对应的ー个热备空间上。
7.根据权利要求6所述的设备,其特征在干,所述存储控制器还用于在RAID组中的η 个成员盘中的每个成员盘上分別设置m个热备空间,将第i个成员盘中的热备空间设置为与第i+Ι个成员盘中与所述热备空间对应的成员空间互为镜像,将第η个成员盘中的热备空间设置为与第1个成员盘中与所述热备空间对应的成员空间互为镜像,其中,mXn个所述热备空间构成m组热备空间组,每组热备空间组包含η个热备空间,所述η为所述RAID 组中成员盘的数量,所述m为每个成员盘上预设的热备空间的数量,且m和η均为正整数,i = l,2, 3...n-l
8.根据权利要求6或7所述的设备,其特征在干,所述成员盘用于当接收到写操作吋, 将待写数据写入到一个成员空间以及所述成员空间的镜像的热备空间中,当接收到读操作时,从待读数据所在的成员空间中读取所述待读数据。
全文摘要
本发明提供一种数据重构方法和存储设备,其中方法包括当一个成员盘损坏时,判断所述成员盘中各成员空间是否存在镜像的热备空间,其中,RAID组中的每个成员盘上均包含至少一个热备空间,各所述热备空间分别与下一个成员盘中与所述热备空间对应的成员空间互为镜像;若一个成员空间存在镜像的热备空间,则利用所述成员空间的镜像的热备空间替代所述成员空间,对所述成员空间中的数据进行读写操作;若一个成员空间不存在镜像的热备空间,则将所述成员空间中的数据重构到与所述成员空间对应的一个热备空间上。存储设备包括存储控制器和RAID组。本实施例减小了重构数据量,克服了现有技术中存在的写瓶颈,大大减少了重构时间。
文档编号G06F3/06GK102591746SQ201110449548
公开日2012年7月18日 申请日期2011年12月29日 优先权日2011年12月29日
发明者蒲贵友, 陈祖飞 申请人:成都市华为赛门铁克科技有限公司