一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据恢复方法、装置、设备及存储介质与流程

2021-11-24 19:11:00 来源:中国专利 TAG:


1.本发明涉及数据恢复技术领域,更具体地说,涉及一种数据恢复方法、装置、设备及存储介质。


背景技术:

2.pg(placement group)为放置组,是用于放置对象的一个载体。pg的创建是在创建存储池的时候指定的,同时跟指定的副本数也有关系,副本是数据冗余保护的一种方式,如:在3副本情况下,会有3个相同的pg存在于3个不同的osd(object

based storage device,对象存储设备)上。当pg完成了peering(pg内的副本通过pg日志来达成数据一致的过程)后,状态为active(激活态)的pg就可提供服务。如果该pg上存在各副本数据不一致的情况,则需要进行数据恢复。由于目前在进行数据恢复的资源预约阶段和数据恢复阶段的顺序均是随机的,若缺失对象较多的pg排在恢复队列的最前面,那么队列后面的pg需要等待恢复的时间都会较长,数据恢复效率较低,不能让更多的pg尽快对外提供服务。


技术实现要素:

3.本发明的目的在于提供一种数据恢复方法、装置、设备及存储介质,以提高数据恢复效率,使得更多的pg尽快对外提供服务。
4.为实现上述目的,本发明提供一种数据恢复方法,包括:
5.在peering阶段,确定每个pg的所有副本的缺失对象总数,并根据每个pg的缺失对象总数确定pg恢复顺序;其中,所述pg恢复顺序中各个pg的恢复顺序按照缺失对象总数的递增顺序排列;
6.按照所述pg恢复顺序进行资源预约;
7.在数据恢复阶段,按照所述pg恢复顺序对每个pg的副本进行数据恢复。
8.其中,所述按照所述pg恢复顺序对每个pg的副本进行数据恢复,包括:
9.按照所述pg恢复顺序确定当前待恢复的目标pg;
10.确定所述目标pg中每个副本的缺失对象数量;
11.根据每个副本的缺失对象数量确定副本恢复顺序;所述副本恢复顺序中各个副本的恢复顺序按照缺失对象数量的递增顺序排列;
12.根据所述副本恢复顺序依次对所述目标pg的每个副本进行数据恢复。
13.其中,所述根据所述副本恢复顺序依次对所述目标pg的每个副本进行数据恢复之后,还包括:
14.判断目标pg是否为所述pg恢复顺序中最后一个待恢复pg;
15.若否,则将所述pg恢复顺序中所述目标pg的下一个pg作为目标pg,继续执行所述确定所述目标pg中每个副本的缺失对象数量的步骤;
16.若是,则结束流程。
17.其中,所述确定每个pg的所有副本的缺失对象总数,包括:确定每个pg中每个副本
的缺失对象数量;将每个pg中所有副本的缺失对象数量之和,作为缺失对象总数。
18.其中,所述按照所述pg恢复顺序对每个pg的副本进行数据恢复之后,还包括:
19.将数据恢复后的pg设置为active状态,以便对外提供服务。
20.为实现上述目的,本发明进一步提供一种数据恢复装置,包括:
21.顺序确定模块,用于在peering阶段,确定每个pg的所有副本的缺失对象总数,并根据每个pg的缺失对象总数确定pg恢复顺序;其中,所述pg恢复顺序中各个pg的恢复顺序按照缺失对象总数的递增顺序排列;
22.资源预约模块,用于按照所述pg恢复顺序进行资源预约;
23.数据恢复模块,用于在数据恢复阶段,按照所述pg恢复顺序对每个pg的副本进行数据恢复。
24.其中,所述数据恢复模块,包括:
25.第一确定单元,用于按照所述pg恢复顺序确定当前待恢复的目标pg;
26.第二确定单元,用于确定所述目标pg中每个副本的缺失对象数量;
27.第三确定单元,用于根据每个副本的缺失对象数量确定副本恢复顺序;其中,所述副本恢复顺序中各个副本的恢复顺序按照缺失对象数量的递增顺序排列;
28.恢复单元,用于根据所述副本恢复顺序依次对所述目标pg的每个副本进行数据恢复。
29.其中,所述数据恢复模块还包括:
30.判断单元,用于判断目标pg是否为所述pg恢复顺序中最后一个待恢复pg;若否,则将所述pg恢复顺序中所述目标pg的下一个pg作为目标pg,继续执行所述确定所述目标pg中每个副本的缺失对象数量的步骤;若是,则结束流程。
31.为实现上述目的,本发明进一步提供一种电子设备,包括:
32.存储器,用于存储计算机程序;
33.处理器,用于执行所述计算机程序时实现上述数据恢复方法的步骤。
34.为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据恢复方法的步骤。
35.通过以上方案可知,本发明实施例提供的一种数据恢复方法,包括:在peering阶段,确定每个pg的所有副本的缺失对象总数,并根据每个pg的缺失对象总数确定pg恢复顺序;该pg恢复顺序中各个pg的恢复顺序按照缺失对象总数的递增顺序排列;按照pg恢复顺序进行资源预约;在数据恢复阶段,按照pg恢复顺序对每个pg的副本进行数据恢复。
36.可见,本方案在对各个pg的副本进行数据恢复时,会按照各个pg的缺失对象总数的递增顺序依次对每个pg进行数据恢复,通过该方式,可使缺失对象总数越少的pg越先进行数据恢复,提高数据恢复的效率,从而能让更多的pg尽快对外提供服务;本发明还公开了一种数据恢复装置、设备及存储介质,同样能实现上述技术效果。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1为本发明实施例公开的一种数据恢复方法流程示意图;
39.图2为本发明实施例公开的数据恢复整体流程示意图;
40.图3为本发明实施例公开的一种数据恢复装置结构示意图;
41.图4为本发明实施例公开的一种电子设备结构示意图。
具体实施方式
42.目前,ceph(分布式文件系统)中数据恢复的方法主要是recovery(进行数据恢复的方式)和backfill(进行数据恢复的方式)。recovery过程是根据peering的过程中算出的数据不一致对象列表来修复其他副本上的数据,这些数据不一致对象是根据pg的日志来计算的。若无法根据pg日志来推测数据不一致对象时(如某个osd长时间不在集群后重新加入),就需要执行backfill过程来进行数据恢复,backfill是直接通过对比pg的对象列表来进行数据恢复。
43.在进行数据恢复时,无论是进行recovery还是backfill,都需要进行资源预约,然后再通过pg的各状态转换来实现数据恢复的过程。常见的方法在数据恢复的资源预约阶段和数据恢复阶段,pg均没有优先级,因此,所有pg进行恢复的顺序是随机的,概率性的。对于大部分存储设备的使用场景来说,当需要进行数据恢复时,将数据恢复至一致的状态,保证数据不丢失是最基本的要求。但实际上对数据恢复的效率通常也会有要求,人们会更希望pg可以更快的完成数据恢复并对外提供服务。而每个存在数据不一致的pg上,缺失的对象数几乎都是不一样的,缺失的对象数越多,恢复所需要的时间也相应越长。如果一个缺失对象较多的pg排在恢复队列的最前面,那么队列后面的pg需要等待恢复的时间较长,可见,该方式的数据恢复效率较低,无法尽快提供更多的pg对外提供服务。因此,在本发明实施例中,公开了一种数据恢复方法、装置、设备及存储介质,以提高数据恢复效率,使得更多的pg尽快对外提供服务。
44.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.参见图1,本发明实施例提供的一种数据恢复方法流程示意图,包括:
46.s101、在peering阶段,确定每个pg的所有副本的缺失对象总数,并根据每个pg的缺失对象总数确定pg恢复顺序;该pg恢复顺序中各个pg的恢复顺序按照缺失对象总数的递增顺序排列;
47.需要说明的是,本实施例中,首先需要确定每个pg中每个副本的缺失对象数量,然后将每个pg中所有副本的缺失对象数量之和作为缺失对象总数。其中,每个副本的缺失对象数量即为missing对象数量(存在数据不一致的对象数量)。也就是说,本方案在peering的过程中,pg的主osd在获取到所有副本的missing对象数量后,对该pg的所有missing对象数量进行统计,从而计算得到该pg的缺失对象总数,然后放入map进行保存,并根据每个pg的缺失对象总数对允许恢复的pg进行排序。在排序时,各个pg的恢复顺序按照缺失对象总
数的递增顺序排列,pg的缺失对象总数越少,则恢复顺序越靠前,pg的缺失对象总数越多,则恢复顺序越靠后。
48.s102、按照pg恢复顺序进行资源预约;
49.在本实施例中,在数据恢复的资源预约过程中,会按照根据pg恢复顺序获取对应的pg进行资源预约,资源预约完成后继续执行s103,进入到数据恢复流程中。
50.s103、在数据恢复阶段,按照pg恢复顺序对每个pg的副本进行数据恢复。
51.具体来说,本实施例在资源预约完成后,在进行数据恢复时,也将按照资源预约的顺序进行pg的恢复,即:按照pg恢复顺序对每个pg的副本进行数据恢复。通过该方式,便可以使得missing对象数量少的pg可以优先被恢复,保证在相同的时间内恢复完最多数量的pg,对每个pg的副本进行数据恢复之后,还需要将数据恢复后的pg设置为active状态,以便对外提供读写服务。通过该方式,可使缺失对象总数越少的pg越先进行数据恢复,提高数据恢复的效率,从而能让更多的pg尽快对外提供服务。
52.需要说明的是,目前针对数据冗余为副本的场景,在某个pg进行数据恢复的过程中,常规的数据恢复流程中对副本恢复的先后优先级是不做区分的。如:在三副本场景下,某个pg有一个正常的副本,其余两个副本均存在数据不一致现象,这时这两个数据不一致的副本进行数据恢复的顺序是随机的。如果先进行恢复的是缺失对象数量较多的副本,那么优先恢复的副本所需要的恢复时间就会较长,那么该pg数据冗余度、恢复的效率就会较低,在该副本恢复过程中出现数据丢失的风险就会较大,如:出现仅剩的副本所在的osd down掉的情况。因此在本实施例中,按照pg恢复顺序对每个pg的副本进行数据恢复时,具体包括如下过程:
53.首先按照pg恢复顺序确定当前待恢复的目标pg,其中,本方案中首个目标pg为pg恢复顺序中的第一个pg;然后确定目标pg中每个副本的缺失对象数量,根据每个副本的缺失对象数量确定副本恢复顺序;该副本恢复顺序中各个副本的恢复顺序按照缺失对象数量的递增顺序排列,也即:副本的缺失对象数量越少,则恢复顺序越靠前,副本的缺失对象数量越多,则恢复顺序越靠后。副本恢复顺序确定后,即可根据副本恢复顺序依次对目标pg的每个副本进行数据恢复。然后判断目标pg是否为pg恢复顺序中最后一个待恢复pg,若否,则将pg恢复顺序中目标pg的下一个pg作为目标pg,继续执行确定该目标pg中每个副本的缺失对象数量的步骤,若是,则结束流程。
54.也就是说,本方案在对单个pg进行数据恢复的过程中,也将该pg所有的副本按照缺失对象数量进行排序,缺失对象数量数少的副本,恢复的优先级更高,以使得缺失对象数量较少的副本可以优先被恢复。通过该方式,使得所需恢复时间较少的副本可以被优先恢复,提高了数据恢复冗余保护的效率,保护了数据的安全性,提高了存储集群的可靠性。
55.参见图2,为本发明实施例提供的数据恢复整体流程示意图,通过图2可以看出,在peering阶段,主pg获取每个pg所有副本的missing对象数,并统计本pg总missing对象数;根据missing对象数对需要数据恢复的pg进行排序,missing对象数少的优先;在资源预约阶段,根据排序后的pg队列进行资源预约,missing对象数少的pg优先进行资源预约。在数据恢复阶段,正在进行数据恢复的pg根据missing对象数对本pg内的各副本进行排序,missing对象数少的副本优先;根据排序后的副本数据恢复优先级顺序依次进行恢复,该pg恢复完成,状态为active,便可对外提供服务。
56.综上可以看出,本方案可根据pg的缺失对象总数区分每个待恢复pg的优先级,在同一个osd允许恢复的pg队列中,缺失对象总数越少,该pg的数据恢复优先级越高,以更快的使更多pg完成数据恢复,可以对外提供读写服务。本方案还允许单个pg内根据各副本的缺失对象数量进行排序,缺失对象数量越少的副本将被优先恢复,以提高数据恢复冗余度的效率,更好的保证数据的安全性。
57.下面对本发明实施例提供的恢复装置、设备及存储介质进行介绍,下文描述的恢复装置、设备及存储介质与上文描述的恢复方法可以相互参照。
58.参见图3,本发明实施例提供的一种数据恢复装置结构示意图,包括:
59.顺序确定模块11,用于在peering阶段,确定每个pg的所有副本的缺失对象总数,并根据每个pg的缺失对象总数确定pg恢复顺序;其中,所述pg恢复顺序中各个pg的恢复顺序按照缺失对象总数的递增顺序排列;
60.资源预约模块12,用于按照所述pg恢复顺序进行资源预约;
61.数据恢复模块13,用于在数据恢复阶段,按照所述pg恢复顺序对每个pg的副本进行数据恢复。
62.其中,所述数据恢复模块,包括:
63.第一确定单元,用于按照所述pg恢复顺序确定当前待恢复的目标pg;
64.第二确定单元,用于确定所述目标pg中每个副本的缺失对象数量;
65.第三确定单元,用于根据每个副本的缺失对象数量确定副本恢复顺序;其中,所述副本恢复顺序中各个副本的恢复顺序按照缺失对象数量的递增顺序排列;
66.恢复单元,用于根据所述副本恢复顺序依次对所述目标pg的每个副本进行数据恢复。
67.其中,所述数据恢复模块还包括:
68.判断单元,用于判断目标pg是否为所述pg恢复顺序中最后一个待恢复pg;若否,则将所述pg恢复顺序中所述目标pg的下一个pg作为目标pg,继续执行所述确定所述目标pg中每个副本的缺失对象数量的步骤;若是,则结束流程。
69.其中,所述顺序确定模块具体用于:确定每个pg中每个副本的缺失对象数量;将每个pg中所有副本的缺失对象数量之和,作为缺失对象总数。
70.其中,所述数据恢复装置还包括:
71.设置模块,用于将数据恢复后的pg设置为active状态,以便对外提供服务。
72.参见图4,本发明实施例还提供了一种电子设备结构示意图,包括:
73.存储器21,用于存储计算机程序;
74.处理器22,用于执行所述计算机程序时实现上述任意方法实施例所述的数据恢复方法的步骤。
75.在本实施例中,设备可以是pc(personal computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。
76.该设备可以包括存储器21、处理器22和总线23。
77.其中,存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器21在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器21在另一些实施
例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器21还可以既包括设备的内部存储单元也包括外部存储设备。存储器21不仅可以用于存储安装于设备的应用软件及各类数据,例如执行数据恢复方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
78.处理器22在一些实施例中可以是一中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行数据恢复方法的程序代码等。
79.该总线23可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
80.进一步地,设备还可以包括网络接口24,网络接口24可选的可以包括有线接口和/或无线接口(如wi

fi接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
81.可选地,该设备还可以包括用户接口25,用户接口25可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口25还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light

emitting diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。
82.图4仅示出了具有组件21

25的设备,本领域技术人员可以理解的是,图4示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
83.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例所述的数据恢复方法的步骤。
84.其中,该存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
85.综上可见,由于目前常规的数据恢复策略在资源预约和进行数据恢复时,存在缺失对象数较多的pg可能被优先恢复,从而后面的pg需要等待的时间较长的现象,而本方案在资源预约阶段,可根据各个pg的缺失对象总数对待恢复的pg划分优先级,缺失对象总数少的pg将被优先恢复,通过该方式,可保证更多的pg在相同时间内对外提供服务;此外,在某个pg进行数据恢复时,优先恢复该pg中缺失对象数量较少的副本,以实现更快地使该pg的数据冗余度得到恢复,更好地保证了数据的安全性。
86.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
87.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。
对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献