CN107544869B - 一种数据恢复方法和装置 - Google Patents
一种数据恢复方法和装置 Download PDFInfo
- Publication number
- CN107544869B CN107544869B CN201710392911.7A CN201710392911A CN107544869B CN 107544869 B CN107544869 B CN 107544869B CN 201710392911 A CN201710392911 A CN 201710392911A CN 107544869 B CN107544869 B CN 107544869B
- Authority
- CN
- China
- Prior art keywords
- data
- data information
- storage node
- write request
- mapping table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据恢复方法和装置,该方法包括:确定待恢复数据,并将待恢复数据的数据信息写入到第一映射表;在接收到客户端发送的写请求时,判断第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,从第一映射表中删除与所述写请求匹配的数据信息;确定与所述写请求对应的存储节点,并将所述写请求发送给存储节点,以使存储节点根据所述写请求写入数据;在接收到存储节点发送的数据写入完成消息后,确定所述写请求处理完成,从第二映射表中查询出与所述写请求匹配的数据信息,利用查询出的数据信息进行数据恢复。通过本申请的技术方案,可以提升IO服务的可用性,保证数据的可靠性。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种数据恢复方法和装置。
背景技术
随着大数据时代的到来,越来越多的分布式系统应运而生,而分布式存储系统(如Ceph等分布式存储系统)是一个重要部分,大数据、云计算产生的数据均要通过分布式存储系统进行存储。其中,分布式存储系统可以包括多个OSD(Object Storage Device,对象存储设备),数据可以存储于OSD中,每个数据(不做特殊说明的情况下,本文中的“数据”均指数据对象)可以保存在至少两个OSD上,从而对数据进行备份,保证数据存储的安全性。
例如,分布式存储系统包括OSD1、OSD2和OSD3,可以将数据1存储在OSD1、OSD2,将数据2存储在OSD1、OSD3,以此类推。这样,当某个OSD(如OSD1)发生故障时,还可以从OSD2获得数据1,避免数据1发生丢失。
在分布式存储系统,需遵守CAP(Consistency Availability Partitiontolerance,一致性、可用性、分区容错性)理论。一致性是指:所有OSD均存储最新的数据;可用性是指:在某个OSD发生故障时,读写操作仍然能够正常执行;分区容忍性是指:在某个OSD发生故障时,仍然能够满足一致性和可用性。
在传统方式中,当OSD发生故障时,忽略了一致性和可用性的均衡。
发明内容
本申请提供一种数据恢复方法,应用于分布式存储系统中的监控节点,所述分布式存储系统中的每个数据存储在至少两个存储节点,所述方法包括:
确定待恢复数据,并将所述待恢复数据的数据信息写入到第一映射表;其中,所述第一映射表用于存储没有与写请求对应的待恢复数据的数据信息;
在接收到客户端发送的写请求时,判断所述第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,并从所述第一映射表中删除与所述写请求匹配的数据信息;其中,所述第二映射表用于存储与写请求对应的待恢复数据的数据信息;
确定与所述写请求对应的存储节点,并将所述写请求发送给所述存储节点,以使所述存储节点根据所述写请求写入数据;在接收到所述存储节点发送的数据写入完成消息后,确定所述写请求处理完成,并从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。
本申请提供一种数据恢复装置,应用于分布式存储系统中的监控节点,所述分布式存储系统中的每个数据存储在至少两个存储节点,所述装置包括:
确定模块,用于确定待恢复数据;
表项管理模块,用于将所述待恢复数据的数据信息写入到第一映射表;在接收到客户端发送的写请求时,判断所述第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,并从所述第一映射表中删除与所述写请求匹配的数据信息;其中,所述第一映射表用于存储没有与写请求对应的待恢复数据的数据信息;所述第二映射表用于存储与写请求对应的待恢复数据的数据信息;
处理模块,用于确定与所述写请求对应的存储节点,并将所述写请求发送给所述存储节点,以使所述存储节点根据所述写请求写入数据;在接收到所述存储节点发送的数据写入完成消息后,确定所述写请求处理完成,并从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。
基于上述技术方案,本申请实施例中,当存储节点发生故障时,可以确定待恢复数据,并将待恢复数据的数据信息写入到第一映射表,在此基础上,在接收到客户端发送的写请求时,若第一映射表中存在与该写请求匹配的数据信息,则优先处理该写请求,在该写请求处理完成后,才利用与该写请求匹配的数据信息进行数据恢复,而不是先利用与该写请求匹配的数据信息进行数据恢复,在数据恢复完成后才处理该写请求。基于此,通过优先处理客户端发送的写请求,在处理完成后才进行数据恢复,从而提升IO(Input Output,输入输出)服务的可用性,保证数据的可靠性,并可以达到一致性和可用性的均衡。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的应用场景视图;
图2是本申请一种实施方式中的数据恢复方法的流程图;
图3是本申请另一种实施方式中的数据恢复方法的流程图;
图4是本申请一种实施方式中的数据恢复装置的结构图;
图5是本申请一种实施方式中的监控节点的硬件结构图。
具体实施方式
在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种数据恢复方法,该方法可以应用于包括监控节点、客户端和多个存储节点(如OSD)的分布式存储系统,且分布式存储系统中的每个数据存储在至少两个存储节点,从而进行数据备份。其中,本文中的数据可以是指定大小(如4M大小)的数据对象(也可以称为数据块)。如图1所示,为本申请实施例的应用场景示意图,图1中以三个存储节点为例进行说明,实际应用中,存储节点的数量还可以更多,对此数量不做限制。图1中以三个客户端为例进行说明,实际应用中,客户端的数量可以更多,对此数量不做限制。
参见图2所示,为该数据恢复方法的流程图,该数据恢复方法可以应用于分布式存储系统中的监控节点,该数据恢复方法可以包括以下步骤:
步骤201,确定待恢复数据,并将待恢复数据的数据信息写入到第一映射表。其中,该第一映射表用于存储没有与写请求对应的待恢复数据的数据信息。
在一个例子中,当某个存储节点(如存储节点111)发生故障时,则监控节点可以将该存储节点111上存储的所有数据均确定为待恢复数据,并确定这些待恢复数据的数据信息,并将这些待恢复数据的数据信息写入到第一映射表。
其中,该数据信息可以包括但不限于以下之一或者任意组合:数据标识、源存储节点、目标存储节点、源存储节点的存储位置、目标存储节点的存储位置等。当然,该数据信息并不局限于上述内容,对此数据信息不做限制。
例如,假设数据A存储在存储节点111和存储节点112,当存储节点111发生故障时,则监控节点确定数据A为待恢复数据、存储节点112为源存储节点(存储有数据A,且当前未发生故障的存储节点),存储节点113为目标存储节点(即未存储有数据A,且当前未发生故障的存储节点)。此外,源存储节点的存储位置(如存储位置1)是指:数据A当前存储在该存储位置1;目标存储节点的存储位置(如存储位置2)是指:数据A需要备份到该存储位置2。
步骤202,在接收到客户端发送的写请求(用于向存储节点写入数据)时,判断第一映射表中是否存在与该写请求匹配的数据信息,如果是,则将与该写请求匹配的数据信息写入到第二映射表,并从第一映射表中删除与该写请求匹配的数据信息。如果否,则采用传统方式处理该写请求,对此处理方式不再赘述。其中,第二映射表用于存储与写请求对应的待恢复数据的数据信息。
在一个例子中,待恢复数据的数据信息包括数据标识,且写请求携带数据标识;基于此,针对“判断第一映射表中是否存在与该写请求匹配的数据信息”的过程,可以包括:判断第一映射表中记录的待恢复数据的数据标识与该写请求携带的数据标识是否相同;如果不同,则确定第一映射表中不存在与该写请求匹配的数据信息;如果相同,则判断该待恢复数据当前是否正在恢复;如果是,则确定第一映射表中不存在与该写请求匹配的数据信息;如果否,则可以将该待恢复数据的数据信息确定为与该写请求匹配的数据信息。
进一步的,针对“判断该待恢复数据当前是否正在恢复”的过程,可以包括但不限于如下方式:判断该待恢复数据的数据信息是否设置有特定标记,其中,该特定标记是监控节点在对该待恢复数据进行恢复时设置的,且该特定标记用于表示数据正在恢复;如果是,则可以确定该待恢复数据当前正在恢复;如果否,则可以确定该待恢复数据当前没有正在恢复。
其中,该特定标记可以根据实际任意配置,如标记X等,该特定标记表示数据正在恢复,即已经开始恢复,但是没有恢复完成。
在一个例子中,在将待恢复数据的数据信息写入到第一映射表之后,则监控节点可以从第一映射表中选取数据信息(如从第一映射表的第一个数据信息开始,依次选取每个数据信息),并确定选取出的数据信息对应的源存储节点和目标存储节点,然后,通知该源存储节点将选取出的数据信息对应的待恢复数据恢复到该目标存储节点,并为选取出的数据信息设置特定标记。在接收到该源存储节点发送的数据恢复完成消息后,删除为选取出的数据信息设置的特定标记,并可以从该第一映射表中删除选取的数据信息,完成数据恢复过程。
其中,源存储节点在接收到通知指令之后,可以将该数据信息对应的数据备份到目标存储节点,在数据备份完成后,源存储节点可以向监控节点返回备份完成消息;而监控节点在接收到该备份完成消息后,确定数据已经恢复完成。
其中,该通知指令还可以携带源存储节点的存储位置、目标存储节点的存储位置,这样,源存储节点在接收到通知指令之后,可以从源存储节点的所述存储位置读取数据,并将读取的数据备份到目标存储节点的所述存储位置。
由于监控节点是对第一映射表的每个数据信息对应的数据进行数据恢复,因此,在将与该写请求匹配的数据信息写入到第二映射表,并从第一映射表中删除与该写请求匹配的数据信息之后,与该写请求匹配的数据信息不在第一映射表中,在对第一映射表的每个数据信息对应的数据进行数据恢复时,不会对与该写请求匹配的数据信息对应的数据进行数据恢复。这样,在接收到客户端发送的写请求时,可以实现如下过程:“优先处理该写请求,在该写请求处理完成后,才利用与该写请求匹配的数据信息进行数据恢复,而不是先利用与该写请求匹配的数据信息进行数据恢复,在数据恢复完成后才处理该写请求”。
步骤203,确定与该写请求对应的存储节点,并将该写请求发送给该存储节点,以使该存储节点根据该写请求写入数据;在接收到该存储节点发送的数据写入完成消息后,确定该写请求处理完成,并从第二映射表中查询出与该写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。
在一个例子中,针对“从第二映射表中查询出与该写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复”的过程,可以包括:确定与该数据信息对应的源存储节点和目标存储节点,并通知源存储节点将该查询出的数据信息对应的数据写入到目标存储节点。其中,写入到目标存储节点的数据是根据该写请求更新后的数据,而不是根据该写请求更新前的数据。进一步的,在接收到源存储节点发送的数据恢复完成消息后,监控节点确定数据恢复完成,监控节点还可以从第二映射表中删除该数据信息。
其中,监控节点向源存储节点发送的通知指令,还可以携带源存储节点的存储位置、以及目标存储节点的存储位置,这样,源存储节点在接收到通知指令之后,可以从源存储节点的所述存储位置读取数据,并将读取的数据备份到目标存储节点的所述存储位置。在数据备份完成之后,源存储节点可以向监控节点返回备份完成消息;而监控节点在接收到该备份完成消息后,确定数据已经恢复完成,从该第二映射表中删除该数据信息,以表示数据恢复完成。
在上述过程中,由于是优先处理该写请求,在该写请求处理完成之后,才进行数据恢复,因此,源存储节点读取的数据,是根据该写请求更新后的数据,即备份到目标存储节点的数据是根据该写请求更新后的数据。
基于上述技术方案,本申请实施例中,当存储节点发生故障时,可以确定待恢复数据,并将待恢复数据的数据信息写入到第一映射表,在此基础上,在接收到客户端发送的写请求时,若第一映射表中存在与该写请求匹配的数据信息,则优先处理该写请求,在该写请求处理完成后,才利用与该写请求匹配的数据信息进行数据恢复,而不是先利用与该写请求匹配的数据信息进行数据恢复,在数据恢复完成后才处理该写请求。基于此,通过优先处理客户端发送的写请求,在处理完成后才进行数据恢复,从而提升IO(Input Output,输入输出)服务的可用性,保证数据的可靠性,并可以达到一致性和可用性的均衡。
以下结合图1所示的应用场景,对上述数据恢复方法进行详细说明。参见图1所示,分布式存储系统可以包括存储节点111、存储节点112、存储节点113,当前状态下,假设数据A存储在存储节点111和存储节点112,数据B存储在存储节点111和存储节点113,数据C存储在存储节点112和存储节点113。
其中,数据A、数据B和数据C均可以是指定大小(如4M大小)的数据对象(可以称为Object),且每个数据对象均可以存储在至少两个存储节点,从而进行数据备份。在图1中,以数据对象存储在两个存储节点为例进行说明。
基于上述存储关系,则监控节点可以维护表1所示的pglog表,该pglog表可以用于存储如下对应关系:存储节点、数据标识和存储位置的对应关系;当然,pglog表还可以包括其它内容,对此pglog表的内容不做限制,以表1为例。
表1
参见图3所示,假设存储节点111发生故障,则该数据恢复方法可以包括:
步骤301,当存储节点111发生故障时,监控节点确定待恢复数据为数据A和数据B,并确定数据A的数据信息,并确定数据B的数据信息。
具体的,通过表1可以查询出,存储节点111上存储有数据A和数据B,因此,监控节点可以确定待恢复数据为数据A和数据B。在“确定数据A的数据信息”的过程中,监控节点可以从表1中查询出数据标识为数据标识A,源存储节点为存储节点112,源存储节点的存储位置为存储位置1121。此外,监控节点还可以确定目标存储节点,如存储节点113,并确定目标存储节点的存储位置,如存储位置1133。在“确定数据B的数据信息”的过程中,监控节点可以从表1中查询出数据标识为数据标识B,源存储节点为存储节点113,源存储节点的存储位置为存储位置1131。此外,监控节点还可以确定目标存储节点,如存储节点112,并确定目标存储节点的存储位置,如存储位置1123。
步骤302,监控节点将数据A的数据信息、以及数据B的数据信息写入到missing表(即第一映射表),如表2所示,为missing表的一个示例。
表2
数据标识 | 源存储节点 | 源存储节点的存储位置 | 目标存储节点 | 目标存储节点的存储位置 |
数据标识A | 存储节点112 | 存储位置1121 | 存储节点113 | 存储位置1133 |
数据标识B | 存储节点113 | 存储位置1131 | 存储节点112 | 存储位置1123 |
步骤303,监控节点从missing表中选取第一个数据信息,向存储节点112发送携带该数据信息(如数据标识A、存储节点112、存储位置1121、存储节点113、存储位置1133)的通知指令,并为该数据信息设置特定标记。
步骤304,存储节点112在接收到该通知指令之后,可以从本节点的存储位置1121读取到数据A,并将数据A备份到存储节点113的存储位置1133。
步骤305,在数据A备份完成后,存储节点112向监控节点返回备份完成消息;而监控节点在接收到该备份完成消息之后,则确定数据A已经恢复完成,并清除该特定标记,并从missing表中删除该数据信息,如表3所示。
表3
数据标识 | 源存储节点 | 源存储节点的存储位置 | 目标存储节点 | 目标存储节点的存储位置 |
数据标识B | 存储节点113 | 存储位置1131 | 存储节点112 | 存储位置1123 |
在一个例子中,在数据A已经恢复完成,且从missing表中删除该数据信息之后,监控节点还可以更新pglog表,如表4所示,为更新后的pglog表。
表4
步骤306,在监控节点从missing表中选取数据信息之前(如监控节点从missing表中选取数据标识B对应的数据信息之前),假设监控节点接收到客户端121发送的写请求,该写请求携带数据标识B以及数据B’。
其中,数据B’是需要写入的数据,且数据B’对应数据标识B。
步骤307,监控节点通过该写请求携带的数据标识B查询第一映射表,该第一映射表中存在与该数据标识B匹配的数据信息,且对应的数据不是正在恢复,因此,监控节点可以将与该数据标识B匹配的数据信息写入到pending表(即第二映射表),并从missing表中删除与该数据标识B匹配的数据信息。如表5所示,为pending表的一个示例,而删除数据信息后的missing表为空。
表5
数据标识 | 源存储节点 | 源存储节点的存储位置 | 目标存储节点 | 目标存储节点的存储位置 |
数据标识B | 存储节点113 | 存储位置1131 | 存储节点112 | 存储位置1123 |
由于missing表已经为空,因此,监控节点不再从missing表中选取数据信息,即针对missing表中的各数据信息对应的数据的恢复过程已经完成。
需要说明的是,在监控节点对数据标识B对应的数据进行恢复之前,数据标识B对应的数据信息被从missing表调整到pending表,即与写请求匹配的数据信息,在进行数据恢复之前,被调整到pending表,而没有直接进行数据恢复。
步骤308,监控节点优先处理该写请求,而不是优先进行数据恢复。
监控节点在处理该写请求的过程中,可以先向存储节点113发送该写请求,而存储节点113可以将存储位置1131写入的数据B更新为数据B’,对此数据写入过程不做限制。在数据B’写入完成后,存储节点113向监控节点返回写入完成消息;监控节点在接收到该写入完成消息后,则确定该写请求处理完成。
步骤309,在该写请求处理完成后,监控节点从pending表中查询出与该写请求匹配的数据信息,即与该写请求携带的数据标识B匹配的数据信息。
步骤310,监控节点向存储节点113发送携带该数据信息(如数据标识B、存储节点113、存储位置1131、存储节点112、存储位置1123)的通知指令。
步骤311,存储节点113在接收到该通知指令之后,可以从本节点的存储位置1131读取到数据B’,并将数据B’备份到存储节点112的存储位置1123。
其中,由于在处理该写请求的过程中,已经将存储节点113的存储位置1131中的数据B,更新为数据B’,因此备份到存储节点112的数据是数据B’。
步骤312,在数据B’备份完成后,存储节点113向监控节点返回备份完成消息;监控节点在接收到该备份完成消息后,确定数据B’已经恢复完成,并从pending表中删除该数据信息,此时pending表为空,至此完成数据恢复过程。
在一个例子中,在数据B’已经恢复完成,且pending表中删除该数据信息之后,监控节点还可以更新pglog表,如表6所示,为更新后的pglog表。
表6
在上述过程中,监控节点接收到客户端121发送的写请求时,是优先处理该写请求,在该写请求处理完成后,才利用与该写请求匹配的数据信息进行数据恢复,而不是先利用与该写请求匹配的数据信息进行数据恢复,在数据恢复完成后才处理该写请求。基于此,可以提升IO服务的可用性,保证数据的可靠性,并可以达到一致性和可用性的均衡。以下结合具体示例阐述上述效果。
如表7所示,为先进行数据恢复,后处理写请求的性能示例,如表8所示,为先处理写请求,后进行数据恢复的性能示例。从表7和表8可以看出,在采用本申请的技术方案后,在顺序写、顺序读、随机写、随机读等应用场景,iops(即Input/Output Operations PerSecond,每秒进行读写操作的次数)、bw(即带宽)、lat(即业务中断时间)等参数的性能均有所提高,提升的可用性较明显,能够提升20%的性能,继而提升业务流量,降低客户端IO被挂起的概率。
表7
iops | bw(MB/s) | lat(msec) | |
1024k_write | 970 | 992 | 779 |
1024k_read | 3359 | 3359 | 210 |
4k_randwrite | 1902 | 7 | 397 |
4k_randread | 1198 | 5 | 553 |
表8
iops | bw(MB/s) | lat(msec) | |
1024k_write | 1102 | 1112 | 536 |
1024k_read | 3807 | 3808 | 203 |
4k_randwrite | 4631 | 18 | 160 |
4k_randread | 3301 | 13 | 243 |
基于与上述方法同样的申请构思,本申请实施例还提出一种数据恢复装置,该数据恢复装置可以应用于分布式存储系统中的监控节点,所述分布式存储系统中的每个数据存储在至少两个存储节点,如图4所示,为该装置的结构图。
确定模块401,用于确定待恢复数据;
表项管理模块402,用于将所述待恢复数据的数据信息写入到第一映射表;在接收到客户端发送的写请求时,判断所述第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,并从所述第一映射表中删除与所述写请求匹配的数据信息;其中,所述第一映射表用于存储没有与写请求对应的待恢复数据的数据信息;所述第二映射表用于存储与写请求对应的待恢复数据的数据信息;
处理模块403,用于确定与所述写请求对应的存储节点,并将所述写请求发送给所述存储节点,以使所述存储节点根据所述写请求写入数据;在接收到所述存储节点发送的数据写入完成消息后,确定所述写请求处理完成,并从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。
在一个例子中,所述待恢复数据的数据信息包括数据标识,且所述写请求携带数据标识;所述表项管理模块402,具体用于在判断所述第一映射表中是否存在与所述写请求匹配的数据信息的过程中,判断所述第一映射表中记录的待恢复数据的数据标识与所述写请求携带的数据标识是否相同;如果不同,则确定所述第一映射表中不存在与所述写请求匹配的数据信息;如果相同,则判断所述待恢复数据当前是否正在恢复;如果是,则确定所述第一映射表中不存在与所述写请求匹配的数据信息;如果否,则将所述待恢复数据的数据信息确定为与所述写请求匹配的数据信息。
在一个例子中,所述表项管理模块402,具体用于在判断所述待恢复数据当前是否正在恢复的过程中,判断所述待恢复数据的数据信息是否设置有特定标记,其中,所述特定标记是所述监控节点在对所述待恢复数据进行恢复时设置的;如果是,则确定所述待恢复数据当前正在恢复;如果否,则确定所述待恢复数据当前没有正在恢复。
在一个例子中,所述待恢复数据的数据信息包括:源存储节点和目标存储节点;所述表项管理模块402,还用于从所述第一映射表中选取数据信息,并确定选取出的数据信息对应的源存储节点和目标存储节点,通知所述源存储节点将选取出的数据信息对应的待恢复数据恢复到所述目标存储节点,并为选取出的数据信息设置特定标记;在接收到所述源存储节点发送的数据恢复完成消息后,删除为选取出的数据信息设置的特定标记,并从所述第一映射表中删除所述选取的数据信息。
在一个例子中,所述待恢复数据的数据信息包括:源存储节点和目标存储节点;所述处理模块403,具体用于在从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复的过程中,确定与所述查询出的数据信息对应的源存储节点和目标存储节点;通知所述源存储节点将所述查询出的数据信息对应的数据写入到所述目标存储节点;其中,写入到目标存储节点的数据是根据所述写请求更新后的数据;在接收到所述源存储节点发送的数据恢复完成消息后,确定数据恢复完成,并从所述第二映射表中删除所述查询出的数据信息。
本申请实施例提供的监控节点,从硬件层面而言,硬件架构示意图具体可以参见图5所示。包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的数据恢复操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可以采用完全硬件实施例、完全软件实施例、或者结合软件和硬件方面的实施例的形式。而且,本申请可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据恢复方法,其特征在于,应用于分布式存储系统中的监控节点,所述分布式存储系统中的每个数据存储在至少两个存储节点,所述方法包括:
确定待恢复数据,并将所述待恢复数据的数据信息写入到第一映射表;其中,所述第一映射表用于存储没有与写请求对应的待恢复数据的数据信息;
在接收到客户端发送的写请求时,判断所述第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,并从所述第一映射表中删除与所述写请求匹配的数据信息;其中,所述第二映射表用于存储与写请求对应的待恢复数据的数据信息;
确定与所述写请求对应的存储节点,并将所述写请求发送给所述存储节点,以使所述存储节点根据所述写请求写入数据;在接收到所述存储节点发送的数据写入完成消息后,确定所述写请求处理完成,并从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。
2.根据权利要求1所述的方法,其特征在于,所述待恢复数据的数据信息包括数据标识,且所述写请求携带数据标识;所述判断所述第一映射表中是否存在与所述写请求匹配的数据信息的过程,具体包括:
判断所述第一映射表中记录的待恢复数据的数据标识与所述写请求携带的数据标识是否相同;
如果不同,则确定所述第一映射表中不存在与所述写请求匹配的数据信息;
如果相同,则判断所述待恢复数据当前是否正在恢复;
如果是,则确定所述第一映射表中不存在与所述写请求匹配的数据信息;如果否,则将所述待恢复数据的数据信息确定为与所述写请求匹配的数据信息。
3.根据权利要求2所述的方法,其特征在于,
所述判断所述待恢复数据当前是否正在恢复的过程,具体包括:
判断所述待恢复数据的数据信息是否设置有特定标记,其中,所述特定标记是所述监控节点在对所述待恢复数据进行恢复时设置的;
如果是,则确定所述待恢复数据当前正在恢复;
如果否,则确定所述待恢复数据当前没有正在恢复。
4.根据权利要求3所述的方法,其特征在于,所述待恢复数据的数据信息包括:源存储节点和目标存储节点,所述方法还包括:
从所述第一映射表中选取数据信息,并确定选取出的数据信息对应的源存储节点和目标存储节点,通知所述源存储节点将选取出的数据信息对应的待恢复数据恢复到所述目标存储节点,并为选取出的数据信息设置特定标记;
在接收到所述源存储节点发送的数据恢复完成消息后,删除为选取出的数据信息设置的特定标记,并从所述第一映射表中删除所述选取的数据信息。
5.根据权利要求1所述的方法,其特征在于,
所述待恢复数据的数据信息包括:源存储节点和目标存储节点;
所述从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复的过程,具体包括:
确定与所述查询出的数据信息对应的源存储节点和目标存储节点;
通知所述源存储节点将所述查询出的数据信息对应的数据写入到所述目标存储节点;其中,写入到目标存储节点的数据是根据所述写请求更新后的数据;
在接收到所述源存储节点发送的数据恢复完成消息后,确定数据恢复完成,并从所述第二映射表中删除所述查询出的数据信息。
6.一种数据恢复装置,其特征在于,应用于分布式存储系统中的监控节点,所述分布式存储系统中的每个数据存储在至少两个存储节点,所述装置包括:
确定模块,用于确定待恢复数据;
表项管理模块,用于将所述待恢复数据的数据信息写入到第一映射表;在接收到客户端发送的写请求时,判断所述第一映射表中是否存在与所述写请求匹配的数据信息,如果是,则将与所述写请求匹配的数据信息写入到第二映射表,并从所述第一映射表中删除与所述写请求匹配的数据信息;其中,所述第一映射表用于存储没有与写请求对应的待恢复数据的数据信息;所述第二映射表用于存储与写请求对应的待恢复数据的数据信息;
处理模块,用于确定与所述写请求对应的存储节点,并将所述写请求发送给所述存储节点,以使所述存储节点根据所述写请求写入数据;在接收到所述存储节点发送的数据写入完成消息后,确定所述写请求处理完成,并从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复。
7.根据权利要求6所述的装置,其特征在于,所述待恢复数据的数据信息包括数据标识,且所述写请求携带数据标识;所述表项管理模块,具体用于在判断所述第一映射表中是否存在与所述写请求匹配的数据信息的过程中,判断所述第一映射表中记录的待恢复数据的数据标识与所述写请求携带的数据标识是否相同;如果不同,则确定所述第一映射表中不存在与所述写请求匹配的数据信息;如果相同,则判断所述待恢复数据当前是否正在恢复;如果是,则确定所述第一映射表中不存在与所述写请求匹配的数据信息;如果否,则将所述待恢复数据的数据信息确定为与所述写请求匹配的数据信息。
8.根据权利要求7所述的装置,其特征在于,
所述表项管理模块,具体用于在判断所述待恢复数据当前是否正在恢复的过程中,判断所述待恢复数据的数据信息是否设置有特定标记,所述特定标记是所述监控节点在对所述待恢复数据进行恢复时设置的;如果是,则确定所述待恢复数据当前正在恢复;如果否,则确定所述待恢复数据当前没有正在恢复。
9.根据权利要求8所述的装置,其特征在于,所述待恢复数据的数据信息包括:源存储节点和目标存储节点;所述表项管理模块,还用于从所述第一映射表中选取数据信息,并确定选取出的数据信息对应的源存储节点和目标存储节点,通知所述源存储节点将选取出的数据信息对应的待恢复数据恢复到所述目标存储节点,并为选取出的数据信息设置特定标记;在接收到所述源存储节点发送的数据恢复完成消息后,删除为选取出的数据信息设置的特定标记,并从所述第一映射表中删除所述选取的数据信息。
10.根据权利要求6所述的装置,其特征在于,所述待恢复数据的数据信息包括:源存储节点和目标存储节点;所述处理模块,具体用于在从所述第二映射表中查询出与所述写请求匹配的数据信息,并利用查询出的数据信息进行数据恢复的过程中,确定与所述查询出的数据信息对应的源存储节点和目标存储节点;通知所述源存储节点将所述查询出的数据信息对应的数据写入到所述目标存储节点;其中,写入到目标存储节点的数据是根据所述写请求更新后的数据;在接收到所述源存储节点发送的数据恢复完成消息后,确定数据恢复完成,并从所述第二映射表中删除所述查询出的数据信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710392911.7A CN107544869B (zh) | 2017-05-27 | 2017-05-27 | 一种数据恢复方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710392911.7A CN107544869B (zh) | 2017-05-27 | 2017-05-27 | 一种数据恢复方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107544869A CN107544869A (zh) | 2018-01-05 |
CN107544869B true CN107544869B (zh) | 2020-06-09 |
Family
ID=60966891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710392911.7A Active CN107544869B (zh) | 2017-05-27 | 2017-05-27 | 一种数据恢复方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107544869B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110147529B (zh) * | 2018-02-13 | 2023-06-30 | 珠海金山办公软件有限公司 | 恢复pdf注释评论的方法及装置 |
CN110874382B (zh) * | 2018-08-29 | 2023-07-04 | 阿里云计算有限公司 | 一种数据写入方法、装置及其设备 |
CN110928943B (zh) * | 2018-08-29 | 2023-06-20 | 阿里云计算有限公司 | 一种分布式数据库及数据写入方法 |
CN109358984B (zh) * | 2018-09-17 | 2020-12-11 | 至誉科技(武汉)有限公司 | 利用温度均衡数据恢复方法进行数据恢复的存储装置 |
CN112748851A (zh) * | 2019-10-30 | 2021-05-04 | 北京白山耘科技有限公司 | 数据读取方法、装置和系统 |
CN111209304B (zh) * | 2019-12-30 | 2023-04-07 | 华为云计算技术有限公司 | 数据处理方法、装置及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515296A (zh) * | 2009-03-06 | 2009-08-26 | 成都市华为赛门铁克科技有限公司 | 数据更新方法和装置 |
CN105159800A (zh) * | 2015-09-10 | 2015-12-16 | 华为技术有限公司 | 数据恢复方法、数据备份方法及相关设备、系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103884B2 (en) * | 2002-03-27 | 2006-09-05 | Lucent Technologies Inc. | Method for maintaining consistency and performing recovery in a replicated data storage system |
-
2017
- 2017-05-27 CN CN201710392911.7A patent/CN107544869B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515296A (zh) * | 2009-03-06 | 2009-08-26 | 成都市华为赛门铁克科技有限公司 | 数据更新方法和装置 |
CN105159800A (zh) * | 2015-09-10 | 2015-12-16 | 华为技术有限公司 | 数据恢复方法、数据备份方法及相关设备、系统 |
Non-Patent Citations (2)
Title |
---|
HDFS分布式元数据管理框架的研究与实现;韩诗楠;《中国优秀硕士学位论文全文数据库》;20150515;正文第13-14页、第29-30页 * |
并行文件系统负载均衡技术的研究与实现;吴一波;《中国优秀硕士学位论文全文数据库》;20111215;正文第35-38页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107544869A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107544869B (zh) | 一种数据恢复方法和装置 | |
US9910620B1 (en) | Method and system for leveraging secondary storage for primary storage snapshots | |
US9372908B2 (en) | Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation | |
US20170206019A1 (en) | Data Backup Method and Apparatus, Data Restoration Method and Apparatus, and Server | |
CN107451013B (zh) | 基于分布式系统的数据恢复方法、装置及系统 | |
CN110998537B (zh) | 一种过期备份处理方法及备份服务器 | |
US10572335B2 (en) | Metadata recovery method and apparatus | |
CN107817950B (zh) | 一种数据处理方法及装置 | |
US20170083406A1 (en) | Method and apparatus for incremental backup | |
CN109032533B (zh) | 一种数据存储方法、装置和设备 | |
WO2015096454A1 (zh) | 一种数据处理方法及装置 | |
CN105183399A (zh) | 一种基于弹性块存储的数据写、读方法及装置 | |
CN106709066B (zh) | 数据同步方法及装置 | |
CN108462756B (zh) | 一种数据写入方法和装置 | |
CN112765182A (zh) | 云服务器集群间的数据同步方法及装置 | |
CN106873902B (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
CN111506253A (zh) | 一种分布式存储系统及其存储方法 | |
CN109753379B (zh) | 快照数据备份、删除方法、装置及系统 | |
CN107798063B (zh) | 快照处理方法和快照处理装置 | |
CN107038092B (zh) | 一种数据复制方法及装置 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN114721594A (zh) | 一种分布式存储方法、装置、设备及机器可读存储介质 | |
CN105677252A (zh) | 读数据的方法、数据处理方法及相关存储设备 | |
WO2016206568A1 (zh) | 数据更新方法、装置及相关系统 | |
CN103440204B (zh) | 一种更新文件系统的方法和存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |