基于raid算法的重建方法及装置的制造方法

文档序号:8282159阅读:353来源:国知局
基于raid算法的重建方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体涉及基于RAID算法的重建方法及装置。
【背景技术】
[0002]磁盘阵列(RedundantArrays of independent Disks,简称 RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。在数据重构时,将数据经计算后重新置入新硬盘中。
[0003]在传统RAID中,由于每一个算法内部的原理不同,因此往往是在具体算法中提供重建方法,由具体的某个算法模块产生重建线程。
[0004]传统的重建方法,需要每一种算法都各自实现重建方法,这样不仅产生了大量复杂难以维护的代码,增加了维护风险,而且也使得算法外部无法对重建进行干预,在状态发生变化时无法有效迅速的切换种植或启动重建线程。

【发明内容】

[0005]针对现有技术的缺陷,本发明提供一种基于RAID的重建方法及装置,通过独立于RAID算法之外的重建线程,使得RAID算法中关于重建的过程得到高度抽象,并能够被RAID结构收到的事件干预,简化了 RAID各算法的实现过程,令整个系统更容易维护。
[0006]第一方面,本发明提供了一种基于RAID算法的重建方法,所述方法包括:
[0007]当进行数据重建时,获取需要重建的条带的条带锁,读取所述条带的数据;
[0008]根据读取的所述数据构造并写需要重建的盘的数据。
[0009]优选地,所述当进行数据重建时,获取条带的条带锁,读取所述条带的数据的步骤前,所述方法还包括:
[0010]判断磁盘阵列RAID是否有效,若有效,则读取条带的数据,否则停止重建线程。
[0011]优选地,所述将读取的所述数据写入故障盘的位置的步骤后,所述方法还包括:
[0012]在RAID的位图bitmap中标记所述条带的重建已完成。
[0013]优选地,所述读取所述条带的数据,包括:
[0014]构造读1读取所述条带的数据。
[0015]优选地,所述根据读取的所述数据构造并写需要重建的盘的数据,包括:
[0016]根据读取的所述数据构造回调函数,将所述数据写入需要重建的盘。
[0017]第二方面,本发明提供了一种基于RAID算法的重建装置,所述装置包括:
[0018]读模块,用于当进行数据重建时,获取需要重建的条带的条带锁,读取所述条带的数据;
[0019]写模块,用于根据读取的所述数据构造并写需要重建的盘的数据。
[0020]优选地,所述装置还包括:
[0021]判定模块,用于判断磁盘阵列RAID是否有效,若有效,则读取条带的数据,否则停止重建线程。
[0022]优选地,所述装置还包括:
[0023]标记模块,用于在RAID的位图bitmap中标记所述条带的重建已完成。
[0024]优选地,所述读模块,具体用于:
[0025]构造读1读取所述条带的数据。
[0026]优选地,所述写模块,具体用于:
[0027]根据读取的所述数据构造回调函数,将所述数据写入需要重建的盘。
[0028]由上述技术方案可知,本发明提供一种基于RAID的重建方法及装置,通过独立于RAID算法之外的重建线程,使得RAID算法中关于重建的过程得到高度抽象,并能够被RAID结构收到的事件干预,简化了 RAID各算法的实现过程,令整个系统更容易维护。
【附图说明】
[0029]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
[0030]图1是本发明一实施例提供的基于RAID算法的重建方法的流程示意图;
[0031]图2是本发明另一实施例提供的基于RAID算法的重建方法的流程示意图;
[0032]图3是本发明一实施例提供的基于RAID算法的重建装置的结构示意图。
【具体实施方式】
[0033]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034]如图1所示,图1示出了本发明一实施例提供的基于RAID算法的重建方法的流程图,该方法包括如下步骤:
[0035]101、当进行数据重建时,获取需要重建的条带的条带锁,读取所述条带的数据。
[0036]其中,构造读1读取所述条带的数据。
[0037]102、根据读取的所述数据构造并写需要重建的盘的数据。
[0038]其中,根据读取的所述数据构造回调函数,将所述数据写入需要重建的盘。
[0039]可选地,步骤101之前还包括:判断磁盘阵列RAID是否有效,若有效,则读取条带的数据,否则停止重建线程。
[0040]可选地,步骤102之后还包括:在RAID的位图bitmap中标记所述条带的重建已完成。
[0041]具体来说,RAID算法中重建的目的在于,当RAID因为模块盘的拔出或者损坏处于降级状态后,由于磁盘的插入或者热备盘的进入,使得RAID进入重建状态,在此状态下,为了保证RAID组中的数据盘与校验盘的信息正确,需要保证曾经掉出磁盘的位置的数据被重新写入。
[0042]事实上对于每一种重建线程而言,若以条带为单位,重建过程可以归结为读取磁盘上的信息,和写入曾经出故障的盘的信息,两个步骤。本发明中,只需要RAID通用架构提供,加条带锁,和写曾经出故障的盘数据的回调函数就可以完成重建的过程。
[0043]本发明的具体工作流程:
[0044]每次开始重建的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1