CN111444046B - 一种数据恢复方法及分布式数据恢复系统 - Google Patents
一种数据恢复方法及分布式数据恢复系统 Download PDFInfo
- Publication number
- CN111444046B CN111444046B CN202010546266.1A CN202010546266A CN111444046B CN 111444046 B CN111444046 B CN 111444046B CN 202010546266 A CN202010546266 A CN 202010546266A CN 111444046 B CN111444046 B CN 111444046B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- source
- recovered
- source data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Abstract
本发明实施例提供了一种数据恢复方法及分布式数据恢复系统,包括:管理节点检测到有数据存储节点存在数据对象丢失时,从多个数据存储节点中确定目的节点,生成数据恢复指令,将数据恢复指令发送至目的节点;目的节点根据接收到的数据恢复指令中的源数据节点信息,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引,基于数据恢复索引向源数据节点发送数据恢复请求,并根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复,直至待恢复丢失数据对象中的各条待恢复数据均恢复完成。本发明实施例,能够减少数据恢复的时间,提高数据的安全性。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据恢复方法及分布式数据恢复系统。
背景技术
随着大数据时代的到来,数据的使用量成倍增长,使得对数据的存储和恢复有着越来越高的要求。对象存储,也叫做基于对象的存储,是一种非结构化数据的存储方式。分布式存储将不同存储节点如服务器上的空闲磁盘通过网络连接在一起,并对外提供统一的存储接口。分布式对象存储系统可以在一个持久稳固且高度可用的系统中存储任意的对象,用户和应用等可以在对象存储中使用简单的API(Application ProgrammingInterface,应用程序接口)访问数据对象,例如,该数据对象可以为一个数据块等。
分布式对象存储系统中最常见的两种数据冗余技术是多副本策略和纠删码技术,相比于多副本策略,纠删码技术具有更高的磁盘利用率。纠删码技术主要是通过纠删码算法将原始的数据块进行编码得到校验块,并将数据块和校验块一并存储起来,以达到数据容错的目的。
现有使用纠删码技术对分布式对象存储系统中丢失的数据进行恢复的方法为:当管理节点检测到存在数据块丢失时,随机选择一个数据存储节点作为数据恢复节点,并向该数据恢复节点发送数据恢复指令;数据恢复节点接收到数据恢复指令后,向数据恢复指令中携带的数据源节点标识对应的数据源节点发送数据获取请求,进而接收数据源节点返回的数据,对接收的数据使用EC(Erasure Code,纠删码)技术进行编解码处理,以恢复丢失的数据块。
实际应用中,丢失的数据块中可能包含成千上万条数据,使用现有的数据恢复方法,在数据恢复节点向数据源节点发送数据获取请求时,是基于数据源节点中存储的数据块对应的索引信息,逐条向数据源节点发送数据获取请求的,其中,索引信息表示了数据源节点中数据存储的组织方式,每一个数据获取请求用于请求一条数据,数据恢复节点在接收数据源节点返回的一条数据后,恢复一条丢失数据,再向数据源节点发送下一条数据获取请求,至所有丢失数据都得到恢复,进而得到整个丢失数据块的恢复数据。在此过程中,因需要逐条向数据源节点发送数据获取请求,对丢失数据块中的数据进行逐条恢复,即对一条数据恢复之后再请求恢复下一条数据,使得数据恢复的时间较长,导致丢失的数据块长时间处于缺失的状态,影响数据的安全性。
发明内容
本发明实施例的目的在于提供一种数据恢复方法及分布式数据恢复系统,能够减少数据恢复的时间,提高数据的安全性。具体技术方案如下:
第一方面,本发明实施例提供了一种数据恢复方法,应用于分布式对象存储系统中的管理节点,所述分布式对象存储系统包括:管理节点和多个数据存储节点,所述方法包括:
当检测到有所述数据存储节点存在数据对象丢失时,从所述多个数据存储节点中确定目的节点;
生成数据恢复指令,所述数据恢复指令中包含:待恢复丢失数据对象所属的源数据节点信息,所述待恢复丢失数据对象包含至少两条待恢复数据,所述源数据节点为多个所述数据存储节点中的至少一个;
将所述数据恢复指令发送至所述目的节点,使所述目的节点根据接收到的所述数据恢复指令中的所述源数据节点信息,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引,基于所述数据恢复索引向所述源数据节点发送数据恢复请求,所述数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据,并根据所述源数据节点返回的源数据对象数据,对所述至少两条待恢复数据进行恢复。
可选的,所述方法还包括:
接收所述目的节点发送的待恢复丢失数据对象数据恢复完成的消息。
第二方面,本发明实施例提供了一种数据恢复方法,应用于分布式对象存储系统中的数据存储节点,所述分布式对象存储系统包括:管理节点和多个数据存储节点,所述方法包括:
接收所述管理节点发送的数据恢复指令,所述数据恢复指令中包含:待恢复丢失数据对象所属的源数据节点信息,所述待恢复丢失数据对象包含至少两条待恢复数据,所述源数据节点为多个所述数据存储节点中的至少一个;
根据接收到的所述数据恢复指令中的所述源数据节点信息,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引;
基于所述数据恢复索引向所述源数据节点发送数据恢复请求,所述数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据;
根据所述源数据节点返回的源数据对象数据,对所述至少两条待恢复数据进行恢复。
可选的,所述源数据节点信息包括:所述源数据节点中源数据对象的数据索引,所述数据索引包含所述源数据节点中源数据对象数据的存储方式;
所述根据接收到的所述数据恢复指令中的所述源数据节点信息,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引的步骤,包括:
基于所述源数据节点中源数据对象数据的存储方式,按照预设选取方式,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
可选的,所述源数据节点信息包括:源数据节点标识,所述基于所述数据恢复索引向所述源数据节点发送数据恢复请求的步骤,包括:
基于所述数据恢复索引及预设并发数量,生成用于请求所述并发数量条源数据对象数据的数据恢复请求,所述并发数量为大于1的整数;
向所述源数据节点标识对应的源数据节点,发送所述数据恢复请求,以使所述源数据节点读取所述数据恢复请求对应的源数据对象数据。
可选的,所述源数据节点信息包括:源数据节点标识,所述基于所述数据恢复索引向所述源数据节点发送数据恢复请求的步骤,包括:
基于所述数据恢复索引及预设长度,得到预设长度的滑动数据恢复请求队列,所述滑动数据恢复请求队列中包含预设长度个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据;
向所述源数据节点标识对应的源数据节点,发送所述滑动数据恢复请求队列中包含的所有数据恢复请求,以使所述源数据节点读取所述滑动数据恢复请求队列中包含的每一数据恢复请求对应的源数据对象数据。
可选的,所述方法还包括:
在接收到任一所述数据恢复请求对应的源数据对象数据时,更新所述滑动数据恢复请求队列,保持所述滑动数据恢复请求队列长度不变。
可选的,所述根据所述源数据节点返回的源数据对象数据,对所述至少两条待恢复数据进行恢复的步骤,包括:
接收所述源数据节点返回的源数据对象数据;
对接收的所述源数据对象数据使用纠删码技术编解码处理,得到所述源数据对象数据对应的恢复数据。
可选的,所述方法还包括:
基于所述数据恢复索引,对所述待恢复丢失数据对象对应的恢复数据进行存储。
可选的,所述方法还包括:
将待恢复丢失数据对象数据恢复完成的消息发送至所述管理节点。
第三方面,本发明实施例提供了一种分布式数据恢复系统,所述分布式数据恢复系统包括:管理节点和多个数据存储节点;
所述管理节点,用于在检测到有所述数据存储节点存在数据对象丢失时,从所述多个数据存储节点中确定目的节点,生成数据恢复指令,将所述数据恢复指令发送至所述目的节点;所述数据恢复指令中包含:待恢复丢失数据对象所属的源数据节点信息,所述待恢复丢失数据对象包含至少两条待恢复数据,所述源数据节点为多个所述数据存储节点中的至少一个;
所述目的节点,用于根据接收到的所述数据恢复指令中的所述源数据节点信息,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引,基于所述数据恢复索引向所述源数据节点发送数据恢复请求,所述数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据;并根据所述源数据节点返回的源数据对象数据,对所述至少两条待恢复数据进行恢复;
所述源数据节点,用于接收所述目的节点发送的数据恢复请求,并将所述数据恢复请求对应的源数据对象数据返回至所述目的节点。
可选的,所述源数据节点信息包括:所述源数据节点中源数据对象的数据索引,所述数据索引包含源数据节点中源数据对象数据的存储方式;所述目的节点,具体用于:
基于所述源数据节点中源数据对象数据的存储方式,按照预设选取方式,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
可选的,所述源数据节点信息包括:源数据节点标识,所述目的节点,具体用于:
基于所述数据恢复索引及预设并发数量,生成用于请求所述并发数量条源数据对象数据的数据恢复请求,所述并发数量为大于1的整数;
向所述源数据节点标识对应的源数据节点,发送所述数据恢复请求。
可选的,所述源数据节点信息包括:源数据节点标识,所述目的节点,具体用于:
基于所述数据恢复索引及预设长度,得到预设长度的滑动数据恢复请求队列,所述滑动数据恢复请求队列中包含预设长度个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据;
向所述源数据节点标识对应的源数据节点,发送所述滑动数据恢复请求队列中包含的所有数据恢复请求。
可选的,所述目的节点还用于:
在接收到任一所述数据恢复请求对应的源数据对象数据时,更新所述滑动数据恢复请求队列,保持所述滑动数据恢复请求队列长度不变。
可选的,所述源数据节点,具体用于:
接收所述目的节点发送的数据恢复请求,读取所述数据恢复请求对应的源数据对象数据;
将读取的所述源数据对象数据,返回至所述目的节点。
可选的,所述源数据节点,具体用于:
接收所述目的节点发送的滑动数据恢复请求队列中包含的所有数据恢复请求,读取每一数据恢复请求对应的源数据对象数据;
将读取的每一数据恢复请求对应的源数据对象数据,返回至所述目的节点。
可选的,所述目的节点,具体用于:
接收所述源数据节点返回的源数据对象数据;
对接收的所述源数据对象数据使用纠删码技术编解码处理,得到所述源数据对象数据对应的恢复数据。
可选的,所述目的节点,还用于:
基于所述数据恢复索引,对所述待恢复丢失数据对象对应的恢复数据进行存储。
可选的,所述目的节点,还用于:
将待恢复丢失数据对象数据恢复完成的消息发送至所述管理节点。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面提供的数据恢复方法的方法步骤。
本发明实施例有益效果:
本发明实施例提供的一种数据恢复方法及分布式数据恢复系统,目的节点根据接收到的数据恢复指令中的源数据节点信息,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引,然后,基于数据恢复索引向源数据节点发送数据恢复请求,该数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据,并根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复。由于目的节点每次向源数据节点发送的是:用于请求至少两条待恢复数据对应的源数据对象数据的数据恢复请求,然后根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复,使得目的节点可以一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点在接收到数据恢复请求后,可以一次读取多条源数据对象数据并发送给目的节点,进而目的节点可以同时对多条待恢复数据进行恢复,以减少数据恢复的时间,提高数据的安全性。同时,目的节点一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点一次向目的节点发送多条源数据对象数据,可以减少目的节点与源数据节点之间的交互次数,进而节省网络资源。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据恢复方法的流程示意图;
图2为本发明实施例提供的另一种数据恢复方法的流程示意图;
图3为本发明实施例提供的一种存储数据方式示意图;
图4为本发明实施例提供的一种数据请求实施方式流程示意图;
图5为本发明实施例提供的另一种数据请求实施方式流程示意图;
图6为本发明实施例提供的一种数据恢复实施方式流程示意图;
图7为本发明实施例提供的一种数据恢复方法的交互示意图;
图8为本发明实施例提供的一种数据恢复系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,先对分布式对象存储系统中的数据冗余技术——纠删码技术进行介绍如下:
纠删码技术主要是通过纠删码算法将原始的数据块进行编码得到校验块,并将数据块和校验块一并存储起来,以达到容错的目的。其基本思想是将M块原始的数据块通过计算,得到N块校验块,对于这M+N个块,丢失任意的N块元素时,均可以通过对应的算法恢复出原来的数据。生成校验块的过程称为ENCODE(编码),恢复丢失数据块的过程被称为DECODE(解码)。
可以将数据块和校验块对应的元素块都称为数据块,当数据块出现缺失时,会触发对数据块的恢复。具体的,在分布式存储系统中,管理节点会在检测出数据块数没有达到指定数量时, 逐一恢复丢失的数据块。针对基于 EC 技术存储的数据块而言,丢失了一个数据块,会触发一次数据块的恢复。当数据块缺失时, 需要进行 DECODE操作, 当数据块不缺失时需要进行 ENCODE操作。
实际应用中,丢失的数据块中可能包含成千上万条数据,使用现有的数据恢复方法,在数据恢复节点向数据源节点发送数据获取请求时,是基于数据源节点中存储的数据块对应的索引信息,逐条向数据源节点发送数据获取请求的,其中,索引信息表示了数据源节点中数据存储的组织方式,每一数据获取请求用于请求一条数据,数据恢复节点在接收数据源节点返回的一条数据后,恢复一条丢失数据,再向数据源节点发送下一条数据获取请求,至所有丢失数据都得到恢复,进而得到整个丢失数据块的恢复数据。在此过程中,因需要逐条向数据源节点发送数据获取请求,对丢失数据块中的数据进行逐条恢复,即对一条数据恢复之后再请求恢复下一条数据,使得数据恢复的时间较长,导致丢失的数据块长时间处于缺失的状态,影响数据的安全性。
有鉴如此,本发明实施例首先提供了一种数据恢复方法,应用于分布式对象存储系统中的管理节点,该分布式对象存储系统包括:管理节点和多个数据存储节点,该方法可以包括:
当检测到有数据存储节点存在数据对象丢失时,从多个数据存储节点中确定目的节点;
生成数据恢复指令;数据恢复指令中包含:待恢复丢失数据对象所属的源数据节点信息,待恢复丢失数据对象包含至少两条待恢复数据,源数据节点为多个数据存储节点中的至少一个;
将数据恢复指令发送至目的节点,使目的节点根据接收到的数据恢复指令中的源数据节点信息,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引,基于数据恢复索引向源数据节点发送数据恢复请求,数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据,并根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复。
本发明实施例提供的一种数据恢复方法,由于管理节点在检测到存在数据对象丢失并确定目的节点后,目的节点每次向源数据节点发送的是:用于请求至少两条待恢复数据对应的源数据对象数据的数据恢复请求,然后根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复,使得目的节点可以一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点在接收到数据恢复请求后,可以一次读取多条源数据对象数据并发送给目的节点,进而目的节点可以同时对多条待恢复数据进行恢复,以减少数据恢复的时间,提高数据的安全性。同时,目的节点一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点一次向目的节点发送多条源数据对象数据,可以减少目的节点与源数据节点之间的交互次数,进而节省网络资源。
下面对本发明实施例提供的一种数据恢复方法进行详细介绍:
本发明实施例中,数据恢复方法应用于分布式对象存储系统,分布式对象存储系统可以是一个分布式对象存储集群,在该分布式对象存储集群中包含管理节点和多个数据存储节点。示例性的,管理节点和多个数据存储节点可以是分别布置于不同服务器上的数据存储模块等。
如图1所示,本发明实施例提供了一种数据恢复方法,应用于分布式对象存储系统中的管理节点,该方法可以包括以下步骤:
S101,当检测到有数据存储节点存在数据对象丢失时,从多个数据存储节点中确定目的节点。
本发明实施例中,每一数据存储节点可以将自身存储的数据对象类型、名称、大小、存储位置、数据索引等数据对象存储信息上报至管理节点,管理节点可以存储每一数据存储节点上报的数据对象存储信息,进而检测每一数据存储节点上数据对象的存储状态。具体的,数据存储节点上报管理节点数据对象存储信息,以及管理节点检测数据存储节点上数据对象存储状态的方式可以是:实时的,或周期性的,或间隔预设时长的等。
当管理节点检测到有数据存储节点存在数据对象丢失时,可以基于管理节点上存储的每一数据存储节点上报的数据对象存储信息,确定数据对象丢失的数据存储节点,以及用于恢复丢失数据对象的源数据对象所属的数据存储节点,从多个数据存储节点中确定目的节点。其中,目的节点为用于恢复丢失数据对象的数据存储节点,该目的节点可以为丢失数据对象的数据存储节点中的一个,也可以为没有丢失数据对象的数据存储节点中的一个。示例性的,目的节点可以和数据对象丢失的数据存储节点相同或不同,也可以与源数据节点相同或不同。
管理节点检测到有数据存储节点存在数据对象丢失,可以是检测到有一个或多个数据存储节点存在数据对象丢失。示例性的,分布式对象存储系统中存储有8个数据块,4个校验块,将数据块和校验块称为数据对象,则丢失任意1-4个数据对象,都能够恢复出原来的数据。实际应用中,鉴于数据存储的隔离原则,可以将数据对象存储在不同的数据存储节点上。本发明实施例中,管理节点可以检测到一个或多个数据存储节点存在数据对象丢失,进而实现对丢失数据对象的恢复,在数据恢复的过程中,可以是逐个数据对象进行恢复,也可以是多个数据对象并行进行数据恢复。
管理节点从多个数据存储节点中确定目的节点的实施方式可以是:在多个空间利用率较大的数据存储节点中,随机选取一个数据存储节点作为目的节点,也可以是:在多个空间利用率较大的数据存储节点中,选取空间利用率最大的数据存储节点作为目的节点。示例性的,数据存储节点的空间利用率可以是:该数据存储节点的磁盘或存储介质上可用空间的利用率。
S102,生成数据恢复指令。
管理节点在检测到有数据存储节点存在数据对象丢失时,可以生成数据恢复指令,该数据恢复指令中可以包含:待恢复丢失数据对象所属的源数据节点信息,可以理解的,源数据节点为多个数据存储节点中的至少一个,该源数据节点即为用于恢复待恢复丢失数据对象的源数据对象所属的数据存储节点,待恢复丢失数据对象可以包含至少两条待恢复数据。
S103,将数据恢复指令发送至目的节点,使目的节点根据接收到的数据恢复指令中的源数据节点信息,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引,基于数据恢复索引向源数据节点发送数据恢复请求,并根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复。其中,数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据。
本发明实施例中,管理节点将生成的数据恢复指令发送至目的节点,以使得目的节点可以根据接收到的数据恢复指令中的源数据节点信息,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引,进而基于数据恢复索引向源数据节点发送数据恢复请求,再根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复,实现对待恢复丢失数据对象的恢复。
本发明实施例提供的一种数据恢复方法,由于管理节点在检测到存在数据对象丢失并确定目的节点后,目的节点每次向源数据节点发送的是:用于请求至少两条待恢复数据对应的源数据对象数据的数据恢复请求,然后根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复,使得目的节点可以一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点在接收到数据恢复请求后,可以一次读取多条源数据对象数据并发送给目的节点,进而目的节点可以同时对多条待恢复数据进行恢复,以减少数据恢复的时间,提高数据的安全性。同时,目的节点一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点一次向目的节点发送多条源数据对象数据,可以减少目的节点与源数据节点之间的交互次数,进而节省网络资源。
作为本发明实施例一种可选的实施方式,管理节点还可以接收目的节点发送的待恢复丢失数据对象数据恢复完成的消息。
在目的节点完成对待恢复丢失数据对象的恢复之后,目的节点可以将待恢复丢失数据对象数据恢复完成的消息发送至管理节点,管理节点接收目的节点发送的待恢复丢失数据对象数据恢复完成的消息,进一步对所存储的数据对象状态信息进行更新,以便于对各数据存储节点中数据对象信息的管理。
如图2所示,本发明实施例提供了另一种数据恢复方法,应用于分布式对象存储系统中的数据存储节点,该数据存储节点可以为管理节点确定的目的节点,该方法可以包括以下步骤:
S201,接收管理节点发送的数据恢复指令。
其中,数据恢复指令中可以包含:待恢复丢失数据对象所属的源数据节点信息,待恢复丢失数据对象包含至少两条待恢复数据,源数据节点为多个数据存储节点中的至少一个。
S202,根据接收到的数据恢复指令中的源数据节点信息,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
本发明实施例中,在目的节点接收到管理节点发送的数据恢复指令后,可以根据数据恢复指令中包含的源数据节点信息,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引。一种实施方式中,源数据节点信息中可以包含该源数据节点中源数据对象的数据索引,进而目的节点可以根据源数据对象的数据索引,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
S203,基于数据恢复索引向源数据节点发送数据恢复请求。其中,数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据。
本发明实施例中,待恢复丢失数据对象,与恢复该待恢复丢失数据对象的源数据对象的数据索引可以相对应,待恢复丢失数据对象包含至少两条待恢复数据,在确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引后,可以根据数据恢复索引,向源数据节点发送一次请求至少两条待恢复数据对应的源数据对象数据的数据恢复请求,以使得源数据节点在接收到目的节点发送的数据恢复请求后,读取目的节点所请求的源数据对象数据,并将读取的源数据对象数据返回给目的节点。
S204,根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复。
目的节点接收源数据节点返回的源数据对象数据,并根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复。
S205,判断待恢复丢失数据对象中的各条待恢复数据是否均恢复完成。
在目的节点根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复后,目的节点可以根据数据恢复索引,判断待恢复丢失数据对象中的各条待恢复数据是否均恢复完成,如果待恢复丢失数据对象中还有待恢复数据未进行恢复,表明待恢复丢失数据对象未完成数据恢复,则返回执行上述S203的步骤,如果待恢复丢失数据对象中的各条待恢复数据均恢复完成,表明待恢复丢失数据对象已完成数据恢复,即目的节点完成该次数据恢复任务,则结束恢复丢失数据对象的过程。
示例性的,根据数据恢复索引,可以知晓需要恢复1024条数据,当前已恢复了1008条数据,则待恢复丢失数据对象中还有待恢复数据未进行恢复,则返回执行上述S203的步骤。当前已恢复了1024条数据,则结束恢复丢失数据对象的过程。
本发明实施例提供的一种数据恢复方法,由于目的节点每次向源数据节点发送的是:用于请求至少两条待恢复数据对应的源数据对象数据的数据恢复请求,然后根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复,使得目的节点可以一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点在接收到数据恢复请求后,可以一次读取多条源数据对象数据并发送给目的节点,进而目的节点可以同时对多条待恢复数据进行恢复,以减少数据恢复的时间,提高数据的安全性。同时,目的节点一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点一次向目的节点发送多条源数据对象数据,可以减少目的节点与源数据节点之间的交互次数,进而节省网络资源。
本发明实施例中,管理节点生成的数据恢复指令中携带的源数据节点信息中可以包含该源数据节点中源数据对象的数据索引,数据索引可以包含源数据节点中源数据对象数据的存储方式,该存储方式可以为源数据对象数据存储时对应的数据存储组织方式。本发明实施例中,数据对象的存储组织方式可以相同。一种实施方式中,数据存储节点中的数据可以使用条形布局方式进行存储,在条形布局下,数据依次写入条的各个单元中,当条被写满之后就写入下一个条中,一个条的不同单元可以位于不同的数据存储节点中。示例性的,如图3所示,图3为本发明实施例提供的一种数据存储方式示意图。图3中有8个数据单元对应8个数据块,4个编码单元对应4个校验块,将数据块和校验块称为数据对象,图中每一层表示存储一条数据。
作为本发明实施例一种可选的实施方式,上述步骤S202的一种实施方式,可以包括:
基于源数据节点中源数据对象数据的存储方式,按照预设选取方式,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
本发明实施例中,源数据对象的数据索引中可以包含源数据对象中有效数据信息的特征、源数据对象数据的存储方式等信息,源数据对象中有效数据信息的特征可以是有效数据信息的个数,有效数据信息的个数可以表示用于恢复待恢复丢失数据对象数据的有效数据的个数,将有效数据信息的个数最多的源数据对象的数据索引,确定为用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
本发明实施例中,将有效数据信息的个数最多的源数据对象的数据索引,确定为用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引,可以最多的恢复待恢复丢失数据对象中各条待恢复数据。
本发明实施例中,源数据节点信息可以包括:源数据节点标识,示例性的,源数据节点标识可以是源数据节点的设备号、端口号等能够唯一标识该源数据节点的信息。
作为本发明实施例一种可选的实施方式,如图4所示,上述步骤S203的一种实施方式,可以包括:
S2031,基于数据恢复索引及预设并发数量,生成用于请求并发数量条源数据对象数据的数据恢复请求。其中,并发数量为大于1的整数。
本发明实施例中,可以根据需要恢复的待恢复丢失数据对象的大小,以及当前可用于数据恢复的网络资源,设置并发数量,该并发数量可以表示每一数据恢复请求中需要向源数据节点请求待恢复数据对应的源数据对象数据的数量。示例性的,每一数据恢复请求中需要向源数据节点请求待恢复数据对应的源数据对象数据的数量可以是2的N次方个。
示例性的,根据数据恢复索引,可以知晓需要恢复1024条数据,预设并发数量可以设置为16,即每一数据恢复请求中需要向源数据节点请求待恢复数据对应的源数据对象数据的数量为16条,进而生成数据恢复索引范围内用于请求16条待恢复数据对应的源数据对象数据的数据恢复请求,优选地,每一数据恢复请求中需要向源数据节点请求的16条待恢复数据对应的源数据对象数据在存储结构上是连续的,比如,数据恢复请求中可以请求存储结构上连续的第1-16条待恢复数据对应的源数据对象数据,或数据恢复请求中可以请求存储结构上连续的第33-48条待恢复数据对应的源数据对象数据等。
S2032,向源数据节点标识对应的源数据节点,发送数据恢复请求,以使源数据节点读取数据恢复请求对应的源数据对象数据。
在生成用于请求并发数量条待恢复数据对应的源数据对象数据的数据恢复请求后,将该数据恢复请求发送至源数据节点标识对应的源数据节点,以使源数据节点读取数据恢复请求对应的源数据对象数据,并返回该源数据对象数据,进而目的节点可以获取并发数量条待恢复数据对应的源数据对象数据。
示例性的,分布式对象存储系统中存储有8个数据块,4个校验块,分别存储在不同的数据存储节点上,将数据块和校验块称为数据对象,当丢失了1个数据对象时,可以将没有丢失数据对象的任意8个数据存储节点作为源数据节点。在目的节点生成用于请求并发数量条待恢复数据对应的源数据对象数据的数据恢复请求后,向8个源数据节点标识对应的源数据节点,均发送该数据恢复请求,进而,目的节点可以获取每一源数据节点返回的并发数量条待恢复数据对应的源数据对象数据。
本发明实施例中,目的节点可以一次向源数据节点请求所设置的并发数量条待恢复数据对应的源数据对象数据,使得源数据节点在接收到数据恢复请求后,可以一次读取并发数量条源数据对象数据并返回给目的节点,进而目的节点可以同时对所设置的并发数量条待恢复数据进行恢复,以减少数据恢复的时间,提高数据的安全性。同时,目的节点一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点一次向目的节点返回多条源数据对象数据,可以减少目的节点与源数据节点之间的交互次数,进而节省网络资源。
作为本发明实施例一种可选的实施方式,如图5所示,上述步骤S203的一种实施方式,可以包括:
S2033,基于数据恢复索引及预设长度,得到预设长度的滑动数据恢复请求队列。
其中,滑动数据恢复请求队列中可以包含预设长度个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据。本发明实施例中,预设长度可以根据需要恢复的待恢复丢失数据对象的大小,以及当前可用于数据恢复的网络资源设置,该预设长度可以表示滑动数据恢复请求队列中数据恢复请求的个数,示例性的,预设长度可以设置为2的N次方个。
示例性,根据数据恢复索引,可以知晓需要恢复1024条数据,可以设置长度为16的滑动数据恢复请求队列,该滑动数据恢复请求队列中包含16个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据,优选地,滑动数据恢复请求队列中需要向源数据节点请求的16条待恢复数据对应的源数据对象数据在存储结构上是连续的,比如,滑动数据恢复请求队列中可以请求数据恢复索引范围内存储结构上连续的第1-16条待恢复数据对应的源数据对象数据,或数据恢复请求中可以请求数据恢复索引范围内存储结构上连续的第33-48条待恢复数据对应的源数据对象数据等。
S2034,向源数据节点标识对应的源数据节点,发送滑动数据恢复请求队列中包含的所有数据恢复请求,以使源数据节点读取滑动数据恢复请求队列中包含的每一数据恢复请求对应的源数据对象数据。
将滑动数据恢复请求队列中包含的所有数据恢复请求,并行发送至源数据节点标识对应的源数据节点,使得源数据节点在接收到数据恢复请求后,读取滑动数据恢复请求队列中包含的每一数据恢复请求对应的源数据对象数据,进而,目的节点可以获取预设长度条待恢复数据对应的源数据对象数据。
本发明实施例中,目的节点可以一次向源数据节点请求预设数量条待恢复数据对应的源数据对象数据,使得源数据节点在接收到预设数量个数据恢复请求后,可以一次读取预设数量条源数据对象数据并返回给目的节点,进而目的节点可以同时对预设数量条待恢复数据进行恢复,以减少数据恢复的时间,提高数据的安全性。同时,目的节点一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点一次向目的节点返回多条源数据对象数据,可以减少目的节点与源数据节点之间的交互次数,进而节省网络资源。
作为本发明实施例一种可选的实施方式,在向源数据节点标识对应的源数据节点,发送滑动数据恢复请求队列中包含的所有数据恢复请求之后,还可以包括:
在接收到任一数据恢复请求对应的源数据对象数据时,更新滑动数据恢复请求队列,保持滑动数据恢复请求队列长度不变。
实际应用中,不同的源数据节点读取每一条数据的速度可能不同,故而,针对滑动数据恢复请求队列中包含的所有数据恢复请求,可能源数据节点返回响应的源数据对象数据时间不同,目的节点可以在接收到任一数据恢复请求对应的源数据对象数据时,更新滑动数据恢复请求队列中包含的数据恢复请求,保持滑动数据恢复请求队列长度不变。
示例性的,滑动数据恢复请求队列中包含16个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据,例如,16个数据恢复请求是请求在存储结构上连续的第1-16条待恢复数据对应的源数据对象数据,而在第一时间目的节点接收到源数据节点返回的第1-5,以及8-16条待恢复数据对应的源数据对象数据,此时更新滑动数据恢复请求队列,更新后的滑动数据恢复请求队列中包含请求6-7,以及17-30条待恢复数据对应的源数据对象数据的数据恢复请求,保持滑动数据恢复请求队列长度不变。
本发明实施例中,目的节点在接收到任一数据恢复请求对应的源数据对象数据时,更新滑动数据恢复请求队列,保持滑动数据恢复请求队列长度不变,可以使得响应速度快的源数据节点不受响应速度慢的源数据节点返回源数据对象数据的影响,目的节点可以更快速的对多待恢复数据进行恢复,以减少数据恢复的时间,提高数据的安全性。
作为本发明实施例一种可选的实施方式,如图6所示,上述步骤S204的一种实施方式,可以包括:
S2041,接收源数据节点返回的源数据对象数据。
目的节点可以接收源数据节点返回的至少两条待恢复数据对应的源数据对象数据,该至少两条待恢复数据对应的源数据对象数据可以是:一个数据恢复请求所请求的至少两条待恢复数据对应的源数据对象数据,或是,多个数据恢复请求所请求的至少两条待恢复数据对应的源数据对象数据。
S2042,对接收的源数据对象数据使用纠删码技术编解码处理,得到源数据对象数据对应的恢复数据。
目的节点对所接收到的多条待恢复数据对应的源数据对象数据,并行(即同时)使用纠删码技术进行编解码处理,得到多条待恢复数据对应的源数据对象数据所对应的恢复数据。
本发明实施例中,目的节点对所接收到的多条待恢复数据对应的源数据对象数据,并行进行编解码处理,得到源数据对象数据对应的恢复数据,减少数据恢复的时间,提高数据的安全性。
作为本发明实施例一种可选的实施方式,本发明实施例的数据恢复方法还可以包括以下步骤:
基于数据恢复索引,对待恢复丢失数据对象对应的恢复数据进行存储。
在目的节点接收源数据节点返回的源数据对象数据,完成对待恢复数据的恢复之后,可以基于数据恢复索引,对待恢复丢失数据对象对应的恢复数据进行存储,以保证所恢复的待恢复丢失数据对象的数据索引与源数据对象的数据索引相对应,便于数据的存储,以及后期与该恢复的数据对象相关联的数据对象丢失时,可以使用该恢复的数据对象对丢失的数据对象进行恢复。
作为本发明实施例一种可选的实施方式,本发明实施例的数据恢复方法还可以包括以下步骤:
将待恢复丢失数据对象数据恢复完成的消息发送至管理节点。
在目的节点接收源数据节点返回的源数据对象数据,完成对待恢复数据的恢复之后,可以将待恢复丢失数据对象数据恢复完成的消息发送至管理节点,告知管理节点本次丢失数据对象恢复完成,使得管理节点能够对所存储的数据对象状态信息进行更新,以便于管理节点对各数据存储节点中数据对象信息的存储、检测等操作。
本发明实施例还提供了另一种数据恢复方法,应用于分布式对象存储系统中的数据存储节点,该数据存储节点可以为源数据节点,该方法可以包括以下步骤:
接收目的节点发送的数据恢复请求,读取数据恢复请求对应的源数据对象数据;数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据;
将源数据对象数据发送至目的节点,以使目的节点根据源数据对象数据,对至少两条待恢复数据进行恢复。
本发明实施例提供的一种数据恢复方法,源数据节点在接收到目的节点发送的用于请求至少两条待恢复数据对应的源数据对象数据的数据恢复请求后,读取数据恢复请求对应的多条源数据对象数据,使得目的节点可以一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点在接收到数据恢复请求后,可以一次读取多条源数据对象数据并发送给目的节点,进而目的节点可以同时对多条待恢复数据进行恢复,以减少数据恢复的时间,提高数据的安全性。同时,目的节点一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点一次向目的节点发送多条源数据对象数据,可以减少目的节点与源数据节点之间的交互次数,进而节省网络资源。
作为本发明实施例一种可选的实施方式,源数据节点接收目的节点发送的数据恢复请求,读取数据恢复请求对应的源数据对象数据,将源数据对象数据发送至目的节点的实施方式,可以包括:
接收目的节点发送的数据恢复请求,读取数据恢复请求对应的并发数量条源数据对象数据;该数据恢复请求用于请求并发数量条源数据对象数据。
将读取的并发数量条源数据对象数据发送至目的节点。
本发明实施例中,源数据节点接收目的节点发送的,用于请求所设置的并发数量条待恢复数据对应的源数据对象数据的数据恢复请求后,可以并行(即同时)读取数据恢复请求中所请求的并发数量条待恢复数据对应的源数据对象数据,然后,将所读取的并发数量条待恢复数据对应的源数据对象数据,并行发送至目的节点。
示例性的,源数据节点可以在接收目的节点发送的,请求在存储结构上连续的16条待恢复数据对应的源数据对象数据的数据恢复请求后,对目的节点所请求的在存储结构上连续的16条待恢复数据对应的源数据对象数据进行并行读取,即通过单次系统调用的读取方式对存储结构上连续的16条待恢复数据对应的源数据对象数据进行读取,然后,将所读取的存储结构上连续的16条待恢复数据对应的源数据对象数据,并行发送至目的节点。
本发明实施例中,源数据节点接收目的节点发送的请求多条待恢复数据对应的源数据对象数据的数据恢复请求后,并行读取该数据恢复请求对应的源数据对象数据,以及并行将源数据对象数据发送至目的节点,可以减少数据恢复的时间,提高数据的安全性。且可以通过单次系统调用的读取方式对存储结构上连续的多条待恢复数据对应的源数据对象数据进行读取,减少了读取数据时源数据节点磁盘的I/O占用。
作为本发明实施例一种可选的实施方式,源数据节点接收目的节点发送的数据恢复请求,读取数据恢复请求对应的源数据对象数据,将源数据对象数据发送至目的节点的实施方式,可以包括:
接收目的节点发送的滑动数据恢复请求队列中包含的所有数据恢复请求,读取每一数据恢复请求对应的源数据对象数据。该滑动数据恢复请求队列中包含预设长度个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据。
将读取的每一数据恢复请求对应的源数据对象数据,发送至目的节点。
本发明实施例中,源数据节点接收目的节点发送的,滑动数据恢复请求队列中包含的所有数据恢复请求后,可以并行(即同时)读取每一数据恢复请求中所请求的待恢复数据对应的源数据对象数据,然后,将所读取的待恢复数据对应的源数据对象数据,发送至目的节点。
示例性的,源数据节点可以在接收目的节点发送的,滑动数据恢复请求队列中请求在存储结构上连续的16条待恢复数据对应的源数据对象数据的数据恢复请求后,对目的节点所请求的在存储结构上连续的16条待恢复数据对应的源数据对象数据进行并行读取,即通过单次系统调用的读取方式对存储结构上连续的16条待恢复数据对应的源数据对象数据进行读取,然后,将所读取的存储结构上连续的16条待恢复数据对应的源数据对象数据,发送至目的节点。
实际应用中,不同的源数据节点读取每一条数据的速度可能不同,故而,针对滑动数据恢复请求队列中包含的所有数据恢复请求,可以在读取到哪一数据恢复请求对应的源数据对象数据后,直接向目的节点发送该源数据对象数据,不受其他数据读取速度的影响,同时读取其他数据恢复请求对应的源数据对象数据,可以节省数据读取和发送的时间,进而能够减少数据恢复的时间,提高数据的安全性。且可以通过单次系统调用的读取方式对存储结构上连续的多条待恢复数据对应的源数据对象数据进行读取,减少了读取数据时源数据节点磁盘的I/O占用。
如图7所示,图7为本发明实施例提供的一种数据恢复方法的交互示意图。
管理节点检测到有数据存储节点存在数据对象丢失时,从多个数据存储节点中确定目的节点,生成数据恢复指令,并将数据恢复指令发送至目的节点。
目的节点根据接收到的数据恢复指令中的源数据节点信息,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
目的节点基于数据恢复索引,向源数据节点发送请求至少两条待恢复数据对应的源数据对象数据的数据恢复请求。
源数据节点接收数据恢复请求,读取数据恢复请求对应的源数据对象数据,并向目的节点返回源数据对象数据。
目的节点接收源数据节点返回的源数据对象数据,并根据源数据对象数据,对至少两条待恢复数据进行恢复,至待恢复丢失数据对象中的各条待恢复数据均恢复完成。
目的节点对待恢复丢失数据对象对应的恢复数据进行存储。
目的节点向管理节点发送数据恢复完成消息。
相应于上述方法实施例,本发明实施例还提供了相应的系统实施例。
如图8所示,本发明实施例提供了一种分布式数据恢复系统,分布式数据恢复系统包括:管理节点和多个数据存储节点;
管理节点301,用于在检测到有数据存储节点存在数据对象丢失时,从多个数据存储节点中确定目的节点,生成数据恢复指令,将数据恢复指令发送至目的节点;数据恢复指令中包含:待恢复丢失数据对象所属的源数据节点信息,待恢复丢失数据对象包含至少两条待恢复数据,源数据节点为多个数据存储节点中的至少一个;
目的节点302,用于根据接收到的数据恢复指令中的源数据节点信息,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引,基于数据恢复索引向源数据节点发送数据恢复请求,数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据;并根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复;
源数据节点303,用于接收目的节点发送的数据恢复请求,并将数据恢复请求对应的源数据对象数据返回至目的节点。
本发明实施例提供的一种分布式数据恢复系统,由于目的节点每次向源数据节点发送的是:用于请求至少两条待恢复数据对应的源数据对象数据的数据恢复请求,然后根据源数据节点返回的源数据对象数据,对至少两条待恢复数据进行恢复,使得目的节点可以一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点在接收到数据恢复请求后,可以一次读取多条源数据对象数据并发送给目的节点,进而目的节点可以同时对多条待恢复数据进行恢复,以减少数据恢复的时间,提高数据的安全性。同时,目的节点一次向源数据节点请求多条待恢复数据对应的源数据对象数据,源数据节点一次向目的节点发送多条源数据对象数据,可以减少目的节点与源数据节点之间的交互次数,进而节省网络资源。
可选的,源数据节点信息包括:源数据节点中源数据对象的数据索引,数据索引包含源数据节点中源数据对象数据的存储方式;目的节点,具体用于:
基于源数据节点中源数据对象数据的存储方式,按照预设选取方式,确定用于恢复待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
可选的,源数据节点信息包括:源数据节点标识,目的节点,具体用于:
基于数据恢复索引及预设并发数量,生成用于请求并发数量条源数据对象数据的数据恢复请求,并发数量为大于1的整数;
向源数据节点标识对应的源数据节点,发送数据恢复请求。
可选的,源数据节点信息包括:源数据节点标识,目的节点,具体用于:
基于数据恢复索引及预设长度,得到预设长度的滑动数据恢复请求队列,滑动数据恢复请求队列中包含预设长度个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据;
向源数据节点标识对应的源数据节点,发送滑动数据恢复请求队列中包含的所有数据恢复请求。
可选的,目的节点还用于:
在接收到任一数据恢复请求对应的源数据对象数据时,更新滑动数据恢复请求队列,保持滑动数据恢复请求队列长度不变。
可选的,源数据节点,具体用于:
接收目的节点发送的数据恢复请求,读取数据恢复请求对应的源数据对象数据;
将读取的源数据对象数据,返回至目的节点。
可选的,源数据节点,具体用于:
接收目的节点发送的滑动数据恢复请求队列中包含的所有数据恢复请求,读取每一数据恢复请求对应的源数据对象数据;
将读取的每一数据恢复请求对应的源数据对象数据,返回至目的节点。
可选的,目的节点,具体用于:
接收源数据节点返回的源数据对象数据;
对接收的源数据对象数据使用纠删码技术编解码处理,得到源数据对象数据对应的恢复数据。
可选的,目的节点,还用于:
基于数据恢复索引,对待恢复丢失数据对象对应的恢复数据进行存储。
可选的,目的节点,还用于:
将待恢复丢失数据对象数据恢复完成的消息发送至管理节点。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一一种数据恢复方法的步骤,以达到相同的效果。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (20)
1.一种数据恢复方法,其特征在于,应用于分布式对象存储系统中的管理节点,所述分布式对象存储系统包括:管理节点和多个数据存储节点,所述方法包括:
当检测到有所述数据存储节点存在数据对象丢失时,从所述多个数据存储节点中确定目的节点;
生成数据恢复指令,所述数据恢复指令中包含:待恢复丢失数据对象所属的源数据节点信息,所述待恢复丢失数据对象包含至少两条待恢复数据,所述源数据节点为多个所述数据存储节点中的至少一个;
将所述数据恢复指令发送至所述目的节点,使所述目的节点根据接收到的所述数据恢复指令中的所述源数据节点信息,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引,基于所述数据恢复索引向所述源数据节点发送数据恢复请求,所述数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据,并根据所述源数据节点返回的源数据对象数据,对所述至少两条待恢复数据进行恢复;
其中,所述源数据节点信息包括:源数据节点标识,所述基于所述数据恢复索引向所述源数据节点发送数据恢复请求的步骤,包括:
基于所述数据恢复索引及预设长度,得到预设长度的滑动数据恢复请求队列,所述滑动数据恢复请求队列中包含预设长度个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据;
向所述源数据节点标识对应的源数据节点,发送所述滑动数据恢复请求队列中包含的所有数据恢复请求,以使所述源数据节点读取所述滑动数据恢复请求队列中包含的每一数据恢复请求对应的源数据对象数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述目的节点发送的待恢复丢失数据对象数据恢复完成的消息。
3.一种数据恢复方法,其特征在于,应用于分布式对象存储系统中的数据存储节点,所述分布式对象存储系统包括:管理节点和多个数据存储节点,所述方法包括:
接收所述管理节点发送的数据恢复指令,所述数据恢复指令中包含:待恢复丢失数据对象所属的源数据节点信息,所述待恢复丢失数据对象包含至少两条待恢复数据,所述源数据节点为多个所述数据存储节点中的至少一个;
根据接收到的所述数据恢复指令中的所述源数据节点信息,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引;
基于所述数据恢复索引向所述源数据节点发送数据恢复请求,所述数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据;
根据所述源数据节点返回的源数据对象数据,对所述至少两条待恢复数据进行恢复;
其中,所述源数据节点信息包括:源数据节点标识,所述基于所述数据恢复索引向所述源数据节点发送数据恢复请求的步骤,包括:
基于所述数据恢复索引及预设长度,得到预设长度的滑动数据恢复请求队列,所述滑动数据恢复请求队列中包含预设长度个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据;
向所述源数据节点标识对应的源数据节点,发送所述滑动数据恢复请求队列中包含的所有数据恢复请求,以使所述源数据节点读取所述滑动数据恢复请求队列中包含的每一数据恢复请求对应的源数据对象数据。
4.根据权利要求3所述的方法,其特征在于,所述源数据节点信息包括:所述源数据节点中源数据对象的数据索引,所述数据索引包含所述源数据节点中源数据对象数据的存储方式;
所述根据接收到的所述数据恢复指令中的所述源数据节点信息,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引的步骤,包括:
基于所述源数据节点中源数据对象数据的存储方式,按照预设选取方式,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
5.根据权利要求3所述的方法,其特征在于,所述源数据节点信息包括:源数据节点标识,所述基于所述数据恢复索引向所述源数据节点发送数据恢复请求的步骤,包括:
基于所述数据恢复索引及预设并发数量,生成用于请求所述并发数量条源数据对象数据的数据恢复请求,所述并发数量为大于1的整数;
向所述源数据节点标识对应的源数据节点,发送所述数据恢复请求,以使所述源数据节点读取所述数据恢复请求对应的源数据对象数据。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在接收到任一所述数据恢复请求对应的源数据对象数据时,更新所述滑动数据恢复请求队列,保持所述滑动数据恢复请求队列长度不变。
7.根据权利要求3-6任一所述的方法,其特征在于,所述根据所述源数据节点返回的源数据对象数据,对所述至少两条待恢复数据进行恢复的步骤,包括:
接收所述源数据节点返回的源数据对象数据;
对接收的所述源数据对象数据使用纠删码技术编解码处理,得到所述源数据对象数据对应的恢复数据。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括:
基于所述数据恢复索引,对所述待恢复丢失数据对象对应的恢复数据进行存储。
9.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将待恢复丢失数据对象数据恢复完成的消息发送至所述管理节点。
10.一种分布式数据恢复系统,其特征在于,所述分布式数据恢复系统包括:管理节点和多个数据存储节点;
所述管理节点,用于在检测到有所述数据存储节点存在数据对象丢失时,从所述多个数据存储节点中确定目的节点,生成数据恢复指令,将所述数据恢复指令发送至所述目的节点;所述数据恢复指令中包含:待恢复丢失数据对象所属的源数据节点信息,所述待恢复丢失数据对象包含至少两条待恢复数据,所述源数据节点为多个所述数据存储节点中的至少一个;
所述目的节点,用于根据接收到的所述数据恢复指令中的所述源数据节点信息,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引,基于所述数据恢复索引向所述源数据节点发送数据恢复请求,所述数据恢复请求用于请求至少两条待恢复数据对应的源数据对象数据;并根据所述源数据节点返回的源数据对象数据,对所述至少两条待恢复数据进行恢复;
所述源数据节点,用于接收所述目的节点发送的数据恢复请求,并将所述数据恢复请求对应的源数据对象数据返回至所述目的节点;
其中,所述源数据节点信息包括:源数据节点标识,所述目的节点,具体用于:基于所述数据恢复索引及预设长度,得到预设长度的滑动数据恢复请求队列,所述滑动数据恢复请求队列中包含预设长度个数据恢复请求,每一数据恢复请求用于请求一条待恢复数据对应的源数据对象数据;向所述源数据节点标识对应的源数据节点,发送所述滑动数据恢复请求队列中包含的所有数据恢复请求。
11.根据权利要求10所述的系统,其特征在于,所述源数据节点信息包括:所述源数据节点中源数据对象的数据索引,所述数据索引包含源数据节点中源数据对象数据的存储方式;所述目的节点,具体用于:
基于所述源数据节点中源数据对象数据的存储方式,按照预设选取方式,确定用于恢复所述待恢复丢失数据对象中各条待恢复数据的数据恢复索引。
12.根据权利要求10所述的系统,其特征在于,所述源数据节点信息包括:源数据节点标识,所述目的节点,具体用于:
基于所述数据恢复索引及预设并发数量,生成用于请求所述并发数量条源数据对象数据的数据恢复请求,所述并发数量为大于1的整数;
向所述源数据节点标识对应的源数据节点,发送所述数据恢复请求。
13.根据权利要求10所述的系统,其特征在于,所述目的节点还用于:
在接收到任一所述数据恢复请求对应的源数据对象数据时,更新所述滑动数据恢复请求队列,保持所述滑动数据恢复请求队列长度不变。
14.根据权利要求12所述的系统,其特征在于,所述源数据节点,具体用于:
接收所述目的节点发送的数据恢复请求,读取所述数据恢复请求对应的源数据对象数据;
将读取的所述源数据对象数据返回至所述目的节点。
15.根据权利要求13所述的系统,其特征在于,所述源数据节点,具体用于:
接收所述目的节点发送的滑动数据恢复请求队列中包含的所有数据恢复请求,读取每一数据恢复请求对应的源数据对象数据;
将读取的每一数据恢复请求对应的源数据对象数据,返回至所述目的节点。
16.根据权利要求10-15任一所述的系统,其特征在于,所述目的节点,具体用于:
接收所述源数据节点返回的源数据对象数据;
对接收的所述源数据对象数据使用纠删码技术编解码处理,得到所述源数据对象数据对应的恢复数据。
17.根据权利要求10所述的系统,其特征在于,所述目的节点,还用于:
基于所述数据恢复索引,对所述待恢复丢失数据对象对应的恢复数据进行存储。
18.根据权利要求10所述的系统,其特征在于,所述目的节点,还用于:
将待恢复丢失数据对象数据恢复完成的消息发送至所述管理节点。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-2任一所述的方法步骤。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求3-9任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010546266.1A CN111444046B (zh) | 2020-06-16 | 2020-06-16 | 一种数据恢复方法及分布式数据恢复系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010546266.1A CN111444046B (zh) | 2020-06-16 | 2020-06-16 | 一种数据恢复方法及分布式数据恢复系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444046A CN111444046A (zh) | 2020-07-24 |
CN111444046B true CN111444046B (zh) | 2021-01-22 |
Family
ID=71650356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010546266.1A Active CN111444046B (zh) | 2020-06-16 | 2020-06-16 | 一种数据恢复方法及分布式数据恢复系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444046B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433883A (zh) * | 2020-11-10 | 2021-03-02 | 北京邮电大学 | 一种星上信息分布式存储方法、装置及系统 |
CN113051104B (zh) * | 2021-03-11 | 2022-10-11 | 重庆紫光华山智安科技有限公司 | 基于纠删码的磁盘间数据恢复方法及相关装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170416B (zh) * | 2006-10-26 | 2012-01-04 | 阿里巴巴集团控股有限公司 | 网络数据存储系统及其数据访问方法 |
CN101937377B (zh) * | 2009-06-29 | 2014-10-22 | 百度在线网络技术(北京)有限公司 | 数据恢复方法和装置 |
CN102546755A (zh) * | 2011-12-12 | 2012-07-04 | 华中科技大学 | 云存储系统的数据存储方法 |
EP3214551B1 (en) * | 2014-11-27 | 2019-01-02 | Huawei Technologies Co., Ltd. | Metadata recovery method and apparatus |
-
2020
- 2020-06-16 CN CN202010546266.1A patent/CN111444046B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111444046A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11537659B2 (en) | Method for reading and writing data and distributed storage system | |
US10795789B2 (en) | Efficient recovery of erasure coded data | |
CN110169040B (zh) | 基于多层一致性哈希的分布式数据存储方法与系统 | |
US9846540B1 (en) | Data durability using un-encoded copies and encoded combinations | |
US11003533B2 (en) | Data processing method, system, and apparatus | |
US10620830B2 (en) | Reconciling volumelets in volume cohorts | |
US7702640B1 (en) | Stratified unbalanced trees for indexing of data items within a computer system | |
CN102937967B (zh) | 数据冗余实现方法及装置 | |
CN111444046B (zh) | 一种数据恢复方法及分布式数据恢复系统 | |
CN106708653B (zh) | 一种基于纠删码与多副本的混合税务大数据安全保护方法 | |
CN103561057A (zh) | 基于分布式哈希表和纠删码的数据存储方法 | |
JP2005276192A (ja) | データ記憶容量を増大させるための方法及び装置 | |
CN104902009B (zh) | 一种基于可擦除编码和链式备份的分布式存储系统 | |
CN105159603A (zh) | 一种分布式数据存储系统的修复方法 | |
CN103761190A (zh) | 数据处理方法及装置 | |
CN111177143B (zh) | 键值数据存储方法、装置、存储介质与电子设备 | |
CN106951340B (zh) | 一种基于局部性优先的rs纠删码数据布局方法及系统 | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
CN110134338B (zh) | 一种分布式存储系统及其数据冗余保护方法和相关设备 | |
CN104965835B (zh) | 一种分布式文件系统的文件读写方法及装置 | |
CN110018996A (zh) | 一种分布式存储系统的快照回滚方法及相关装置 | |
CN111435286B (zh) | 一种数据存储方法、装置和系统 | |
CN108959614A (zh) | 一种快照管理方法、系统、装置、设备及可读存储介质 | |
CN112799872B (zh) | 一种基于键值对存储系统的纠删码编码方法及装置 | |
CN114518848B (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 |