本技术涉及计算设备,尤其涉及一种数据重构方法。
背景技术:
1、独立冗余磁盘阵列(redundant array of independent disks,简称raid),又称磁盘阵列,是由很多块独立的硬盘,组合成一个容量巨大的硬盘组,利用多个硬盘提供数据所产生加成效果提升硬盘组的性能。
2、同一硬盘组中的每个硬盘中有多个磁头,硬盘中的一个磁头出现故障后,整个硬盘都会上报失效。相关技术中,可以利用同一硬盘组中的其他硬盘中存储的数据,重构出失效硬盘中存储的全部的数据,并存储至热备硬盘中。
3、但是,相关技术中,需要放弃失效硬盘上存储的全部数据,然后从同一硬盘组中的其他硬盘上读取数据,并进行计算,才能得到失效硬盘中的全部数据,导致相关技术中的数据重构方法,存在计算量大、重构时间长的问题。
技术实现思路
1、本技术实施例提供一种数据重构方法,能够降低数据重构的计算量和重构时长。
2、第一方面,本技术实施例提供一种数据重构方法,应用于硬盘,硬盘包括至少一个盘片和至少两个磁头;硬盘与控制器电连接;方法包括:
3、在硬盘失效的情况下,向控制器发送硬盘中的失效磁头的标识;
4、在接收到控制器发送的待重构数据的标识的个数时,构建数据重构表;数据重构表包括与待重构数据的标识的个数匹配的待重构数据的标识;
5、向控制器发送数据重构表;数据重构表用于供控制器重构待重构数据。
6、本实施例的有益效果:在硬盘失效的情况下,硬盘可以向控制器发送硬盘中的失效磁头的标识。硬盘可以在获取控制器发送的待重构数据的标识的个数时,构建数据重构表,该数据重构表中包括与待重构数据的标识的个数匹配的待重构数据的标识。硬盘可以向控制器发送数据重构表,以供控制器根据数据重构表,重构失效磁头对应的待重构数据,缩小了重构数据的范围,减小了重构计算量,缩短了重构时长,进而缩短了硬盘组处于降级状态的时长。
7、在一种实现方式中,在接收到控制器发送的待重构数据的标识的个数时,构建数据重构表,包括:
8、在接收到控制器发送的待重构数据的标识的个数时,根据失效磁头的标识,确定失效磁头对应的全部的待重构数据的标识;
9、根据全部的待重构数据的标识和待重构数据的标识的个数,构建数据重构表。
10、本实现方式的有益效果:硬盘可以基于失效磁头的标识,确定失效磁头对应的全部的待重构数据的标识,明确了待重构数据的范围。硬盘根据全部的待重构数据的标识和待重构数据的标识的个数,构建数据重构表,以供控制器基于数据重构表重构待重构数据,避免了将硬盘中的全部数据皆确定为待重构数据,导致出现重构计算量大,重构时间长的问题。
11、在一种实现方式中,还包括:
12、根据失效磁头的标识,确定失效磁头对应的每个待重构数据的标识对应的优先级;
13、根据全部的待重构数据的标识和待重构数据的标识的个数,构建数据重构表,包括:
14、根据全部的待重构数据的标识,待重构数据的标识的个数,以及每个待重构数据的标识对应的优先级,构建数据重构表。
15、本实现方式的有益效果:硬盘将每个待重构数据的标识对应的优先级,纳入构建数据重构表的过程中,从而可以保证优先级高的待重构数据,可以优先被重构。
16、第二方面,本技术实施例提供一种数据重构方法,应用于控制器,控制器与多个硬盘电连接,每个硬盘包括至少一个盘片和至少两个磁头;方法包括:
17、当接收到失效硬盘发送的失效磁头的标识时,获取失效磁头的标识对应的待重构数据总量;
18、根据待重构数据总量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数;
19、向失效硬盘发送待重构数据的标识的个数;
20、获取失效硬盘发送的数据重构表;数据重构表包括与待重构数据的标识的个数匹配的待重构数据的标识;
21、根据数据重构表中的待重构数据的标识,重构待重构数据。
22、本实施例的有益效果:控制器可以基于失效硬盘发送的失效磁头的标识,确定待重构数据总量,进而根据待重构数据总量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数,以使得失效硬盘可以基于待重构数据的标识的个数,构建数据重构表。控制器可以在接收到失效硬盘发送的数据重构表时,根据数据重构表中的待重构数据的标识,重构待重构数据。通过上述仅重构失效磁头对应的待重构数据的方式,缩小了待重构数据的范围,减小了重构计算量,缩短了重构时长,进而缩短了硬盘组处于降级状态的时长。
23、在一种实现方式中,根据待重构数据总量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数,包括:
24、根据待重构数据总量,控制器的当前可用计算量和当前可用内存容量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数。
25、本实现方式的有益效果:控制器可以根据待重构数据总量,控制器的重构能力(控制器的当前可用计算量和当前可用内存容量),直接确定出每次重构过程中的数据重构表中,待重构数据的标识的个数。通过上述方式,可以避免出现控制器仅执行一次重构过程,无法重构全部的待重构数据的情况,保证了重构待重构数据的完整性。
26、在一种实现方式中,根据待重构数据总量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数,包括:
27、在每次重构过程中,根据待重构数据总量,控制器的当前可用计算量和当前可用内存容量,确定重构过程中的数据重构表中,待重构数据的标识的个数。
28、本实现方式的有益效果:控制器可以在每次重构过程中,根据待重构数据总量,控制器当前的重构能力(控制器的当前可用计算量和当前可用内存容量),确定出重构过程中的数据重构表中,待重构数据的标识的个数。通过上述方式,可以充分发挥控制器的重构能力,提高了控制器重构待重构数据的效率。
29、在一种实现方式中,根据数据重构表中的待重构数据的标识,重构待重构数据,包括:
30、根据数据重构表中的待重构数据的标识,确定对应的冗余数据的标识;
31、根据冗余数据的标识,读取存储在其他硬盘中的冗余数据;
32、根据冗余数据,重构待重构数据。
33、本实现方式的有益效果:控制器可以根据数据重构表中的待重构数据的标识,确定对应的冗余数据(用于重构待重构数据的数据)的标识。控制器可以根据冗余数据的标识,读取存储在其他硬盘中的冗余数据,进而根据冗余数据,重构待重构数据,缩小了待重构数据的范围,减小了重构计算量,缩短了重构时长,进而缩短了硬盘组处于降级状态的时长。
34、在一种实现方式中,待重构数据的标识为待重构数据的逻辑区块地址范围;
35、根据数据重构表中的待重构数据的标识,确定对应的冗余数据的标识,包括:
36、根据数据重构表中的待重构数据的逻辑区块地址范围,确定对应的冗余数据的逻辑区块地址范围;
37、根据冗余数据的标识,读取存储在其他硬盘中的冗余数据,包括:
38、根据冗余数据的逻辑区块地址范围,读取存储在其他硬盘中的冗余数据。
39、本实现方式的有益效果:在raid模式下,数据的物理区块地址范围与逻辑区块地址范围之间存在映射关系。控制器可以根据待重构数据的标识(待重构数据的逻辑区块地址范围),确定对应的冗余数据(用于重构待重构数据的数据)的逻辑区块地址范围,从而根据冗余数据的逻辑区块地址范围对应的物理区块地址范围,读取冗余数据,以进行数据重构。缩小了待重构数据的范围,减小了重构计算量,缩短了重构时长,进而缩短了硬盘组处于降级状态的时长,提高了硬盘组的可靠性。
40、在一种实现方式中,待重构数据的标识为存储待重构数据的数据块的标识;
41、根据数据重构表中的待重构数据的标识,确定对应的冗余数据的标识,包括:
42、根据数据重构表中的存储待重构数据的数据块的标识,确定对应的存储冗余数据的数据块的标识;
43、根据冗余数据的标识,读取存储在其他硬盘中的冗余数据,包括:
44、根据存储冗余数据的数据块的标识,读取存储在其他硬盘中的冗余数据。
45、本实现方式的有益效果:在键值对模式下,数据的物理区块地址范围与存储数据的数据块的标识之间存在映射关系。控制器可以根据待重构数据的标识(存储待重构数据的数据块的标识),确定对应的存储冗余数据(用于重构待重构数据的数据)的数据块的标识,从而根据存储冗余数据的数据块的标识所对应的物理区块地址范围,读取冗余数据,以进行数据重构。缩小了待重构数据的范围,减小了重构计算量,缩短了重构时长,加速了有效数据的数据迁移,进而缩短了硬盘组处于降级状态的时长。
46、第三方面,本技术实施例提供一种数据重构方法,应用于计算设备,计算设备包括控制器,以及与控制器电连接的多个硬盘;每个硬盘包括至少一个盘片和至少两个磁头;方法包括:
47、在硬盘失效的情况下,失效硬盘向控制器发送失效硬盘中的失效磁头的标识;
48、控制器获取失效磁头的标识对应的待重构数据总量;
49、控制器根据待重构数据总量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数;
50、失效硬盘在接收到控制器发送的待重构数据的标识的个数时,构建数据重构表;数据重构表包括与待重构数据的标识的个数匹配的待重构数据的标识;
51、失效硬盘向控制器发送数据重构表;
52、控制器根据数据重构表中的待重构数据的标识,重构待重构数据。
53、本实施例的有益效果:在硬盘失效的情况下,失效硬盘可以向控制器发送失效硬盘中的失效磁头的标识。控制器可以基于失效硬盘发送的失效磁头的标识,确定待重构数据总量,进而根据待重构数据总量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数,以使得失效硬盘可以基于待重构数据的标识的个数,构建数据重构表。控制器可以在接收到失效硬盘发送的数据重构表时,可以根据数据重构表中的待重构数据的标识,重构待重构数据。通过上述仅重构失效磁头对应的待重构数据的方式,缩小了待重构数据的范围,减小了重构计算量,缩短了重构时长,进而缩短了硬盘组处于降级状态的时长。
54、在一种实现方式中,失效硬盘在接收到控制器发送的待重构数据的标识的个数时,构建数据重构表,包括:
55、失效硬盘在接收到控制器发送的待重构数据的标识的个数时,根据失效磁头的标识,确定失效磁头对应的全部的待重构数据的标识;
56、失效硬盘根据全部的待重构数据的标识和待重构数据的标识的个数,构建数据重构表。
57、本实现方式的有益效果:硬盘可以基于失效磁头的标识,确定失效磁头对应的全部的待重构数据的标识,明确了待重构数据的范围。硬盘根据全部的待重构数据的标识和待重构数据的标识的个数,构建数据重构表,以供控制器基于数据重构表重构待重构数据,避免了将硬盘中的全部数据皆确定为待重构数据,导致出现重构计算量大,重构时间长的问题。
58、在一种实现方式中,方法还包括:
59、失效硬盘根据失效磁头的标识,确定失效磁头对应的每个待重构数据的标识对应的优先级;
60、失效硬盘根据全部的待重构数据的标识和待重构数据的标识的个数,构建数据重构表,包括:
61、失效硬盘根据全部的待重构数据的标识,待重构数据的标识的个数,以及每个待重构数据的标识对应的优先级,构建数据重构表。
62、本实现方式的有益效果:失效硬盘将每个待重构数据的标识对应的优先级,纳入构建数据重构表的过程中,从而可以保证优先级高的待重构数据,可以优先被重构。
63、在一种实现方式中,控制器根据待重构数据总量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数,包括:
64、控制器根据待重构数据总量,控制器的当前可用计算量和当前可用内存容量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数。
65、本实现方式的有益效果:控制器可以根据待重构数据总量,控制器的重构能力(控制器的当前可用计算量和当前可用内存容量),直接确定出每次重构过程中的数据重构表中,待重构数据的标识的个数。通过上述方式,可以避免出现控制器仅执行一次重构过程,无法重构全部的待重构数据的情况,保证了重构待重构数据的完整性。
66、在一种实现方式中,控制器根据待重构数据总量,确定每次重构过程中的数据重构表中,待重构数据的标识的个数,包括:
67、控制器在每次重构过程中,根据待重构数据总量,控制器的当前可用计算量和当前可用内存容量,确定重构过程中的数据重构表中,待重构数据的标识的个数。
68、本实现方式的有益效果:控制器可以在每次重构过程中,根据待重构数据总量,控制器当前的重构能力(控制器的当前可用计算量和当前可用内存容量),确定出重构过程中的数据重构表中,待重构数据的标识的个数。通过上述方式,可以充分发挥控制器的重构能力,提高了控制器重构待重构数据的效率。
69、在一种实现方式中,控制器根据数据重构表中的待重构数据的标识,重构待重构数据,包括:
70、控制器根据数据重构表中的待重构数据的标识,确定对应的冗余数据的标识;
71、控制器根据冗余数据的标识,读取存储在其他硬盘中的冗余数据;
72、控制器根据冗余数据,重构待重构数据。
73、本实现方式的有益效果:控制器可以根据数据重构表中的待重构数据的标识,确定对应的冗余数据(用于重构待重构数据的数据)的标识。控制器可以根据冗余数据的标识,读取存储在其他硬盘中的冗余数据,进而根据冗余数据,重构待重构数据,缩小了待重构数据的范围,减小了重构计算量,缩短了重构时长,进而缩短了硬盘组处于降级状态的时长。
74、在一种实现方式中,待重构数据的标识为待重构数据的逻辑区块地址范围;
75、控制器根据数据重构表中的待重构数据的标识,确定对应的冗余数据的标识,包括:
76、控制器根据数据重构表中的待重构数据的逻辑区块地址范围,确定对应的冗余数据的逻辑区块地址范围;
77、控制器根据冗余数据的标识,读取存储在其他硬盘中的冗余数据,包括:
78、控制器根据冗余数据的逻辑区块地址范围,读取存储在其他硬盘中的冗余数据。
79、本实现方式的有益效果:在raid模式下,数据的物理区块地址范围与逻辑区块地址范围之间存在映射关系。控制器可以根据待重构数据的标识(待重构数据的逻辑区块地址范围),确定对应的冗余数据(用于重构待重构数据的数据)的逻辑区块地址范围,从而根据冗余数据的逻辑区块地址范围对应的物理区块地址范围,读取冗余数据,以进行数据重构。缩小了待重构数据的范围,减小了重构计算量,缩短了重构时长,进而缩短了硬盘组处于降级状态的时长,提高了硬盘组的可靠性。
80、在一种实现方式中,待重构数据的标识为存储待重构数据的数据块的标识;
81、控制器根据数据重构表中的待重构数据的标识,确定对应的冗余数据的标识,包括:
82、控制器根据数据重构表中的存储待重构数据的数据块的标识,确定对应的存储冗余数据的数据块的标识;
83、控制器根据冗余数据的标识,读取存储在其他硬盘中的冗余数据,包括:
84、控制器根据存储冗余数据的数据块的标识,读取存储在其他硬盘中的冗余数据。
85、本实现方式的有益效果:在键值对模式下,数据的物理区块地址范围与存储数据的数据块的标识之间存在映射关系。控制器可以根据待重构数据的标识(存储待重构数据的数据块的标识),确定对应的存储冗余数据(用于重构待重构数据的数据)的数据块的标识,从而根据存储冗余数据的数据块的标识所对应的物理区块地址范围,读取冗余数据,以进行数据重构。缩小了待重构数据的范围,减小了重构计算量,缩短了重构时长,加速了有效数据的数据迁移,进而缩短了硬盘组处于降级状态的时长。