CN101526885A - 一种提升独立磁盘冗余阵列性能的方法及其控制器 - Google Patents
一种提升独立磁盘冗余阵列性能的方法及其控制器 Download PDFInfo
- Publication number
- CN101526885A CN101526885A CN200910082621A CN200910082621A CN101526885A CN 101526885 A CN101526885 A CN 101526885A CN 200910082621 A CN200910082621 A CN 200910082621A CN 200910082621 A CN200910082621 A CN 200910082621A CN 101526885 A CN101526885 A CN 101526885A
- Authority
- CN
- China
- Prior art keywords
- data
- write
- band
- check block
- failed disk
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种提升独立磁盘冗余阵列RAID性能的方法,该方法包括:在RAID降级的情况下,使用同条带的校验块来存储故障磁盘数据块中数据,并将校验块中的数据标记为故障磁盘数据,之后在需要访问故障磁盘数据块中的数据时直接访问同条带的校验块。本发明还公开了RAID控制器。本发明的技术方案大大提升了RAID降级后的性能。
Description
技术领域
本发明涉及存储系统技术领域,尤指提升独立磁盘冗余阵列性能的方法和独立磁盘冗余阵列控制器。
背景技术
独立磁盘冗余阵列(RAID,Redundant Array of Independent Disks)技术是目前采用的最广泛的硬盘提升存储性能和数据安全的技术。简单地讲,RAID技术就是利用多个硬盘的组合连成一个阵列,实现以快速、准确和安全的方式来读写磁盘数据,从而达到提高数据的读写速度和安全性。
RAID的数据组织方式采用的是分区、分块和条带。其中,分区是一个磁盘上的地址连续的存储块,一个磁盘可以划分为多个分区,每个分区的大小可以不等,有时也称为逻辑磁盘;将一个分区分成多个大小相等、地址相邻的块,这些块称为分块,分块是条带的元素,逻辑磁盘以分块为单位将逻辑磁盘的地址映射到成员磁盘的地址;条带是不同分区上的位置相关的分块的集合,是组织不同分区上的分块的单位。
RAID的冗余技术分为镜像冗余和校验冗余。其中,校验冗余是使用校验算法对同一条带上的数据进行校验,把校验值写入磁盘,当条带中的某个数据块损坏时,通过同一条带的其他数据块和校验值,重新算出被损坏的数据,从而达到冗余的效果。
RAID的降级(Degrade)是指:冗余阵列中的一个或多个磁盘实效后的状态,此时阵列仍可以向外界提供正常的读写服务,但是如果再有一个磁盘失效,则整个阵列处于不可用状态。
目前,采用校验冗余技术的RAID有RAID5、RAID3等,其中以RAID5最为常见。RAID5是一种由不少于3块磁盘组成的阵列,它以条带的方式向阵列中的磁盘写数据,以异或(XOR)运算实现的奇偶校验为冗余方式,奇偶校验数据均匀分布在各个磁盘上。
这样,当RAID5降级时,可以根据同条带的其他磁盘上的数据来重建损坏的数据。
图1是现有技术中的RAID5阵列存储数据的过程示意图。如图5所示,该RAID5由4块物理磁盘组成,分别为物理磁盘0、1、2和3,每个条带都有一个检验块,校验块中的校验数据由同条带中的数据块使用异或运算得出。例如,条带1包括数据块D1、D2、D3和校验块P0,其中 其他条带以此类推。假如当D1所在的磁盘故障,则可以通过等式 来得到D1的值,同理,故障磁盘在其他条带的数据也使用这种方式获取。
下面介绍采用奇偶检验冗余的RAID5降级后数据读写过程。
图2是现有技术中RAID5降级后的数据读过程的流程图。如图2所示,包括以下步骤:
步骤201,接收到应用下发的读请求后,根据该RAID算法得到该读请求的目标地址。
步骤202,判断所得到的目标地址是否在故障磁盘上,是则执行步骤203,否则执行步骤204。
步骤203,该目标地址在故障磁盘上,所以该目标地址上的数据已经丢失,需要根据冗余信息计算出该目标地址的数据,即读取该目标地址所在条带上的其他数据块和校验块,并使用异或算法算出该目标地址上的数据。执行步骤205。
步骤204,该目标地址在正常的磁盘上,所以直接读取该目标地址上的数据。执行步骤205。
步骤205,将读取的数据提交上层处理。
图3是现有技术中RAID5降级后的数据写过程的流程图。如图3所示,包括以下步骤:
步骤301,接收到应用下发的写请求后,根据该RAID算法得到该写请求的目标地址。
步骤302,判断所得到的目标地址是否在故障磁盘上,是则执行步骤303,否则执行步骤304。
步骤303,该目标地址在故障磁盘上,则根据要写入的数据以及该目标地址所在条带的其他数据在内存中计算出新的校验和后,更新该条带中的校验块数据,并将该要写入的数据直接丢弃。执行步骤305。
步骤304,该目标地址在正常的磁盘上,则根据要写入的数据以及该目标地址所在条带的其他数据在内存中计算出新的校验和后,更新该条带中的校验块数据,并将要写入的数据直接写入该目标地址。执行步骤305。
步骤305,返回写成功。
在上述流程可以看出,RAID5降级后,在读故障磁盘中的数据时,需要读取整个条带的正常数据块和校验块,通过计算得到故障磁盘的数据。例如一个RAID5有N个磁盘,读取故障磁盘的一块数据时,需要读取同条带上的其他N-1块数据,并对读取的数据进行计算,因此RAID5的读性能严重下降。同样,在向故障磁盘中写数据时,也需要读取同条带的数据块,通过计算得到新的校验和并更新校验块,因此,写性能也下降了。
综上所述,现有的采用校验冗余的RAID在降级后其读写性能严重下降。
发明内容
本发明提供了两种提升独立磁盘冗余阵列RAID性能的方法,该方法能够在RAID降级时,有效提高其性能。
本发明还提供了两种独立磁盘冗余阵列RAID控制器,该控制器能够在RAID降级时,有效提高其性能。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明公开了一种提升独立磁盘冗余阵列RAID性能的方法,该方法应用于采用校验冗余且已降级的RAID,该方法包括:
为RAID创建信息表,该信息表用于记录该RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据;
在收到读请求时,判断该读请求的读地址是否在故障磁盘上;
如果读地址不在故障磁盘上,则直接读取读地址中的数据;
如果读地址在故障磁盘上,则根据所述信息表判断该读地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则直接读取该读地址所在条带中的校验块中的数据;反之,如果是校验数据,则根据该读地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据,计算出该读地址中的数据,将该计算出的数据写入读地址所在条带中的校验块,在所述信息表中将该读地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并将该计算出的数据作为所读取的数据。
本发明还提供了一种提升独立磁盘冗余阵列RAID性能的方法,该方法应用于采用校验冗余且已降级的RAID,该方法包括:
为RAID创建信息表,该信息表用于记录该RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据;
在收到写请求时,判断该写请求的写地址是否在故障磁盘上;
如果写地址不在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则直接在写地址中写入写请求要求写入的数据;反之,如果是校验数据,则在写地址中写入写请求要求写入的数据,并更新校验块中的校验数据;
如果写地址在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据;反之,如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并在所述信息表中将写地址所在条带中的校验块所存储的数据记录为故障磁盘数据。
本发明公开了一种独立磁盘冗余阵列RAID控制器,该RAID控制器应用于采用校验冗余且已降级的RAID,该RAID控制器包括:存储模块、接口模块和核心处理模块,其中,
存储模块,用于保存信息表,该信息表用于记录RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据;
接口模块,用于接收读请求并发送给核心处理模块,并将核心处理模块返回的读数据发送出去;
核心处理模块,用于在收到接口模块发送的读请求时,判断该读请求的读地址是否在故障磁盘上;如果读地址不在故障磁盘上,则直接读取读地址中的数据,并返回给接口模块;如果读地址在故障磁盘上,则根据所述信息表判断该读地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则直接读取该读地址所在条带中的校验块中的数据,并返回给接口模块;反之,如果是校验数据,则根据该读地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据,计算出该读地址中的数据,将该计算出的数据写入读地址所在条带中的校验块,在所述信息表中将该读地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并将该计算出的数据作为所读取的数据返回给接口模块。
本发明还公开了一种独立磁盘冗余阵列RAID控制器,该RAID控制器应用于采用校验冗余且已降级的RAID,该RAID控制器包括:存储模块、接口模块和核心处理模块,其中,
存储模块,用于保存信息表,该信息表用于记录RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据;
接口模块,用于接收写请求并发送给核心处理模块,并将核心处理模块返回的写成功消息发送出去;
核心处理模块,用于在收到接口模块发送的写请求时,判断该写请求的写地址是否在故障磁盘上;如果写地址不在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据,如果是故障磁盘数据,则直接在写地址中写入写请求要求写入的数据,并向接口模块返回写成功消息,反之,如果是校验数据,则在写地址中写入写请求要求写入的数据的同时更新校验块中的校验数据,并向接口模块返回写成功消息;如果写地址在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据,如果是故障磁盘数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并向接口模块返回写成功消息,反之,如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并在所述信息表中将写地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并向接口模块返回写成功消息。
由上述技术方案可见,本发明这种在RAID降级的情况下,使用同条带的校验块来存储故障磁盘数据,并对校验块中的数据类型进行相应的标记的技术方案,使得RAID降级模式下的读写都不需要计算校验和,而是直接读写校验块,从而提高了RAID降级后的读写特性。
附图说明
图1是现有技术中的RAID5阵列存储数据的过程示意图;
图2是现有技术中RAID5降级后的数据读过程的流程图;
图3是现有技术中RAID5降级后的数据写过程的流程图;
图4是本发明实施例中RAID降级后的数据读过程的流程图;
图5是本发明实施例中RAID降级后的数据写过程的流程图;
图6是本发明实施例一种独立磁盘冗余阵列RAID控制器的组成结构框图。
具体实施方式
本发明的核心思想是:为降级的RAID维护一张信息表,该信息表记录RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据,在RAID降级后,第一次访问故障磁盘的数据时,得到该数据并写入同条带的校验块,同时在信息表中标记该条带中的校验块存放的是故障磁盘数据,而非校验数据,此后,再访问故障磁盘时,直接访问校验块即可,从而避免每次访问都计算校验和的过程,大大提高了降级后的RAID的读写特性。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
在本发明的实施例中,首先在系统维护的RAID信息表中为采用校验冗余技术的RAID添加一张信息表,该信息表记录对应RAID的每个条带中的校验块所存储的数据类型,该数据类型为“校验数据”或“故障磁盘数据”。具体可以以位图形式表示所述信息表,其中,在校验块中以“0”表示“校验数据”,以“1”表示“故障磁盘数据”。则RAID正常状态(没有故障磁盘)下的对应的信息表如表1所示:
条带号 | 校验块数据类型 |
0 | 0 |
1 | 0 |
2 | 0 |
3 | 0 |
4 | 0 |
...... | ...... |
表1
当RAID降级后,读写过程分别如图4和5所示。
图4是本发明实施例中RAID降级后的数据读过程的流程图。如图4所示,包括以下步骤:
步骤401,接收到应用下发的读请求后,根据RAID算法得到该读请求的目标读地址。
步骤402,判断所得到的读地址是否在故障磁盘上,是则执行步骤404,否则执行步骤403。
步骤403,读地址不在故障磁盘上,而是在正常工作的磁盘上,则直接读取读地址中的数据。执行步骤407。
步骤404,读地址在故障磁盘上,进一步根据该RAID的信息表判断该读地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是校验数据,则执行步骤405;如果是故障磁盘数据,则执行步骤406。
步骤405,如果是校验数据,则根据该读地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据,计算出该读地址中的数据,将该计算出的数据写入读地址所在条带中的校验块,在所述信息表中将该读地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并将该计算出的数据作为所读取的数据。执行步骤407。
本步骤中,与目标地址(即读地址)同一条带的校验块中所存放的是“校验数据”,表明RAID降级后该目标地址第一次被访问,因此需要根据同条带的其他数据恢复出故障磁盘上的读地址中的数据,将其存放于校验块中,并在信息表中指定该条带的校验块中数据类型为“故障磁盘数据”。
步骤406,如果是故障磁盘数据,则直接读取该读地址所在条带中的校验块中的数据。执行步骤407。
本步骤中,与目标地址(即读地址)同一条带的校验块中所存放的是“故障磁盘数据”,表明读地址的数据已存放于同条带的校验块中,因此直接读校验块即可。
步骤407,将读取的数据提交上层处理。
图5是本发明实施例中RAID降级后的数据写过程的流程图。如图5所示,包括以下步骤:
步骤501,接收到应用下发的写请求后,根据RAID算法得到该写请求的目标写地址。
步骤502,判断所得到的写地址是否在故障磁盘上,是则执行步骤506,否则执行步骤503。
步骤503,写地址不在故障磁盘上,而是在正常工作的磁盘上,进一步根据该RAID的信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是校验数据,则执行步骤504;如果是故障磁盘数据,则执行步骤505。
步骤504,在写地址中写入写请求要求写入的数据,并更新校验块中的校验数据。执行步骤509。
本步骤中,在写地址中写入写请求要求写入的数据,并更新校验块中的校验数据的具体过程为:先将写地址所在条带的所有未损坏数据都读取到内存中,然后在写地址中写入写请求要求写入的数据,同时,根据内存中的数据先计算出同条带的在故障磁盘中的数据,再根据新写入的数据计算出新的校验和并进行更新。
步骤505,直接在写地址中写入写请求要求写入的数据。执行步骤509。
步骤506,写地址在故障磁盘上,进一步根据该RAID的信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是校验数据,则执行步骤507;如果是故障磁盘数据,则执行步骤508。
步骤507,如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并在所述信息表中将写地址所在条带中的校验块所存储的数据记录为故障磁盘数据。执行步骤509。
本步骤中,与目标地址(即写地址)同一条带的校验块中所存放的是“校验数据”,表明RAID降级后该目标地址第一次被访问,因此将数据写入校验块中的同时在信息表中指定该校验块中的数据类型为“故障磁盘数据”。
本步骤中,向校验块中写入数据分为两种情况:
1、如果写请求要求写入的数据的大小与块的大小相等,则在写地址所在条带中的校验块中直接写入写请求要求写入的数据;
2、如果写请求要求写入的数据的大小小于块的大小,则根据写地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据计算出写地址中原有的数据,并在写地址所在条带中的校验块中写入写请求要求写入的数据和写地址中原有的不会被写请求要求写入的数据所覆盖数据。
例如,RAID中块的大小为10比特,而写请求要求写入的数据为“11011”,是5比特,则需要重新恢复出写地址所对应的数据块中的数据,这里假设恢复出来的数据为“0000011111”,则本次写入的数据只会覆盖其前5个比特,而不会覆盖后5个比特,但由于是第一次访问该数据块,所以该后5个比特的数据也是需要放入校验块中的,则最终写入校验块的数据为“1101111111”。
步骤508,如果是故障磁盘数据,则直接则在写地址所在条带中的校验块中写入写请求要求写入的数据。执行步骤509。
本步骤中,与目标地址(即读地址)同一条带的校验块中所存放的是“故障磁盘数据”,表明读地址的数据已存放于同条带的校验块中,因此直接读校验块即可。
步骤509,返回写成功消息。
如果一个RAID(例如为RAID5)正常工作时的信息表如表1所示,则在该RAID降级后,阵列中的1、2和3号条带被如图4和5所示的读写过程访问过,则最终结果为1、2和3号条带中的校验块中的数据变为故障磁盘数据,而未被访问的0和4号条带的校验块未进行更新,则该RAID的信息表变为如表2所示:
条带号 | 校验块数据类型 |
0 | 0 |
1 | 1 |
2 | 1 |
3 | 1 |
4 | 0 |
...... | ...... |
表2
本发明实施例的上述方案,适用于采用校验冗余的RAID降级时使用。采用校验冗余的RAID包括RAID5、RAID3等。
图6是本发明实施例一种独立磁盘冗余阵列RAID控制器的组成结构框图。如图6所示,该RAID控制器应用于采用校验冗余且已降级的RAID,该RAID控制器包括:存储模块601、接口模块602和核心处理模块603,其中:
存储模块601,用于保存信息表,该信息表用于记录RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据;
接口模块602,用于接收读请求并发送给核心处理模块603,并将核心处理模块603返回的读数据发送出去;
核心处理模块603,用于在收到接口模块发送的读请求时,判断该读请求的读地址是否在故障磁盘上;如果读地址不在故障磁盘上,则直接读取读地址中的数据,并返回给接口模块602;如果读地址在故障磁盘上,则根据所述信息表判断该读地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则直接读取该读地址所在条带中的校验块中的数据,并返回给接口模块602;反之,如果是校验数据,则根据该读地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据,计算出该读地址中的数据,将该计算出的数据写入读地址所在条带中的校验块,在所述信息表中将该读地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并将该计算出的数据作为所读取的数据返回给接口模块602。
在图6中,接口模块602,还用于接收写请求并发送给核心处理模块603,并将核心处理模块603返回的写成功消息发送出去;
核心处理模块603,用于在收到接口模块发送的写请求时,判断该写请求的写地址是否在故障磁盘上;如果写地址不在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据,如果是故障磁盘数据,则直接在写地址中写入写请求要求写入的数据,并向接口模块602返回写成功消息,反之,如果是校验数据,则在写地址中写入写请求要求写入的数据的同时更新校验块中校验数据,并向接口模块602返回写成功消息;如果写地址在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并向接口模块602返回写成功消息;反之,如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并在所述信息表中将写地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并向接口模块602返回写成功消息。
在图6中,核心处理模块603,用于在判断出写地址在故障磁盘上,且根据所述信息表判断出写地址所在条带中的校验块所存储的数据是校验数据时,如果写请求要求写入的数据的大小与块的大小相等,则在写地址所在条带中的校验块中直接写入写请求要求写入的数据;如果写请求要求写入的数据的大小小于块的大小,则根据写地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据计算出写地址中原有的数据,并在写地址所在条带中的校验块中写入写请求要求写入的数据和写地址中原有的不会被写请求要求写入的数据所覆盖数据。
综上所述,本发明这种在RAID降级的情况下,使用同条带的校验块来存储故障磁盘数据,并对校验块中的数据类型进行相应的标记的技术方案,使得RAID降级模式下的读写都不需要计算校验和,而是直接读写校验块,从而提高了RAID降级后的读写特性
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1、一种提升独立磁盘冗余阵列RAID性能的方法,其特征在于,该方法应用于采用校验冗余且已降级的RAID,该方法包括:
为RAID创建信息表,该信息表用于记录该RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据;
在收到读请求时,判断该读请求的读地址是否在故障磁盘上;
如果读地址不在故障磁盘上,则直接读取读地址中的数据;
如果读地址在故障磁盘上,则根据所述信息表判断该读地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则直接读取该读地址所在条带中的校验块中的数据;反之,如果是校验数据,则根据该读地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据,计算出该读地址中的数据,将该计算出的数据写入读地址所在条带中的校验块,在所述信息表中将该读地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并将该计算出的数据作为所读取的数据。
2、如权利要求1所述的方法,其特征在于,该方法进一步包括
在收到写请求时,判断该写请求的写地址是否在故障磁盘上;
如果写地址不在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则直接在写地址中写入写请求要求写入的数据;反之,如果是校验数据,则在写地址中写入写请求要求写入的数据,并更新校验块中的校验数据;
如果写地址在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据;反之,如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并在所述信息表中将写地址所在条带中的校验块所存储的数据记录为故障磁盘数据。
3、如权利要求2所述的方法,其特征在于,所述如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据包括:
如果写请求要求写入的数据的大小与块的大小相等,则在写地址所在条带中的校验块中直接写入写请求要求写入的数据;
如果写请求要求写入的数据的大小小于块的大小,则根据写地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据计算出写地址中原有的数据,并在写地址所在条带中的校验块中写入写请求要求写入的数据和写地址中原有的不会被写请求要求写入的数据所覆盖的数据。
4、一种提升独立磁盘冗余阵列RAID性能的方法,其特征在于,该方法应用于采用校验冗余且已降级的RAID,该方法包括:
为RAID创建信息表,该信息表用于记录该RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据;
在收到写请求时,判断该写请求的写地址是否在故障磁盘上;
如果写地址不在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则直接在写地址中写入写请求要求写入的数据;反之,如果是校验数据,则在写地址中写入写请求要求写入的数据,并更新校验块中的校验数据;
如果写地址在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据;反之,如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并在所述信息表中将写地址所在条带中的校验块所存储的数据记录为故障磁盘数据。
5、如权利要求4所述的方法,其特征在于,所述如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据包括:
如果写请求要求写入的数据的大小与块的大小相等,则在写地址所在条带中的校验块中直接写入写请求要求写入的数据;
如果写请求要求写入的数据的大小小于块的大小,则根据写地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据计算出写地址中原有的数据,并在写地址所在条带中的校验块中写入写请求要求写入的数据和写地址中原有的不会被写请求要求写入的数据所覆盖数据。
6、一种独立磁盘冗余阵列RAID控制器,其特征在于,该RAID控制器应用于采用校验冗余且已降级的RAID,该RAID控制器包括:存储模块、接口模块和核心处理模块,其中,
存储模块,用于保存信息表,该信息表用于记录RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据;
接口模块,用于接收读请求并发送给核心处理模块,并将核心处理模块返回的读数据发送出去;
核心处理模块,用于在收到接口模块发送的读请求时,判断该读请求的读地址是否在故障磁盘上;如果读地址不在故障磁盘上,则直接读取读地址中的数据,并返回给接口模块;如果读地址在故障磁盘上,则根据所述信息表判断该读地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则直接读取该读地址所在条带中的校验块中的数据,并返回给接口模块;反之,如果是校验数据,则根据该读地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据,计算出该读地址中的数据,将该计算出的数据写入读地址所在条带中的校验块,在所述信息表中将该读地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并将该计算出的数据作为所读取的数据返回给接口模块。
7、如权利要求6所述的RAID控制器,其特征在于,
所述接口模块,进一步用于接收写请求并发送给核心处理模块,并将核心处理模块返回的写成功消息发送出去;
所述核心处理模块,进一步用于在收到接口模块发送的写请求时,判断该写请求的写地址是否在故障磁盘上;如果写地址不在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据,如果是故障磁盘数据,则直接在写地址中写入写请求要求写入的数据,并向接口模块返回写成功消息,反之,如果是校验数据,则在写地址中写入写请求要求写入的数据的同时更新校验块中校验数据,并向接口模块返回写成功消息;如果写地址在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据,如果是故障磁盘数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并向接口模块返回写成功消息,反之,如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并在所述信息表中将写地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并向接口模块返回写成功消息。
8、如权利要求7所述的RAID控制器,特征在于,
所述核心处理模块,用于在判断出写地址在故障磁盘上,且根据所述信息表判断出写地址所在条带中的校验块所存储的数据是校验数据时,如果写请求要求写入的数据的大小与块的大小相等,则在写地址所在条带中的校验块中直接写入写请求要求写入的数据;如果写请求要求写入的数据的大小小于块的大小,则根据写地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据计算出写地址中原有的数据,并在写地址所在条带中的校验块中写入写请求要求写入的数据和写地址中原有的不会被写请求要求写入的数据所覆盖数据。
9、一种独立磁盘冗余阵列RAID控制器,其特征在于,该RAID控制器应用于采用校验冗余且已降级的RAID,该RAID控制器包括:存储模块、接口模块和核心处理模块,其中,
存储模块,用于保存信息表,该信息表用于记录RAID中的每个条带中的校验块所存储的数据为校验数据或故障磁盘数据;
接口模块,用于接收写请求并发送给核心处理模块,并将核心处理模块返回的写成功消息发送出去;
核心处理模块,用于在收到接口模块发送的写请求时,判断该写请求的写地址是否在故障磁盘上;如果写地址不在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据,如果是故障磁盘数据,则直接在写地址中写入写请求要求写入的数据,并向接口模块返回写成功消息,反之,如果是校验数据,则在写地址中写入写请求要求写入的数据的同时更新校验块中的校验数据,并向接口模块返回写成功消息;如果写地址在故障磁盘上,则根据所述信息表判断该写地址所在条带中的校验块所存储的数据是校验数据还是故障磁盘数据;如果是故障磁盘数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并向接口模块返回写成功消息;反之,如果是校验数据,则在写地址所在条带中的校验块中写入写请求要求写入的数据,并在所述信息表中将写地址所在条带中的校验块所存储的数据记录为故障磁盘数据,并向接口模块返回写成功消息。
10、如权利要求9所述的RAID控制器,特征在于,
所述核心处理模块,用于在根据所述信息表判断出写地址所在条带中的校验块所存储的数据是校验数据时,如果写请求要求写入的数据的大小与块的大小相等,则在写地址所在条带中的校验块中直接写入写请求要求写入的数据;如果写请求要求写入的数据的大小小于块的大小,则根据写地址所在条带中的校验块和其他非故障磁盘上的数据块中的数据计算出写地址中原有的数据,并在写地址所在条带中的校验块中写入写请求要求写入的数据和写地址中原有的不会被写请求要求写入的数据所覆盖数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910082621A CN101526885A (zh) | 2009-04-21 | 2009-04-21 | 一种提升独立磁盘冗余阵列性能的方法及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910082621A CN101526885A (zh) | 2009-04-21 | 2009-04-21 | 一种提升独立磁盘冗余阵列性能的方法及其控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101526885A true CN101526885A (zh) | 2009-09-09 |
Family
ID=41094757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910082621A Pending CN101526885A (zh) | 2009-04-21 | 2009-04-21 | 一种提升独立磁盘冗余阵列性能的方法及其控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101526885A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270102A (zh) * | 2011-04-29 | 2011-12-07 | 华中科技大学 | 一种raid6磁盘阵列写性能的优化方法 |
CN104035830A (zh) * | 2014-06-24 | 2014-09-10 | 浙江宇视科技有限公司 | 一种数据恢复方法和装置 |
CN104461373A (zh) * | 2013-09-16 | 2015-03-25 | 杭州宏杉科技有限公司 | 一种raid数据处理方法及装置 |
CN105022587A (zh) * | 2014-04-24 | 2015-11-04 | 中国移动通信集团设计院有限公司 | 一种设计磁盘阵列的方法和存储装置 |
CN105278873A (zh) * | 2015-09-14 | 2016-01-27 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘块的分配方法及装置 |
CN107632780A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种基于分布式存储系统的条带卷实现方法及其存储架构 |
CN110727541A (zh) * | 2019-09-02 | 2020-01-24 | 广东紫晶信息存储技术股份有限公司 | 一种光盘分块存储校验方法及系统 |
CN111857552A (zh) * | 2019-04-30 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备和计算机程序产品 |
CN112286453A (zh) * | 2020-10-26 | 2021-01-29 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列数据读写方法、设备及存储介质 |
CN114546272A (zh) * | 2022-02-18 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 |
CN114600073A (zh) * | 2019-11-01 | 2022-06-07 | 华为技术有限公司 | 应用于磁盘阵列系统的数据重构方法、装置及计算设备 |
-
2009
- 2009-04-21 CN CN200910082621A patent/CN101526885A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270102A (zh) * | 2011-04-29 | 2011-12-07 | 华中科技大学 | 一种raid6磁盘阵列写性能的优化方法 |
CN104461373A (zh) * | 2013-09-16 | 2015-03-25 | 杭州宏杉科技有限公司 | 一种raid数据处理方法及装置 |
CN104461373B (zh) * | 2013-09-16 | 2018-01-09 | 杭州宏杉科技股份有限公司 | 一种raid数据处理方法及装置 |
CN105022587A (zh) * | 2014-04-24 | 2015-11-04 | 中国移动通信集团设计院有限公司 | 一种设计磁盘阵列的方法和存储装置 |
CN105022587B (zh) * | 2014-04-24 | 2018-05-08 | 中国移动通信集团设计院有限公司 | 一种设计磁盘阵列的方法和存储装置 |
CN104035830A (zh) * | 2014-06-24 | 2014-09-10 | 浙江宇视科技有限公司 | 一种数据恢复方法和装置 |
CN105278873B (zh) * | 2015-09-14 | 2018-10-19 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘块的分配方法及装置 |
CN105278873A (zh) * | 2015-09-14 | 2016-01-27 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘块的分配方法及装置 |
CN107632780A (zh) * | 2017-08-28 | 2018-01-26 | 深圳市云舒网络技术有限公司 | 一种基于分布式存储系统的条带卷实现方法及其存储架构 |
CN111857552A (zh) * | 2019-04-30 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 存储管理方法、电子设备和计算机程序产品 |
CN110727541A (zh) * | 2019-09-02 | 2020-01-24 | 广东紫晶信息存储技术股份有限公司 | 一种光盘分块存储校验方法及系统 |
CN114600073A (zh) * | 2019-11-01 | 2022-06-07 | 华为技术有限公司 | 应用于磁盘阵列系统的数据重构方法、装置及计算设备 |
CN112286453A (zh) * | 2020-10-26 | 2021-01-29 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列数据读写方法、设备及存储介质 |
CN114546272A (zh) * | 2022-02-18 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 |
CN114546272B (zh) * | 2022-02-18 | 2024-04-26 | 山东云海国创云计算装备产业创新中心有限公司 | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101526885A (zh) | 一种提升独立磁盘冗余阵列性能的方法及其控制器 | |
CN107220148B (zh) | 针对独立磁盘冗余阵列的重建方法和设备 | |
CN104503706B (zh) | 一种基于磁盘阵列的数据存储及读取方法 | |
CN101916173B (zh) | 一种基于raid的数据读写方法及其系统 | |
KR100827677B1 (ko) | 행렬 스트라이프 캐쉬를 이용한 raid 시스템의 입출력성능 향상 방법 | |
CN102194527B (zh) | 半导体存储器装置 | |
CN104246708B (zh) | 针对nand闪存上数据的存储的架构 | |
US9292228B2 (en) | Selective raid protection for cache memory | |
CN103034458B (zh) | 固态硬盘中实现独立磁盘冗余阵列的方法及装置 | |
CN101236482B (zh) | 降级状态下处理数据的方法及独立冗余磁盘阵列系统 | |
CN102799533B (zh) | 一种磁盘损坏扇区屏蔽方法及装置 | |
CN104035830A (zh) | 一种数据恢复方法和装置 | |
US7346810B2 (en) | Storage controller and method for recording diagnostic information | |
CN101923441B (zh) | 混合磁盘冗余阵列的写请求处理方法、控制器和存储系统 | |
US9063869B2 (en) | Method and system for storing and rebuilding data | |
CN105468479B (zh) | 一种磁盘阵列raid坏块处理方法及装置 | |
CN101770413B (zh) | 冗余磁盘阵列重建的方法及设备 | |
US20200233590A1 (en) | Offloading device maintenance to an external processor in low-latency, non-volatile memory | |
CN111124262B (zh) | 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质 | |
CN110413454B (zh) | 基于存储阵列的数据重建方法、装置及存储介质 | |
US20130166991A1 (en) | Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same | |
CN103729149A (zh) | 一种存储数据的方法 | |
CN102520890A (zh) | 基于gpu的rs-draid系统及存储设备数据控制方法 | |
US5467361A (en) | Method and system for separate data and media maintenance within direct access storage devices | |
CN107885620B (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: 20090909 |