RAID阵列磁盘暂时失效的数据存储与修复方法及系统技术方案

技术编号:36213537 阅读:12 留言:0更新日期:2023-01-04 12:10
本发明专利技术公开的RAID阵列磁盘暂时失效的数据存储与修复方法及系统,包括:当RAID阵列中的磁盘的运行状态发生变化时,生成包含所有当前可访问磁盘的第一列表,且当第一列表中未包含所有磁盘时,根据第一列表生成降级IO列表,并判断第一列表中的磁盘数量是否满足预设条件;若是,则获取并根据共同包含于第二列表和第一列表中的所有磁盘,生成新的第二列表,并判断新的第二列表中的磁盘数量是否满足预设条件,若是,则判断第一列表的磁盘数量是否大于新的第二列表中的磁盘数量;若是,则采用预设修复方式对目标RAID阵列进行数据修复。本发明专利技术在不中断正常访问业务的同时,提高了磁盘在暂时失效时的数据存储以及数据修复过程的稳定性。定性。定性。

【技术实现步骤摘要】
RAID阵列磁盘暂时失效的数据存储与修复方法及系统


[0001]本专利技术涉及数据存储领域,尤其涉及一种RAID阵列磁盘暂时失效的数据存储与修复方法及系统。

技术介绍

[0002]磁盘失效存在多种形式,即存在永久失效,也存在暂时失效。暂时失效指磁盘仅在一段时间内无法提供正常访问功能,但此后可恢复正常的失效模式。若磁盘发生暂时失效,故障磁盘仅丢失了暂时失效时间段内的数据。现有的RAID数据修复模式会对所有数据进行重建,造成系统长期停机。如果暂时失效率较高,将使RAID因频繁重建而长期处于不可用状态。
[0003]针对以上问题,目前业界提出了一系列RAID数据自主修复方法,主要方法为当发生磁盘失效时,对RAID进行降级,并设置降级IO列表记录故障期间发生的所有写入IO地址及写入时的故障盘位置等信息。当进行RAID读取时,首先检索IO是否位于该列表中,如果是,则根据该IO写入时的磁盘故障情况结合RAID的数据冗余与校验功能对IO数据进行重建,从而实现数据可靠读取。当故障磁盘恢复正常功能,则重建降级IO列表中IO在恢复盘中的对应数据,并重新写入已恢复的故障盘,实现自主修复。
[0004]尽管现有方案可以有效减少暂时失效导致的系统恢复数据量,但存在如下问题:1)磁盘发生故障后,修复完成前,所有读IO均需首先查找降级IO列表后方可进行数据访问,随着故障时间的增长,该表长度将会不断扩张,导致检索延迟增加,严重降低RAID访问性能。2)降级IO列表是RAID可靠读取的必备信息,如果将降级IO列表存储在额外可靠存储器件中,由于降级IO列表会随着故障时间不断增长,因此需要在系统中增加较大容量的高可靠存储器,显著增加RAID成本。3)如果将降级IO列表直接存储在RAID中,写入降级IO列表本身也会产生写入IO,导致降级IO列表改变;为存储改变后的IO列表,又会导致新的写入IO,从而周而复始,导致写入过程永远无法完成。而若不记录降级IO列表写入IO信息,则无法在出现不同磁盘暂时失效时可靠判定降级IO列表的正确性与可用性。

技术实现思路

[0005]为解决上述技术问题,本专利技术提供了一种RAID阵列磁盘暂时失效的数据存储与修复方法及系统。
[0006]本专利技术的RAID阵列磁盘暂时失效的数据存储与修复方法的技术方案如下:
[0007]S1、当目标RAID阵列初始化运行时,根据所述目标RAID阵列的所有磁盘分别设置用于数据写入的第一列表和用于数据读取的第二列表;
[0008]S2、当目标RAID阵列中的任一磁盘的运行状态发生变化时,根据包含所述目标RAID阵列中的所有当前可访问磁盘更新第一列表,且当更新后的第一列表中未包含所述目标RAID阵列中的所有磁盘时,根据所述更新后的第一列表生成至少一个降级IO列表,并判断所述更新后的第一列表中的磁盘数量是否满足第一预设条件,得到第一判断结果;
[0009]S3、当所述第一判断结果为是时,获取并根据共同包含于所述任一磁盘的运行状态发生变化前的第二列表和所述更新后的第一列表中的所有磁盘,对所述第二列表进行更新,并判断所述更新后的第二列表中的磁盘数量是否满足第二预设条件,得到第二判断结果;
[0010]S4、当所述第二判断结果为是时,判断所述第一列表的磁盘数量是否大于所述新的第二列表中的磁盘数量,得到第三判断结果;
[0011]S5、当第三判断结果为是时,采用预设修复方式对所述目标RAID阵列的数据进行修复,当所述目标RAID阵列修复完成时,根据所述第一列表对所述第二列表进行更新,以完成所述目标RAID阵列的数据修复。
[0012]本专利技术的RAID阵列磁盘暂时失效的数据存储与修复方法的有益效果如下:
[0013]本专利技术的方法在不中断正常访问业务的同时,提高了磁盘在暂时失效时的数据存储以及数据修复过程的稳定性。
[0014]在上述方案的基础上,本专利技术的RAID阵列磁盘暂时失效的数据存储与修复方法还可以做如下改进。
[0015]进一步,所述预设修复方式包括:
[0016]基于预设顺序,依次判断每个降级IO列表中是否包含所述更新后的第一列表中的所有磁盘,得到每个降级IO列表对应的第四判断结果,并将第四判断结果为否的每个降级IO列表确定为待处理IO列表;
[0017]分别读取每个待处理IO列表中的每个IO信息所对应的目标数据,并分别将每个目标数据重新写入所述目标RAID阵列,并删除每个待处理IO列表。
[0018]进一步,读取任一待处理IO列表中的任一IO信息所对应的目标数据的过程,包括:
[0019]从所述新的第二列表的所有磁盘中,获取目标IO信息对应的读取数据;其中,目标IO信息为:所述任一待处理IO列表中的所述任一IO信息;
[0020]通过RAID数据冗余与校验功能,获取所述目标IO信息对应的读取数据中的目标数据。
[0021]进一步,将任一IO信息的目标数据重新写入所述目标RAID阵列的相应磁盘中的过程,包括:
[0022]判断所述更新后的第一列表中是否包含所述目标RAID阵列中的所有磁盘,得到第五判断结果;
[0023]当所述第五判断结果为是时,将目标IO信息对应的目标数据分别写入至对应的磁盘中;其中,目标IO信息为:所述任一待处理IO列表中的所述任一IO信息。
[0024]进一步,所述将任一IO信息的目标数据重新写入所述目标RAID阵列的相应磁盘中的过程,还包括:
[0025]当所述第五判断结果为否时,将所述目标IO信息对应的目标数据分别写入至对应的磁盘中,并将所述目标IO信息对应存储至所述更新后的第一列表对应的降级IO列表中。
[0026]进一步,还包括:
[0027]当所述更新后的第一列表中不包含所述目标RAID阵列中的所有磁盘时,将所有写入IO信息存储至所述第一列表对应的降级IO列表。
[0028]进一步,还包括:
[0029]当所述目标RAID阵列停止运行时,存储所述目标RAID阵列在当前运行状态下对应的第一列表和第二列表;
[0030]当所述目标RAID阵列上电运行时,加载所述目标RAID阵列停止运行时所存储的第一列表和第二列表。
[0031]本专利技术的RAID阵列磁盘暂时失效的数据存储与修复系统的技术方案如下:
[0032]包括:初始化模块、第一处理模块、第二处理模块、第三处理模块和运行模块;
[0033]所述初始化模块用于:当目标RAID阵列初始化运行时,根据所述目标RAID阵列的所有磁盘分别设置用于数据写入的第一列表和用于数据读取的第二列表;
[0034]所述第一处理模块用于:当目标RAID阵列中的任一磁盘的运行状态发生变化时,根据包含所述目标RAID阵列中的所有当前可访问磁盘更新第一列表,且当更新后的第一列表中未包含所述目标RAID阵列中的所有磁盘时,根据所述更新后的第一列表生成至少一个降级IO列表,并判断所述更新后的第一列表中的磁盘数量是否满足第一预设条件,得到第一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种RAID阵列磁盘暂时失效的数据存储与修复方法,其特征在于,包括:S1、当目标RAID阵列初始化运行时,根据所述目标RAID阵列的所有磁盘分别设置用于数据写入的第一列表和用于数据读取的第二列表;S2、当目标RAID阵列中的任一磁盘的运行状态发生变化时,根据包含所述目标RAID阵列中的所有当前可访问磁盘更新第一列表,且当更新后的第一列表中未包含所述目标RAID阵列中的所有磁盘时,根据所述更新后的第一列表生成至少一个降级IO列表,并判断所述更新后的第一列表中的磁盘数量是否满足第一预设条件,得到第一判断结果;S3、当所述第一判断结果为是时,获取并根据共同包含于所述任一磁盘的运行状态发生变化前的第二列表和所述更新后的第一列表中的所有磁盘,对所述第二列表进行更新,并判断所述更新后的第二列表中的磁盘数量是否满足第二预设条件,得到第二判断结果;S4、当所述第二判断结果为是时,判断所述第一列表的磁盘数量是否大于所述新的第二列表中的磁盘数量,得到第三判断结果;S5、当第三判断结果为是时,采用预设修复方式对所述目标RAID阵列的数据进行修复,当所述目标RAID阵列修复完成时,根据所述第一列表对所述第二列表进行更新,以完成所述目标RAID阵列的数据修复。2.根据权利要求1所述的RAID阵列磁盘暂时失效的数据存储与修复方法,其特征在于,所述预设修复方式包括:基于预设顺序,依次判断每个降级IO列表中是否包含所述更新后的第一列表中的所有磁盘,得到每个降级IO列表对应的第四判断结果,并将第四判断结果为否的每个降级IO列表确定为待处理IO列表;分别读取每个待处理IO列表中的每个IO信息所对应的目标数据,并分别将每个目标数据重新写入所述目标RAID阵列,并删除每个待处理IO列表。3.根据权利要求2所述的RAID阵列磁盘暂时失效的数据存储与修复方法,其特征在于,读取任一待处理IO列表中的任一IO信息所对应的目标数据的过程,包括:从所述新的第二列表的所有磁盘中,获取目标IO信息对应的读取数据;其中,目标IO信息为:所述任一待处理IO列表中的所述任一IO信息;通过RAID数据冗余与校验功能,获取所述目标IO信息对应的读取数据中的目标数据。4.根据权利要求2所述的RAID阵列磁盘暂时失效的数据存储与修复方法,其特征在于,将任一IO信息的目标数据重新写入所述目标RAID阵列的相应磁盘中的过程,包括:判断所述更新后的第一列表中是否包含所述目标RAID阵列中的所有磁盘,得到第五判断结果;当所述第五判断结果为是时,将目标IO信息对应的目标数据分别写入至对应的磁盘中;其中,目标IO信息为:所述任一待处理IO列表中的所述任一IO信息。5.根据权利要求4所述的RAID阵列磁盘暂时失效的数据存储与修复方法,其特征在于,所述将任一IO信息的目标数据重新写入所述目标RAID阵列的相应磁盘中的过程,还包括:当所述第五判断结果为否时,将所述目标IO信息对应的目标数据分别写入至对应的磁盘中,并将所述目标IO信息对应存储至所述更新后的第一列表...

【专利技术属性】
技术研发人员:麻昊志傅智康宫永生
申请(专利权)人:中国科学院空间应用工程与技术中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1