存储集群的数据恢复方法以及相关设备与流程

未命名 08-07 阅读:99 评论:0


1.本技术涉及存储技术领域,特别是涉及一种存储集群的数据恢复方法、存储集群、计算机设备及计算机可读存储介质。


背景技术:

2.随着信息技术的不断发展,数据存储需求不断扩大,在安防、互联网、医疗等越来越多的领域数据的安全存储引起了广泛的关注。
3.通常采用存储集群的多个数据节点对数据进行拆分存储,该方式可以对数据进行安全存储。然而,由于数据节点存储的数据会出现损坏或丢失的情况,需要对损坏或丢失的数据进行数据恢复。
4.在现有技术中,采用的数据恢复方法对损坏或丢失数据进行数据恢复的效率较低。


技术实现要素:

5.本技术主要解决的技术问题是提供一种存储集群的数据恢复方法以及相关设备,能够提高数据恢复效率。
6.为了解决上述问题,本技术第一方面提供了一种存储集群的数据恢复方法,该方法包括:管理节点接收数据节点上报的损坏数据块,损坏数据块包括至少部分子数据块;基于损坏数据块,确定针对损坏数据块进行数据恢复的目标恢复方式;向数据节点下发数据恢复指令信息,以使数据节点基于目标恢复方式对损坏数据块进行数据恢复;其中,目标恢复方式为全量恢复方式、增量恢复方式中的任一种,全量恢复方式用于对硬盘的所有硬盘挂载目录存储的损坏数据块进行数据恢复,增量恢复方式用于对硬盘的多个硬盘挂载目录中预设数量的硬盘挂载目录存储的损坏数据块进行数据恢复,预设数量小于硬盘包含的硬盘挂载目录的目录总数。
7.为了解决上述问题,本技术第二方面提供了一种存储集群的数据恢复方法,方法包括:数据节点接收管理节点下发的数据恢复指令信息;其中,数据恢复指令信息中包含损坏数据块的目标恢复方式;数据恢复指令信息是管理节点执行上述第一方面提供的存储集群的数据恢复方法任一项步骤得到的;利用目标恢复方式,选择目标硬盘包含的物理存储单元关联的硬盘挂载目录对损坏数据块进行数据恢复,得到损坏数据块的恢复数据。
8.为了解决上述问题,本技术第三方面提供了一种计算机设备,该计算机设备包括相互耦接的存储器和处理器,存储器中存储有程序数据,处理器用于执行程序数据以实现上述存储集群的数据恢复方法的任一步骤。
9.为了解决上述问题,本技术第四方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序数据,程序数据能够被处理器运行用于实现上述存储集群的数据恢复方法的任一步骤。
10.上述方案,管理节点接收数据节点上报的损坏数据块,损坏数据块包括至少部分
子数据块;基于损坏数据块,确定针对损坏数据块进行数据恢复的目标恢复方式;向数据节点下发数据恢复指令信息,以使数据节点基于目标恢复方式对损坏数据块进行数据恢复;其中,目标恢复方式为全量恢复方式、增量恢复方式中的任一种,全量恢复方式用于对硬盘的所有硬盘挂载目录存储的损坏数据块进行数据恢复,增量恢复方式用于对硬盘的多个硬盘挂载目录中预设数量的硬盘挂载目录存储的损坏数据块进行数据恢复,预设数量小于硬盘包含的硬盘挂载目录的目录总数,上述方式可以基于硬盘的硬盘挂载目标存储的损坏数据块的不同损坏情况,设定不同的数据恢复方式,可以最大限度的降低数据恢复量,并且可以支持数据块的全量恢复方式和增量恢复方式,能够进一步降低恢复的数据量,能够提高数据恢复效率。另外,能够适用于单磁臂硬盘和双磁臂硬盘混合部署的场景,降低了存储集群的维护难度,提升了存储集群的可用性。
附图说明
11.为了更清楚地说明本技术中的技术方案,下面将对实施例描述中所需要的附图作简单的介绍,显而易见地,下面描述的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
12.图1是本技术存储集群一实施例的流程示意图;
13.图2是本技术存储集群的数据恢复方法第一实施例的流程示意图;
14.图3是本技术图2中步骤s12一实施例的流程示意图;
15.图4是本技术存储集群的数据恢复方法第二实施例的流程示意图;
16.图5是本技术图4中步骤s22一实施例的流程示意图;
17.图6是本技术存储集群的数据恢复方法第三实施例的流程示意图;
18.图7是本技术存储集群的数据恢复方法第四实施例的流程示意图;
19.图8是本技术存储集群的数据恢复方法第五实施例的流程示意图;
20.图9是本技术存储集群的数据恢复装置第一实施例的结构示意图;
21.图10是本技术存储集群的数据恢复装置第二实施例的结构示意图;
22.图11是本技术计算机设备一实施例的结构示意图;
23.图12是本技术计算机可读存储介质一实施例的结构示意图。
具体实施方式
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.本技术中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包
括对于这些过程、方法、产品或设备固有的其它步骤或单元。
26.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
27.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
28.本技术提供以下实施例,下面对各实施例进行具体说明。
29.请参阅图1,图1是本技术存储集群一实施例的流程示意图。存储集群100包括:管理节点101和数据节点102,管理节点101与至少一个数据节点102通信连接。存储集群100可以为分布式存储集群,由多台服务器提供数据存储服务的分布式集群,具备硬盘和数据节点冗余的特点。
30.其中,管理节点101可以为元数据服务器(metadata manage server,mds),用于将数据文件拆分为多个数据块的存储信息,分别存储在多个数据节点中,并且可以维护数据文件与数据块之间的对应表,管理存储集群内数据节点之间的负载均衡。为保证用户数据的安全性,还根据纠删码的数据冗余规则,将用户的数据文件切分成多份数据块保存到数据节点内。
31.数据节点102(datanode server,dn)可以管理接入数据节点102的多个硬盘,用于将数据块存储在硬盘的指定位置。数据节点102包含多个硬盘,每个硬盘包含至少一个物理存储单元,硬盘的每个物理存储单元设有关联的硬盘挂载目录,也即可以将物理存储单元抽象为硬盘挂载目录,以使得可以用硬盘挂载目录对物理存储单元进行表达。硬盘挂载目录用于存储数据块的至少部分子数据块,其中,硬盘包含的多个物理存储单元对应关联的硬盘挂载目录用于存储数据块的子数据块。数据块是对待存储的数据切分得到的,子数据块是对待存储的数据切分得到的或者是对数据块切分得到的。
32.其中,硬盘包含一个物理存储单元时,该硬盘可以表示为单磁臂硬盘,对应关联一个硬盘挂载目录。硬盘包含多个物理存储单元时(如两个物理存储单元),该硬盘可以表示为双磁臂硬盘,对应关联两个硬盘挂载目录。
33.在一些实施方式中,在存储集群100中,包括至少一个管理节点101以及多个数据节点102。至少一个管理节点101可以对多个数据节点102进行管理。
34.管理节点101可以用于执行下述管理节点端的存储集群的数据恢复方法的任一步骤,数据节点102可以用于执行下述数据节点端的存储集群的数据恢复方法的任一步骤。管理节点101和数据节点102的具体执行过程具体可以参考下述实施例的实施过程。
35.请参阅图2,图2是本技术存储集群的数据恢复方法第一实施例的流程示意图。该实施例可以应用于管理节点。该方法可以包括以下步骤:
36.s11:管理节点接收数据节点上报的损坏数据块,损坏数据块包括至少部分子数据
块。
37.存储集群包含有管理节点和与管理节点通信连接的至少一个数据节点,数据节点包含多个硬盘,数据节点包含的多个硬盘的硬盘类型可以不同,也可以相同,例如多个硬盘可以包含第一类型硬盘和第二类型硬盘,其中,第二类型硬盘的硬盘的每个物理存储单元的容量为第一类型硬盘的硬盘的每个物理存储单元的容量的预设比例,例如为1/2,第一类型硬盘为单磁臂硬盘,第二类型硬盘为双磁臂硬盘。
38.在一些实施方式中,第一类型硬盘的硬盘可以包含一个物理存储单元,第二类型硬盘的硬盘可以包含两个物理存储单元。硬盘的物理存储单元关联的硬盘挂载目录用于存储数据块的至少部分子数据块。其中,第一类型硬盘对应的硬盘挂载目录用于存储整个数据块,第二类型硬盘对应的每个硬盘挂载目录用于存储数据块切分的子数据块。
39.在一些实施方式中,第一类型硬盘可以为单磁臂硬盘。全盘只有一个固件和读写驱动器,负责管理硬盘内所有的存储空间。单磁臂硬盘只有一个读写驱动器负责数据读写业务,同一时刻只能执行一条读写请求,其他请求则需要保存在硬盘队列中。
40.在一些实施方式中,第二类型硬盘可以为双磁臂硬盘。双磁臂硬盘内有两个读写驱动器,能够独立管理硬盘的两个物理存储单元,通过独立的读写队列支持每个物理存储单元的读写和删除。从而,通过业务层面的适配,可以将单盘的读写和数据恢复能力提升接近一倍,通过在硬盘内增加一个读写驱动器的方式提供并发读写能力,从而提升硬盘性能。
41.在一些实施方式中,管理节点可以接收数据节点上报的损坏数据块(或损坏数据块的相关信息),损坏数据块包括至少部分子数据块。相关信息可以包含损坏数据块所在硬盘、硬盘挂载目录、损坏原因(丢失、损坏、硬盘离线、硬盘损坏等)等。
42.在一些实施方式中,若数据节点发现或感知到硬盘离线或损坏等情况,数据节点可以向管理节点发送硬盘的损坏情况,管理节点可以接收数据节点发送的硬盘的物理存储单元的损坏情况,管理节点可以根据硬盘的损失情况进行数据恢复。
43.在一些实施方式中,数据节点可以维护数据块位置表,查询到数据块的损失情况可以上报给管理节点。
44.在一些实施方式中,数据节点损坏或离线的时长小于预设时长时,不需要对数据节点存储的数据进行数据恢复。由于数据节点的硬盘没有损坏,更换损坏的数据节点并将其重新添加到存储集群之后,存储集群能够将重新上线的硬盘文件扫描出来,从而确保用户的数据文件的完整性,因此,只要节点故障修复及时,是不会触发数据恢复的。若时长大于预设时长,则可以对数据节点的硬盘存储的数据块进行数据恢复。
45.s12:基于损坏数据块,确定针对损坏数据块进行数据恢复的目标恢复方式。
46.其中,目标恢复方式为全量恢复方式、增量恢复方式中的任一种;全量恢复方式用于对硬盘的所有硬盘挂载目录存储的损坏数据块进行数据恢复,增量恢复方式用于对硬盘的多个硬盘挂载目录中预设数量的硬盘挂载目录存储的损坏数据块进行数据恢复,预设数量小于硬盘包含的硬盘挂载目录的目录总数。
47.在一些实施方式中,以损坏数据块所属的硬盘为双磁盘硬盘为例进行说明。若双磁臂硬盘中的两个硬盘挂载目录存储的子数据块同时损坏,由于双磁臂硬盘内有相对独立的两个物理存储单元,关联设有两个硬盘挂载目录,因而出现这种故障场景时说明数据节点的硬盘出现了多点故障,此时需要执行数据块的全量恢复,可以确定目标恢复方式为全
量恢复方式。若双磁臂硬盘中的一个硬盘挂载目录存储的子数据块存在损坏,由于数据节点能够保证数据块的两个子数据块位于不同物理存储单元内,因而,此时只需要恢复数据块的一个子数据块即可,即执行数据块的增量恢复,可以确定目标恢复方式为增量恢复方式。
48.在一些实施例中,请参阅图3,可以对上述实施例的步骤s12进一步扩展。基于损坏数据块,确定针对损坏数据块进行数据恢复的目标恢复方式,本实施例可以包括以下至少一个步骤:
49.s121:响应于损坏数据块为第一数据块,或者,响应于损坏数据块所属的硬盘挂载目录关联为第一类型硬盘的物理存储单元,确定针对损坏数据块进行数据恢复的目标恢复方式为全量恢复方式。
50.在一些实施方式中,数据节点包含多个硬盘,每个硬盘包含至少一个物理存储单元,硬盘包括第一类型硬盘、第二类型硬盘中的至少一者,第二类型硬盘的每个物理存储单元的容量为第一类型硬盘的每个物理存储单元的容量的预设比例。
51.从而,上述的至少部分子数据块为第一数据块或第二数据块,第一数据块为整个数据块,第二数据块为对数据块切分的子数据块。第一类型硬盘包含的一个物理存储单元对应关联的硬盘挂载目录用于存储第一数据块,第二类型硬盘包含的多个物理存储单元对应关联的多个硬盘挂载目录分别用于存储第二数据块。
52.在一些实施方式中,当损坏数据块所属的硬盘为第一类型硬盘,例如第一类型硬盘为单磁臂硬盘时,响应于损坏数据块所属的硬盘挂载目录关联为第一类型硬盘的物理存储单元第一类型硬盘,确定针对损坏数据块进行数据恢复的目标恢复方式为全量恢复方式。
53.在一些实施方式中,响应于损坏数据块为第一数据块,也即可以得知损坏数据块所属的硬盘存在一个硬盘挂载目录,确定针对损坏数据块进行数据恢复的目标恢复方式为全量恢复方式。
54.s122:响应于损坏数据块为多个第二数据块,多个第二数据块所属的硬盘挂载目录关联为第二类型硬盘的物理存储单元,且用于分别存储多个第二数据块的硬盘挂载目录的数量为目录总数,确定针对损坏数据块进行数据恢复的目标恢复方式为全量恢复方式。
55.在硬盘的损坏数据块为多个第二数据块的情况下,硬盘为第二类型硬盘,多个第二数据块所属的硬盘挂载目录关联为第二类型硬盘的物理存储单元,由于第二类型硬盘对应的物理存储单元关联的硬盘挂载目录独立,且单独存储数据块切分的第二数据块。例如第二类型硬盘为双磁臂硬盘,双磁臂硬盘的两个物理存储单元用于分别存储数据块切分的第二数据块。
56.若损坏的第二数据块所属的硬盘挂载目录的数量为整个硬盘包含的硬盘挂载目录的数量,也即用于分别存储多个第二数据块的硬盘挂载目录的数量为目录总数,确定针对损坏数据块进行数据恢复的目标恢复方式为全量恢复方式。
57.s123:响应于损坏数据块为至少一个第二数据块,至少一个第二数据块所属的硬盘挂载目录关联为第二类型硬盘的物理存储单元,且用于分别存储至少一个第二数据块对应的硬盘挂载目录的数量小于目录总数,确定针对损坏数据块进行数据恢复的目标恢复方式为增量恢复方式。
58.参阅上述步骤s123,第二类型硬盘存在至少一个物理存储单元关联的硬盘挂载目录存储的第二数据块未损坏,响应于损坏数据块为至少一个第二数据块,至少一个第二数据块所属的硬盘挂载目录关联为第二类型硬盘的物理存储单元,且用于分别存储至少一个第二数据块对应的硬盘挂载目录的数量小于目录总数,确定针对损坏数据块进行数据恢复的目标恢复方式为增量恢复方式。
59.本实施例中,可以根据硬盘的硬盘挂载目录存储的数据块不同的损坏情况,选择不同恢复量的恢复方式进行数据恢复,可以提升对损坏数据块的数据恢复效率。
60.s13:向数据节点下发数据恢复指令信息,以使数据节点基于目标恢复方式对损坏数据块进行数据恢复。
61.确定目标恢复方式之后,基于目标恢复方式生成数据恢复指令信息,可以在负载均衡的数据节点空闲队列中,选取目标数据节点下发数据恢复指令信息,以使数据节点基于目标恢复方式对损坏数据块进行数据恢复。
62.在一些实施方式中,可以基于目标恢复方式、损坏数据块的相关数据分布情况,生成数据恢复指令信息;其中,损坏数据块包括硬盘包含的硬盘挂载目录存储的数据块的至少部分子数据块(如第一数据块或第二数据块),相关数据分布情况包含其他数据块的存储分布信息,其他数据块与损坏数据块属于同一数据文件拆分的至少部分子数据块(如第一数据块或第二数据块),其他数据块用于进行数据恢复得到损坏数据块的恢复数据。
63.在一些实施方式中,管理节点在数据节点空闲队列中,选取一台可用数据节点作为目标数据节点;将数据恢复指令信息下发给目标数据节点,以使得目标数据节点对损坏数据块进行数据恢复,其中,目标数据节点用于利用目标恢复方式、损坏数据块的相关数据分布情况,得到损坏数据块对应的恢复数据。
64.在一些实施方式中,可以根据负载均衡策略,在存储集群中找到负载情况较轻的数据节点作为目标数据节点,执行数据块的恢复动作。
65.本实施例中,通过管理节点接收数据节点上报的损坏数据块,损坏数据块包括至少部分子数据块;基于损坏数据块,确定针对损坏数据块进行数据恢复的目标恢复方式;向数据节点下发数据恢复指令信息,以使数据节点基于目标恢复方式对损坏数据块进行数据恢复;其中,目标恢复方式为全量恢复方式、增量恢复方式中的任一种,全量恢复方式用于对硬盘的所有硬盘挂载目录存储的损坏数据块进行数据恢复,增量恢复方式用于对硬盘的多个硬盘挂载目录中预设数量的硬盘挂载目录存储的损坏数据块进行数据恢复,预设数量小于硬盘包含的硬盘挂载目录的目录总数,上述方式可以基于硬盘的硬盘挂载目标存储的损坏数据块的不同损坏情况,设定不同的数据恢复方式,可以最大限度的降低数据恢复量,并且可以支持数据块的全量恢复方式和增量恢复方式,能够进一步降低恢复的数据量,能够提高数据恢复效率。另外,能够适用于单磁臂硬盘和双磁臂硬盘混合部署的场景,降低了存储集群的维护难度,提升了存储集群的可用性。
66.此外,支持双磁臂硬盘内数据块的子数据块级别(切片级别)的管理和数据恢复,将数据恢复的效率提升了一倍。在保障了用户数据安全的情况下,降低了对大容量、多盘位存储集群业务的影响,保障了集群的读写性能。
67.请参阅图4,图4是本技术存储集群的数据恢复方法第二实施例的流程示意图。该实施例可以应用于数据节点。该方法可以包括以下步骤:
68.s21:数据节点接收管理节点下发的数据恢复指令信息;其中,数据恢复指令信息中包含损坏数据块的目标恢复方式。
69.在一些实施方式中,数据恢复指令信息是管理节点执行上述存储集群的数据恢复方法第一实施例的任一步骤得到的。该实施例的执行主体为数据节点,数据节点可以为上述管理节点选择的下发数据恢复指令信息的目标数据节点。
70.其中,数据恢复指令信息是管理节点基于目标恢复方式生成的,目标恢复方式为全量恢复方式、增量恢复方式中的任一种,全量恢复方式用于对硬盘的所有硬盘挂载目录存储的损坏数据块进行数据恢复,增量恢复方式用于对硬盘的多个硬盘挂载目录中预设数量的硬盘挂载目录存储的损坏数据块进行数据恢复,预设数量小于硬盘包含的硬盘挂载目录的目录总数。
71.存储集群包含有管理节点和与管理节点通信连接的至少一个数据节点,每个数据节点包含有多个硬盘,每个硬盘包含至少一个物理存储单元,硬盘的每个物理存储单元设有关联的硬盘挂载目录,用于存储数据块的至少部分子数据块,其中,硬盘包含的多个物理存储单元对应关联的硬盘挂载目录用于存储数据块的子数据块。
72.该步骤的具体实施过程具体可以参考上述实施例的具体实施过程,本技术在此不做赘述。
73.s22:利用目标恢复方式,选择目标硬盘包含的物理存储单元关联的硬盘挂载目录对损坏数据块进行数据恢复,得到损坏数据块的恢复数据。
74.得到目标恢复方式之后,目标数据节点可以选择一个硬盘作为目标硬盘对损坏数据块进行数据恢复,得到损坏数据块的恢复数据。
75.在一些实施例中,请参阅图5,可以对上述实施例的步骤s22进一步扩展。利用目标恢复方式,选择目标硬盘包含的物理存储单元关联的硬盘挂载目录对损坏数据块进行数据恢复,得到损坏数据块的恢复数据,本实施例可以包括以下步骤:
76.s221:在硬盘空闲队列中选择一块可用硬盘作为目标硬盘;其中,选取目标硬盘的优先级为第二类型硬盘高于第一类型硬盘,第二类型硬盘每个物理存储单元的容量为第一类型硬盘每个物理存储单元的容量的预设比例。
77.目标数据节点在负载均衡的硬盘空闲队列中,选择一块可用硬盘作为目标硬盘,其中,其中,选取目标硬盘的优先级为第二类型硬盘高于第一类型硬盘,第二类型硬盘每个物理存储单元的容量为第一类型硬盘每个物理存储单元的容量的预设比例,也即可以优先选择双磁臂硬盘作为目标硬盘,在硬盘空闲队列中无双磁臂硬盘时,再选择单磁盘硬盘作为目标硬盘。
78.在一些实施方式中,目标数据节点根据记录的硬盘负载均衡状况,选择负载情况较轻的硬盘作为目标硬盘,并且可用容量足够的物理存储单元执行数据恢复。
79.在一些实施方式中,判断选取的目标硬盘是否为第二类型硬盘,若判断为不第二类型硬盘,则执行步骤s222;若判断为第二类型硬盘,则执行步骤s223。
80.在一些实施方式中,判断选取的目标硬盘为第一类型硬盘或第二类型硬盘,若判断为第一类型硬盘,则执行步骤s222;若判断为第二类型硬盘,则执行步骤s223。
81.在一些实施方式中,还可以判断目标恢复方式是否为全量恢复方式,如果判断是全量恢复方式,响应于目标恢复方式为全量恢复方式,利用目标硬盘的一个或多个物理存
储单元对应关联的硬盘挂载目录对损失数据块进行数据恢复,若目标硬盘为双磁臂硬盘,则选择目标硬盘的两个物理存储单元对应关联的硬盘挂载目录执行数据恢复动作,对损坏数据块进行数据恢复。若目标硬盘为单磁臂硬盘,则选择目标硬盘的一个物理存储单元对应关联的硬盘挂载目录执行数据恢复动作,对损坏数据块进行数据恢复。否则,响应于目标恢复方式为增量恢复方式,利用目标硬盘的一个物理存储单元对应关联的硬盘挂载目录对损坏数据块进行数据恢复。
82.s222:响应于目标硬盘为第一类型硬盘,利用第一类型硬盘的物理存储单元关联的硬盘挂载目录,对损坏数据块进行数据恢复,得到损坏数据块的恢复数据。
83.响应于目标硬盘为第一类型硬盘,目标恢复方式为增量恢复方式或全量恢复方式,选择第一类型硬盘包含的一个硬盘挂载目录即可对损坏数据块进行数据恢复,得到损坏数据块的恢复数据。
84.s223:响应于目标硬盘为第二类型硬盘,利用第二类型硬盘的物理存储单元关联的至少一个硬盘挂载目录,分别对损坏数据块进行数据恢复,得到损坏数据块的恢复数据。
85.其中,目标恢复方式为全量恢复方式时,至少一个硬盘挂载目录为第二类型硬盘包含的硬盘挂载目录的目录总数。也即,响应于目标硬盘为第二类型硬盘,利用第二类型硬盘的物理存储单元关联的所有硬盘挂载目录分别对损坏数据块进行数据恢复,得到损坏数据块的恢复数据。
86.目标恢复方式为所述增量恢复方式时,至少一个硬盘挂载目录为预设数量的硬盘挂载目录,预设数量小于第二类型硬盘包含的硬盘挂载目录的目录总数,也即,响应于目标硬盘为第二类型硬盘,可以利用第二类型硬盘的物理存储单元关联的少于硬盘挂载目录的目录总数的硬盘挂载目录分别对损坏数据块进行数据恢复,得到损坏数据块的恢复数据。例如目标硬盘为双磁臂硬盘,则选择目标硬盘关联的两个硬盘挂载目录中的任一个执行数据恢复动作,对损坏数据块进行数据恢复。
87.在一些实施方式中,数据恢复指令信息中还包含损坏数据块的相关数据分布情况。
88.对损坏数据块进行数据恢复时,可以利用损坏数据块的相关数据分布情况,基于目标数据节点的数据块关系表及数据块位置表,从多个数据节点中读取其他数据块,也即从其他数据节点内读取数据恢复时需要的数据块。其中,相关数据分布情况包含与损坏数据块属于同一数据文件拆分的其他数据块的存储分布信息。
89.从而,目标数据节点可以利用其他数据块进行计算分析,计算出损坏数据块对应的恢复数据,并将恢复数据存储在目标硬盘的存储单元关联的硬盘挂载目录中。
90.在一些实施方式中,执行上述数据恢复动作之后,目标数据节点及原损坏数据块的数据节点会更新数据块位置表,管理节点更新数据块关系表,并且,目标数据节点会通知原损坏数据块的数据节点(发送数据块损坏块的数据节点)将损坏数据块的相关信息从数据块位置表删除,完成对数据块位置表的更新,以便于数据节点重启后通过扫描硬盘中的数据块位置表后,完成数据分布规则的重建。
91.本实施例中,由于双磁臂硬盘内的两个物理存储单元是相互独立的,若硬盘的两个物理存储单元同时发生故障,导致硬盘损坏、数据丢失的概率比较小。所以,在执行数据恢复动作时,如果只恢复损坏的数据块切片,就能使双磁臂硬盘的数据恢复效率提升一倍。
92.另外,数据节点在执行数据块恢复业务时,能够根据数据块位置表,识别出数据块的损坏情况。当数据块的两个子数据块均损坏时,由于两个子数据块位于不同的物理存储单元,可以并发执行全量恢复,可以提升数据恢复速度。完成数据块恢复后,更新数据块位置表中子数据块对应的硬盘id即可。
93.在数据节点内执行的并发数据恢复动作,可以有效提升双磁臂硬盘的数据块恢复效率,例如在恢复同样数据量的情况下,能够减少接近一半的数据恢复时间,极大的降低了数据恢复行为对节点业务的影响。数据节点执行全量恢复动作时,能够同时执行子数据块的计算,并将其恢复到不同的物理存储单元内;数据节点执行增量恢复动作时,由于只需要恢复一个子数据块,也减少了一半参与恢复的数据量,从而可以缩短接近一半数据块计算和恢复的时间,在保障数据安全的情况下提升了业务性能。
94.请参阅图6,图6是本技术存储集群的数据恢复方法第三实施例的流程示意图。该实施例可以应用于数据节点。该方法可以包括以下步骤:
95.s31:响应于对待上线硬盘的接入请求,获取待上线硬盘包含的物理存储单元的数量。
96.在一些实施方式中,该实施例可以用于对数据节点的硬盘进行上线,将硬盘接入数据节点。
97.在一些实施方式中,数据节点可以向管理节点进行注册,管理节点按照规律生成管理字节字符串组成的集群id(如一个由64字节字符串组成的集群id),并将集群id(clusterid)分发给对应的数据节点,使得每个数据节点都是唯一的,可以作为数据节点的唯一标识。
98.此外,数据节点注册并上线成功后,数据节点会生成一个由集群id(clusterid)和数据字节字符串(如64字节字符串)组成的数据节点标识(即dnid),该标识信息在集群内部唯一存在。
99.管理节点可以维护数据块关系表,数据块关系表中记录有数据文件名、被切分后的数据块名、数据块所在的数据节点dnid。
100.硬盘在数据节点内上线成功后,数据节点的dn服务会为每块硬盘分配一个由数据节点标识dnid和硬盘字节字符串(如64字节字符串)组成的硬盘身份标识(即diskid),该标识信息在节点内部唯一存在。
101.由于第二类型硬盘为双磁臂硬盘,双磁臂硬盘内的不同物理存储单元可以通过在diskid追加后缀的方式进行区分,例如:diskid-1和diskid-2。
102.数据节点可以维护数据块位置表,数据块位置表中记录有数据块文件名、切分后的子数据块文件名及所在硬盘的硬盘标识diskid。
103.该实施例中,数据节点可以响应于对待上线硬盘的接入请求,从而获取待上线硬盘包含的物理存储单元的数量或者获取硬盘的槽位号,从而可以获取待上线硬盘的硬盘类型。
104.s32:对待上线硬盘的每个物理存储单元分别生成硬盘标识,并基于硬盘标识对每个物理存储单元单独分配硬盘挂载目录。
105.在一些实施方式中,若待上线硬盘为第二类型硬盘的硬盘(如双磁臂硬盘),数据节点可以独立管理双磁臂硬盘的两个物理存储单元。
106.接入数据节点的双磁臂硬盘,接入数据节点的待上线硬盘为双磁臂硬盘,数据节点在系统内能够看到同属于一个物理槽位的两个物理存储单元,也即共享槽位被识别为双磁盘硬盘(即两块硬盘)。dn服务分别将这两个物理存储单元格式化成通用文件系统,并根据硬盘的物理槽位号创建两个数据硬盘挂载目录(例如:datax-1和datax-2)。
107.dn服务通过槽位合并的方式,可以独立管理挂载后的双磁臂硬盘,使业务层的数据块以文件的形式被保存在两个硬盘挂载目录中,并进行独立的可用容量和负载信息采集。
108.dn服务对待上线硬盘的每个物理存储单元分别生成硬盘标识,例如“diskid-1”或“diskid-2”,以文件的形式分别写入挂载点(也即硬盘挂载目录)内,从而完成持久化,下次再上线的时候根据此id就可以识别出。
109.在一些实施方式中,若待上线硬盘识别为单磁臂硬盘,存在一个物理存储单元独占槽位,可以为单磁臂硬盘的物理存储单元分配一个硬盘挂载目标datax,并且生成一个硬盘标识diskid。
110.本实施例中,数据节点通过上述方法可以独立管理双磁臂硬盘的两个物理单元,数据节点可以单独对每个物理存储单元(例如单磁臂硬盘的一个物理存储单元,双磁臂硬盘的两个物理存储单元)进行管理,双磁臂硬盘挂载后的两个物理存储单元能够同时接受数据节点下发的数据读写任务。另外,能够同时管理单磁臂硬盘和双磁臂硬盘,也便于进行双磁臂硬盘的数据恢复。
111.请参阅图7,图7是本技术存储集群的数据恢复方法第四实施例的流程示意图。该实施例可以应用于数据节点。该方法可以包括以下步骤:
112.s41:接收管理节点发送的数据块的存储请求,其中,数据块为管理节点对数据文件拆分后的任一数据块。
113.在一些实施方式中,本实施例为数据节点的数据存储方法或写入方法,本实施例可以为在上述实施例中步骤s21之前的步骤,也可以是步骤s22之后的步骤,本技术对此不做限制。
114.在一些实施方式中,该实施例中待存储的数据块也可以为上述的恢复数据,恢复数据可以为第一数据块或第二数据块。
115.在一些实施方式中,该实施例中待存储的数据块也可以为上述的数据块,从而可以将数据块划分为多个第二数据块单独进行存储。
116.在此步骤之前,用户将数据文件写入存储集群时,会先向管理节点请求存储资源。管理节点将用户待存储的数据文件拆分为多个大小相同的数据块(包含属于数据块和属于校验块的数据块),例如差分为n个数据块,n为正整数,并且基于n个数据块生成m个校验块,m为小于n的正整数。其中,后续进行数据恢复过程中,可以通过n+m个数据块中的任意n个数据块,将缺失的数据块还原出来得到原始数据。
117.管理节点在存储集群的负载均衡队列中,选择与数据块数据一致的数据节点分别保存数据块。管理节点用于记录数据块关系表,数据块关系表中记录有数据文件名、切分后的数据块名、每个数据块所在的数据节点,从而实现存储集群对数据文件的读写。
118.数据节点可以接收管理节点发送的数据块的存储请求,其中,数据块为管理节点对数据文件拆分后的任一数据块,并且管理节点会将数据块下发给数据节点。
119.s42:从硬盘空闲队列中选取存储硬盘。
120.数据节点可以从负载均衡的硬盘空闲队列中选取一块硬盘作为存储硬盘,可以优先选取第二类型硬盘的硬盘作为存储硬盘。
121.在一些实施方式中,选出存储硬盘之后,可以获取存储硬盘的硬盘类型,判断是否选中第二类型硬盘的硬盘,也即双磁臂硬盘。可以按照存储硬盘的硬盘类型,按照不同的存储方式将数据块进行存储在硬盘中。
122.在一些实施方式中,若为单磁盘硬盘,则将数据块直接存储在单磁盘硬盘的硬盘挂载目录中。若为双磁臂硬盘,则可以执行下述步骤s43至步骤s45的步骤。也即若存储硬盘的硬盘类型为双磁盘硬盘,也即第二类型硬盘,则采用切分存储方式的将数据块写入存储硬盘的两个物理存储单元中。
123.s43:响应于存储硬盘为第二类型硬盘,则判断是否能获取数据块的长度信息。
124.在一些实施例中,在硬盘类型为第二类型硬盘,第二类型硬盘对应的存储方式为:切分存储方式的情况下,基于存储硬盘的硬盘类型对应的存储方式,将数据块存储至存储硬盘的存储单元中。
125.判断是否能获取数据块的长度信息。若数据节点能够获取数据块的长度信息,则执行步骤s44。若数据节点不能获取数据块的长度信息,则执行步骤s45。
126.s44:响应于能获取数据块的长度信息,将数据块切分为多个第二数据块,以并行的方式将各第二数据块分别写入存储硬盘的不同硬盘挂载目录中。
127.如果数据节点能够获取数据块的长度信息,则按照数据块的长度信息,将数据块切分为多个第二数据块,并以并行的方式将各第二数据块分别写入存储硬盘的多个物理存储单元关联的硬盘挂载目录中。例如将数据块切分为两个长度相同的第二数据块,并以并行的方式将各第二数据块分别写入双磁盘硬盘的两个不同的硬盘挂载目录中,通过并发的方式可以提升写入性能。
128.s45:响应于不能获取数据块的长度信息,将数据块以分段写入的形式分别写入存储硬盘的不同硬盘挂载目录中,其中,分段写入的形式包括:将数据块的预设长度作为第二数据块写入一硬盘挂载目录之后,以预设长度对数据块进行切分得到未写入的第二数据块,再将未写入的第二数据块写入其他的硬盘挂载目录中。
129.如果数据节点不能够获取数据块的长度信息,则可以将数据块以分段写入的形式分别写入存储硬盘的多个物理存储单元关联的硬盘挂载目录中。其中,分段写入的形式包括:将数据块的预设长度作为第二数据块写入一硬盘挂载目录之后,以预设长度对数据块进行切分得到未写入的第二数据块,再将未写入的第二数据块写入其他的硬盘挂载目录中。也即可以选择一硬盘挂载目标的物理存储单元执行数据块的写入动作,当写入的数据的长度达到预设长度(例如256mb的一半)时,执行数据块的切分动作,将数据块切分为第二数据块,再选择一个硬盘挂载目录完成新的第二数据块的存储,而上一个物理存储单元关联的硬盘挂载目录则可以释放写入带宽,从而提升性能。
130.写入完成之后,生成数据块位置表并持久化。数据块位置表中记录有数据块文件名、切分后的子数据块文件名及所在硬盘的硬盘标识diskid。并将数据块切分表保存在每块物理存储单元内,以确保数据节点系统重启后,可以从硬盘内读出所有数据块的切分方法。
131.此外,将双磁臂硬盘接入数据节点后,数据节点能够将其中的两个物理存储单元抽象成两个不同的硬盘挂载点,并将数据块文件切分后保存在不同的硬盘挂载点内,同时会在数据节点和硬盘内保存数据块切分的位置表,以便于数据块的合并和恢复。
132.请参阅图8,图8是本技术存储集群的数据恢复方法第五实施例的流程示意图。该实施例可以应用于数据节点。该方法可以包括以下步骤:
133.s51:接收管理节点发送的数据块的读取请求,其中,数据块为管理节点对数据文件拆分后,存储在数据节点硬盘的物理存储单元关联的硬盘挂载目录中的数据块。
134.在一些实施方式中,本实施例为数据节点的数据存储方法或读取方法,本实施例可以为在上述实施例中步骤s21之前的步骤,可以是步骤s22之后的步骤,或者,可以是上述步骤s43之后的步骤。本技术对此不做限制。
135.存储集群可以根据数据文件名,在管理节点的数据块关系表中查找数据文件被切分后的数据块名,以及每个数据块存储所在的数据节点的节点id,管理节点并向各数据节点发送读取相应数据块的读取请求,以读取对应的数据块的内容。
136.从而,数据节点可以接收管理节点发送的数据块的读取请求。
137.在一些实施方式中,该实施例所读取的数据块可以为上述所指的其他数据块(损坏数据块相关的其他数据块),或者其他需要进行读取的数据块,本技术对此不做限制。
138.s52:从数据块位置表查找数据块的存储分布信息,存储分布信息包括数据块的至少部分子数据块的所属硬盘挂载目录。
139.数据节点根据数据块名,从数据节点的数据块位置表中查找数据块的存储分布信息,存储分布信息包括数据块的至少部分子数据块的存储信息,例如其被切分的子数据块所在的硬盘或硬盘挂载目录。基于存储分布信息,从硬盘的物理存储单元读取数据块。
140.s53:利用所属硬盘挂载目录判断是否存在数据块的多个子数据块。
141.可以基于数据块的所属硬盘挂载目录,从硬盘的所属硬盘挂载目录读取数据块,若包含有多个子数据块的所属硬盘挂载目录,则可以从硬盘的多个所属硬盘挂载目录依次读取数据块的子数据块,并将读取到的数据块或子数据块返回给管理节点,从而完成用户对数据文件的读取。
142.在一些实施方式中,可以利用所属硬盘挂载目录判断是否存在数据块的多个子数据块的存储信息,若不存在数据块的多个子数据块的所属硬盘挂载目录,则直接读取数据块。否则,则执行下述步骤s54。
143.s54:响应于存在数据块的多个子数据块,同时从硬盘的多个所属硬盘挂载目录读取各子数据块,以得到数据块。
144.响应于存在数据块的多个子数据块或多个所属硬盘挂载目录,分别从硬盘的多个所属硬盘挂载目录同时读取各子数据块,以得到数据块。该读取方式可以提升对数据文件的读取效率。
145.对于上述实施例,请参阅图9,图9是本技术存储集群的数据恢复装置第一实施例的结构示意图。该实施例可以应用于管理节点。该存储集群的数据恢复装置60包括接收模块61、方式模块62和任务模块63。其中,接收模块61、方式模块62和任务模块63连接。
146.其中,存储集群包含有管理节点和与管理节点通信连接的至少一个数据节点,数据节点包含多个硬盘,每个硬盘包含至少一个物理存储单元,硬盘的每个物理存储单元设
有关联的硬盘挂载目录,用于存储数据块的至少部分子数据块,其中,硬盘包含的多个物理存储单元对应关联的硬盘挂载目录用于存储数据块的子数据块。
147.接收模块61用于接收数据节点上报的损坏数据块,损坏数据块包括至少部分子数据块。
148.方式模块62用于基于损坏数据块,确定针对损坏数据块进行数据恢复的目标恢复方式。其中,目标恢复方式为全量恢复方式、增量恢复方式中的任一种,全量恢复方式用于对硬盘的所有硬盘挂载目录存储的损坏数据块进行数据恢复,增量恢复方式用于对硬盘的多个硬盘挂载目录中预设数量的硬盘挂载目录存储的损坏数据块进行数据恢复,预设数量小于硬盘包含的硬盘挂载目录的目录总数。
149.任务模块63用于向数据节点下发数据恢复指令信息,以使数据节点基于目标恢复方式对损坏数据块进行数据恢复。
150.该实施例的具体实施方式可参考上述实施例的实施过程,在此不再赘述。
151.对于上述实施例,请参阅图10,图10是本技术存储集群的数据恢复装置第二实施例的结构示意图。该实施例可以应用于数据节点。该存储集群的数据恢复装置70包括接收模块71和恢复模块72。其中,接收模块71和恢复模块72连接。
152.其中,存储集群包含有管理节点和与管理节点通信连接的至少一个数据节点,每个数据节点包含有多个硬盘,每个硬盘包含至少一个物理存储单元,硬盘的每个物理存储单元设有关联的硬盘挂载目录,用于存储数据块的至少部分子数据块,其中,硬盘包含的多个物理存储单元对应关联的硬盘挂载目录用于存储数据块的子数据块。
153.接收模块71用于接收管理节点下发的数据恢复指令信息;其中,数据恢复指令信息中包含损坏数据块的目标恢复方式;数据恢复指令信息是管理节点执行上述第一实施例的存储集群的数据恢复方法任一项步骤得到的。
154.恢复模块72用于利用目标恢复方式,选择目标硬盘包含的物理存储单元关联的硬盘挂载目录对损坏数据块进行数据恢复,得到损坏数据块的恢复数据。
155.该实施例的具体实施方式可参考上述实施例的实施过程,在此不再赘述。
156.对于上述实施例,本技术提供一种计算机设备,请参阅图11,图11是本技术计算机设备一实施例的结构示意图。该计算机设备80包括存储器81和处理器82,其中,存储器81和处理器82相互耦接,存储器81中存储有程序数据,处理器82用于执行程序数据以实现上述存储集群的数据恢复方法任一实施例的步骤。
157.在本实施例中,处理器82还可以称为cpu(central processing unit,中央处理单元)。处理器82可能是一种集成电路芯片,具有信号的处理能力。处理器82还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器82也可以是任何常规的处理器等。
158.在一些实施方式中,该实施例的计算机设备80可以作为上述实施例的管理节点和/或数据节点,以执行上述实施例的任一步骤。
159.对于上述实施例的方法,其可以采用计算机程序的形式实现,因而本技术提出一种计算机可读存储介质,请参阅图12,图12是本技术计算机可读存储介质一实施例的结构示意图。该计算机可读存储介质90中存储有程序数据91,程序数据91能够被处理器运行以
实现上述存储集群的数据恢复方法任一实施例的步骤。
160.本实施例计算机可读存储介质90可以是u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等可以存储程序数据91的介质,或者也可以为存储有该程序数据91的服务器,该服务器可将存储的程序数据91发送给其他设备运行,或者也可以自运行该存储的程序数据91。
161.在本技术所提供的几个实施例中,应该理解的,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
162.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
163.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
164.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中,该计算机可读存储介质是一种计算机可读取存储介质。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。
165.显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机可读存储介质中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
166.以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

技术特征:
1.一种存储集群的数据恢复方法,其特征在于,所述存储集群包含有管理节点和与所述管理节点通信连接的至少一个数据节点,所述数据节点包含多个硬盘,每个硬盘包含至少一个物理存储单元,所述硬盘的每个物理存储单元设有关联的硬盘挂载目录,用于存储数据块的至少部分子数据块,其中,所述硬盘包含的多个物理存储单元对应关联的硬盘挂载目录用于存储所述数据块的子数据块;所述方法包括:所述管理节点接收所述数据节点上报的损坏数据块,所述损坏数据块包括至少部分子数据块;基于所述损坏数据块,确定针对所述损坏数据块进行数据恢复的目标恢复方式;向数据节点下发数据恢复指令信息,以使所述数据节点基于所述目标恢复方式对所述损坏数据块进行数据恢复;其中,所述目标恢复方式为全量恢复方式、增量恢复方式中的任一种,所述全量恢复方式用于对所述硬盘的所有硬盘挂载目录存储的损坏数据块进行数据恢复,所述增量恢复方式用于对所述硬盘的多个硬盘挂载目录中预设数量的硬盘挂载目录存储的损坏数据块进行数据恢复,所述预设数量小于所述硬盘包含的硬盘挂载目录的目录总数。2.根据权利要求1所述的方法,其特征在于,所述至少部分子数据块为第一数据块或第二数据块,所述第一数据块为整个数据块,所述第二数据块为对所述数据块切分的子数据块;所述硬盘包括第一类型硬盘、第二类型硬盘中的至少一者,所述第二类型硬盘的每个物理存储单元的容量为所述第一类型硬盘的每个物理存储单元的容量的预设比例;所述第一类型硬盘包含的一个物理存储单元对应关联的硬盘挂载目录用于存储第一数据块,所述第二类型硬盘包含的多个物理存储单元对应关联的多个硬盘挂载目录分别用于存储第二数据块。3.根据权利要求2所述的方法,其特征在于,所述基于所述损坏数据块,确定针对所述损坏数据块进行数据恢复的目标恢复方式,包括以下至少一个步骤:响应于所述损坏数据块为第一数据块,或者,响应于所述损坏数据块所属的硬盘挂载目录关联为第一类型硬盘的物理存储单元,确定针对所述损坏数据块进行数据恢复的目标恢复方式为所述全量恢复方式;响应于所述损坏数据块为多个第二数据块,所述多个第二数据块所属的硬盘挂载目录关联为第二类型硬盘的物理存储单元,且用于分别存储所述多个第二数据块的硬盘挂载目录的数量为所述目录总数,确定针对所述损坏数据块进行数据恢复的目标恢复方式为所述全量恢复方式;响应于所述损坏数据块为至少一个第二数据块,所述至少一个第二数据块所属的硬盘挂载目录关联为第二类型硬盘的物理存储单元,且用于分别存储所述至少一个第二数据块对应的硬盘挂载目录的数量小于所述目录总数,确定针对所述损坏数据块进行数据恢复的目标恢复方式为所述增量恢复方式。4.根据权利要求1所述的方法,其特征在于,所述向数据节点下发数据恢复指令信息之前,包括:基于所述目标恢复方式、所述损坏数据块的相关数据分布情况,生成所述数据恢复指
令信息;其中,所述相关数据分布情况包含其他数据块的存储分布信息,所述其他数据块与所述损坏数据块属于同一数据文件拆分的至少部分子数据块,所述其他数据块用于进行数据恢复得到所述损坏数据块的恢复数据。5.一种存储集群的数据恢复方法,其特征在于,所述存储集群包含有管理节点和与所述管理节点通信连接的至少一个数据节点,每个数据节点包含有多个硬盘,每个硬盘包含至少一个物理存储单元,所述硬盘的每个物理存储单元设有关联的硬盘挂载目录,用于存储数据块的至少部分子数据块,其中,所述硬盘包含的多个物理存储单元对应关联的硬盘挂载目录用于存储所述数据块的子数据块;所述方法包括:所述数据节点接收所述管理节点下发的数据恢复指令信息;其中,所述数据恢复指令信息中包含损坏数据块的目标恢复方式;所述数据恢复指令信息是所述管理节点执行权利要求1-4任一项所述方法的步骤得到的;利用所述目标恢复方式,选择目标硬盘包含的物理存储单元关联的硬盘挂载目录对所述损坏数据块进行数据恢复,得到所述损坏数据块的恢复数据。6.根据权利要求5所述的方法,其特征在于,所述利用所述目标恢复方式,选择目标硬盘包含的物理存储单元关联的硬盘挂载目录对所述损坏数据块进行数据恢复,包括:在硬盘空闲队列中选择一块可用硬盘作为所述目标硬盘;其中,选取所述目标硬盘的优先级为第二类型硬盘高于第一类型硬盘,所述第二类型硬盘每个物理存储单元的容量为所述第一类型硬盘每个物理存储单元的容量的预设比例;响应于所述目标硬盘为第一类型硬盘,利用所述第一类型硬盘的物理存储单元关联的硬盘挂载目录,对所述损坏数据块进行数据恢复,得到所述损坏数据块的恢复数据;或者,响应于所述目标硬盘为第二类型硬盘,利用所述第二类型硬盘的物理存储单元关联的至少一个硬盘挂载目录,分别对所述损坏数据块进行数据恢复,得到所述损坏数据块的恢复数据;其中,所述目标恢复方式为所述全量恢复方式时,所述至少一个硬盘挂载目录为所述第二类型硬盘包含的硬盘挂载目录的目录总数;所述目标恢复方式为所述增量恢复方式时,所述至少一个硬盘挂载目录为所述预设数量的硬盘挂载目录,所述预设数量小于所述第二类型硬盘包含的硬盘挂载目录的目录总数。7.根据权利要求5所述的方法,其特征在于,所述方法还包括:接收所述管理节点发送的数据块的存储请求,其中,所述数据块为所述管理节点对数据文件拆分后的任一数据块;从硬盘空闲队列中选取存储硬盘;响应于所述存储硬盘为第二类型硬盘,则判断是否能获取所述数据块的长度信息;响应于能获取所述数据块的长度信息,将所述数据块切分为多个第二数据块,以并行的方式将各所述第二数据块分别写入所述存储硬盘的不同硬盘挂载目录中;或者,响应于不能获取所述数据块的长度信息,将所述数据块以分段写入的形式分别写入所述存储硬盘的不同硬盘挂载目录中,其中,所述分段写入的形式包括:将所述数据块的预设
长度作为第二数据块写入一硬盘挂载目录之后,以所述预设长度对所述数据块进行切分得到未写入的第二数据块,再将所述未写入的第二数据块写入其他的硬盘挂载目录中。8.根据权利要求5所述的方法,其特征在于,所述方法还包括:接收所述管理节点发送的数据块的读取请求,其中,所述数据块为所述管理节点对数据文件拆分后,存储在数据节点硬盘的物理存储单元关联的硬盘挂载目录中的数据块;从数据块位置表查找所述数据块的存储分布信息,所述存储分布信息包括所述数据块的至少部分子数据块的所属硬盘挂载目录;利用所述所属硬盘挂载目录判断是否存在所述数据块的多个子数据块;响应于存在所述数据块的多个子数据块,同时从所述硬盘的多个所属硬盘挂载目录读取各子数据块,以得到所述数据块。9.一种计算机设备,其特征在于,包括相互耦接的存储器和处理器,所述存储器中存储有程序数据,所述处理器用于执行所述程序数据以实现权利要求1至8任一项所述方法的步骤。10.一种计算机可读存储介质,其特征在于,存储有程序数据,所述程序数据能够被处理器运行用于实现权利要求1至8任一项所述方法的步骤。

技术总结
本申请公开了一种存储集群的数据恢复方法以及相关设备。该方法包括:管理节点接收数据节点上报的损坏数据块,损坏数据块包括至少部分子数据块;基于损坏数据块,确定针对损坏数据块进行数据恢复的目标恢复方式;向数据节点下发数据恢复指令信息,以使数据节点基于目标恢复方式对损坏数据块进行数据恢复;其中,目标恢复方式为全量恢复方式、增量恢复方式中的任一种,全量恢复方式用于对硬盘的所有硬盘挂载目录存储的损坏数据块进行数据恢复,增量恢复方式用于对硬盘的多个硬盘挂载目录中预设数量的硬盘挂载目录存储的损坏数据块进行数据恢复,预设数量小于硬盘包含的硬盘挂载目录的目录总数。上述方案,能够提高数据恢复效率。率。率。


技术研发人员:寇耀飞 李正航 罗心 王志豪
受保护的技术使用者:浙江大华技术股份有限公司
技术研发日:2023.03.27
技术公布日:2023/8/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐