掌桥专利:专业的专利平台
掌桥专利
首页

一种数据恢复方法、装置及相关设备

文献发布时间:2023-06-19 13:45:04


一种数据恢复方法、装置及相关设备

技术领域

本申请涉及计算机领域,特别涉及一种数据恢复方法、装置及相关设备。

背景技术

分布式集群按照数据中心-机架-主机-磁盘层级化管理存储设备,建立在分布式集群上的文件系统,可以被拆分打散为存储对象,通过CRUSH算法(Controlled,Scalable,Decentralized Placement of Replicated Data,可控的、可扩展的、分布式的副本数据放置算法)映射到不同磁盘上存储起来,每个磁盘通过一个对象存储设备(Object-basedStorage Device,OSD)服务实现数据读写、故障恢复等功能。

文件系统对所有资源进行池化管理,每个存储池有不同的副本策略、故障域、校验策略等数据管理策略,一个存储池可以包括至少一个磁盘。为了实现存储池之间的策略隔离,上层数据不是直接映射到磁盘,而是引进了放置组(Placement Group,PG)实现两级映射,PG是用于放置对象的载体。数据对象先通过伪随机哈希函数映射到PG,实现第一级映射;PG通过伪随机哈希函数映射到OSD,得到一个OSD成员列表,包括一个主OSD和其余的副OSD。

当集群的存储设备发生故障时,如磁盘发生损坏或者主机断电,网卡故障等导致一个或者多个OSD不可用,PG映射的OSD成员会发生变化,需要通过数据恢复将数据写入到新加入的OSD。或者故障的OSD重新加入集群,磁盘上数据的版本已经落后于其他磁盘上的副本,也需要数据恢复将数据更新到最新。

数据恢复过程以PG为单位进行,每个PG的成员OSD上都有一个PG实例,主OSD上的PG称为主PG,副OSD上的PG称为副PG。主PG控制数据恢复的流程。为了控制数据恢复的速度,避免数据恢复占用过多系统资源而影响到前端业务,每个OSD上同时进行数据恢复的PG数量有一个上限,通过配置参数来控制。假设参数设定为10,则一个OSD上最多只允许10个PG同时进行数据恢复。在PG进入数据恢复之前,其需要向所有成员OSD确定其允许进行数据恢复的PG配额是否已经达到最大,这个过程称为资源预约。主PG先进行本地资源预约,即预约主OSD的数据恢复配额,再进行远程预约,预约其余成员OSD的数据恢复配额。

当前的方案支持给存储池设置数据恢复优先级,优先级高的存储池,其PG可以优先预约到OSD的数据恢复配额,从而优先进行数据恢复。其资源预约过程为,将请求资源的PG放在queue队列中,检查queue中所有的申请,把资源授予优先级最高的PG。然而该资源预约过程中,数据恢复优先级在数据恢复初始阶段不能及时生效。

发明内容

有鉴于此,本申请的目的在于提供一种数据恢复方法、装置及相关设备,可以在读取源卷发生介质错误时保证快照的可用性。其具体方案如下:

第一方面,本申请提供了一种数据恢复方法,包括:

将进行资源预约的放置组PG加入队列;所述队列中第一个进行资源预约的PG的预约时刻记为第一时刻;

从第二时刻开始为所述队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复;所述第二时刻为第一时刻之后的时刻,且所述第二时刻和所述第一时刻之间的时长为预设时长。

可选的,所述方法还包括:

在所述队列中的目标PG在分配到资源后进行数据恢复的过程中,在恢复完一组数据对象后,确定所述目标PG的优先级是否小于所述队列中的最高优先级,若是,则停止数据恢复,释放资源,重新进入所述队列。

可选的,所述还包括:

在有资源被释放时,为所述队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复。

可选的,所述队列包括多个,每个所述队列对应有优先级,进行资源预约的PG根据PG的优先级加入对应的队列。

可选的,所述预设时长的范围为5-20秒。

第二方面,本申请实施例还提供了一种数据恢复装置,包括:

队列管理单元,用于将进行资源预约的放置组PG加入队列;所述队列中第一个进行资源预约的PG的预约时刻记为第一时刻;

资源分配单元,用于从第二时刻开始为所述队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复;所述第二时刻为第一时刻之后的时刻,且所述第二时刻和所述第一时刻之间的时长为预设时长。

可选的,所述装置还包括:

数据恢复停止单元,用于在所述队列中的目标PG在分配到资源后进行数据恢复的过程中,在恢复完一组数据对象后,确定所述目标PG的优先级是否小于所述队列中的最高优先级,若是,则停止数据恢复,释放资源,重新进入所述队列。

可选的,所述资源分配单元还用于:

在有资源被释放时,为所述队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复。

可选的,所述队列包括多个,每个所述队列对应有优先级,进行资源预约的PG根据PG的优先级加入对应的队列。

可选的,所述预设时长的范围为5-20秒。

第三方面,本申请公开了一种电子设备,包括:

存储器和处理器;

其中,所述存储器,用于存储计算机程序;

所述处理器,用于执行所述计算机程序,以实现前述公开的数据恢复方法。

第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的数据恢复方法。

本申请实施例提供了一种数据恢复方法、装置及相关设备,将进行资源预约的放置组PG加入队列,队列中第一个进行资源预约的PG的预约时刻记为第一时刻,从第二时刻开始为队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复,第二时刻为第一时刻之后的时刻,且第二时刻和第一时刻之间的时长为预设时长,也就是说,可以在第一个进行资源预约的PG进入队列之后,过预设时长再进行资源分配,防止在数据恢复初始阶段先为进入队列的低优先级的PG分配资源,而使后进入队列的高优先级的PG无资源可分配,使数据恢复过程更加满足实际需要。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1示出了本申请实施例提供的一种数据恢复方法的流程示意图;

图2示出了本申请实施例提供的一种数据恢复装置的结构示意图;

图3为本申请公开的一种电子设备结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。

在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是本申请还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施例的限制。

其次,本申请结合示意图进行详细描述,在详述本申请实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本申请保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。

正如背景技术中的描述,数据恢复过程以PG为单位进行,每个PG的成员OSD上都有一个PG实例,主OSD上的PG称为主PG,副OSD上的PG称为副PG。主PG控制数据恢复的流程。为了控制数据恢复的速度,避免数据恢复占用过多系统资源而影响到前端业务,每个OSD上同时进行数据恢复的PG数量有一个上限,通过配置参数来控制。假设参数设定为10,则一个OSD上最多只允许10个PG同时进行数据恢复。在PG进入数据恢复之前,其需要向所有成员OSD确定其允许进行数据恢复的PG配额是否已经达到最大,这个过程称为资源预约。主PG先进行本地资源预约,即预约主OSD的数据恢复配额,再进行远程预约,预约其余成员OSD的数据恢复配额。

当前的方案支持给存储池设置数据恢复优先级,优先级高的存储池,其PG可以优先预约到OSD的数据恢复配额,从而优先进行数据恢复。其资源预约过程为,将请求资源的PG放在queue队列中,检查queue中所有的申请,把资源授予优先级最高的PG。

然而该资源预约过程中,数据恢复优先级在数据恢复初始阶段不能及时生效。这是因为queue队列的策略为先进先出,因此每次PG进入queue后,都会检查queue进行资源授予,则在数据恢复初始阶段实际上是先申请先获得,无论优先级高低,都可以申请到资源。资源配额满后,queue队列开始堆积,当有资源释放后,检查queue授予优先级高的PG资源,优先级才开始生效,导致数据恢复初始阶段高优先级的PG无法获得资源。

基于以上技术问题,本申请实施例提供了一种数据恢复方法、装置及相关设备,将进行资源预约的放置组PG加入队列,队列中第一个进行资源预约的PG的预约时刻记为第一时刻,从第二时刻开始为队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复,第二时刻为第一时刻之后的时刻,且第二时刻和第一时刻之间的时长为预设时长,也就是说,可以在第一个进行资源预约的PG进入队列之后,过预设时长再进行资源分配,防止在数据恢复初始阶段先为进入队列的低优先级的PG分配资源,而使后进入队列的高优先级的PG无资源可分配,使数据恢复过程更加满足实际需要。

为了便于理解,下面结合附图对本申请实施例提供的一种数据恢复方法、装置及相关设备进行详细的说明。

参考图1所示,为本申请实施例提供的一种数据恢复方法的流程图,该方法可以包括以下步骤。

S101,将进行资源预约的PG加入队列。

本申请实施例中,可以将进行资源预约的PG加入队列,而后为队列中的PG分配资源,以使PG进行数据恢复。其中,队列中第一个进行资源预约的PG的预约时刻记为第一时刻,第一时刻可以利用t1表示。

进行资源预约的PG具有优先级,表示资源分配的优先级,优先级越高的PG将会优先分配得到资源。前述队列可以为多个,每个队列对应有优先级,进行资源预约的PG根据PG的优先级加入对应的队列。

S102,从第二时刻开始为队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复。

本申请实施例中,可以预先配置预设时长,预设时长作为延时参数来确定资源分配的延时信息,预设时长可以利用t0表示,预设时长的范围为5-20秒,预设时长例如可以为10s。

根据第一时刻和预设时长确定第二时刻,第二时刻为第一时刻之后的蚀刻,且第二时刻和第一时刻之间的时长为预设时长,从第二时刻开始为队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复。即对资源进行延时分配,在第一时刻至第二时刻之间的时间段内,可以将预约资源的PG加入到队列中,但是不为队列中的PG进行资源的分配,多个PG在该时间段内等待分配资源,这样后续进入队列的高优先级的PG不会由于进入队列较晚而没有资源可分配。

举例来说,第一个加入队列的PG的优先级为1,在第一时刻和第二时刻之间加入队列的第二个PG的优先级为2,第三个PG的优先级为3,此时还未进行资源分配,则资源较为充足,在第一个加入队列的PG加入队列后,可以为该PG分配资源,在第二个PG加入队列后,可以为该PG分配资源,而在具有更高优先级的第三个PG加入队列后,由于队列中的资源不足,不能为第三个PG分配资源,导致资源分配在数据恢复初始阶段并未起到作用。

而本申请实施例中,可以在第二时刻开始为队列中的PG分配资源,按照优先级,会先为第三个PG分配资源以使其先进行数据恢复,使数据恢复过程更加满足实际需要。

在数据恢复过程中,有资源被释放时,可以为队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复。通常来说,低优先级的PG开始数据恢复后,直到其需要恢复的数据对象全部恢复完才会释放资源。如果PG不主动释放资源,高优先级存储池的PG无法抢占资源。那么,当手动调整数据恢复优先级,或者高优先级的存储池在低优先级存储池开始数据恢复后才开始数据恢复,其数据恢复优先级不能即时生效。

因此,本申请实施例中,在队列中的目标PG在分配到资源后进行数据恢复的过程中,在恢复完一组数据对象后,确定目标PG的优先级是否小于队列中的最高优先级,若是,则停止数据恢复,释放资源,重新进入所述队列。

也就是说,低优先级的目标PG可以主动停止数据恢复,释放资源,在有资源释放后,可以为队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复,使高优先级的PG能够通过抢占的方式获取到资源,使得在任何阶段,即使PG的优先级发生更改,优先级高的PG都能优先开始数据恢复。

本申请实施例提供了一种数据恢复方法,将进行资源预约的放置组PG加入队列,队列中第一个进行资源预约的PG的预约时刻记为第一时刻,从第二时刻开始为队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复,第二时刻为第一时刻之后的时刻,且第二时刻和第一时刻之间的时长为预设时长,也就是说,可以在第一个进行资源预约的PG进入队列之后,过预设时长再进行资源分配,防止在数据恢复初始阶段先为进入队列的低优先级的PG分配资源,而使后进入队列的高优先级的PG无资源可分配,使数据恢复过程更加满足实际需要。

基于以上数据恢复方法,本申请实施例还提供了一种数据恢复装置,参考图2所示,为本申请实施例提供的一种数据恢复装置的结构框图,该数据恢复装置可以包括:

队列管理单元110,用于将进行资源预约的放置组PG加入队列;所述队列中第一个进行资源预约的PG的预约时刻记为第一时刻;

资源分配单元120,用于从第二时刻开始为所述队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复;所述第二时刻为第一时刻之后的时刻,且所述第二时刻和所述第一时刻之间的时长为预设时长。

可选的,所述装置还包括:

数据恢复停止单元,用于在所述队列中的目标PG在分配到资源后进行数据恢复的过程中,在恢复完一组数据对象后,确定所述目标PG的优先级是否小于所述队列中的最高优先级,若是,则停止数据恢复,释放资源,重新进入所述队列。

可选的,所述资源分配单元还用于:

在有资源被释放时,为所述队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复。

可选的,所述队列包括多个,每个所述队列对应有优先级,进行资源预约的PG根据PG的优先级加入对应的队列。

可选的,所述预设时长的范围为5-20秒。

本申请实施例提供了一种数据恢复装置,将进行资源预约的放置组PG加入队列,队列中第一个进行资源预约的PG的预约时刻记为第一时刻,从第二时刻开始为队列中的PG按照优先级进行资源分配,以使分配到资源的PG进行数据恢复,第二时刻为第一时刻之后的时刻,且第二时刻和第一时刻之间的时长为预设时长,也就是说,可以在第一个进行资源预约的PG进入队列之后,过预设时长再进行资源分配,防止在数据恢复初始阶段先为进入队列的低优先级的PG分配资源,而使后进入队列的高优先级的PG无资源可分配,使数据恢复过程更加满足实际需要。

参见图3所示,为本申请实施例提供的一种电子设备20的结构示意图,该电子设备20可以实现前述实施例中公开的数据恢复方法步骤。

通常,本实施例中的电子设备20包括:处理器21和存储器22。

其中,处理器21可以包括一个或多个处理核心,比如四核心处理器、八核心处理器等。处理器21可以采用DSP(digital signal processing,数字信号处理)、FPGA(field-programmable gate array,现场可编程们阵列)、PLA(programmable logic array,可编程逻辑阵列)中的至少一种硬件来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有GPU(graphics processing unit,图像处理器),GPU用于负责显示屏所需要显示的图像的渲染和绘制。一些实施例中,处理器21可以包括AI(artificialintelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器22可以包括一个或多个计算机可读存储介质,计算机可读存储介质可以是非暂态的。存储器22还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器22至少用于存储以下计算机程序221,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例中公开的数据恢复方法步骤。

在一些实施例中,电子设备20还可包括有显示屏23、输入输出接口24、通信接口25、传感器26、电源27以及通信总线28。

本技术领域人员可以理解,图3中示出的结构并不构成对电子设备20的限定,可以包括比图示更多或更少的组件。

进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例中公开的数据恢复方法。

其中,关于上述数据恢复方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅是本申请的优选实施方式,虽然本申请已以较佳实施例披露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。

相关技术
  • 一种存储介质中数据恢复方法、数据恢复系统及相关设备
  • 一种分布式数据库中数据恢复方法、相关设备和系统
技术分类

06120113793013