技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种磁盘条带的巡检方法、装置、计算机设备及存储介质与流程  >  正文

一种磁盘条带的巡检方法、装置、计算机设备及存储介质与流程

  • 国知局
  • 2024-10-09 15:39:00

本发明涉及云计算,具体涉及一种磁盘条带的巡检方法、装置、计算机设备及存储介质。

背景技术:

1、在云计算数据中心中,为了存储数据安全,产生了各种保障用户数据的技术,例如基于冗余校验的raid(redundant array of independent disks,独立冗余磁盘阵列)技术、纠删码技术以及多副本技术等。其中,基于冗余校验的raid技术中,将多块磁盘组合成一个raid阵列,每个磁盘均按照相同大小的块进行切块,不同盘上的块组成一个条带,根据raid组建的算法,一个条带的冗余块可以有零个、一个、二个,通过冗余数据来提供故障恢复保证数据安全。如果出现磁盘故障,raid算法使用冗余数据对其进行恢复。通过条带数据块可以计算出校验块,同时也可以通过校验块及其他数据块计算出某个数据块。这样才可以保证在某个磁盘故障时,进行数据恢复。

2、系统存在各种不可预知的错误,例如内存反转、磁盘静默、链路传输错误、软件bug等。而数据在读写操作过程中,需要经过复杂的传输及数据存取流程。整个流程要经过很多部件、历经多种不同的传输通道和复杂的软件处理逻辑。在其中任何一个环节出现错误,数据便会遭到破坏,可能导致数据错误。如果在存储路径中导致raid条带的某些数据块或者校验块数据错误,从而导致raid的条带可能处于不一致的状态,即此时通过条带数据块的数据计算的校验块数据,与磁盘上校验块的数据不相同。此时如果发生磁盘故障,使用冗余数据对磁盘块进行恢复,可能会进一步扩大错误的数据块。因此如何检查条带一致性,找出出错的条带以及数据,以便修复条带出错数据,是本领域人员需要亟待解决的问题。

技术实现思路

1、有鉴于此,本发明提供了一种磁盘条带的巡检方法、装置、计算机设备及存储介质,以解决目前检查方案在raid条带不一致时无法准确判定是哪些分块出现错误,从而无法进行自动重构修复,叠加了重构等其他故障使数据错误扩大的问题。

2、第一方面,本发明提供了一种磁盘条带的巡检方法,所述方法包括:

3、巡检磁盘上的第一条带,读取所述第一条带上的多个分块,其中所述第一条带是磁盘上多个条带之一,所述多个分块的种类包括数据分块和校验分块,所述数据分块和所述校验分块均有各自对应的分块检查区,每个所述分块检查区中存储有检查区数据;

4、根据读取到的至少一个数据分块上的数据信息计算对应的校验分块信息;

5、判断所述校验分块信息与磁盘上保存的校验分块中的信息是否一致;

6、如果不一致,则计算所述第一条带上每个分块对应的检查区数据,并比较每个分块对应的所述检查区数据与各自所述分块检查区中存储的检查区数据是否相同;

7、如果存在不同,则确定当前不同的检查区数据所对应的数据分块或校验分块发生错误,并对所述第一条带上发生错误的数据分块进行修复重构。

8、结合第一方面,在一种可能的实施方式中,所述确定当前不同的检查区数据所对应的数据分块或校验分块发生错误,并对所述第一条带上发生错误的数据分块进行修复重构,包括:

9、统计发生错误的数据分块或校验分块的数量;

10、如果所述数量在冗余范围之内,则启动条带重构流程,恢复所述第一条带上发生错误的数据分块,使回复后的第一条带上各个分块的信息与检查区数据相同;

11、如果所述数量在所述冗余范围之外,则上报错误信息,以及通过重构发生错误的数据分块对应的校验数据,使得重构后第一条带上的各个分块的信息暂时与检查区数据相同。

12、结合第一方面,在另一种可能的实施方式中,所述判断所述校验分块信息与磁盘上保存的校验分块中的信息是否一致,还包括:

13、如果相一致,则确定所述第一条带的各个分块上数据正确,继续巡检所述磁盘上的第二条带,确定所述第二条带上的数据分块或校验分块是否发生错误;所述第二条带的巡检过程与对所述第一条带的巡检过程相同。

14、结合第一方面,在又一种可能的实施方式中,在所述巡检磁盘上的第一条带之前还包括:

15、组建raid磁盘,将所述raid磁盘按固定大小划分磁盘分块,并对每个磁盘分块编号;

16、将相同编号的磁盘分块组建成raid条带,所述raid条带之一是所述第一条带;

17、将每个所述磁盘分块划分为n个扇区,分块检查区对应一个扇区,n≥2且为正整数;

18、根据所述n个扇区的数据确定条带对应的分块检查区;

19、根据所述至少一个数据分块和所述对应的检查区数据,计算所述分块检查区中的检查区数据和校验分块的检查区数据。

20、结合第一方面,在又一种可能的实施方式中,所述根据所述至少一个数据分块和所述对应的检查区数据,计算所述分块检查区中的检查区数据和校验分块的检查区数据,包括:

21、根据所述至少一个数据分块和所述对应的检查区数据,通过第一关系式计算所述分块检查区中的检查区数据;

22、所述第一关系式为:p = d0d1d2...... d(n-1);

23、其中,p表示校验分块,d0、d1、d2、...... d(n-1)表示一个条带上的n个数据块,为异或运算;

24、根据所述至少一个数据分块和所述对应的检查区数据,通过第二关系式计算校验分块p的检查区数据;

25、所述第二关系式为:mp=m0m1...... m(n-1);

26、其中,mp表示校验分块p的检查区数据,m0、m1...... 、m(n-1)表示n个数据分块对应的检查区数据。

27、结合第一方面,在又一种可能的实施方式中,所述方法还包括:

28、当所述第一条带上的目标数据分块被写入新的数据时,更新所述目标数据分块所在的校验分块;以及,更新所述目标数据分块对应的目标数据分块的分块检查区,和所述校验分块的分块检查区;所述目标数据是所述第一条带上的至少一个数据分块中的任一个。

29、结合第一方面,在又一种可能的实施方式中,更新目标数据分块所在的校验分块,包括:

30、读取所述目标数据分块中的原始数据dold;

31、将要写入的所述新的数据dnew与所述原始数据dold做异或运算得到中间校验值pdelta;

32、读取所述目标数据分块对应的分块检查区中存储的原始校验数据pold;

33、将所述原始校验数据pold与所述中间校验值pdelta做异或运算得到新的校验值pnew;

34、将所述新的数据dnew写入所述第一条带上的目标数据分块,以及将所述新的校验值pnew写入所述目标数据分块所在的校验分块。

35、结合第一方面,在又一种可能的实施方式中,所述更新所述目标数据分块对应的目标数据分块的分块检查区,和所述校验分块的分块检查区,包括:

36、根据被写入新的数据计算所述目标数据分块的分块检查区的检查数据;

37、将所述分块检查区的检查数据与新的数据写入前计算的分块检查区的检查数据做异或运算,得到中间检查数据;

38、从磁盘的分块检查区读出原始检查数据,并所述原始检查数据和所述中间检查数据,计算新的检查数据;

39、将所述新的检查数据写入所述校验分块的分块检查区。

40、结合第一方面,在又一种可能的实施方式中,在将所述分块检查区的检查数据与新的数据写入前计算的分块检查区的检查数据做异或运算,得到中间检查数据之前,还包括:

41、当n=4时,读取4个扇区上的原始数据,所述4个扇区上的原始数据分别为a0old、a1old、a2old和a3old;

42、根据所述4个扇区上的原始数据,通过计算得到所述分块检查区的检查数据;

43、所述计算的公式为:m0olddata=a0olda1olda2olda3old;

44、其中,m0olddata为所述分块检查区的检查数据,为异或运算。

45、结合第一方面,在又一种可能的实施方式中,所述方法还包括:

46、根据所述原始校验数据pold按扇区计算得到对应的检查区数据;

47、根据新校验分块按扇区计算得到检查数据;

48、将所述原始校验数据pold对应的所述检查区数据和所述新校验分块计算得到所述检查数据做异或运算,得到新的校验块检查数据。

49、结合第一方面,在又一种可能的实施方式中,所述更新校验分块的分块检查区,具体包括:将所述新的校验块检查数据写入所述校验分块的分块检查区。

50、第二方面,本发明还提供了一种磁盘条带的巡检装置,所述装置包括:

51、巡检模块,用于巡检磁盘上的第一条带,读取所述第一条带上的多个分块,其中所述第一条带是磁盘上多个条带之一,所述多个分块的种类包括数据分块和校验分块,所述数据分块和所述校验分块均有各自对应的分块检查区,每个所述分块检查区中存储有检查区数据;

52、计算模块,用于根据读取到的至少一个数据分块上的数据信息计算对应的校验分块信息;

53、判断模块,用于判断所述校验分块信息与磁盘上保存的校验分块中的信息是否一致;

54、比较模块,用于在所述判断模块判断校验分块信息不一致时,通过计算模块计算所述第一条带上每个分块对应的检查区数据,并比较每个分块对应的所述检查区数据与各自所述分块检查区中存储的检查区数据是否相同;

55、确定模块,用于在比较模块比较存在不同情况下,确定当前不同的检查区数据所对应的数据分块或校验分块发生错误,并对所述第一条带上发生错误的数据分块进行修复重构。

56、第三方面,本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器和所述处理器相连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行前述第一方面或第一方面任一实施方式所述的磁盘条带的巡检方法。

57、第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行前述第一方面或第一方面任一实施方式所述的磁盘条带的巡检方法。

58、此外,本发明还提供一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机执行前述第一方面或第一方面任一实施方式所述的磁盘条带的巡检方法。

59、本发明提供的一种磁盘条带的巡检方法、装置,先将每个磁盘划分固定的条带检查区,用于保存所在磁盘上被划分为raid条带的组成分块的检查数据。每个条带的每一个分块使用一个扇区大小的磁盘块作为分块检查区,将条带内的某个分块按照扇区编号从前到后进行异或计算得到该检查区数据。当io更新条带数据时,对应更新相应的检查区数据。在对磁盘上任一条带巡检过程中,通过读取该条带上至少一个数据分块上的数据信息,判断其对应的校验分块信息与磁盘上保存的校验分块中的信息是否一致,当存在不一致时,比较每个分块对应的检查区数据与各自分块检查区中存储的检查区数据是否相同,从而确定出当前条带上发生错误的数据分块或校验分块,实现了对发生错误分块的识别,并对该分块进行自动重构修复,避免其他故障使数据错误扩大。

本文地址:https://www.jishuxx.com/zhuanli/20241009/309462.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。