CN100576181C - 一种磁盘阵列的数据重建方法 - Google Patents

一种磁盘阵列的数据重建方法 Download PDF

Info

Publication number
CN100576181C
CN100576181C CN200810047977A CN200810047977A CN100576181C CN 100576181 C CN100576181 C CN 100576181C CN 200810047977 A CN200810047977 A CN 200810047977A CN 200810047977 A CN200810047977 A CN 200810047977A CN 100576181 C CN100576181 C CN 100576181C
Authority
CN
China
Prior art keywords
disk array
disk
daily record
band
data
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.)
Expired - Fee Related
Application number
CN200810047977A
Other languages
English (en)
Other versions
CN101329641A (zh
Inventor
冯丹
陈俭喜
曾令仿
吴素贞
毛波
庞丽萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN200810047977A priority Critical patent/CN100576181C/zh
Publication of CN101329641A publication Critical patent/CN101329641A/zh
Application granted granted Critical
Publication of CN100576181C publication Critical patent/CN100576181C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种磁盘阵列的数据重建方法,属于计算机数据存储方法,解决现有的磁盘阵列数据重建方法需要时间过多、影响存储系统的读写性能和可靠性的问题。本发明磁盘阵列上设置主控模块、读写处理模块和重建模块,包括初始化、日志位图表更新、基于日志的重建和结束步骤。本发明通过实时监控磁盘阵列的磁盘空间使用情况来指导数据重建过程,重建未被访问的空间时只需向新加入磁盘中相应的数据块内全部写入0,大大减少了重建带来的物理磁盘访问次数,加快了重建速度并且减少用户访问响应时间;本发明并未改变重建流程或磁盘阵列数据分布方式,可以很方便地优化各种传统的磁盘阵列重建方法,适用于构造具有高性能,高可用性和高可靠性的存储系统。

Description

一种磁盘阵列的数据重建方法
技术领域
本发明属于计算机数据存储方法,具体涉及一种磁盘阵列的数据重建方法。
背景技术
随着计算机技术和网络通信技术的发展,信息化程度越来越高,人们对数据可靠性的要求也越来越高。磁盘阵列RAID(Redundant Array ofIndependent Disks)是可靠存储系统领域中的一个典型装置,同单个磁盘相比,磁盘阵列的性能、可用性和可靠性都有相当大的提高,其中,镜像、奇偶校验、热备份等都是磁盘阵列常用的容错技术。当磁盘阵列中某一个成员磁盘出现故障且加入新磁盘时,磁盘阵列能够自动切换到重建模式,重建进程在不中断应用服务的情况下连续将故障盘上的数据块重建到新加入的磁盘中,直到故障盘上所有的数据块都恢复到新加入的磁盘中,磁盘阵列返回到正常读写模式。由于当前的应用服务都要求所使用的存储子系统同时具有高性能、高可用性和高可靠性,应用程序不仅要求磁盘阵列在成员磁盘出现故障时能够重建故障盘上的数据,更重要的是其能够尽可能的减少重建时间来保证系统的可靠性,并且要尽可能的降低重建过程对系统性能的影响,因此磁盘阵列的数据重建方法至关重要。
近几年,随着计算机技术的不断发展,磁盘容量越来越大,而磁盘定位速度的增长却远远低于磁盘容量和带宽的增长速度。研究表明,磁盘容量以每年60%的速度增长,带宽每年增长40%,而磁盘的寻道时间和旋转等待延迟每年才减少8%。另外,还有研究显示,顺序地读取容量为1~10TB的磁盘上的所有内容需要5~15小时,而如果是随机地读取则需要15~150天。实验发现在I/O访问频繁时,对于磁盘阵列级别5,重建一个500GB的磁盘需要几天的时间。这些研究和实验都表明,随着磁盘容量的迅速增长和访问速度的缓慢提高,磁盘阵列的数据重建过程需要越来越多的时间,严重影响了基于磁盘阵列的存储系统的可靠性和可用性。
现有的Linux操作系统内核中磁盘阵列控制软件的数据重建方法,即使有大量的磁盘空间自磁盘阵列创建以来都没有被使用过,重建过程也都必须读取所有工作盘上的数据块,计算校验后将结果写入新加入的磁盘中,如此一来,重建过程需要过多的时间,影响了存储系统的读写性能和可靠性。
发明内容
本发明提出一种磁盘阵列的数据重建方法,解决现有的磁盘阵列数据重建方法需要时间过多、影响存储系统的读写性能和可靠性的问题。
本发明的一种磁盘阵列的数据重建方法,磁盘阵列上设置主控模块、读写处理模块和重建模块,包括初始化、日志位图表更新、基于日志的重建和结束步骤;其特征在于:
(1)初始化步骤,顺序进行下述过程:
(1.1)根据用户指令,打开已有磁盘阵列或创建新磁盘阵列;
(1.2)主控模块创建该磁盘阵列的日志位图表,日志位图表的每一位对应磁盘阵列的一个条带;
(1.3)主控模块判断该磁盘阵列是否为创建的新磁盘阵列,是则转过程
(1.4),否则转过程(1.5);
(1.4)主控模块将其日志位图表中所有位均初始化为0,且将磁盘阵列中所有成员磁盘上的数据块全部初始化为0,进行步骤(2);
(1.5)主控模块读取存放于该磁盘阵列成员磁盘超级块中的日志位图表信息到内存中以便对其实时修改,进行步骤(2);
(2)日志位图表更新步骤,进行下述过程:
(2.1)该磁盘阵列等待上层命令,并判断其是否为写请求,是则转过程
(2.2),否则转过程(2.4);
(2.2)接收到写请求,读写处理模块将该写请求所对应磁盘阵列的条带在日志位图表中对应的位更新为1,标明该条带已被访问过;
(2.3)读写处理模块将该写请求发向底层磁盘设备,将写请求的数据写入磁盘阵列成员磁盘的正确位置,转过程(2.1);
(2.4)接收到读请求,读写处理模块将该读请求发向底层磁盘设备,从磁盘阵列成员磁盘的正确位置读取数据,转过程(2.1);
(3)基于日志的重建步骤,当主控模块发现磁盘阵列成员磁盘出现故障时,进行下述过程:
(3.1)重建模块判断磁盘阵列某一条带在日志位图表中对应的位是否为0,是则转过程(3.2),否则转过程(3.3);
(3.2)该条带从未被访问过,向新加入的替换磁盘中位于该条带的数据块内全部写入0,转过程(3.4);
(3.3)该条带已被访问过,读取所有工作盘上位于该条带的数据块,计算校验后将结果写入新加入的替换磁盘中位于该条带的数据块内,转过程(3.4);
(3.4)重复执行(3.1)--(3.3),直至磁盘阵列上所有条带都重建完毕;
(4)结束步骤,当用户发出指令关闭磁盘阵列时,进行下述过程:
(4.1)关闭磁盘阵列之前,主控模块将日志位图表保存到磁盘阵列各成员磁盘的超级块中;
(4.2)关闭该磁盘阵列设备,释放相关的资源。
本发明基于一个普遍存在的现象,即磁盘在刚开始使用时故障率较高,导致磁盘阵列的成员磁盘出现故障时磁盘阵列的空间利用率很低,磁盘阵列中有相当一部分的条带从未被访问过。本发明通过在块级实时监控磁盘阵列的磁盘空间使用情况来指导磁盘阵列的数据重建过程,重建未被访问的空间时只需向新加入的磁盘中相应的数据块内全部写入0,大大减少了重建带来的物理磁盘访问次数,从而加快了重建速度并且减少了用户访问的响应时间。另外,本发明仅仅改变了未使用空间的重建方法,并没有改变重建的流程或磁盘阵列的数据分布方法,故可以很方便地优化各种传统的磁盘阵列的重建方法,适用于构造具有高性能,高可用性和高可靠性的基于磁盘阵列的存储系统。
附图说明
图1为本发明示意图;
图2为本发明的初始化步骤过程示意图;
图3为本发明的日志位图表更新步骤过程示意图;
图4为本发明的基于日志的重建步骤过程示意图;
图5为本发明的结束步骤过程示意图;
图6为本发明的新磁盘阵列数据初始化示意图;
图7为本发明针对已被访问条带的磁盘阵列的数据重建示意图;
图8为本发明针对未被访问条带的磁盘阵列的数据重建示意图。
具体实施方式
下面以磁盘阵列级别5为例,结合附图对本发明进一步详细说明。
图1为本发明各步骤关系示意图:初始化步骤完成后进入日志位图表更新步骤,磁盘阵列成员磁盘出现故障时进入基于日志的重建步骤,当用户发出关闭指令时,进入结束步骤。
图2为本发明的初始化步骤过程示意图,进行下述操作:
根据用户指令,打开已有磁盘阵列或创建新磁盘阵列,主控模块创建该磁盘阵列的日志位图表,日志位图表的每一位对应磁盘阵列的一个条带;主控模块判断该磁盘阵列是否为创建的新磁盘阵列,是则将其日志位图表中所有位均初始化为0,且将磁盘阵列中所有成员磁盘上的数据块全部初始化为0,否则读取存放于该磁盘阵列成员磁盘超级块中的日志位图表信息到内存中以便对其实时修改。
图3为本发明的日志位图表更新步骤过程示意图,进行下述步骤:
当磁盘阵列收到请求时,首先判断该请求是否是写请求,是则读写处理模块将该写请求所对应磁盘阵列的条带在日志位图表中对应的位更新为1,标明该条带已被访问过,然后将该写请求发向底层磁盘设备,将写请求的数据写入磁盘阵列成员磁盘的正确位置,否则读写处理模块将该读请求发向底层磁盘设备,从磁盘阵列成员磁盘的正确位置读取数据。
图4为本发明的基于日志的重建步骤过程示意图,进行下述步骤:
重建模块判断磁盘阵列某一条带在日志位图表中对应的位是否为0,是则向新加入的替换磁盘中位于该条带的数据块内全部写入0,否则读取所有工作盘上位于该条带的数据块,计算校验后将结果写入新加入的替换磁盘中位于该条带的数据块内。上述步骤重复执行,直至该磁盘阵列上所有条带都重建完毕。
图5为本发明的结束步骤过程示意图:主控模块将日志位图表保存到磁盘阵列各成员磁盘的超级块中,然后关闭该磁盘阵列设备,释放相关的资源。
图6为本发明的新磁盘阵列数据初始化示意图:主控模块创建该新磁盘阵列的日志位图表并将其所有位均初始化为0,同时将磁盘阵列中所有成员磁盘上的数据块全部初始化为0。图6所示磁盘阵列包括4个成员磁盘,分别为磁盘1、磁盘2、磁盘3和磁盘4。D0、D1、…D11为磁盘阵列的数据块,含数据信息,P0-2为数据块D0、D1和D2的奇偶校验值,P3-5为数据块D3、D4和D5的奇偶校验值,P6-8为数据块D6、D7和D8的奇偶校验值,P9-11为数据块D9、D10和D11的奇偶校验值。日志位图表中每一位对应磁盘阵列的一个条带,如D0、D1、D2和P0-2为一个条带,依此类推。日志位图表的位为0时,表示其所对应的磁盘阵列的条带未被访问过,日志位图表的位为1时,表示其所对应的磁盘阵列的条带已被访问过。磁盘上的箭头及箭头旁边的0表示将磁盘阵列的中所有成员磁盘上的数据块全部初始化为0。
图7为本发明针对已被访问条带的磁盘阵列的数据重建示意图,进行下列操作:
读取所有工作盘上位于该条带的数据块,计算奇偶校验后将结果写入新加入的替换磁盘中位于该条带的数据块内,完成故障盘在该条带上的数据重建。如图7所示,磁盘3为故障盘,磁盘磁盘2和磁盘4为工作盘,最后一个盘为新加入的替换磁盘,符号表示计算奇偶校验,图中将D0、D1和P0-2计算奇偶校验后写入到D2中。
图8为本发明针对未被访问条带的磁盘阵列的数据重建示意图:向新加入的磁盘中位于该条带的数据块内全部写入0。图8所示箭头及箭头旁边的0表示对替换磁盘中未被访问的数据块发出写0命令。

Claims (1)

1.一种磁盘阵列的数据重建方法,磁盘阵列上设置主控模块、读写处理模块和重建模块,所述重建方法包括初始化、日志位图表更新、基于日志的重建和结束步骤;其特征在于:
(1)初始化步骤,顺序进行下述过程:
(1.1)根据用户指令,打开已有磁盘阵列或创建新磁盘阵列;
(1.2)主控模块创建该磁盘阵列的日志位图表,日志位图表的每一位对应磁盘阵列的一个条带;
(1.3)主控模块判断该磁盘阵列是否为创建的新磁盘阵列,是则转过程(1.4),否则转过程(1.5);
(1.4)主控模块将磁盘阵列的日志位图表中所有位均初始化为0,且将磁盘阵列中所有成员磁盘上的数据块全部初始化为0,进行步骤(2);
(1.5)主控模块读取存放于该磁盘阵列成员磁盘超级块中的日志位图表信息到内存中以便对其实时修改,进行步骤(2);
(2)日志位图表更新步骤,进行下述过程:
(2.1)主控模块判断用户是否发出指令关闭磁盘阵列,是则转步骤(4);否则主控模块判断磁盘阵列成员磁盘是否出现故障,是则同时进行步骤(3)和过程(2.2),否则转过程(2.2);
(2.2)该磁盘阵列等待上层命令,并判断其是否为写请求,是则转过程
(2.3),否则转过程(2.5);
(2.3)接收到写请求,读写处理模块将该写请求所对应磁盘阵列的条带在日志位图表中对应的位更新为1,标明该条带已被访问过;
(2.4)读写处理模块将该写请求发向底层磁盘设备,将写请求的数据写入磁盘阵列成员磁盘的正确位置,转过程(2.1);
(2.5)接收到读请求,读写处理模块将该读请求发向底层磁盘设备,从磁盘阵列成员磁盘的正确位置读取数据,转过程(2.1);
(3)基于日志的重建步骤,进行下述过程:
(3.1)重建模块判断磁盘阵列某一条带在日志位图表中对应的位是否为0,是则转过程(3.2),否则转过程(3.3);
(3.2)该条带从未被访问过,向新加入的替换磁盘中位于该条带的数据块内全部写入0,转过程(3.4);
(3.3)该条带已被访问过,读取所有工作盘上位于该条带的数据块,计算校验后将结果写入新加入的替换磁盘中位于该条带的数据块内,转过程(3.4);
(3.4)重复执行(3.1)--(3.3),直至磁盘阵列上所有条带都重建完毕;
(4)结束步骤,进行下述过程:
(4.1)关闭磁盘阵列之前,主控模块将日志位图表保存到磁盘阵列各成员磁盘的超级块中;
(4.2)关闭该磁盘阵列设备,释放相关的资源。
CN200810047977A 2008-06-11 2008-06-11 一种磁盘阵列的数据重建方法 Expired - Fee Related CN100576181C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810047977A CN100576181C (zh) 2008-06-11 2008-06-11 一种磁盘阵列的数据重建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810047977A CN100576181C (zh) 2008-06-11 2008-06-11 一种磁盘阵列的数据重建方法

Publications (2)

Publication Number Publication Date
CN101329641A CN101329641A (zh) 2008-12-24
CN100576181C true CN100576181C (zh) 2009-12-30

Family

ID=40205458

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810047977A Expired - Fee Related CN100576181C (zh) 2008-06-11 2008-06-11 一种磁盘阵列的数据重建方法

Country Status (1)

Country Link
CN (1) CN100576181C (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095765B2 (en) * 2009-03-04 2012-01-10 Micron Technology, Inc. Memory block management
CN101887386A (zh) * 2010-06-02 2010-11-17 深圳市迪菲特科技股份有限公司 一种磁盘阵列控制器故障处理方法及系统
CN101997919B (zh) * 2010-11-16 2013-06-12 杭州宏杉科技有限公司 一种存储资源的管理方法及管理装置
CN102306128B (zh) * 2011-09-16 2013-11-20 北京星网锐捷网络技术有限公司 磁盘管理方法、装置及网络设备
CN102521074B (zh) * 2011-12-01 2013-10-16 浪潮电子信息产业股份有限公司 一种加快raid5恢复的方法
US20160217040A1 (en) * 2013-08-27 2016-07-28 Agency For Science, Technology And Research Raid parity stripe reconstruction
CN104199623B (zh) * 2014-09-03 2016-04-06 创业软件股份有限公司 一种raid5重构中的数据源选择方法
CN104461394B (zh) * 2014-12-09 2018-11-13 华为技术有限公司 一种raid及从其读取数据的方法
CN104598336B (zh) * 2015-02-04 2018-04-24 深圳神州数码云科数据技术有限公司 基于raid算法的重建方法及装置
CN105302492A (zh) * 2015-11-18 2016-02-03 浙江大华技术股份有限公司 一种磁盘阵列raid重建方法及装置
CN105468301B (zh) * 2015-11-20 2018-11-13 浙江宇视科技有限公司 一种数据重建方法及装置
CN105549908A (zh) * 2015-12-14 2016-05-04 深圳市万拓存储技术有限公司 Raid磁盘阵列重新恢复冗余的方法
CN106354435B (zh) * 2016-08-31 2019-06-07 北京腾凌科技有限公司 Raid初始化的方法及装置
CN106648473B (zh) * 2016-12-30 2019-09-24 郑州云海信息技术有限公司 一种双控raid同步方法及装置
CN106844110A (zh) * 2017-02-09 2017-06-13 郑州云海信息技术有限公司 一种raid组中故障磁盘数据重建的方法
CN106990918A (zh) * 2017-03-03 2017-07-28 杭州宏杉科技股份有限公司 触发raid阵列重建的方法及装置
CN106959825B (zh) * 2017-03-21 2020-01-14 浙江宇视科技有限公司 基于raid磁盘阵列的数据读取方法及装置
CN107239233A (zh) * 2017-05-10 2017-10-10 杭州宏杉科技股份有限公司 一种磁盘阵列及基于其的数据重构方法和存储设备
CN107748650B (zh) * 2017-10-09 2020-07-03 暨南大学 一种网络编码集群存储系统中基于锁机制的数据重建策略
CN111831470B (zh) * 2019-04-18 2024-03-08 上海川源信息科技有限公司 磁盘阵列系统的数据还原方法
CN111158596A (zh) * 2019-12-28 2020-05-15 天地伟业技术有限公司 一种raid快速初始化方法
CN113360312A (zh) * 2021-06-24 2021-09-07 苏州浪潮智能科技有限公司 一种硬盘故障处理方法、装置、设备及存储介质
CN113625950B (zh) * 2021-06-30 2023-08-25 苏州浪潮智能科技有限公司 一种独立冗余磁盘阵列的初始化方法、系统、设备及介质

Also Published As

Publication number Publication date
CN101329641A (zh) 2008-12-24

Similar Documents

Publication Publication Date Title
CN100576181C (zh) 一种磁盘阵列的数据重建方法
CN101436149B (zh) 磁盘阵列数据重建方法
US8103825B2 (en) System and method for providing performance-enhanced rebuild of a solid-state drive (SSD) in a solid-state drive hard disk drive (SSD HDD) redundant array of inexpensive disks 1 (RAID 1) pair
US8706687B2 (en) Log driven storage controller with network persistent memory
TWI556104B (zh) 用以執行無原子元資料之電力故障安全快取的技術
TWI540436B (zh) 冗餘緩存數據的彈性緩存
US7730257B2 (en) Method and computer program product to increase I/O write performance in a redundant array
US7962783B2 (en) Preventing write corruption in a raid array
US20090327603A1 (en) System including solid state drives paired with hard disk drives in a RAID 1 configuration and a method for providing/implementing said system
CN105897859B (zh) 一种存储系统
CN101609420A (zh) 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器
CN103984642A (zh) 冗余辅助储存器缓存的重建
US8037332B2 (en) Quad-state power-saving virtual storage controller
CN101140542A (zh) 一种缩短写时拷贝快照写响应时间的方法
CN103019623A (zh) 存储盘处理方法及装置
CN106469119B (zh) 一种基于nvdimm的数据写缓存方法及其装置
CN102200949A (zh) 多控存储系统实现控制器故障保护的装置及方法
CN104484135A (zh) 一种快速数据读取方法及装置
CN111857540A (zh) 数据存取方法、装置和计算机程序产品
US8145839B2 (en) Raid—5 controller and accessing method with data stream distribution and aggregation operations based on the primitive data access block of storage devices
CN1987799A (zh) 一种适用于磁盘阵列的数据重建方法
CN2603974Y (zh) 磁盘高速缓存装置
CN117785026B (zh) 一种基于ssd raid-5系统高效写的缓存方法
CN101149946B (zh) 一种处理流媒体数据的方法
US7478269B2 (en) Method and computer program product of keeping configuration data history using duplicated ring buffers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091230

Termination date: 20200611

CF01 Termination of patent right due to non-payment of annual fee