CN101866307A - 一种基于镜像技术的数据存储方法及装置 - Google Patents
一种基于镜像技术的数据存储方法及装置 Download PDFInfo
- Publication number
- CN101866307A CN101866307A CN 201010208231 CN201010208231A CN101866307A CN 101866307 A CN101866307 A CN 101866307A CN 201010208231 CN201010208231 CN 201010208231 CN 201010208231 A CN201010208231 A CN 201010208231A CN 101866307 A CN101866307 A CN 101866307A
- Authority
- CN
- China
- Prior art keywords
- disk
- piecemeal
- data
- movable
- write
- 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
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种基于镜像技术的数据存储方法,该方法包括:当有数据需要对磁盘进行写操作时,从所述磁盘对应的局部镜像分区中选择活动分块,并将所述数据写入所述磁盘和活动分块;当所述数据写入所述磁盘失败且写入所述活动分块成功时,根据所述活动分块中写入的数据对所述磁盘进行恢复。本发明中,加快了业务的响应速度,对正常业务性能的影响较小,磁盘利用率很高。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种基于镜像技术的数据存储方法及装置。
背景技术
RAID(Redundant Array of Inexpensive Disks,磁盘冗余阵列)是一种高性能、高可靠性的存储技术,通过将一系列单独的磁盘以不同的方式组合起来,为应用终端或终端集群提供逻辑上的磁盘。其中,使用RAID的优点包括:扩大磁盘容量、提高磁盘读写的性能和数据的安全性。
具体的,RAID技术已经广泛应用于数据存储的各种场合,常用的RAID技术包括RAID0、RAID1、RAID5、RAID6、RAID10等;其中,RAID0不具有冗余能力,RAID1并不是完全的磁盘阵列;而RAID5、RAID6和RAID10分别由多块磁盘(例如,RAID5和RAID6不少于3块,RAID10不少于4块)组成,各个RAID以条带的方式向阵列中的磁盘写数据,并将奇偶校验数据存放在阵列中的各个磁盘上。其中,奇偶校验数据是由每个条带中的数据位使用XOR运算得出,从而使得在一个磁盘发生损坏时,可以通过条带中的数据位+奇偶校验位使用XOR运算来还原丢失的那部分数据。
进一步的,RAID5的每个条带上含有1个校验位,支持任意损坏其中一块磁盘,通过其他磁盘上的奇偶校验位来重建数据;RAID6的每个条带上含有2个校验位,支持任意损坏其中两块磁盘,通过其他磁盘上的奇偶校验位来恢复数据;RAID10是对磁盘组先进行镜像,再对磁盘进行条带,当一块磁盘损坏后通过其对应的镜像盘恢复数据,最多允许不同位置下50%的磁盘损坏。
如图1所示,为现有技术中一种以RAID5为例的数据存储过程示意图,其中,RAID5是一种基于条带校验模型的存储结构,还有一个校验位,当对数据写入RAID5阵列时,需要对条带上的数据进行校验,并将校验和写入到校验位。
具体的,RAID5阵列由3块磁盘组成,而写入RAID5的有6块数据,此时,需要将6块数据分成3个条带写入磁盘中。其中,条带P(P1、P2和P3)中的数据块是奇偶校验数据,分别由每个条带中的数据XOR算出,即 假设磁盘1损坏时,对于条带1中的数据A,可以由运算得出。
如图2所示,为现有技术中一种以RAID10为例的数据存储过程示意图,其中,RAID10是RAID1和RAID0的结合,也可称为RAID(0+1),先进行镜像后进行条带化,既提高了系统的读写性能,又提供了数据的冗余保护,RAID10的磁盘空间利用率和RAID1是一样的,均为50%。
具体的,在RAID10中,只要不是镜像组的一对磁盘同时出现损坏,则可以支持多块磁盘同时掉线。例如,在图2中,当磁盘1、4、5三块磁盘同时掉线时,只要磁盘2、3、6仍然正常工作,则可以保证数据不丢失。
但是,在使用RAID5进行数据存储时,当数据写入时有数据发生变化,则条带需要重新进行校验,从而导致写入的性能较低。尤其是在随机写较多的情况下,为了计算新校验和还需要将老数据读出,开销巨大,性能严重下降。另外,当有磁盘因为写入失败发生踢盘或者其他原因损失后,则阵列重建过程需要将所有保留数据全部读出并通过异或关系计算来恢复数据,从而导致系统资源被大量占用,严重影响对正常业务的响应速度。
在使用RAID10进行数据存储时,当一对镜像组磁盘同时掉线时,则数据将无法恢复,例如,如果磁盘1和磁盘2同时损坏时,则RAID10阵列中的数据就无法恢复了。此外,RAID10的磁盘利用率不是很高,需要消耗50%的磁盘来对数据进行冗余,大大增加了设备的成本。
发明内容
本发明提供一种基于镜像技术的数据存储方法及装置,以节省系统资源,并提高磁盘的利用率。
为了达到上述目的,本发明提出了一种基于镜像技术的数据存储方法,应用于包括至少两个磁盘的RAID阵列中,所述RAID阵列中的磁盘设有局部镜像分区,所述方法进一步包括以下步骤:
当有数据需要对所述磁盘进行写操作时,从所述磁盘对应的其他磁盘的局部镜像分区中选择活动分块,并将所述数据写入所述磁盘和选择的局部镜像分区的活动分块;
当所述数据写入所述磁盘和局部镜像分区的活动分块成功时,删除所述局部镜像分区的活动分块中写入的数据;
当所述数据写入所述磁盘失败且写入所述局部镜像分区的活动分块成功时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
所述RAID阵列中的磁盘设有局部镜像分区,具体为:
将所述RAID阵列的所有磁盘进行排序,并根据排序结果从所有磁盘中选择一个磁盘的预设个数的条带分块作为前一个磁盘的局部镜像分区。
将所述数据写入所述磁盘和选择的局部镜像分区的活动分块,之后还包括:
将所述局部镜像分区的活动分块设置为锁定状态;其中,处于锁定状态的活动分块无法写入数据;
删除所述局部镜像分区的活动分块中写入的数据,之后还包括:清除所述局部镜像分区的活动分块设置的锁定状态;
根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复,之前还包括:保持所述局部镜像分区的活动分块设置的锁定状态。
根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复,具体包括:
获取所述磁盘的性能信息,并当所述性能信息小于预设的性能指标时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复,具体包括:
将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘成功时,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘均失败时,如果当前有可用的热备磁盘,则通过所述热备磁盘对所述磁盘进行重建。
通过所述热备磁盘对所述磁盘进行重建,具体包括:
将所述磁盘中的数据和所述局部镜像分区的活动分块中写入的数据拷贝到所述热备磁盘,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态。
一种基于镜像技术的数据存储装置,应用于包括至少两个磁盘的RAID阵列中,所述RAID阵列中的磁盘设有局部镜像分区,所述装置包括:
选择模块,用于当有数据需要对所述磁盘进行写操作时,从所述磁盘对应的其他磁盘的局部镜像分区中选择活动分块;
写入模块,与所述选择模块连接,用于将所述数据写入所述磁盘和选择的局部镜像分区的活动分块;
删除模块,与所述选择模块和所述写入模块分别连接,用于当所述数据写入所述磁盘和局部镜像分区的活动分块成功时,删除所述局部镜像分区的活动分块中写入的数据;
处理模块,与所述选择模块和所述写入模块分别连接,用于当所述数据写入所述磁盘失败且写入所述局部镜像分区的活动分块成功时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
还包括:
设置模块,与所述选择模块连接,用于将所述RAID阵列的所有磁盘进行排序,并根据排序结果从所有磁盘中选择一个磁盘的预设个数的条带分块作为前一个磁盘的局部镜像分区。
还包括:
维护模块,用于当所述数据写入所述磁盘和选择的局部镜像分区的活动分块时,将所述局部镜像分区的活动分块设置为锁定状态;其中,处于锁定状态的活动分块无法写入数据;
当删除所述局部镜像分区的活动分块中写入的数据时,清除所述局部镜像分区的活动分块设置的锁定状态;
当根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复时,保持所述局部镜像分区的活动分块设置的锁定状态。
所述处理模块,具体用于获取所述磁盘的性能信息,并当所述性能信息小于预设的性能指标时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
所述处理模块,进一步用于将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘成功时,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘均失败时,如果当前有可用的热备磁盘,则通过所述热备磁盘对所述磁盘进行重建。
在通过所述热备磁盘对所述磁盘进行重建时,所述处理模块,进一步用于将所述磁盘中的数据和所述局部镜像分区的活动分块中写入的数据拷贝到所述热备磁盘,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态。
与现有技术相比,本发明具有以下优点:
通过为RAID阵列中的磁盘设置局部镜像分区,并将数据同时写入到磁盘和对应的局部镜像分区,当磁盘出现故障导致数据写入失败时,能够通过局部镜像分区内写入的数据进行恢复,从而加快了业务的响应速度,对正常业知性能的影响较小,磁盘利用率很高。
附图说明
图1为现有技术中以RAID5为例的数据存储过程示意图;
图2为现有技术中以RAID10为例的数据存储过程示意图;
图3为本发明提出的一种基于镜像技术的数据存储方法流程图;
图4为本发明应用场景下提出的一种基于镜像技术的数据存储方法流程图;
图5为本发明应用场景下数据写入示意图;
图6为本发明提出的一种基于镜像技术的数据存储装置结构图。
具体实施方式
本发明中,通过为RAID阵列中的磁盘设置局部镜像分区,在数据的写入过程中,需要将数据同时写入到磁盘和对应的局部镜像分区中,当磁盘出现故障导致数据写入磁盘失败时,如果数据写入对应的局部镜像分区成功,则能够通过局部镜像分区内写入的数据对所述磁盘进行恢复(例如,对写入磁盘失败的分块进行数据恢复、对写入磁盘失败的磁盘进行重建等);从而加快了业务的响应速度,对正常业务性能的影响较小,磁盘利用率很高。
本发明提出的一种基于镜像技术的数据存储方法,应用于包括至少两个磁盘的RAID阵列中,如图3所示,所述方法包括以下步骤:
步骤301,为所述RAID阵列中的磁盘设置局部镜像分区。
步骤302,当有数据需要对所述磁盘进行写操作时,从所述磁盘对应的其他磁盘的局部镜像分区中选择活动分块,并将所述数据写入所述磁盘和选择的局部镜像分区的活动分块。
步骤303,当所述数据写入所述磁盘和局部镜像分区的活动分块成功时,删除所述局部镜像分区的活动分块中写入的数据。
步骤304,当所述数据写入所述磁盘失败且写入所述局部镜像分区的活动分块成功时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
为了更加清楚的阐述本发明提供的技术方案,以下结合具体的应用场景对本发明进行详细描述。按照业界的经验,硬盘故障大多是出现在磁盘写入时,如果一块磁盘写入失败,则意味着这块磁盘有不可恢复的扇区(磁盘自身的g-list已经使用完),需要进行更换。基于此,本应用场景下,需要为RAID阵列中的磁盘设置局部镜像分区。
需要说明的是,本发明提供的技术方案可以应用于当前的RAID阵列(例如,RAID5阵列等)中,也可以应用于其他的RAID阵列(例如,包括12个磁盘的RAID阵列等)中。
本应用场景下,假设每个磁盘柜有16块磁盘(该磁盘个数可以根据实际需要任意选择),磁盘柜中磁盘的个数不会影响本发明的实现,为了方便描述,将16个磁盘分别编号为1~16,并将16个磁盘中的15个磁盘(本应用场景下以磁盘1~磁盘15为例)组成一个阵列(即RAID阵列),将另一个磁盘作为热备磁盘(本应用场景下以磁盘16为例)。对于该RAID阵列来说,需要对该RAID阵列进行条带化,本应用场景下,以每个条带大小为128KB(实际应用中,该条带大小可以根据需要进行任意设定,例如还可以为64KB等)为例进行说明。
具体的,当条带化完成后,需要为RAID阵列中的磁盘设置局部镜像分区,即从RAID阵列的所有磁盘中选择磁盘,并使用所选择磁盘的预设个数的条带分块作为其他磁盘的局部镜像分区。
例如,从磁盘1~磁盘15中选择磁盘1,并使用磁盘1的280个条带分块作为磁盘2~磁盘15的局部镜像分区,并使用磁盘2的20条带分块作为磁盘1的局部镜像分区。其中,该条带分块可以从磁盘(以磁盘1为例)中任意选择,例如,可以选择磁盘1的头280个条带分块作为局部镜像分区,可以选择磁盘1的最后280个条带分块作为局部镜像分区,可以从磁盘1的中间选择280个条带分块作为局部镜像分区等。
优选的,本应用场景下,为了充分利用每个磁盘,可以将RAID阵列的所有磁盘进行排序,并根据排序结果从所有磁盘中选择一个磁盘的预设个数的条带分块作为前一个磁盘的局部镜像分区。例如,可以将每个磁盘的头20个条带分块(该条带分块的个数以及条带分块的位置可以根据实际需要任意选择)作为前一个磁盘的局部镜像分区,即将磁盘15的头20个条带分块作为磁盘14的局部镜像分区,将磁盘14的头20个条带分块作为磁盘13的局部镜像分区,以此类推,将将磁盘1的头20个条带分块作为磁盘15的局部镜像分区。
如图4所示,基于上述情况,本发明提供的基于镜像技术的数据存储方法包括以下步骤:
步骤401,当有数据需要写入时,将该数据写入到磁盘和对应的局部镜像分区。
本应用场景下,以数据需要写入到磁盘1(即有数据对磁盘1的某个条带分块进行写操作)为例进行说明,相应的,磁盘1对应的局部镜像分区为磁盘2的头20个条带分块;即当有数据需要写入到磁盘1时,将该数据同时写入到磁盘1和磁盘2的局部镜像分区中,如图5所示的数据写入过程,磁盘2的局部镜像分区作为磁盘1的镜像对。
需要说明的是,在将数据写入到磁盘2的局部镜像分区时,需要从磁盘2的局部镜像分区中选择活动分块(即没有被设置为锁定状态的分块),并将数据写入到选择的活动分块中。其中,该选择活动分块的方式可以为从磁盘2的局部镜像分区中随机选择。
进一步的,将数据写入到选择的活动分块之后,还需要将该活动分块设置为锁定状态,以保证该活动分块中的内容不会被后续的数据所覆盖;其中,处于锁定状态的活动分块无法写入数据。
步骤402,判断数据写入磁盘是否成功,如果成功,则转到步骤403,否则,转到步骤404。
需要注意的是,本应用场景下,当有数据需要写入时,需要先对该数据进行缓存,并将缓存的数据写入到磁盘(或者对应的局部镜像分区)。
步骤403,删除局部镜像分区的活动分块中写入的数据,并清除局部镜像分区的活动分块设置的锁定状态。
本应用场景下,以数据写入局部镜像分区的活动分块成功为例进行说明,当数据写入磁盘成功时,则说明磁盘没有出现故障,不需要保留局部镜像分区的活动分块中写入的数据,即需要删除局部镜像分区的活动分块中写入的数据,并清除局部镜像分区的活动分块设置的锁定状态,以使该局部镜像分区的活动分块能够继续写入后续的数据。
另外,需要注意的是,当数据写入磁盘时,还需要删除缓存的数据,本应用场景下不对该缓存的数据详加赘述。
步骤404,建立写入数据失败的分块地址与局部镜像分区的活动分块的地址之间的对应关系。
具体的,当获知磁盘2的局部镜像分区写入成功的信息后,需要将磁盘1写入数据失败的分块地址(即目的地址)映射到局部镜像分区的活动分块的地址,并将磁盘1写入数据失败的分块地址记录到失败表中。如表1所示的一种失败表的示意情况。
表1
写入数据失败的分块地址 | 局部镜像分区的活动分块的地址 | 写入失败次数 |
0X236A79 | 0X1111A8 | 1 |
0X349CB7 | 0X1111B4 | 2 |
需要注意的是,当目的地址(即写入数据失败的分块地址)写入失败时,需要保存局部镜像分区的活动分块中写入的数据,并保持局部镜像分区的活动分块设置的锁定状态。例如,如表1所示,对目的地址0X236A79写入失败时,则地址0X236A79对应的当前局部镜像分块0X1111A8将被设置为锁定状态,处于锁定状态的局部镜像分块不能写入数据。在后续对其他地址的写入操作进行分配活动分块时,不能分配该局部镜像分块0X1111A8。
另外,需要说明的是,每次向目的地址(例如,0X236A79)写入数据失败时,需要将写入失败次数加1。
步骤405,根据预设策略将局部镜像分区的活动分块中写入的数据重新写入到写入数据失败的分块地址。
具体的,当建立了写入数据失败的分块地址与局部镜像分区的活动分块的地址之间的对应关系之后,当磁盘(例如,磁盘1)空闲(即通过获取磁盘的性能信息,确定当前性能信息小于预设的性能指标时)时,还需要读取局部镜像分块0X1111A8中写入的数据,并将0X1111A8中写入的数据重新写入到目的地址0X236A79。
本应用场景下,该预设策略可以根据实际需要任意选择,例如,该预设策略可以为预设周期(即每到预设周期时将局部镜像分区的活动分块中写入的数据重新写入到写入数据失败的分块地址),该预设策略可以为预设性能指标(即每次性能到达该指标时将局部镜像分区的活动分块中写入的数据重新写入到写入数据失败的分块地址),实际应用中,该预设策略还可以为其他策略,本应用场景下不再赘述。
步骤406,判断预设次数内将局部镜像分区的活动分块中写入的数据重新写入到写入数据失败的分块地址是否成功,如果成功,转到步骤407,如果不成功,转到步骤408。
具体的,如果将局部镜像分区的活动分块中写入的数据重新写入到写入数据失败的分块地址失败时,则需要更新表1所示的失败表,每失败一次,将写入失败次数加1。在本步骤中,可以根据该失败表判断预设次数内将局部镜像分区的活动分块中写入的数据重新写入到写入数据失败的分块地址是否成功。
需要注意的是,以该预设次数为3次为例,如果在写失败操作次数未达到3次之前,新业务的目的地址为0X236A79时,此时,仍然需要尝试将数据写入到目的地址0X236A79,并将数据写入到0X236A79对应的局部镜像分块0X1111A8(从表1中可以获得相关信息)。
具体的,当数据需要写入到目的地址0X236A79时,需要判断失败表中是否记录了目的地址0X236A79的信息,如果是(本应用场景下记录了目的地址0X236A79与局部镜像分块0X1111A8),则能够获取到局部镜像分块的地址信息,此时需要将数据写入到获取的局部镜像分块中。
进一步的,如果将数据写入到目的地址0X236A79成功,则删除局部镜像分区的活动分块中写入的数据,并清除局部镜像分区的活动分块设置的锁定状态,并将失败表中相应的记录删除。如果将数据写入到目的地址0X236A79失败,则需要更新表1所示的失败表,每失败一次,将写入失败次数加1。
需要注意的是,在上述过程中,对于目的地址为0X236A79的读请求操作,需要从对应的局部镜像分块0X1111A8中读取相关数据。
步骤407,删除局部镜像分区的活动分块中写入的数据,并清除局部镜像分区的活动分块设置的锁定状态,并将失败表中相应的记录删除。
步骤408,判断当前是否有可用的热备磁盘,如果当前有可用的热备磁盘,转到步骤409,否则,转到步骤410。
步骤409,通过热备磁盘对磁盘进行重建。
具体的,在通过热备磁盘(以磁盘16为例)对磁盘(以磁盘1为例)进行重建时,需要将磁盘1中的数据和局部镜像分区的活动分块中写入的数据拷贝到热备磁盘16中,并删除局部镜像分区的活动分块中写入的数据,以及清除局部镜像分区的活动分块设置的锁定状态。
本应用场景下,如果有热备磁盘则需要启动重建功能,拷贝磁盘1上的数据到热备磁盘16,并将写入数据失败的分块(例如0X236A79地址的分块)中的数据,通过对应的局部镜像分区的活动分块(例如0X1111A8地址的分块)中拷入,当数据拷贝到磁盘16之后,需要删除局部镜像分区的活动分块中写入的数据,以及清除局部镜像分区的活动分块设置的锁定状态,并清除写入失败表中的内容。
需要注意的是,在执行上述操作的过程中,发生的业务读写可以正常进行,对于写操作,直接定位到热备磁盘16,磁盘2的局部镜像也相应的镜像到热备磁盘1;对于读操作,拷贝到热备磁盘16的数据直接从热备磁盘16中进行读取,未拷贝到热备磁盘16的数据从磁盘1中进行读取,当拷贝完成后踢出磁盘1。
步骤410,上报告警,并使用局部镜像分区中的活动分块替代磁盘中的坏分块进行工作。
具体的,由于上述步骤中已经建立了写入数据失败的分块地址与局部镜像分区的活动分块的地址之间的对应关系,则本步骤中,根据该对应关系,则能够使用局部镜像分区中的活动分块替代磁盘中的坏分块进行工作。
例如,当有数据需要写入到目的地址0X236A79时,由于目的地址0X236A79对应的分块已经无法写入数据,则本步骤中,能够直接将数据写入到局部镜像分块0X1111A8中。
本应用场景下,在使用局部镜像分区中的活动分块替代磁盘中的坏分块进行工作的过程中,如果发现空闲的热备磁盘,则开始重建。
其中,本发明中的步骤可以根据实际的需要进行调整。
可见,通过采用本发明提供的技术方案,具有以下优点:
(1)当数据写入磁盘发生首次写入失败时,可以不在繁忙时进行重试,而在空闲时通过局部镜像分块中数据进行重试,加快业务的响应速度。
(2)本发明在对磁盘进行重建时,不需要CPU参与运算,对正常的业务性能影响较小。
(3)与其他冗余阵列相比,本发明在阵列具有冗余性的同时,对磁盘的利用率很高(例如,损失的空间为每个磁盘的头20个分块)。
(4)本发明在具备高磁盘利用率,冗余性的同时,业务性能较高,特别是随机写性能较高,并不降低数据的写入性能(特别是随机写性能)。
基于同样的发明构思,本发明提出的一种基于镜像技术的数据存储装置,应用于包括至少两个磁盘的RAID阵列中,所述RAID阵列中的磁盘设有局部镜像分区,如图6所示,所述装置包括:
设置模块11,用于为所述RAID阵列中的磁盘设置局部镜像分区。
本发明中,所述设置模块11,具体用于将所述RAID阵列的所有磁盘进行排序,并根据排序结果从所有磁盘中选择一个磁盘的预设个数的条带分块作为前一个磁盘的局部镜像分区。
选择模块12,与所述设置模块11连接,用于当有数据需要对所述磁盘进行写操作时,从所述磁盘对应的其他磁盘的局部镜像分区中选择活动分块。
写入模块13,与所述选择模块12连接,用于将所述数据写入所述磁盘和选择的局部镜像分区的活动分块。
删除模块14,与所述选择模块12和所述写入模块13分别连接,用于当所述数据写入所述磁盘和局部镜像分区的活动分块成功时,删除所述局部镜像分区的活动分块中写入的数据。
处理模块15,与所述选择模块12和所述写入模块13分别连接,用于当所述数据写入所述磁盘失败且写入所述局部镜像分区的活动分块成功时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
本发明中,所述处理模块15,具体用于获取所述磁盘的性能信息,并当所述性能信息小于预设的性能指标时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
所述处理模块15,进一步用于将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘成功时,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘均失败时,如果当前有可用的热备磁盘,则通过所述热备磁盘对所述磁盘进行重建。
进一步的,在通过所述热备磁盘对所述磁盘进行重建时,所述处理模块15,进一步用于将所述磁盘中的数据和所述局部镜像分区的活动分块中写入的数据拷贝到所述热备磁盘,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态。
维护模块16,与所述设置模块11连接,用于当所述数据写入所述磁盘和选择的局部镜像分区的活动分块时,将所述局部镜像分区的活动分块设置为锁定状态;其中,处于锁定状态的活动分块无法写入数据;
当删除所述局部镜像分区的活动分块中写入的数据时,清除所述局部镜像分区的活动分块设置的锁定状态;
当根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复时,保持所述局部镜像分区的活动分块设置的锁定状态。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (12)
1.一种基于镜像技术的数据存储方法,应用于包括至少两个磁盘的RAID阵列中,其特征在于,所述RAID阵列中的磁盘设有局部镜像分区,所述方法进一步包括以下步骤:
当有数据需要对所述磁盘进行写操作时,从所述磁盘对应的其他磁盘的局部镜像分区中选择活动分块,并将所述数据写入所述磁盘和选择的局部镜像分区的活动分块;
当所述数据写入所述磁盘和局部镜像分区的活动分块成功时,删除所述局部镜像分区的活动分块中写入的数据;
当所述数据写入所述磁盘失败且写入所述局部镜像分区的活动分块成功时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
2.如权利要求1所述的方法,其特征在于,所述RAID阵列中的磁盘设有局部镜像分区,具体为:
将所述RAID阵列的所有磁盘进行排序,并根据排序结果从所有磁盘中选择一个磁盘的预设个数的条带分块作为前一个磁盘的局部镜像分区。
3.如权利要求1所述的方法,其特征在于,将所述数据写入所述磁盘和选择的局部镜像分区的活动分块,之后还包括:
将所述局部镜像分区的活动分块设置为锁定状态;其中,处于锁定状态的活动分块无法写入数据;
删除所述局部镜像分区的活动分块中写入的数据,之后还包括:清除所述局部镜像分区的活动分块设置的锁定状态;
根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复,之前还包括:保持所述局部镜像分区的活动分块设置的锁定状态。
4.如权利要求1所述的方法,其特征在于,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复,具体包括:
获取所述磁盘的性能信息,并当所述性能信息小于预设的性能指标时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
5.如权利要求1或4所述的方法,其特征在于,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复,具体包括:
将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘成功时,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘均失败时,如果当前有可用的热备磁盘,则通过所述热备磁盘对所述磁盘进行重建。
6.如权利要求5所述的方法,其特征在于,通过所述热备磁盘对所述磁盘进行重建,具体包括:
将所述磁盘中的数据和所述局部镜像分区的活动分块中写入的数据拷贝到所述热备磁盘,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态。
7.一种基于镜像技术的数据存储装置,应用于包括至少两个磁盘的RAID阵列中,其特征在于,所述RAID阵列中的磁盘设有局部镜像分区,所述装置包括:
选择模块,用于当有数据需要对所述磁盘进行写操作时,从所述磁盘对应的其他磁盘的局部镜像分区中选择活动分块;
写入模块,与所述选择模块连接,用于将所述数据写入所述磁盘和选择的局部镜像分区的活动分块;
删除模块,与所述选择模块和所述写入模块分别连接,用于当所述数据写入所述磁盘和局部镜像分区的活动分块成功时,删除所述局部镜像分区的活动分块中写入的数据;
处理模块,与所述选择模块和所述写入模块分别连接,用于当所述数据写入所述磁盘失败且写入所述局部镜像分区的活动分块成功时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
8.如权利要求7所述的装置,其特征在于,还包括:
设置模块,与所述选择模块连接,用于将所述RAID阵列的所有磁盘进行排序,并根据排序结果从所有磁盘中选择一个磁盘的预设个数的条带分块作为前一个磁盘的局部镜像分区。
9.如权利要求7所述的装置,其特征在于,还包括:
维护模块,用于当所述数据写入所述磁盘和选择的局部镜像分区的活动分块时,将所述局部镜像分区的活动分块设置为锁定状态;其中,处于锁定状态的活动分块无法写入数据;
当删除所述局部镜像分区的活动分块中写入的数据时,清除所述局部镜像分区的活动分块设置的锁定状态;
当根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复时,保持所述局部镜像分区的活动分块设置的锁定状态。
10.如权利要求7所述的装置,其特征在于,
所述处理模块,具体用于获取所述磁盘的性能信息,并当所述性能信息小于预设的性能指标时,根据所述局部镜像分区的活动分块中写入的数据对所述磁盘进行恢复。
11.如权利要求7或10所述的装置,其特征在于,
所述处理模块,进一步用于将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘成功时,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态;如果预设次数内将所述局部镜像分区的活动分块中写入的数据重新写入到所述磁盘均失败时,如果当前有可用的热备磁盘,则通过所述热备磁盘对所述磁盘进行重建。
12.如权利要求11所述的装置,其特征在于,
在通过所述热备磁盘对所述磁盘进行重建时,所述处理模块,进一步用于将所述磁盘中的数据和所述局部镜像分区的活动分块中写入的数据拷贝到所述热备磁盘,删除所述局部镜像分区的活动分块中写入的数据,并清除所述局部镜像分区的活动分块设置的锁定状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010208231 CN101866307A (zh) | 2010-06-24 | 2010-06-24 | 一种基于镜像技术的数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010208231 CN101866307A (zh) | 2010-06-24 | 2010-06-24 | 一种基于镜像技术的数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101866307A true CN101866307A (zh) | 2010-10-20 |
Family
ID=42958040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010208231 Pending CN101866307A (zh) | 2010-06-24 | 2010-06-24 | 一种基于镜像技术的数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101866307A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591746A (zh) * | 2011-12-29 | 2012-07-18 | 成都市华为赛门铁克科技有限公司 | 数据重构方法和存储设备 |
WO2012129729A1 (en) * | 2011-03-31 | 2012-10-04 | Intel Corporation | Memory mirroring and redundancy generation for high availability |
CN103534688A (zh) * | 2013-05-29 | 2014-01-22 | 华为技术有限公司 | 数据恢复方法、存储设备和存储系统 |
CN104040515A (zh) * | 2011-09-30 | 2014-09-10 | 英特尔公司 | 在逻辑驱动器模型下呈现直接存取的存储设备 |
CN104281499A (zh) * | 2014-10-28 | 2015-01-14 | 苏州工业职业技术学院 | 基于奇偶校验的raid条带镜像数据分布方法 |
CN104714758A (zh) * | 2015-01-19 | 2015-06-17 | 华中科技大学 | 一种基于校验raid加入镜像结构的阵列构建方法及读写系统 |
CN104731526A (zh) * | 2015-03-17 | 2015-06-24 | 中国科学院计算技术研究所 | 一种不满条带写的方法及装置 |
CN104731527A (zh) * | 2015-03-17 | 2015-06-24 | 中国科学院计算技术研究所 | 一种三条带状态转换方法 |
CN105068894A (zh) * | 2015-09-10 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 基于LVM镜像实现Linux系统存储设备高可用的方法和装置 |
CN107229536A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种用于终端设备的启动方法和系统 |
CN107577561A (zh) * | 2017-09-14 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种数据恢复方法、装置、设备及计算机可读存储介质 |
WO2018215929A1 (en) * | 2017-05-24 | 2018-11-29 | International Business Machines Corporation | Processing a space release command in a computer system |
CN109347655A (zh) * | 2018-09-11 | 2019-02-15 | 上海天旦网络科技发展有限公司 | 基于网络数据的故障恢复系统和方法及存储介质 |
CN111240884A (zh) * | 2019-12-25 | 2020-06-05 | 上海亮牛半导体科技有限公司 | Efuse的纠错方法 |
CN115543216A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 磁盘阵列分布架构、分块计算方法、系统、设备和介质 |
CN111240884B (zh) * | 2019-12-25 | 2024-06-07 | 上海亮牛半导体科技有限公司 | Efuse的纠错方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1409323A (zh) * | 2001-06-08 | 2003-04-09 | 三菱电气株式会社 | 用于存储存储器测试信息的方法和装置 |
CN1518697A (zh) * | 2001-04-19 | 2004-08-04 | �Ҵ���˾ | 提供混合的盘镜像和盘分条的方法、装置和程序 |
US20040210717A1 (en) * | 1999-12-13 | 2004-10-21 | Hitachi, Ltd. | Subsystem and subsystem processing method |
CN101256524A (zh) * | 2007-12-17 | 2008-09-03 | 浪潮电子信息产业股份有限公司 | 一种保持文件系统缓存一致性的方法 |
CN101398744A (zh) * | 2007-09-26 | 2009-04-01 | 新奥特硅谷视频技术有限责任公司 | 利用虚拟文件系统技术实现网络数据处理的方法及系统 |
CN101609419A (zh) * | 2009-06-29 | 2009-12-23 | 北京航空航天大学 | 虚拟机持续在线迁移的数据备份方法及装置 |
CN101727298A (zh) * | 2009-11-04 | 2010-06-09 | 北京东方广视科技股份有限公司 | 实现独立磁盘冗余阵列的方法和装置 |
-
2010
- 2010-06-24 CN CN 201010208231 patent/CN101866307A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040210717A1 (en) * | 1999-12-13 | 2004-10-21 | Hitachi, Ltd. | Subsystem and subsystem processing method |
CN1518697A (zh) * | 2001-04-19 | 2004-08-04 | �Ҵ���˾ | 提供混合的盘镜像和盘分条的方法、装置和程序 |
CN1409323A (zh) * | 2001-06-08 | 2003-04-09 | 三菱电气株式会社 | 用于存储存储器测试信息的方法和装置 |
CN101398744A (zh) * | 2007-09-26 | 2009-04-01 | 新奥特硅谷视频技术有限责任公司 | 利用虚拟文件系统技术实现网络数据处理的方法及系统 |
CN101256524A (zh) * | 2007-12-17 | 2008-09-03 | 浪潮电子信息产业股份有限公司 | 一种保持文件系统缓存一致性的方法 |
CN101609419A (zh) * | 2009-06-29 | 2009-12-23 | 北京航空航天大学 | 虚拟机持续在线迁移的数据备份方法及装置 |
CN101727298A (zh) * | 2009-11-04 | 2010-06-09 | 北京东方广视科技股份有限公司 | 实现独立磁盘冗余阵列的方法和装置 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9336036B2 (en) | 2011-03-31 | 2016-05-10 | Intel Corporation | System method for memory virtualization control logic for translating virtual memory in space of guest memory based on translated codes in response to memory failure |
WO2012129729A1 (en) * | 2011-03-31 | 2012-10-04 | Intel Corporation | Memory mirroring and redundancy generation for high availability |
CN103597451A (zh) * | 2011-03-31 | 2014-02-19 | 英特尔公司 | 用于高可用性的存储器镜像和冗余生成 |
CN103597451B (zh) * | 2011-03-31 | 2017-06-13 | 英特尔公司 | 用于高可用性的存储器镜像和冗余生成 |
CN104040515A (zh) * | 2011-09-30 | 2014-09-10 | 英特尔公司 | 在逻辑驱动器模型下呈现直接存取的存储设备 |
US11604746B2 (en) | 2011-09-30 | 2023-03-14 | Sk Hynix Nand Product Solutions Corp. | Presentation of direct accessed storage under a logical drive model |
CN102591746B (zh) * | 2011-12-29 | 2014-01-08 | 华为数字技术(成都)有限公司 | 数据重构方法和存储设备 |
CN102591746A (zh) * | 2011-12-29 | 2012-07-18 | 成都市华为赛门铁克科技有限公司 | 数据重构方法和存储设备 |
CN103534688A (zh) * | 2013-05-29 | 2014-01-22 | 华为技术有限公司 | 数据恢复方法、存储设备和存储系统 |
CN103534688B (zh) * | 2013-05-29 | 2016-03-09 | 华为技术有限公司 | 数据恢复方法、存储设备和存储系统 |
CN104281499A (zh) * | 2014-10-28 | 2015-01-14 | 苏州工业职业技术学院 | 基于奇偶校验的raid条带镜像数据分布方法 |
CN104281499B (zh) * | 2014-10-28 | 2017-10-13 | 苏州工业职业技术学院 | 基于奇偶校验的raid条带镜像数据分布方法 |
CN104714758B (zh) * | 2015-01-19 | 2017-07-07 | 华中科技大学 | 一种基于校验raid加入镜像结构的阵列构建方法及读写系统 |
CN104714758A (zh) * | 2015-01-19 | 2015-06-17 | 华中科技大学 | 一种基于校验raid加入镜像结构的阵列构建方法及读写系统 |
CN104731527A (zh) * | 2015-03-17 | 2015-06-24 | 中国科学院计算技术研究所 | 一种三条带状态转换方法 |
CN104731526A (zh) * | 2015-03-17 | 2015-06-24 | 中国科学院计算技术研究所 | 一种不满条带写的方法及装置 |
CN104731526B (zh) * | 2015-03-17 | 2017-11-03 | 中国科学院计算技术研究所 | 一种不满条带写的方法及装置 |
CN105068894A (zh) * | 2015-09-10 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 基于LVM镜像实现Linux系统存储设备高可用的方法和装置 |
US10528256B2 (en) | 2017-05-24 | 2020-01-07 | International Business Machines Corporation | Processing a space release command to free release space in a consistency group |
WO2018215929A1 (en) * | 2017-05-24 | 2018-11-29 | International Business Machines Corporation | Processing a space release command in a computer system |
GB2577022A (en) * | 2017-05-24 | 2020-03-11 | Ibm | Processing a space release command in a computer system |
GB2577022B (en) * | 2017-05-24 | 2020-08-12 | Ibm | Processing a space release command in a computer system |
US11079935B2 (en) | 2017-05-24 | 2021-08-03 | International Business Machines Corporation | Processing a space release command to free release space in a consistency group |
CN107229536A (zh) * | 2017-05-27 | 2017-10-03 | 郑州云海信息技术有限公司 | 一种用于终端设备的启动方法和系统 |
CN107577561A (zh) * | 2017-09-14 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种数据恢复方法、装置、设备及计算机可读存储介质 |
CN109347655A (zh) * | 2018-09-11 | 2019-02-15 | 上海天旦网络科技发展有限公司 | 基于网络数据的故障恢复系统和方法及存储介质 |
CN109347655B (zh) * | 2018-09-11 | 2022-03-01 | 上海天旦网络科技发展有限公司 | 基于网络数据的故障恢复系统和方法及存储介质 |
CN111240884A (zh) * | 2019-12-25 | 2020-06-05 | 上海亮牛半导体科技有限公司 | Efuse的纠错方法 |
CN111240884B (zh) * | 2019-12-25 | 2024-06-07 | 上海亮牛半导体科技有限公司 | Efuse的纠错方法 |
CN115543216A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 磁盘阵列分布架构、分块计算方法、系统、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101866307A (zh) | 一种基于镜像技术的数据存储方法及装置 | |
CN101916173B (zh) | 一种基于raid的数据读写方法及其系统 | |
CN103064765B (zh) | 数据恢复方法、装置及集群存储系统 | |
US7739544B2 (en) | Disk array system and rebuild method thereof | |
CN104035830B (zh) | 一种数据恢复方法和装置 | |
US9442802B2 (en) | Data access methods and storage subsystems thereof | |
US7809979B2 (en) | Storage control apparatus and method | |
CN101620518B (zh) | 一种磁盘冗余阵列raid的创建方法及装置 | |
CN103534688B (zh) | 数据恢复方法、存储设备和存储系统 | |
US7694171B2 (en) | Raid5 error recovery logic | |
US20090198885A1 (en) | System and methods for host software stripe management in a striped storage subsystem | |
CN102207895B (zh) | 一种独立磁盘冗余阵列数据重建方法和装置 | |
CN101620517B (zh) | 数据写入方法和装置 | |
WO2012140695A1 (en) | Storage control apparatus and error correction method | |
CN104484251A (zh) | 一种硬盘故障的处理方法及装置 | |
CN104166601B (zh) | 一种存储数据的备份方法和装置 | |
CN102722340A (zh) | 数据处理方法、装置及系统 | |
US20080091916A1 (en) | Methods for data capacity expansion and data storage systems | |
CN102024059A (zh) | 一种文件系统内实现独立磁盘冗余阵列保护的方法及装置 | |
CN106033320B (zh) | 高性能廉价磁盘冗余阵列raid机制的处理方法及装置 | |
CN110187830A (zh) | 一种加速磁盘阵列重建的方法及系统 | |
CN103699457A (zh) | 基于条带化的磁盘阵列修复方法及装置 | |
US10067833B2 (en) | Storage system | |
CN108733326B (zh) | 一种磁盘处理方法及装置 | |
CN101630281B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20101020 |