本技术涉及云存储,特别是涉及一种数据恢复方法、装置及电子设备。
背景技术:
1、云存储系统中,文件在磁盘中写入时,文件按照预设的纠删码(erasure coding,ec)类型分为若干数据块block,block位于存储节点上,当文件中出现块损坏需要恢复时,通过元数据管理节点向存储节点下发待恢复block,告知存储节点来恢复block数据。
2、叠瓦式磁记录(smr,shingled magnetic recording)技术是将相邻磁道象屋顶的瓦片一样进行部分重叠,消除了磁道和磁道之间的间隙。磁道重叠可以解决磁盘容量增长缓慢的问题,却是以牺牲随机写数据的能力为代价,为了解决上述问题,通常将smr磁盘的磁道划分为几个磁道带band,每个磁道带包含多个连续的、相互重叠的磁道,磁道带与磁道带之间保持一定的安全间隙,安全间隙的宽度只需保证一个磁道带中最后一个磁道的写操作不会干扰或破坏下一磁道带中第一个磁道上的数据即可。band是smr磁盘物理概念,对应的逻辑概念称为磁道区zone。
3、云存储系统中,对于smr盘的管理,当文件分成数据块写入各存储节点的各个zone中时,需要追踪每个文件的每个数据块在各个zone中的情况,且需要对出现异常的zone进行处理。
4、为了实现对smr盘的管理,相关技术中采用的方法包括:首先,主机端将smr磁盘上坏扇区所属的磁道区zone标记为只读,然后,统计只读zone的量是否超出磁盘disk碟面或者磁盘的限制阈值,若超过,则分别将该碟面或者该磁盘的所有zone都标记为只读,不再写入数据,同时,复制恢复该磁盘上所有zone中未损坏扇区的数据。通过上述方法可以将寿命接近阈值的磁盘从系统中剥离出来,进行检查和修复,从而可以避免磁盘损坏后磁盘中的数据无法恢复。
5、但上述数据恢复方法,在面对有一批smr磁盘都出现接近损坏阈值场景时,没有进行调度处理,可能会出现在部分smr磁盘处于恢复过程时,其他磁盘到达损坏边缘但已经超过了当前复用周期,导致未及时进行恢复,且导致损坏磁盘上的数据也无法恢复。
技术实现思路
1、本技术提供了一种数据恢复方法、装置及电子设备,可以解决目前数据恢复方法,在面对有一批smr磁盘都出现接近损坏阈值场景时,没有进行调度处理,可能会出现在部分smr磁盘处于恢复过程时,其他磁盘到达损坏边缘而未及时进行恢复,错失了可恢复的时机,且导致损坏磁盘上的数据也无法恢复的问题。
2、第一方面,本技术提供了一种数据恢复方法,所述方法包括:
3、在将各个数据块写入各个磁道区zone时,接收所述各个zone对应的特征信息,其中,所述特征信息至少包括所述各个zone所属的磁道区域组zg;
4、识别所述各个zone所属的磁道区域组zg,得到各个可恢复的目标zg;
5、对各个目标zg进行划分,得到所述各个目标zg对应的恢复类型,其中,所述恢复类型包括尾部恢复类型队列和全量恢复类型队列中的任一项;
6、根据各个恢复类型分别对应的恢复策略,对所述各个目标zg进行数据恢复。
7、通过上述方法,识别出各个可恢复的zg,并对各个可恢复的zg进行恢复类型划分,从而可以实现对恢复任务进行独立控制,不仅能更快的处理恢复任务,还能提升存储系统的可靠性和空间利用率。
8、在一种可能的设计中,所述接收所述各个zone对应的特征信息,包括:
9、接收所述各个zone对应的特征信息,并检测各个特征信息中是否存在所述各个数据块的异常信息,其中,所述异常信息包括数据块减少和数据块损坏中的任一项;
10、若是,则立即触发识别所述各个zone所属的磁道区域组zg;
11、若否,则在确定出当前特征信息对应的zone为最后一个上报特征信息的zone时,触发识别所述各个zone所属的磁道区域组zg;
12、在没有完全接收到所述各个zone对应的特征信息时,按照预设周期对所述各个zone所属的磁道区域组zg进行周期性识别。
13、通过上述方法,多维度触发识别各个zone所属的磁道区域组zg,不仅能提高识别效率,还能避免出现漏识别zg的问题。
14、在一种可能的设计中,所述识别所述各个zone所属的磁道区域组zg,得到各个可恢复的目标zg,包括:
15、遍历所述各个zone所属的磁道区域组zg,确定出各个zg中异常zone的个数;
16、根据各个异常zone的个数,得到各个可恢复的目标zg。
17、通过上述方法,根据各个异常zone的个数可以快速识别出各个可恢复的目标zg,进而可以提高各个可恢复的目标zg的恢复速度。
18、在一种可能的设计中,所述遍历所述各个zone所属的磁道区域组zg,确定出各个zg中异常zone的个数,包括:
19、遍历所述各个zone所属的磁道区域组zg,获取各个zg中zone的最大写入数据长度;
20、将所述各个zg中zone的实际写入数据长度与所述最大写入数据长度相比,并将所述各个zg中zone的实际写入数据长度小于所述最大写入数据长度的各个zone确定为各个异常zone。
21、通过上述方法,可以确定出各个zg中异常zone的个数,进而基于各个异常zone的个数可以快速识别出各个可恢复的目标zg。
22、在一种可能的设计中,所述根据各个异常zone的个数,得到各个可恢复的目标zg,包括:
23、判断是否完全接收到所述各个zone对应的特征信息;
24、在完全接收到各个特征信息时,检测各个异常zone的个数;
25、在所述各个异常zone的个数等于零时,确定所述各个zg为正常zg;
26、在所述各个异常zone的个数小于或等于预设阈值时,确定所述各个zg为可恢复的目标zg;
27、在所述各个异常zone的个数大于所述预设阈值,且所述各个异常zone没有超过复用周期时,确定所述各个zg为可恢复的目标zg,且所述各个zg对应的恢复类型为zone填零补齐。
28、通过上述方法,能够高效的识别出各个zg对应的可恢复的目标zg,进而能够提高恢复任务的执行效率。
29、在一种可能的设计中,所述在所述各个异常zone的个数小于或等于预设阈值时,确定所述各个zg为可恢复的目标zg,包括:
30、在所述各个异常zone的个数小于或等于预设阈值时,根据各个特征信息中的损坏标志信息,确定出所述各个zg中损坏zone的个数;
31、在各个损坏zone的个数等于零时,确定所述各个zg为可恢复的目标zg,且确定所述各个zg对应的恢复类型为zone尾部恢复;
32、在所述各个损坏zone的个数大于零时,确定所述各个zg为可恢复的目标zg,且确定所述各个zg对应的恢复类型为zone损坏类型。
33、通过上述方法,不仅能够高效的识别出各个zg对应的可恢复的目标zg,还能高效的识别出各个zg对应的恢复类型。
34、在一种可能的设计中,所述判断是否完全接收到所述各个zone对应的特征信息,包括:
35、判断是否完全接收到所述各个zone对应的特征信息;
36、在没有完全接收到各个特征信息时,确定所述各个特征信息的接收时间是否超过预设时间;
37、若是,则分别确定出各个存在特征信息的zone所属的zg中异常zone的个数;
38、在各个异常zone的个数小于或等于所述预设阈值时,确定所述各个zg为可恢复的目标zg,且确定所述各个zg对应的恢复类型为zone缺失类型。
39、通过上述方法,基于预设时间来判断各个特征信息是否接收结束,从而在基于各个特征信息来识别各个zg时,可以避免因异常情况出现延迟接收时,元数据管理节点误识别zone的问题,提高识别的准确性。
40、第二方面,本技术提供了一种数据恢复装置,所述装置包括:
41、接收模块,用于在将各个数据块写入各个磁道区zone时,接收所述各个zone对应的特征信息,其中,所述特征信息至少包括所述各个zone所属的磁道区域组zg;
42、识别模块,用于识别所述各个zone所属的磁道区域组zg,得到各个可恢复的目标zg;
43、划分模块,用于对各个目标zg进行划分,得到所述各个目标zg对应的恢复类型,其中,所述恢复类型包括尾部恢复类型队列和全量恢复类型队列中的任一项;
44、恢复模块,用于根据各个恢复类型分别对应的恢复策略,对所述各个目标zg进行数据恢复。
45、在一种可能的设计中,所述接收模块具体用于:
46、接收所述各个zone对应的特征信息,并检测各个特征信息中是否存在所述各个数据块的异常信息,其中,所述异常信息包括数据块减少和数据块损坏中的任一项;
47、若是,则立即触发识别所述各个zone所属的磁道区域组zg;
48、若否,则在确定出当前特征信息对应的zone为最后一个上报特征信息的zone时,触发识别所述各个zone所属的磁道区域组zg;
49、在没有完全接收到所述各个zone对应的特征信息时,按照预设周期对所述各个zone所属的磁道区域组zg进行周期性识别。
50、在一种可能的设计中,所述识别模块包括:
51、确定单元,用于遍历所述各个zone所属的磁道区域组zg,确定出各个zg中异常zone的个数;
52、获取单元,用于根据各个异常zone的个数,得到各个可恢复的目标zg。
53、在一种可能的设计中,所述确定单元具体用于:
54、遍历所述各个zone所属的磁道区域组zg,获取各个zg中zone的最大写入数据长度;
55、将所述各个zg中zone的实际写入数据长度与所述最大写入数据长度相比,并将所述各个zg中zone的实际写入数据长度小于所述最大写入数据长度的各个zone确定为各个异常zone。
56、在一种可能的设计中,所述获取单元具体用于:
57、判断是否完全接收到所述各个zone对应的特征信息;
58、在完全接收到各个特征信息时,检测各个异常zone的个数;
59、在所述各个异常zone的个数等于零时,确定所述各个zg为正常zg;
60、在所述各个异常zone的个数小于或等于预设阈值时,确定所述各个zg为可恢复的目标zg;
61、在所述各个异常zone的个数大于所述预设阈值,且所述各个异常zone没有超过复用周期时,确定所述各个zg为可恢复的目标zg,且所述各个zg对应的恢复类型为zone填零补齐。
62、在一种可能的设计中,所述获取单元还用于:
63、在所述各个异常zone的个数小于或等于预设阈值时,根据各个特征信息中的损坏标志信息,确定出所述各个zg中损坏zone的个数;
64、在各个损坏zone的个数等于零时,确定所述各个zg为可恢复的目标zg,且确定所述各个zg对应的恢复类型为zone尾部恢复;
65、在所述各个损坏zone的个数大于零时,确定所述各个zg为可恢复的目标zg,且确定所述各个zg对应的恢复类型为zone损坏类型。
66、在一种可能的设计中,所述获取单元还用于:
67、判断是否完全接收到所述各个zone对应的特征信息;
68、在没有完全接收到各个特征信息时,确定所述各个特征信息的接收时间是否超过预设时间;
69、若是,则分别确定出各个存在特征信息的zone所属的zg中异常zone的个数;
70、在各个异常zone的个数小于或等于所述预设阈值时,确定所述各个zg为可恢复的目标zg,且确定所述各个zg对应的恢复类型为zone缺失类型。
71、第三方面,本技术提供了一种电子设备,包括:
72、存储器,用于存放计算机程序;
73、处理器,用于执行所述存储器上所存放的计算机程序时,实现上述的数据恢复方法步骤。
74、第四方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据恢复方法步骤。
75、基于本技术所提供的数据恢复方法,通过识别出各个可恢复的zg,并对各个可恢复的zg进行恢复类型划分,从而可以实现对恢复任务进行独立控制,不仅能更快的处理恢复任务,还能提升存储系统的可靠性和空间利用率。
76、上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果参照上述针对第一方面或者第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。