一种基于图算法的文件感知恢复方法及装置

文档序号:25058758发布日期:2021-05-14 14:25阅读:116来源:国知局
一种基于图算法的文件感知恢复方法及装置

1.本申请涉及云存储技术领域,特别是涉及一种基于图算法的文件感知恢复方法及装置。


背景技术:

2.在大规模云存储系统中,数据的可靠性至关重要。为了保障数据的可靠性和可用性,纠删码技术应运而生。相比于传统的副本技术,纠删码技术可以用更低的存储成本来保证相同的数据可靠性,也因此在分布式云存储系统中得到广泛、大规模的应用。但当系统发生硬件故障导致数据丢失需要恢复时,纠删码的恢复开销相比于传统的副本技术更大。以rs(k,r)编码为例,恢复一个数据块需要传输k个数据块,如果按照rs编码恢复文件,其恢复时间为副本技术的k倍。其中,rs是指纠删码reed

solomon。
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.1、考虑了分布式文件系统中复杂的映射关系,包括文件到条带的映射、条带到数据块的映射、数据块到网络节点(例如服务器、计算机等硬件物理设备)的映射,从而能生成可以进行文件感知的恢复策略。
36.2、考虑到了文件访问的热度信息(如文件的访问频率),从而有效提升恢复时文件的平均响应时间及吞吐率。
37.3、创新性地将复杂的映射关系及文件的访问频率构造为图的形式,并通过图算法(如最大费用最大流算法)进行求解,在保证算法复杂度较低情况下,在可接受范围内的前提下生成了合理的文件恢复方案,即确定所需恢复的目标文件信息,有效提升了文件级的恢复性能。
38.4、能够通过部分解码(partial decoding)的方式提高恢复并行度,降低恢复延迟。
39.5、文件级的恢复效率有显著提升。
附图说明
40.图1是本申请实施例提供的一种基于图算法的文件感知恢复方法的流程示意图。
41.图2

图4是本申请实施例提供的几种网络流图的示意图。
42.图5是本申请实施例提供的一种数据传输的示意图。
43.图6是本申请实施例提供的一种基于图算法的文件感知恢复的流程示意图。
44.图7是本申请实施例提供的一种基于图算法的文件感知恢复装置的结构示意图。
具体实施方式
45.以下通过特定的具体实例并结合附图说明本申请的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本申请的其它优点与功效。本申请亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本申请的精神下进行各种修饰与变更。
46.为解决现有文件恢复方案中存在的恢复效率较低、没有从文件的角度来恢复导致恢复了许多文件的部分数据而没有恢复一个完整的文件将不被使用,降低用户体验等问题,本申请提出一种基于图算法的文件感知恢复方法及装置。本申请提出一种基于图算法的文件感知恢复方案(方法),能够有效提升文件的恢复效率,其核心思想是将文件、文件对应的条带、条带对应的数据块、数据块对应的网络节点、文件的访问热度(即文件的访问频率)和数据块与校验块之间的关联关系等信息全部提取出来,并构建出一张完整的关系图,同时通过网络流算法(最大费用最大流算法)来生成文件恢复方案,从而提高文件恢复的效率。
47.请参见图1,是本申请实施例提供的一种基于图算法的文件感知恢复方法的流程
示意图。如图1所示的方法包括如下实施步骤。
48.s101、获取分布式文件系统中的元数据信息,所述元数据信息包括损坏节点上的待恢复文件与条带间的映射、条带与数据块间的映射、数据块与网络节点间的映射、所述待恢复文件的访问频率以及纠删码的编码参数。
49.本申请主要通过三个步骤来实现或生成文件恢复方案。第一步收集元数据信息,具体地本申请将收集分布式文件系统中的元数据信息。该元数据信息包括损坏节点上的待恢复文件与条带之间的映射、条带与数据块之间的映射及数据块与网络节点之间的映射、待恢复文件的访问频率以及纠删码的编码参数等信息。其中,损坏节点是指网络节点中不可用的节点,例如出现断网、或节点硬件设备出现故障等问题,导致无法对该节点进行数据访问。在实际应用中,本申请涉及的网络节点可以指服务器、计算机、机器或其他物理设备等,本申请不做限定。
50.本申请涉及的纠删码是用于对待恢复文件进行数据保护的一种技术。以rs(k,r)为例,纠删码的编码参数是指k和r,其中k和r均为正整数。
51.s102、根据所述元数据信息生成对应的网络流图。
52.s103、采用预设的图算法对所述网络流图进行文件感知恢复分析,得到每一轮次所需恢复的目标文件信息,所述目标文件信息包括当前轮次所需恢复的目标文件、所述目标文件中丢失的目标条带或目标数据块,以及所述目标条带或目标数据块所在的网络节点。
53.第二步生成文件恢复方案,这一步中本申请将文件恢复步骤分为不同的轮次,每一轮次完成系统丢失的部分文件恢复。具体地,本申请根据收集到的元数据信息生成对应的网络流图,同时根据待恢复文件的访问频率和纠删码的编码参数,经过计算后为网络流图中的每条赋予对应的容量和权值。具体来说,可将恢复方案生成分为以下几个核心步骤:
54.1、每一轮次中文件、条带、网络节点映射关系图的生成。具体地,本申请可将当前剩余的待恢复文件、待恢复文件对应的条带、条带对应的数据块、数据块对应的网络节点都作为网络流图中的节点,将其依次相连。
55.举例来说,如图2示出一种文件、条带、数据块及网络节点映射关系的示意图。如图2中,f0、f1和f2为损坏节点中的三个待恢复文件。s0‑
s4为5个条带,每个待恢复文件与条带的映射关系如图所示,例如待恢复文件f0对应存储于条带s0上。条带和数据块及该数据块对应存储的网络节点之间的映射关系也如图所示,例如条带s0对应两个数据块,这两个数据块对应存储在网络节点n0和n1上,具体如图所示条带s0对应两个网络节点n0和n1。
56.2、每一轮次中文件恢复方案的生成。为了达到提高文件级恢复性能的目的,本申请主要考虑以下两点:1)高访问频率的待恢复文件在未来很有可能被再次访问,因此本申请应该提高其恢复优先级,例如可将其权值设置较高等。2)在文件恢复过程中,应尽可能保证网络节点间的负载均衡,从而避免某个网络节点称为瓶颈而阻塞恢复进程。基于以上两点考虑,本申请将先根据文件、条带、网络节点映射关系图生成对应的网络流图,随后根据待恢复文件的访问频率和纠删码的编码参数以及每个节点的负载情况,为网络流图中的每条边设置对应的权值和容量。举例来说,如图3示出一种携带容量和权值的网络流图的示意图。如图3中,本申请首先为原始的文件、条带、网络节点映射关系图添加用于运行网络流算法的三个节点,分别为源节点a、汇节点b及辅助节点h,同时依据每个文件f各自的访问频率
以及纠删码的编码参数,为网络流图的每条边设置对应的容量和权值。例如图3中,源节点a与待恢复文件f0之间的边的容量为2,权值为3,图示表示为(2,3)等,其中从每个节点n
i
到汇节点b的边权值m
i
通过综合该节点的计算负载百分比p
c
、存储负载百分比p
s
、网络负载百分比p
n
得到,其公式如下:
57.m
i
=1

max(p
c,
p
s,
p
n
)。
58.随后,本申请通过运行最大费用最大流算法对网络流图的每条边进行相应的计算分析,得出一个相对当前轮次来说性价比最高的文件恢复方案,具体可指所需恢复的目标文件信息,该目标文件信息中包括有当前轮次所需恢复的目标文件、目标文件中丢失的目标条带或目标数据块、以及该目标条带或目标数据块对应存储所在的网络节点。例如图3所示,经过计算分析,当前轮次支持并行恢复目标文件信息为:a

f0→
s0→
n0和n1→
b,a

f1→
s2→
n2和n3→
b。换句话说,本申请依据这些目标文件信息可并行恢复条带s0和s2,从而恢复出文件f0和f1的部分。
59.3、网络流图的更新。每一轮次的文件恢复方案生成后,需要将这个恢复方案中相关的节点从网络流图中剔除,并同步更新网络流图中每条边的容量和权值,从而获得更新后的网络流图。随后根据前两个步骤继续为后续每一轮次生成对应的文件恢复方案,直到所有文件恢复方案均已生成结束。举例来说,引用步骤2中图3的例子,本申请将图3中与目标文件信息相关的节点,具体指a

f0→
s0→
n0和n1→
b,a

f1→
s2→
n2和n3→
b这些边及相关节点删除,并同步更新网络流图中边的容量和权值,得到更新后的网络流图具体如图4所示。如图4可知,更新后的网络流图中源节点a与待恢复文件f1之间的边的容量和权值由(4,2)变更为(2,2)。
60.s104、根据所述目标文件信息进行对应的文件恢复,从而恢复得到所述目标文件;所述目标文件为所述待恢复文件中的至少一个。
61.第三步中,本申请可根据用户选择的恢复方式和当前可用带宽(当前的网络状况)等因素,选择不同的数据传输和计算策略,对目标文件信息进行相应地文件感知恢复,从而恢复计算出相应地目标文件。其中,本申请涉及的恢复方式包括但不限于原始的rs编码恢复策略,这样可避免过多消耗集群内的带宽资源、部分并行恢复(partial parallel repair,ppr)或流水线恢复(repair pipelining,rp)等策略来尽可能加速恢复进程。
62.举例来说,引用图3和图4所示例子,以恢复方式rs(2,1)编码为例,如图5示出本申请涉及的一种文件恢复的具体示意图。如图5所示,本申请在恢复条带s0(即恢复文件f0)时,需网络节点n0发送数据块p0、网络节点n1发送数据块p1给热备节点。热备节点使用相应地解码矩阵对数据块p0和p1进行解码计算,从而恢复出条带s0,如图5所示具体可恢复条带s0中的d0数据块。同理,在恢复条带s2(即恢复文件f1)时需要使用网络节点n2和n3发送的数据块。
63.请参见图6示出本申请提供的一种基于图算法的文件感知恢复方法的整体流程示意图。如图6中,本申请可先采集获取分布式文件系统中的元数据信息,然后依据采集的元数据信息进行文件恢复方案生成,即确定每一轮次所需恢复的目标文件信息,最后依据目标文件信息进行相应的数据传输和计算优化,从而计算恢复出相应的目标文件。
64.相较于传统的纠删码快速文件恢复方案而言,本申请具有以下优点及创新点:
65.1、考虑了分布式文件系统中复杂的映射关系,包括文件到条带的映射、条带到数据块的映射、数据块到网络节点(例如服务器、计算机等硬件物理设备)的映射,从而能生成
可以进行文件感知的恢复策略。
66.2、考虑到了文件访问的热度信息(如文件的访问频率),从而有效提升恢复时文件的平均响应时间及吞吐率。
67.3、创新性地将复杂的映射关系及文件的访问频率构造为图的形式,并通过图算法(如最大费用最大流算法)进行求解,在保证算法复杂度较低情况下,在可接受范围内的前提下生成了合理的文件恢复方案,即确定所需恢复的目标文件信息,有效提升了文件级的恢复性能。
68.4、能够通过部分解码(partial decoding)的方式提高恢复并行度,降低恢复延迟。
69.5、文件级的恢复效率有显著提升。
70.请参见图7,是本申请实施例提供的一种基于图算法的文件感知恢复装置的结构示意图。如图7所示的装置包括获取单元701、生成单元702、分析单元703以及恢复单元704。其中:
71.所述获取单元701,用于获取分布式文件系统中的元数据信息,所述元数据信息包括损坏节点上的待恢复文件与条带间的映射、条带与数据块间的映射、数据块与网络节点间的映射、所述待恢复文件的访问频率以及纠删码的编码参数;
72.所述生成单元702,用于根据所述元数据信息生成对应的网络流图;
73.所述分析单元703,用于采用预设的图算法对所述网络流图进行文件感知恢复分析,得到每一轮次所需恢复的目标文件信息,所述目标文件信息包括当前轮次所需恢复的目标文件、所述目标文件中丢失的目标条带或目标数据块,以及所述目标条带或目标数据块所在的网络节点;
74.所述恢复单元704,用于根据所述目标文件信息进行对应的文件恢复,从而恢复得到所述目标文件;所述目标文件为所述待恢复文件中的至少一个。
75.可选的,所述生成单元702具体用于:
76.将所述待恢复文件、所述待恢复文件对应的条带、所述条带对应的数据块及所述条带对应的网络节点作为网络流图中的节点,依次连接所述节点,并增加源节点和汇节点,从而形成所述网络流图;
77.在考虑所述待恢复文件的访问频率和网络节点间的负载均衡情况下,根据所述待恢复文件的访问频率和纠删码的编码参数对应设置所述网络流图中每条边的权值和容量。
78.可选的,所述分析单元703具体用于采用最大费用最大流算法对所述网络流图中的每条边进行文件感知恢复分析,得出每一轮次性价比最高的所需恢复的目标文件信息。
79.可选的,所述装置还包括更新单元705;其中,
80.所述更新单元705,用于将所述网络流图中与所述目标文件信息相关的节点剔除,并同步更新所述网络流图中每条边的容量和权值,从而得到更新后的所述网络流图。
81.可选的,所述恢复单元704具体用于根据用户选择的恢复方式及当前可用带宽,对所述目标文件信息进行对应的数据传输和恢复计算,从而恢复得到所述目标文件。
82.上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何本领域技术人员均可在不违背本申请的精神及范畴下,对上述实施例进行修饰与改变。因此,本申请的权利保护范围,应如权利要求书所列。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1