CN109871186A - 面向可重组raid的多目标快速重构系统 - Google Patents
面向可重组raid的多目标快速重构系统 Download PDFInfo
- Publication number
- CN109871186A CN109871186A CN201910184633.5A CN201910184633A CN109871186A CN 109871186 A CN109871186 A CN 109871186A CN 201910184633 A CN201910184633 A CN 201910184633A CN 109871186 A CN109871186 A CN 109871186A
- Authority
- CN
- China
- Prior art keywords
- data
- disk
- dynamic
- static
- raid
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种面向可重组RAID的多目标快速重构系统,属于数据重构技术领域。本发明在分析传统RAID重构机制存在的弊端基础上,设计了一种面向可重组RAID的多目标快速重构系统,充分利用了浮动RAID调度机制中条带可动态重组的特性,在进行数据重构时以条带为单位通过选择多个目标盘并行重构来缩短RAID重构时间,降低了重构期间因再次坏盘而彻底丢失数据的风险,提升了可重组RAID的使用效率。
Description
技术领域
本发明属于数据重构技术领域,具体涉及一种面向可重组RAID的多目快速重构系统。
背景技术
传统RAID技术在一块磁盘出现故障的情况下依然能够保证数据的完整性。当使用新盘(目标盘)替换故障盘时,RAID会进行数据重构,即在读取所有成员盘数据的基础上计算出重构数据并写入目标盘,因此,目标盘的写带宽直接决定了系统数据重构的速度。但是,近年来随着磁盘容量的快速增长,磁盘读写速度受磁盘转速等多方面影响却增长缓慢,已经无法满足存储系统对重构时间的要求。以一块2TB 7.2k rpm磁盘为例,在一次重构过程中磁盘平均写入带宽为30MB/s,完成重构的时间长达18小时。漫长的重构时间同时也加大了重构期间因再次坏盘而彻底丢失数据的风险。
可重组RAID是为了克服传统RAID机制的“小写”性能差、校验块更新频率高等问题而提出的面向闪存的数据容错技术,适用于混合/全闪存阵列存储系统中,能够实现不同固态盘之间的磨损均衡,提升阵列系统的性能和使用寿命。
当前,RAID1和RAID5是存储阵列中应用最为广泛的数据容错技术。RAID1称为磁盘镜像,原理是把一个硬盘上的数据镜像拷贝到另一个硬盘上,即数据在写入一块硬盘的同时,会在另一块闲置的硬盘上生成镜像文件,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以一半数量的硬盘发生故障时系统仍然可以继续使用。当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像硬盘读写数据,在进行数据重构时,可将剩余成员盘上的数据拷贝到备用盘即可,如图1所示。
RAID5将数据以块为单位分布到各个硬盘上。RAID5不对数据进行备份,而是把数据及其对应的奇偶校验信息存储到各成员盘上,并且奇偶校验信息和相对应的数据分别存储在不同的硬盘上。当RAID5的一个成员盘损坏后,可利用剩下的数据和相应的奇偶校验信息来恢复被损坏的数据,如图2所示。
从上述重构过程可以看出,传统RAID1和RAID5在进行重构时均是选择一块备用盘进行数据恢复操作,备用盘的写带宽直接决定了系统数据重构的速度,在对数据安全需求很高的环境下,这样的重构速度显然不符合预期效果,甚至可能产生很严重的数据丢失,对企业或研究部门带来无法预估的后果。
为了提升可重组RAID的使用效率,同时克服传统RAID重构时存在的各种弊端,需要面向可重组RAID设计一种快速重构机制。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何面向可重组RAID设计一种多目标快速重构系统。
(二)技术方案
为了解决上述技术问题,本发明提供了一种面向可重组RAID的多目标快速重构系统,包括:
双盘选择模块,用于选择两个备用盘用于进行重构;
双盘设置模块,用于触发数据重构线程,进行动、静态盘设置;
数据重构模块,用于在进行双盘重构时,将元数据的优先重构出来,再采用多线程将RAID中剩余数据按照1:1的比例分别重构到静态备用盘和动态备用盘上;
数据迁移模块,用于在重构完成后,进行数据迁移。
优选地,所述双盘设置模块具体进行动、静态盘设置时,利用RAID状态检测函数调用成员盘移除函数将故障盘从RAID中剔除,此时相应的成员盘为空,两次调成员盘增加函数,分别添加动态盘和静态盘到RAID中,并设置相应的标志为动态和静态,分别对应静态盘和动态盘。
优选地,所述数据重构模块将元数据的优先重构出来具体是进行预留空间重构;预留空间是指存储元数据信息的区域,当剔除了故障盘,并添加了备用盘后,RAID状态检测函数调用数据同步线程开启数据修复过程,数据同步线程首先确定预留空间的重构范围,下发预留空间的修复请求至下级同步请求处理函数,实现通过读取其它在线成员盘的数据,采用异或操作获取修复的数据,由于预留空间的数据都默认重构到静态盘,因此直接将修复的数据写到静态盘,待元数据重构完成后,再进行数据重构。
优选地,所述数据重构模块采用多线程将RAID中剩余数据按照1:1的比例分别重构到静态备用盘和动态备用盘上,即执行动、静态重构线程的过程具体为:
利用静态重构线程和动态重构线程分别将前半部分的数据和后半部分的数据重构静态盘和动态盘中;并在同步请求处理函数增加相应参数,用来表示下发的条带数据是重构到静态盘还是动态盘,此外,在条带数据的数据结构中也增加相应属性,用于表示条带重构盘的动静态性,当下发的请求数据所在扇区对应的条带需重构到静态盘时,将条带设置为静态条带;当下发的请求数据所在扇区对应的条带需重构到动态盘时,将条带设置为动态条带,然后再调用静态重构线程和动态重构线程提交条带处理函数进行处理。
优选地,所述数据重构模块利用所述条带处理函数进行条带处理具体为:
得到所述修复的数据后,依据数据对应条带的动静态特性,将其分别写到动态盘和静态盘,在条带处理函数中,依据条带的动静态特性值,设置bio请求的设备属性;如果是动态条带,将bio设备设置为动态盘,并递增动态盘的条带重构数目;如果是静态条带,将bio设备设置为静态盘;
设置完bio的设备属性,根据扇区号对条带位图的相应位进行设置,用于记录后半部分数据保存在动态盘还是静态盘中,当数据在保存动态盘时,将对应位图置为1;
然后将bio请求下发给相应的盘,在条带处理的回调函数中,根据条带的动静态特性,获取相应的设备;
自此,恢复后得到的数据就成功下发到相应盘中,当重构完,设置为重构完成状态。
优选地,还包括同步线程回收模块,用于
数据重构结束后,系统调用同步线程回收函数对动、静重构线程线程进行回收,并激活静、动态盘,设置静、动态盘为成员盘,同时清除raid重构状态。
优选地,数据迁移模块在数据再次更新时进行数据迁移。
优选地,数据迁移模块在数据再次更新时进行数据迁移具体为:当有新的写请求到来时,将数据都写到静态盘,如果写请求是针对后半部分的数据,并且位图中相应的位为1,还要将相应的位清0,表示数据已经从动态盘迁移到了静态盘上,同时递减动态盘上的数据数目,当动态盘上的数据数目为0时,说明动态盘上的数据已经全部都迁移到了静态盘上,此时将动态盘从RAID中剔除,让其重新变为备用盘。
优选地,数据迁移模块在数据再次更新时进行数据迁移具体为:当有新的读请求到来,如果是涉及元数据或者前半部分的数据,则直接从静态盘中读取,如果是涉及后半部分的数据,根据位图中相应的位来确定数据所在盘,如果相应位为1,从动态盘读取;如果为0,从静态盘读取。
(三)有益效果
本发明在分析传统RAID重构机制存在的弊端基础上,设计了一种面向可重组RAID的多目标快速重构系统,充分利用了浮动RAID调度机制中条带可动态重组的特性,在进行数据重构时以条带为单位通过选择多个目标盘并行重构来缩短RAID重构时间,降低了重构期间因再次坏盘而彻底丢失数据的风险,提升了可重组RAID的使用效率。
附图说明
图1是RAID1重构示意图;
图2是RAID5重构示意图;
图3是本发明的重构原理图;
图4是本发明的重构系统原理图;
图5是本发明的系统结构框图;
图6是本发明的动静态盘设置原理图;
图7是本发明中预留空间重构原理图;
图8是本发明中动静态重构线程示意图;
图9是本发明中位图组织示意图;
图10是本发明重构完成后各盘状态示意图;
图11是本发明中数据迁移原理图;
图12是本发明中数据迁移流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为了实现系统数据的快速重构,本发明在分析传统RAID重构机制存在的弊端基础上,面向可重组RAID设计了一种多目标快速重构系统,该系统包括:
双盘选择模块,用于选择两个备用盘用于进行重构,如图3所示;
双盘设置模块,用于触发数据重构线程,进行动、静态盘设置;
数据重构模块,用于进行数据重构;
在进行双盘重构时,由于RAID元数据的重要性,需要将元数据的优先重构出来,再采用多线程将RAID中剩余数据按照1:1的比例分别重构到静态备用盘和动态备用盘上,以加快重构速度,为了实时获取后半部分数据所在的位置,利用位图来记录后半数据部分所在的盘,当重构到动态盘时,将位图中相应位置置为1;
数据迁移模块,用于在重构完成后,进行数据迁移。
整个数据重构原理、系统结构框图如图4、图5所示。
进行动、静态盘设置时,
在数据重构初始阶段,RAID状态检测函数会调用成员盘移除函数将故障盘从RAID中剔除,此时相应的成员盘为空。由于RAID中有两个备用盘,会两次调成员盘增加函数,分别添加动态盘和静态盘到RAID中,并设置相应的标志为动态和静态,分别对应静态盘和动态盘,如图6所示。
数据重构模块中将元数据的优先重构出来具体是进行预留空间重构;
预留空间是指存储元数据信息的区域。当剔除了故障盘,并添加了备用盘后,RAID状态检测函数会调用数据同步线程开启数据修复过程。数据同步线程首先确定预留空间的重构范围,下发预留空间的修复请求至下级同步请求处理函数,实现通过读取其它在线成员盘的数据,采用异或操作获取修复的数据。由于预留空间的数据都默认重构到静态盘,因此直接将修复的数据写到静态盘,如图7所示。待元数据重构完成后,再进行数据重构。
数据重构模块中采用多线程将RAID中剩余数据按照1:1的比例分别重构到静态备用盘和动态备用盘上,即执行动、静态重构线程具体为:
静态重构线程和动态重构线程分别将前半部分的数据和后半部分的数据重构静态盘和动态盘中,如图8所示。
为了在底层标识数据要重构到的盘的动静态属性,在同步请求处理函数增加相应参数,用来表示下发的条带数据是重构到静态盘还是动态盘。
此外,在条带数据的数据结构中也增加了相应属性,用于表示条带重构盘的动静态性。当下发的请求数据所在扇区对应的条带需重构到静态盘时,将条带设置为静态条带;当下发的请求数据所在扇区对应的条带需重构到动态盘时,将条带设置为动态条带,然后再提交条带处理函数(调用静态重构线程和动态重构线程)进行处理。
利用所述条带处理函数进行条带处理具体为:
得到所述修复的数据后,依据数据对应条带的动静态特性,将其分别写到动态盘和静态盘。在条带处理函数中,依据条带的动静态特性值,设置bio请求的设备属性;如果是动态条带,将bio设备设置为动态盘,并递增动态盘的条带重构数目;如果是静态条带,将bio设备设置为静态盘。
设置完bio的设备属性,根据扇区号还要对条带位图的相应位进行设置,用于记录后半部分数据保存在动态盘还是静态盘中。当数据在保存动态盘时,需要将对应位图置为1,位图的组织形式如图9所示。
然后将bio请求下发给相应的盘,在条带处理的回调函数中,根据条带的动静态特性,获取相应的设备。
自此,恢复后得到的数据就成功下发到相应盘中。当重构完,设置为重构完成状态。
系统还包括同步线程回收模块,用于:
数据重构结束后,系统调用同步线程回收函数对同步(动、静重构线程)线程进行回收,并激活静、动态盘,设置静、动态盘为成员盘,如图10所示,同时清除raid重构状态。
数据迁移模块中具体进行数据迁移的方式为:
由于重构操作结束后数据分别存储在动态盘和静态盘上,因此需要选择合适的时机对数据进行合并。如果直接从动态盘中拷贝到静态盘,效率会很低。因此,选择在数据再次更新时进行迁移。
当有新的写请求到来时,将数据都写到静态盘,如果写请求是针对后半部分的数据,并且位图中相应的位为1,还要将相应的位清0,表示数据已经从动态盘迁移到了静态盘上,同时还要递减动态盘上的数据数目。当动态盘上的数据数目为0时,说明动态盘上的数据已经全部都迁移到了静态盘上,此时可以将动态盘从RAID中剔除,让其重新变为备用盘。
当有新的读请求到来,如果是涉及元数据或者前半部分的数据,则直接从静态盘中读取。如果是涉及后半部分的数据,需要根据位图中相应的位来确定数据所在盘,如果相应位为1,需要从动态盘读取;如果为0,从静态盘读取。
数据迁移原理如图11、图12所示。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (9)
1.一种面向可重组RAID的多目标快速重构系统,其特征在于,包括:
双盘选择模块,用于选择两个备用盘用于进行重构;
双盘设置模块,用于触发数据重构线程,进行动、静态盘设置;
数据重构模块,用于在进行双盘重构时,将元数据的优先重构出来,再采用多线程将RAID中剩余数据按照1:1的比例分别重构到静态备用盘和动态备用盘上;
数据迁移模块,用于在重构完成后,进行数据迁移。
2.如权利要求1所述的系统,其特征在于,所述双盘设置模块具体进行动、静态盘设置时,利用RAID状态检测函数调用成员盘移除函数将故障盘从RAID中剔除,此时相应的成员盘为空,两次调成员盘增加函数,分别添加动态盘和静态盘到RAID中,并设置相应的标志为动态和静态,分别对应静态盘和动态盘。
3.如权利要求1所述的系统,其特征在于,所述数据重构模块将元数据的优先重构出来具体是进行预留空间重构;预留空间是指存储元数据信息的区域,当剔除了故障盘,并添加了备用盘后,RAID状态检测函数调用数据同步线程开启数据修复过程,数据同步线程首先确定预留空间的重构范围,下发预留空间的修复请求至下级同步请求处理函数,实现通过读取其它在线成员盘的数据,采用异或操作获取修复的数据,由于预留空间的数据都默认重构到静态盘,因此直接将修复的数据写到静态盘,待元数据重构完成后,再进行数据重构。
4.如权利要求3所述的系统,其特征在于,所述数据重构模块采用多线程将RAID中剩余数据按照1:1的比例分别重构到静态备用盘和动态备用盘上,即执行动、静态重构线程的过程具体为:
利用静态重构线程和动态重构线程分别将前半部分的数据和后半部分的数据重构静态盘和动态盘中;并在同步请求处理函数增加相应参数,用来表示下发的条带数据是重构到静态盘还是动态盘,此外,在条带数据的数据结构中也增加相应属性,用于表示条带重构盘的动静态性,当下发的请求数据所在扇区对应的条带需重构到静态盘时,将条带设置为静态条带;当下发的请求数据所在扇区对应的条带需重构到动态盘时,将条带设置为动态条带,然后再调用静态重构线程和动态重构线程提交条带处理函数进行处理。
5.如权利要求4所述的系统,其特征在于,所述数据重构模块利用所述条带处理函数进行条带处理具体为:
得到所述修复的数据后,依据数据对应条带的动静态特性,将其分别写到动态盘和静态盘,在条带处理函数中,依据条带的动静态特性值,设置bio请求的设备属性;如果是动态条带,将bio设备设置为动态盘,并递增动态盘的条带重构数目;如果是静态条带,将bio设备设置为静态盘;
设置完bio的设备属性,根据扇区号对条带位图的相应位进行设置,用于记录后半部分数据保存在动态盘还是静态盘中,当数据在保存动态盘时,将对应位图置为1;
然后将bio请求下发给相应的盘,在条带处理的回调函数中,根据条带的动静态特性,获取相应的设备;
自此,恢复后得到的数据就成功下发到相应盘中,当重构完,设置为重构完成状态。
6.如权利要求1所述的系统,其特征在于,所述系统还包括同步线程回收模块,用于:
数据重构结束后,系统调用同步线程回收函数对动、静重构线程线程进行回收,并激活静、动态盘,设置静、动态盘为成员盘,同时清除raid重构状态。
7.如权利要求1所述的系统,其特征在于,数据迁移模块在数据再次更新时进行数据迁移。
8.如权利要求7所述的系统,其特征在于,数据迁移模块在数据再次更新时进行数据迁移具体为:当有新的写请求到来时,将数据都写到静态盘,如果写请求是针对后半部分的数据,并且位图中相应的位为1,还要将相应的位清0,表示数据已经从动态盘迁移到了静态盘上,同时递减动态盘上的数据数目,当动态盘上的数据数目为0时,说明动态盘上的数据已经全部都迁移到了静态盘上,此时将动态盘从RAID中剔除,让其重新变为备用盘。
9.如权利要求7所述的系统,其特征在于,数据迁移模块在数据再次更新时进行数据迁移具体为:当有新的读请求到来,如果是涉及元数据或者前半部分的数据,则直接从静态盘中读取,如果是涉及后半部分的数据,根据位图中相应的位来确定数据所在盘,如果相应位为1,从动态盘读取;如果为0,从静态盘读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910184633.5A CN109871186B (zh) | 2019-03-12 | 2019-03-12 | 面向可重组raid的多目标快速重构系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910184633.5A CN109871186B (zh) | 2019-03-12 | 2019-03-12 | 面向可重组raid的多目标快速重构系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109871186A true CN109871186A (zh) | 2019-06-11 |
CN109871186B CN109871186B (zh) | 2021-12-07 |
Family
ID=66920358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910184633.5A Active CN109871186B (zh) | 2019-03-12 | 2019-03-12 | 面向可重组raid的多目标快速重构系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871186B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050102552A1 (en) * | 2002-08-19 | 2005-05-12 | Robert Horn | Method of controlling the system performance and reliability impact of hard disk drive rebuild |
CN101923501A (zh) * | 2010-07-30 | 2010-12-22 | 华中科技大学 | 一种磁盘阵列多级容错方法 |
CN103049400A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 一种磁盘重构方法及其装置 |
CN107122269A (zh) * | 2016-02-25 | 2017-09-01 | 伊姆西公司 | 用于保证映射独立磁盘冗余阵列的可靠性的方法和装置 |
CN107526531A (zh) * | 2016-06-21 | 2017-12-29 | 伊姆西公司 | 为映射独立盘冗余阵列(raid)选择raid级别的方法和设备 |
CN108228086A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | Raid重建的方法和设备 |
-
2019
- 2019-03-12 CN CN201910184633.5A patent/CN109871186B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050102552A1 (en) * | 2002-08-19 | 2005-05-12 | Robert Horn | Method of controlling the system performance and reliability impact of hard disk drive rebuild |
CN101923501A (zh) * | 2010-07-30 | 2010-12-22 | 华中科技大学 | 一种磁盘阵列多级容错方法 |
CN103049400A (zh) * | 2012-12-27 | 2013-04-17 | 华为技术有限公司 | 一种磁盘重构方法及其装置 |
CN107122269A (zh) * | 2016-02-25 | 2017-09-01 | 伊姆西公司 | 用于保证映射独立磁盘冗余阵列的可靠性的方法和装置 |
CN107526531A (zh) * | 2016-06-21 | 2017-12-29 | 伊姆西公司 | 为映射独立盘冗余阵列(raid)选择raid级别的方法和设备 |
CN108228086A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | Raid重建的方法和设备 |
Non-Patent Citations (1)
Title |
---|
王继彬: "磁盘阵列快速重构,扩容及性能优化研究", 《万方数据》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109871186B (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943867B (zh) | 支持异构存储的高性能层次化存储系统 | |
CN103823728B (zh) | 一种独立冗余磁盘阵列智能重建的方法 | |
US8726070B2 (en) | System and method for information handling system redundant storage rebuild | |
KR101910840B1 (ko) | 동적 그래뉼기반 매개 스토리지 | |
US20060010290A1 (en) | Logical disk management method and apparatus | |
US20070088990A1 (en) | System and method for reduction of rebuild time in raid systems through implementation of striped hot spare drives | |
US8201001B2 (en) | Method for optimizing performance and power usage in an archival storage system by utilizing massive array of independent disks (MAID) techniques and controlled replication under scalable hashing (CRUSH) | |
US9792941B2 (en) | Method and system for data replication | |
CN106547641A (zh) | 一种基于卷的cdp备份方法 | |
CN104615381B (zh) | 一种视频监控系统的磁盘冗余阵列 | |
JP4261532B2 (ja) | 論理ディスク管理方法及び仮想化装置 | |
CN107678690A (zh) | 一种固态硬盘及其冗余独立磁盘阵列的实现方法 | |
CN108958656A (zh) | 基于raid5固态硬盘阵列的动态条带系统设计方法 | |
CN105988727A (zh) | 一种基于raid的存储方法和存储装置 | |
Yan et al. | An Effective RAID Data Layout for Object‐Based De‐duplication Backup System | |
CN104461388A (zh) | 一种存储阵列配置保存及仲裁方法 | |
CN101727298A (zh) | 实现独立磁盘冗余阵列的方法和装置 | |
CN112379825B (zh) | 基于数据特征分池的分布式数据存储方法及装置 | |
CN109542842A (zh) | 一种兼容fat32文件系统的视频顺序存储和查询方法及其装置 | |
US7702864B2 (en) | Apparatus, system, and method for writing stripes in parallel to unique persistent storage devices | |
CN104572374B (zh) | 存储的处理方法、装置和存储设备 | |
CN107728943B (zh) | 一种延迟产生校验光盘的方法及其对应的数据恢复方法 | |
CN109871186A (zh) | 面向可重组raid的多目标快速重构系统 | |
CN109885263A (zh) | 面向可重组raid的多目标快速重构方法 | |
CN101794246A (zh) | 备份存储系统、备份系统及数据备份方法和恢复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |