一种独立磁盘冗余阵列数据重建方法和装置制造方法及图纸

技术编号:6628394 阅读:216 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种独立磁盘冗余阵列RAID数据重建方法,该方法包括:从正常磁盘中读取重建所需数据,如果重建所需数据中的普通数据存在无法读出时,以预设固定值分别替代无法读出的数据和重建磁盘对应位置的数据,计算条带新的校验和;如果重建所需数据中的校验和无法读出时,用预设固定值替代重建磁盘对应位置的数据,计算新的校验和;重建磁盘未能恢复的数据,记录重建磁盘对应位置地址无法读出数据。基于上述同样的发明专利技术构思,本发明专利技术还提出一种装置,在能够及时数据重建的情况下,如果该条带其它磁盘数据再出现无法读出时,最大可能地提供了冗余。

【技术实现步骤摘要】

本专利技术涉及数据存储
,尤其涉及一种独立磁盘冗余阵列数据重建方法和直O
技术介绍
随着科学技术的飞速发展和计算机技术的普遍应用,人们对存储设备的性能要求越来越高。作为一项成熟的技术,独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk,)技术已经广泛应用于数据存储的各种场合。RAID是一种通过磁盘阵列与数据条块化相结合,以提高数据可用率的结构,通过数据镜像实现数据冗余,可直接从镜像拷贝中读取数据,并将多个数据磁盘通过RAID控制器结合成虚拟的单台大容量硬盘使用,通过同时使用多个磁盘提高数据的传输速率,通过在多个磁盘上同时存储和读取数据提高存储系统的数据吞吐量。同时,RAID还可以通过数据校验提供容错功能,以提高系统的稳定冗余性。此外,根据应用场合的不同,RAID可以划分为多种规范,包括RAID0、RAID1、 RAID2、RAID3、RAID4、RAID5、RAID6和RAID7等,每种规范分别具有各自的强项和弱项。RAID中为避免因磁盘故障而出现不可用状态,一般会添加一块或多块额外的磁盘作为备用盘,当某个数据盘故障后,可以启动RAID数据重建过程,此时备用盘作为重建磁盘加入到RAID中,根据正常磁盘中的数据计算故障数据盘中的数据并写入重建磁盘中,在数据重建之后,重建磁盘顶替故障磁盘的工作,达到与原阵列一样的状态。RAID中的磁盘被划分为多个分块,每个磁盘上对应位置的分块的组合称为条带, 数据重建包括对每个条带的重建。其中,RAID5也被叫做带分布式奇偶位的条带。每个条带上都有相当于一个“块”那么大的地方被用来存放奇偶位。RAID5把奇偶位信息也分布在所有的磁盘上,而并非一个磁盘上,大大减轻了奇偶校验盘的负担。通常我们把一个条带上的奇偶位信息称为校验和,该条带上校验和之外的数据称之为普通数据。在现有实现中,当RAID数据重建时,从该RAID中除重建磁盘外的正常磁盘中读重建所需数据,当所述重建所需数据出现读错误时,有两种处理方法一种处理方法是RAID 数据重建停止,等待用户或应用对无法读出数据的地址块进行写操作,以修复该正常磁盘的数据,以便继续重建,另一种处理方法是,记录该条带的地址,并且记录该条带未完成重建,表明该条带数据不一致,继续重建剩余的条带(在RAID数据重建过程中,是逐个条带进行数据重建的)。上述第一个解决方案在重建时由于一个磁盘的数据无法读取,不能及时重建,只能等到数据恢复后才可以再重建;第二个解决方案是记录整条带数据不一致,重建磁盘在此条带上的数据是无效的,如果该条带其它磁盘数据再出现读错误,不能对读错误数据进行恢复,因此不能提供冗余。
技术实现思路
有鉴于此,本专利技术主要目的是提供一种RAID数据重建方法,在能够及时数据重建的情况下,如果该条带其它磁盘数据再出现读错误时,最大可能地提供了冗余。所述RAID 中包括正常磁盘和重建磁盘,所有磁盘被划分成多个分块,每个磁盘上对应位置的分块的组合称为条带,在数据重建时,对于每个条带,该方法包括从正常磁盘中读取重建所需数据,如果成功读出,则用读出的数据计算重建数据, 并将计算结果写入重建磁盘对应位置;如果存在无法读出重建所需数据且是该条带的校验和时,以预设固定值替代重建磁盘对应位置的数据,根据已读出的重建所需数据和用于替代重建磁盘对应位置数据的预设固定值计算该条带新的校验和,并将计算出的新的校验和写入该条带存储原校验和的磁盘的对应位置,记录该条带重建磁盘对应位置的地址及长度;如果存在无法读出重建所需数据且是该条带的普通数据时,当已读出的重建所需数据包含该条带的普通数据与校验和,则以所述预设固定值分别替代无法读出的数据和所述重建磁盘对应位置的数据,根据已读出的普通数据、用于替代无法读出的数据的预设固定值,以及用于替代重建磁盘对应位置的数据的预设固定值,计算该条带新的校验和,并将计算出的新的校验和写入该条带存储原校验和的磁盘的对应位置,记录该条带重建磁盘对应位置的地址及长度;如果存在无法读出重建所需数据且是该条带的普通数据时,当已读出的重建所需数据都是普通数据,则以所述预设固定值替代无法读出的数据,根据已读出的普通数据、用于替代无法读出的数据的预设固定值,计算该条带新的校验和,并将计算出的新的校验和写入重建磁盘的对应位置。其中,如果存在无法读出重建所需数据时,该方法进一步包括建立无法读出数据的记录表;如果存在无法读出重建所需数据且是该条带的校验和时,则将所述记录的该条带重建磁盘对应位置的地址及长度保存在所述记录表中;如果存在无法读出重建所需数据且是该条带的普通数据时,当已读出的重建所需数据包含该条带的普通数据与校验和,则将该条带重建磁盘对应位置的地址及长度存保存在所述记录表中,同时还记录无法读出数据的磁盘对应位置的地址及长度,并保存在所述记录表中;如果存在无法读出重建所需数据且是该条带的普通数据时,当已读出的重建所需数据都是普通数据,则记录无法读出数据的磁盘对应位置的地址及长度,并保存在所述记录表中。所述从正常磁盘中读取重建所需数据,之前该方法进一步包括查询所述记录表, 如果该条带数据所在位置地址有无法读取数据的记录时,不读取有无法读取数据记录的磁盘对应位置数据,用预设固定值替代无法读出的数据来计算该条带新的校验和。所述数据重建完成之后,该方法进一步包括读数据;所述读数据方法为RAID读数据,查询无法读出数据的记录表,如果要读取数据对应位置地址在所述记录表有记录,则返回读数据错误;如果要读取数据对应位置地址在所述记录表无记录,且能直接读出数据,则返回读数据;如果要读取数据对应位置地址在所述记录表中无记录,但不能读出数据,当要读取的数据所在条带的其它磁盘对应位置地址在所述记录表中有记录时,则以预设固定值替代记录表中无法读出的数据,根据用于替代无法读出的数据,以及已读出的数据,通过校验恢复要读取的数据,返回读数据;如果要读取数据对应位置地址在所述记录表中无记录,但不能读出数据,当要读取的数据所在条带的其它磁盘对应位置地址在所述记录表中都无记录时,则根据已读出的数据,通过校验恢复要要读取的数据,返回读数据。所述数据重建完成之后,该方法进一步包括写数据;所述写数据方法为RAID写数据,查询无法读出数据的记录表,如果要写入数据的地址在所述记录表中无记录时,则直接写入数据;如果要写入数据的地址在所述记录表中有记录,且要写入数据的地址所在条带要整条带数据写入时,直接写入整条带数据;如果要写入数据的地址在所述记录表中有记录,且只写入要写数据时,则以预设固定值替代所述要写入数据的地址存储的数据,重新计算该条带数据校验和,并写入该条带存储原校验和磁盘的对应位置,将要写入的数据写入对应地址。所述直接写入整条带数据,之后进一步包括写入成功后,清除所述记录表中要写入数据对应地址数据无法读出记录;所述将要写入的数据写入对应地址,之后进一步包括写入成功后,清除所述记录表中要写入数据对应地址数据无法读出记录。所述计算方法为异或运算。 所述磁盘地址为磁盘LBA地址或物理地址。本专利技术的另一个主要目的是提供一种RAID数据重建装置,在能够及时数据重建的情况下,如果该条带其它磁盘数据再出现读错误时,最大可能地提供了冗余。该装置包括本文档来自技高网
...

【技术保护点】
将计算出的新的校验和写入重建磁盘的对应位置。带重建磁盘对应位置的地址及长度;如果存在无法读出重建所需数据且是该条带的普通数据时,当已读出的重建所需数据都是普通数据,则以所述预设固定值替代无法读出的数据,根据已读出的普通数据、用于替代无法读出的数据的预设固定值,计算该条带新的校验和,并法读出的数据和所述重建磁盘对应位置的数据,根据已读出的普通数据、用于替代无法读出的数据的预设固定值,以及用于替代重建磁盘对应位置的数据的预设固定值,计算该条带新的校验和,并将计算出的新的校验和写入该条带存储原校验和的磁盘的对应位置,记录该条验和,并将计算出的新的校验和写入该条带存储原校验和的磁盘的对应位置,记录该条带重建磁盘对应位置的地址及长度;如果存在无法读出重建所需数据且是该条带的普通数据时,当已读出的重建所需数据包含该条带的普通数据与校验和,则以所述预设固定值分别替代无读出,则用读出的数据计算重建数据,并将计算结果写入重建磁盘对应位置;如果存在无法读出重建所需数据且是该条带的校验和时,以预设固定值替代重建磁盘对应位置的数据,根据已读出的重建所需数据和用于替代重建磁盘对应位置数据的预设固定值计算该条带新的校1.一种独立磁盘冗余阵列RAID数据重建方法,所述RAID中包括正常磁盘和重建磁盘,所有磁盘被划分成多个分块,每个磁盘上对应位置的分块的组合称为条带,其特征在于,在数据重建时,对于每个条带,该方法包括:从正常磁盘中读取重建所需数据,如果成功...

【技术特征摘要】

【专利技术属性】
技术研发人员:胡荣国
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1