一种RAID中条带数据不一致的修复方法和系统技术方案

技术编号:30753919 阅读:13 留言:0更新日期:2021-11-10 12:07
本发明专利技术公开一种RAID中条带数据不一致的修复方法和系统,其中,RAID中条带数据不一致的修复方法,包括:当RAID执行写IO操作时,根据RAID中数据分块包含的条带数据,分别计算每个数据分块对应的BBC校验码;将每一BBC校验码与对应的数据分块统一写入RAID的磁盘中;当RAID检测到条带数据不一致时,比较被检测的数据分块的BBC校验码;当被检测的数据分块的BBC校验码不一致时,重构数据分块并写入磁盘中。本发明专利技术的技术方案能解决现有技术难以确定数据分块是否正常,难以修复受损数据分块,导致RAID存储数据的安全性和容错能力较低的问题。存储数据的安全性和容错能力较低的问题。存储数据的安全性和容错能力较低的问题。

【技术实现步骤摘要】
一种RAID中条带数据不一致的修复方法和系统


[0001]本专利技术涉及磁盘
,尤其涉及一种RAID中条带数据不一致的修复方法和系统。

技术介绍

[0002]RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)包括数据条带化和奇偶性校验两个基本特征。其中,数据条带化是指将主机端下发的一块连续的IO数据分割成许多数据分块,并把这些数据分块分别存储到不同的磁盘1上,具体如图1所示,每一行就是一个条带2;奇偶性校验则是RAID针对条带2上的数据,通过异或算法计算出奇偶块(或称校验块)并写到指定磁盘1上,当RAID的一个磁盘数据损坏后,可以利用剩下的数据分块和校验块恢复被损坏的数据。如图1所示,P和Q为校验块,其他为数据分块(D1、D2和D3)。这里需要明确的是,数据分块是属于用户的数据,用户可以读写;而校验块则只属于RAID,用于保证数据分块安全,用户不可见。
[0003]每个条带上的P、Q校验块都是由该条带上的数据通过异或算法计算出来的,因此将通过条带上的数据重新计算出新的P、Q校验块与盘上原来存储的P、Q校验块进行比较,正常情况下比较结果应该完全一致;如果不一致,则说明出现了条带数据不一致的情况。上述检测过程就是RAID的巡检任务过程;其中,巡检任务每隔固定时间遍历整个RAID,目的是为了确保RAID上数据的一致性。
[0004]然而,因为RAID自身无法判断是条带上的数据分块出现异常还是P、Q校验块出现异常,导致现有的RAID阵列巡检当发现条带数据不一致时只会报警提示,不能自动修复条带数据的一致性。这就需要客户主动确认条带上每一数据分块是否正常;若客户确定数据分块正常,可以考虑让客户重写数据分块,通过重写数据分块完成重新计算P、Q校验块。如果是数据分块不正常,则需要客户在多个数据分块中找到哪一个数据分块异常,即便能够找到异常的数据分块也不能修复,这样就降低了RAID存储数据的安全性和容错能力。

技术实现思路

[0005]本专利技术提供了一种RAID中条带数据不一致的修复方法和系统,旨在解决现有技术中难以确定数据分块是否正常,且难以修复受损的数据分块,导致RAID存储数据的安全性和容错能力降低的问题。
[0006]根据本专利技术的第一方面,本专利技术提供了一种RAID中条带数据不一致的修复方法,包括:
[0007]当RAID执行写IO操作时,根据RAID中数据分块包含的条带数据,分别计算每个数据分块对应的BBC校验码;
[0008]将每一BBC校验码与对应的数据分块统一写入RAID的磁盘中;
[0009]当RAID检测到条带数据不一致时,比较被检测的数据分块的BBC校验码;
[0010]当被检测的数据分块的BBC校验码不一致时,重构数据分块并写入磁盘中。
[0011]优选地,所述根据RAID中数据分块包含的条带数据,分别计算每个数据分块对应的BBC校验码的步骤,包括:
[0012]当RAID执行写IO操作时,将同一条带划分为多个数据分块;
[0013]使用异或算法计算数据分块中的条带数据,生成每个数据分块对应的BBC校验码。
[0014]优选地,所述将每一BBC校验码与对应的数据分块统一写入RAID的磁盘中,包括:
[0015]将每个BBC校验码追加至对应数据分块的尾部,得到新的数据分块;
[0016]将每一新的数据分块对应写入RAID的磁盘中。
[0017]优选地,所述RAID中条带数据不一致的修复方法还包括:
[0018]控制RAID根据磁盘存储的奇偶校验块,巡检同一条带中的条带数据一致性;其中,奇偶校验块为根据同一条带的条带数据生成。
[0019]优选地,所述比较被检测的数据分块的BBC校验码的步骤,包括:
[0020]使用被检测的数据分块的条带数据生成新的BBC校验码;
[0021]判断新的BBC校验码与原有的BBC校验码是否一致;
[0022]当BBC校验码不一致时,确定被检测的数据分块存在数据异常。
[0023]优选地,所述重构数据分块并写入磁盘中的步骤,包括:
[0024]使用同一条带上数据正常的数据分块,通过异或算法重新计算数据分块的条带数据,得到重构的数据分块;
[0025]将重构的数据分块写入磁盘的原有位置。
[0026]根据本专利技术的第二方面,本专利技术还提供了一种RAID中条带数据不一致的修复系统,包括:
[0027]校验码计算模块,用于当RAID执行写IO操作时,根据RAID中数据分块包含的条带数据,分别计算每个数据分块对应的BBC校验码;
[0028]磁盘写入模块,用于将每一BBC校验码与对应的数据分块统一写入RAID的磁盘中;
[0029]校验码比较模块,用于当RAID检测到条带数据不一致时,比较被检测的数据分块的BBC校验码;
[0030]数据重构模块,用于当被检测的数据分块的BBC校验码不一致时,重构数据分块并写入磁盘中。
[0031]优选地,所述校验码计算模块,包括:
[0032]条带划分子模块,用于当RAID执行写IO操作时,将同一条带划分为多个数据分块;
[0033]第一校验码生成子模块,用于使用异或算法计算数据分块中的条带数据,生成每个数据分块对应的BBC校验码。
[0034]优选地,所述磁盘写入模块,包括:
[0035]校验码追加子模块,用于将每个BBC校验码追加至对应数据分块的尾部,得到新的数据分块;
[0036]数据分块写入子模块,用于将每一新的数据分块对应写入RAID的磁盘中。
[0037]优选地,所述校验码比较模块,包括:
[0038]第二校验码生成子模块,用于使用被检测的数据分块的条带数据生成新的BBC校验码;
[0039]一致性判断子模块,用于判断新的BBC校验码与原有的BBC校验码是否一致,当BBC
校验码不一致时,确定被检测的数据分块存在数据异常,执行数据重构模块。
[0040]综上,本申请提供的RAID中条带数据不一致的修复方案,在RAID执行写IO操作时,根据RAID中数据分块包含的条带数据,分别计算每个数据分块对应的BBC校验码;然后将每一个BBC校验码与对应的数据分块统一写入RAID的磁盘中;当RAID检测到条带数据不一致时,比较被检测的数据分块的BBC校验码;当被检测的数据分块的BBC校验码不一致时,重构数据分块并写入磁盘中。因为BBC校验码与数据分块一一对应,因此在RAID巡检到条带数据不一致时,通过根据每一数据分块重新生成BBC校验码,与原有的BBC校验码进行比对,当确定BBC校验码不一致时,即可确定数据分块出现问题,此时重构数据分块并写入磁盘中即可,从而保证条带数据的正常。因此,通过上述方式解决了现有技术中难以确定数据分块是否正常,难以修复受损的数据分块,导致RAID存储数据的安全性和容错能力下降的问题。
附图说明...

【技术保护点】

【技术特征摘要】
1.一种RAID中条带数据不一致的修复方法,其特征在于,包括:当RAID执行写IO操作时,根据RAID中数据分块包含的条带数据,分别计算每个数据分块对应的BBC校验码;将每一所述BBC校验码与对应的数据分块统一写入所述RAID的磁盘中;当所述RAID检测到条带数据不一致时,比较被检测的数据分块的BBC校验码;当所述被检测的数据分块的BBC校验码不一致时,重构所述数据分块并写入所述磁盘中。2.根据权利要求1所述的RAID中条带数据不一致的修复方法,其特征在于,所述根据RAID中数据分块包含的条带数据,分别计算每个数据分块对应的BBC校验码的步骤,包括:当所述RAID执行写IO操作时,将同一条带划分为多个数据分块;使用异或算法计算所述数据分块中的条带数据,生成每个数据分块对应的BBC校验码。3.根据权利要求1所述的RAID中条带数据不一致的修复方法,其特征在于,所述将每一所述BBC校验码与对应的数据分块统一写入所述RAID的磁盘中,包括:将每个所述BBC校验码追加至对应数据分块的尾部,得到新的数据分块;将每一所述新的数据分块对应写入所述RAID的磁盘中。4.根据权利要求1所述的RAID中条带数据不一致的修复方法,其特征在于,还包括:控制所述RAID根据所述磁盘存储的奇偶校验块,巡检同一条带中的条带数据一致性;其中,所述奇偶校验块为根据所述同一条带的条带数据生成。5.根据权利要求1或4所述的RAID中条带数据不一致的修复方法,其特征在于,所述比较被检测的数据分块的BBC校验码的步骤,包括:使用被检测的数据分块的条带数据生成新的BBC校验码;判断所述新的BBC校验码与原有的BBC校验码是否一致;当所述BBC校验码不一致时,确定所述被检测的数据分块存在数据异常。6.根据权利要求1所述的RAID中条带数据不一致的修复方法,其特征在于,所述重构所述...

【专利技术属性】
技术研发人员:苏涛
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1