一种数据恢复方法及装置转让专利

申请号 : CN201810143181.1

文献号 : CN109508254B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 舒治

申请人 : 华为技术有限公司

摘要 :

本发明实施例提供一种数据恢复方法及装置,在接收数据恢复请求后,依据备份数据中每个数据分片的元数据对应的重删索引,确认每个重删索引对应的所有元数据。然后,在获取所述重删索引指向的存储于所述存储设备中的数据分片后,将所述数据分片保存至与所述重删索引对应的每个元数据描述的分布位置。本发明实施例中,对于同一重删索引对应的数据内容相同的多个数据分片的恢复,避免频繁的访问存储设备去多次获取所述重删索引指向的存储于所述存储设备中的数据分片。如此延长了存储设备的使用寿命,减少了与存储设备之间进行通信的负担,提高了数据恢复的效率。

权利要求 :

1.一种数据恢复方法,其特征在于,所述方法由备份服务器执行,包括:所述备份服务器接收数据恢复请求,所述数据恢复请求包括目标磁盘标识和备份数据的标识,所述数据恢复请求指示恢复所述备份数据至目标磁盘,所述备份数据包括若干数据分片;

所述备份服务器根据所述备份数据的标识查找所述备份数据中每个所述数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置;

所述备份服务器查找与每个所述数据分片的元数据对应的重删索引,所述重删索引用于指示备份于存储设备中的数据分片,其中,数据内容相同的多个数据分片的元数据对应于同一重删索引;

所述备份服务器查找所述重删索引指向的位于所述存储设备中的所述数据分片;

所述备份服务器根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。

2.如权利要求1所述的方法,其特征在于,所述备份服务器查找与每个所述数据分片的元数据对应的重删索引之后,所述方法还包括:所述备份服务器保存所述重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系。

3.如权利要求1或2所述的方法,其特征在于,所述备份服务器查找与每个所述数据分片的元数据对应的重删索引,包括:所述备份服务器根据所述备份数据的标识查询重删索引表;

所述备份服务器查询所述重删索引表中的每个重删索引。

4.如权利要求3所述的方法,其特征在于,还包括:

所述备份服务器确认与所述重删索引对应的所有元数据的个数;

所述备份服务器保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系。

5.一种数据恢复装置,其特征在于,包括:

接收模块,用于接收数据恢复请求,所述数据恢复请求包括目标磁盘标识和备份数据的标识,所述数据恢复请求指示恢复所述备份数据至目标磁盘,所述备份数据包括若干数据分片;

查找模块,用于根据所述备份数据的标识查找所述备份数据中每个所述数据分片的元数据,查找与每个所述数据分片的元数据对应的重删索引,查找所述重删索引指向的位于存储设备中的所述数据分片,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置,所述重删索引用于指示备份于存储设备中的数据分片,其中,数据内容相同的多个数据分片的元数据对应于同一重删索引;

处理模块,用于根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。

6.如权利要求5所述的装置,其特征在于,所述处理模块,还用于保存所述重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系。

7.如权利要求5或6所述的装置,其特征在于,所述查找模块,还用于根据所述备份数据的标识查询重删索引表,查询所述重删索引表中的每个重删索引。

8.如权利要求7所述的装置,其特征在于,所述查找模块,还用于确认与所述重删索引对应的所有元数据的个数;

所述处理模块,还用于保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系。

9.一种备份服务器,其特征在于,包括存储器和处理器,所述存储器用于存储软件程序,所述处理器通过运行存储在所述存储器中的软件程序,执行以下步骤:接收数据恢复请求,所述数据恢复请求包括目标磁盘标识和备份数据的标识,所述数据恢复请求指示恢复所述备份数据至目标磁盘,所述备份数据包括若干数据分片;

根据所述备份数据的标识查找所述备份数据中每个所述数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置;

查找与每个所述数据分片的元数据对应的重删索引,所述重删索引用于指示备份于存储设备中的数据分片,其中,数据内容相同的多个数据分片的元数据对应于同一重删索引;

查找所述重删索引指向的位于所述存储设备中的所述数据分片;

根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。

10.如权利要求9所述的备份服务器,其特征在于,所述处理器,还用于执行以下步骤:保存所述重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系。

11.如权利要求9或10所述的备份服务器,其特征在于,所述处理器,还用于执行以下步骤:根据所述备份数据的标识查询重删索引表;

查询所述重删索引表中的每个重删索引。

12.如权利要求11所述的备份服务器,其特征在于,所述处理器,还用于执行以下步骤:确认与所述重删索引对应的所有元数据的个数;

保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系。

13.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令在备份服务器上运行时,使得所述备份服务器执行如权利要求1-4中任意一项所述的数据恢复方法。

14.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在备份服务器上运行时,使得所述备份服务器执行如权利要求1-4中任意一项所述的数据恢复方法。

15.一种数据恢复方法,其特征在于,所述方法由备份服务器执行,包括:接收数据恢复请求,所述数据恢复请求包括目标磁盘标识和备份数据的标识,所述数据恢复请求指示恢复所述备份数据至与所述目标磁盘标识对应的目标磁盘,所述备份数据包括若干数据分片;

根据所述备份数据的标识查找所述备份数据的元数据,所述备份数据的元数据包括重删索引以及所述备份数据包括的各个数据分片的元数据,所述重删索引用于指示备份于存储设备中的数据分片,其中,同一重删索引对应数据内容相同的多个数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置;

查找所述重删索引指向的位于所述存储设备中的所述数据分片;

根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。

16.如权利要求15所述的方法,其特征在于,所述备份服务器接收数据恢复请求之前,还包括:划分所述备份数据,获得若干数据分片,并生成每个数据分片的元数据,所述若干数据分片包括第一数据分片;

确认所述第一数据分片与所述备份数据中已备份于存储设备中的所有数据分片的数据内容不同,备份所述第一数据分片至所述存储设备,并对备份于所述存储设备中的所述第一数据分片创建重删索引,其中,所述已备份于存储设备中的所有数据分片的数据内容不同;

保存备份于所述存储设备中的所述第一数据分片的重删索引和所述第一数据分片的元数据的对应关系;

保存所述备份数据的标识与所述备份数据的元数据的对应关系,所述备份数据的元数据包括已备份于所述存储设备中的所述第一数据分片的重删索引和所述第一数据分片的元数据的对应关系。

17.如权利要求15所述的方法,其特征在于,所述备份服务器接收数据恢复请求之前,还包括:将所述备份数据划分为若干数据分片,并生成每个数据分片的元数据,所述若干数据分片包括第二数据分片;

确认所述第二数据分片与所述备份数据中已备份于存储设备中的第三数据分片的数据内容相同,保存所述第三数据分片的重删索引和所述第二数据分片的元数据的对应关系;

保存所述备份数据的标识与所述备份数据的元数据的对应关系,所述备份数据的元数据包括所述第三数据分片的重删索引和所述第二数据分片的元数据的对应关系。

18.一种数据恢复装置,其特征在于,包括:

接收模块,用于接收数据恢复请求,所述数据恢复请求包括目标磁盘标识和备份数据的标识,所述数据恢复请求指示恢复所述备份数据至与所述目标磁盘标识对应的目标磁盘,所述备份数据包括若干数据分片;

查找模块,用于根据所述备份数据的标识查找所述备份数据的元数据,所述备份数据的元数据包括重删索引以及所述备份数据包括的各个数据分片的元数据,所述重删索引用于指示备份于存储设备中的数据分片,其中,同一重删索引对应数据内容相同的多个数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置;

所述查找模块,还用于查找所述重删索引指向的位于所述存储设备中的所述数据分片;

处理模块,用于根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。

19.一种备份服务器,其特征在于,包括存储器和处理器,所述存储器用于存储软件程序,所述处理器通过运行存储在所述存储器中的软件程序,执行权利要求15-17中任一项所述的数据恢复方法。

20.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令在备份服务器上运行时,使得所述备份服务器执行如权利要求15-17中任意一项所述的数据恢复方法。

21.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在备份服务器上运行时,使得所述备份服务器执行如权利要求15-17中任意一项所述的数据恢复方法。

说明书 :

一种数据恢复方法及装置

技术领域

[0001] 本发明实施例涉及存储领域,尤其涉及一种数据恢复方法及装置。

背景技术

[0002] 为保证数据的安全性,现有技术通常会对数据进行备份存储,但是备份存储会导致需要存储的数据容量成倍增长,为了减少备份数据在存储设备中占用的空间,则需要使用重删技术对备份数据进行处理,减少备份数据中的重复数据。
[0003] 备份服务器在执行备份数据存储过程中,会对备份数据进行切片,计算每个数据分片的哈希值,具有相同哈希值的数据分片中包含的数据相同,为减少重复数据在存储设备中占用的空间,相同哈希值的多个数据分片只保存一份在重删文件当中。
[0004] 恢复具有相同哈希值的每个数据分片中的相同数据时,为确保备份服务器可以根据具有相同哈希值的每个数据分片的元数据查找到只保存在重删文件中的一份数据分片中的数据,备份服务器依据具有相同哈希值的每个数据分片的元数据与同一重删索引的对应关系,按照所述每个数据分片的存储顺序依次查找所述重删索引,读取所述重删索引指向的数据分片,进而依次对具有相同哈希值的每个数据分片中的数据进行恢复。
[0005] 因此,恢复备份数据时,备份服务器需要多次查找同一重删索引,以及多次从存储设备中读取同一重删索引指向的数据分片。如此频繁地对存储设备进行访问增加了备份服务器与存储设备之间的通信负担,降低了数据恢复的效率,而且频繁地访问存储设备也降低了存储设备的使用寿命。

发明内容

[0006] 本发明公开了一种数据恢复方法及装置,所述数据恢复方法避免频繁访问存储设备获取所述重删索引指向的数据分片,延长了存储设备的使用寿命,减少了备份服务器与存储设备之间的通信负担,提高了数据恢复的效率。
[0007] 第一方面提供一种数据恢复方法,所述方法由备份服务器执行。在所述方法中,所述备份服务器接收数据恢复请求后,根据数据恢复请求中包括的所述备份数据的标识查找所述备份数据中每个所述数据分片的元数据,所述备份数据包括若干数据分片,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置。所述数据恢复请求还包括目标磁盘标识,所述数据恢复请求指示恢复所述备份数据至目标磁盘。然后,所述备份服务器查找与每个所述数据分片的元数据对应的重删索引。所述重删索引用于指示备份于存储设备中的数据分片,其中,数据内容相同的多个数据分片的元数据对应于同一重删索引。然后,所述备份服务器查找所述重删索引指向的位于所述存储设备中的所述数据分片,根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。
[0008] 该方法中通过所述备份服务器依据备份数据中每个数据分片的元数据对应的重删索引,确认每个重删索引对应的所有元数据。然后,所述备份服务器在获取所述重删索引指向的存储于所述存储设备中的数据分片后,将所述数据分片保存至与所述重删索引对应的每个元数据描述的分布位置,对于同一重删索引对应的数据内容相同的多个数据分片的恢复,避免频繁的访问存储设备去多次获取所述重删索引指向的存储于所述存储设备中的数据分片,延长了存储设备的使用寿命,减少了备份服务器与存储设备之间的通信负担,提高了数据恢复的效率。
[0009] 结合第一方面,在第一种可能的实现方式中,所述备份服务器查找与每个所述数据分片的元数据对应的重删索引之后,所述方法还包括:所述备份服务器保存所述重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系。
[0010] 结合第一方面或第一方面的第一种实现方式,在第二种实现方式中,所述备份服务器查找与每个所述数据分片的元数据对应的重删索引,包括:所述备份服务器根据所述备份数据的标识查询重删索引表;所述备份服务器查询所述重删索引表中的每个重删索引。
[0011] 结合第一方面的第二种实现方式,在第三种实现方式中,所述方法还包括:所述备份服务器确认与所述重删索引对应的所有元数据的个数;所述备份服务器保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系。
[0012] 第二方面,提供一种数据恢复装置,包括用于执行第一方面或第一方面的任一种可能实现方式中的数据恢复方法的各个模块,所述模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0013] 第三方面,提供一种备份服务器,包括存储器和处理器,所述存储器用于存储软件程序,所述处理器通过运行存储在所述存储器中的软件程序,执行第一方面或第一方面的任意可能的实现方式中的方法。
[0014] 第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在备份服务器上运行时,使得所述备份服务器执行第一方面或第一方面的任意可能的实现方式中的方法。
[0015] 第五方面,提供一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在备份服务器上运行时,使得所述备份服务器执行第一方面或第一方面的任意可能的实现方式中的方法。
[0016] 第六方面,提供一种数据恢复方法,所述方法由备份服务器执行,包括:接收数据恢复请求,所述数据恢复请求包括目标磁盘标识和备份数据的标识。所述数据恢复请求包括目标磁盘标识和备份数据的标识,所述数据恢复请求指示恢复所述备份数据至与所述目标磁盘标识对应的目标磁盘,所述备份数据包括若干数据分片。接收数据恢复请求后,根据所述备份数据的标识查找所述备份数据的元数据。所述备份数据的元数据包括重删索引以及所述备份数据包括的各个数据分片的元数据,所述重删索引用于指示备份于存储设备中的数据分片。其中,同一重删索引对应数据内容相同的多个数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置。备份服务器查找所述重删索引指向的位于所述存储设备中的所述数据分片。根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。
[0017] 该方法中通过所述备份服务器依据备份数据的元数据中的重删索引与元数据的对应关系,确认每个重删索引对应的所有元数据。然后,所述备份服务器在获取所述重删索引指向的存储于所述存储设备中的数据分片后,将所述数据分片保存至与所述重删索引对应的每个元数据描述的分布位置,对于同一重删索引对应的数据内容相同的多个数据分片的恢复,避免频繁的访问存储设备去多次获取所述重删索引指向的存储于所述存储设备中的数据分片,延长了存储设备的使用寿命,减少了备份服务器与存储设备之间的通信负担,提高了数据恢复的效率。
[0018] 结合第六方面,在第一种实现方式中,所述备份服务器接收数据恢复请求之前,还包括:划分所述备份数据,获得若干数据分片,并生成每个数据分片的元数据,所述若干数据分片包括第一数据分片。确认所述第一数据分片与所述备份数据中已备份于存储设备中的所有数据分片的数据内容不同,备份所述第一数据分片至所述存储设备,并对备份于所述存储设备中的所述第一数据分片创建重删索引,其中,所述已备份于存储设备中的所有数据分片的数据内容不同。保存备份于所述存储设备中的所述第一数据分片的重删索引和所述第一数据分片的元数据的对应关系。保存所述备份数据的标识与所述备份数据的元数据的对应关系,所述备份数据的元数据包括已备份于所述存储设备中的所述第一数据分片的重删索引和所述第一数据分片的元数据的对应关系。
[0019] 结合第六方面,在第二种实现方式中,所述备份服务器接收数据恢复请求之前,还包括:将所述备份数据划分为若干数据分片,并生成每个数据分片的元数据,所述若干数据分片包括第二数据分片。确认所述第二数据分片与所述备份数据中已备份于存储设备中的第三数据分片的数据内容相同,保存所述第三数据分片的重删索引和所述第二数据分片的元数据的对应关系。保存所述备份数据的标识与所述备份数据的元数据的对应关系,所述备份数据的元数据包括所述第三数据分片的重删索引和所述第二数据分片的元数据的对应关系。
[0020] 结合第六方面或第六方面的第一种实现方式或第二种实现方式,在第三种实现方式中,确认与所述重删索引对应的所有元数据的个数。保存所述重删索引和所述重删索引对应的所有元数据的个数的对应关系。
[0021] 第七方面,提供一种数据恢复装置,包括用于执行第六方面或第六方面的任一种可能实现方式中的数据恢复方法的各个模块,所述模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0022] 第八方面,提供一种备份服务器,包括存储器和处理器,所述存储器用于存储软件程序,所述处理器通过运行存储在所述存储器中的软件程序,执行第六方面或第六方面的任意实现方式中的方法。
[0023] 第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在备份服务器上运行时,使得所述备份服务器执行第六方面或第六方面的任意实现方式中的方法。
[0024] 第十方面,提供一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在备份服务器上运行时,使得所述备份服务器执行第六方面或第六方面的任意实现方式中的方法。

附图说明

[0025] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
[0026] 图1为本发明实施例提供的一种备份系统的结构示意图;
[0027] 图2为本发明实施例提供的应用重删技术实现数据备份的示意图;
[0028] 图3为本发明实施例提供的一种备份服务器110的结构示意图;
[0029] 图4为本发明实施例提供的一种数据恢复方法的流程图;
[0030] 图5为本发明实施例提供的一种数据恢复装置的结构图;
[0031] 图6为本发明实施例提供的另一种数据恢复方法的流程图;
[0032] 图7为本发明实施例提供的另一种数据恢复装置的结构图。

具体实施方式

[0033] 下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0034] 请参见图1,图1为本发明实施例提供的一种备份系统的结构示意图。所述备份系统100包括备份服务器110和存储设备120,备份服务器110和存储设备120连接。存储设备120与备份服务器110可以集成在一起,也可以通过网络连接。
[0035] 用户通过客户端和备份系统100进行通信。
[0036] 客户端可以为物理服务器或者各种类型的终端设备。本发明实施例的终端设备包括平板电脑、笔记本电脑、移动互联网设备、掌上电脑、台式电脑、手机或者其他产品形态的终端设备。
[0037] 客户端也可以是软件模块,例如可以是运行在物理设备上的软件模块或者运行在物理服务器上的虚拟机。
[0038] 首先结合图1所示的备份系统100的结构介绍数据备份的流程。
[0039] 备份系统100接收到备份虚拟机磁盘数据的请求后,执行备份程序对虚拟机磁盘数据进行备份。对虚拟机磁盘数据进行备份时,通过备份服务器110将接收到的虚拟机磁盘数据划分为多个数据分片,保存每个数据分片的元数据,并计算每个数据分片的哈希值。数据分片的元数据包括描述数据分片的分布信息,所述分布信息具体用于描述数据分片存储在虚拟机磁盘中的位置。
[0040] 请参见图2,图2为本发明实施例提供的应用重删技术实现数据备份的示意图。在本发明实施例中,备份数据以虚拟机磁盘数据为例进行说明。如图2所示,存储设备120中的备份存储区20包括元数据区21、重删索引区22和目标数据区23。具体的,备份服务器110将每个数据分片的元数据保存至元数据区21中。如图2所示的示例中,元数据区21包括9个元数据,分别是元数据M1-M9。备份服务器110在备份虚拟机磁盘数据时会保存虚拟机磁盘数据标识。备份服务器110会保存虚拟机磁盘数据标识和虚拟机磁盘数据中每个数据分片的元数据的对应关系至备份服务器110中或存储设备120中。所述存储设备120,用于保存所述虚拟机磁盘数据中每个所述数据分片的元数据。在其他实现方式中,所述虚拟机磁盘数据中每个所述数据分片的元数据可以预先保存在所述备份服务器110中。
[0041] 如图2所示,备份服务器110依据每个数据分片的哈希值生成哈希表。哈希表包括对数据分片进行哈希运算后获得的哈希值。由于具有相同哈希值的数据分片中包含的数据相同,为减少重复数据在存储设备120中占用的空间,备份服务器110将相同哈希值的数据分片只保存一份在重删文件当中。具体的,备份服务器110将相同哈希值的数据分片中只保存一份在重删文件的这一份数据分片保存在存储设备120中。
[0042] 例如,图2所示的元数据区21中的元数据M1、元数据M6和元数据M8分别对应的三个数据分片的哈希值相同,以及元数据M5、元数据M7、元数据M9分别对应的三个数据分片的哈希值相同,其余的元数据对应的数据分片的哈希值不同。因此,对于上述示例的9个元数据M1-M9,重删文件中备份的数据分片包括哈希值不同的三个数据分片D2-D4,所述哈希值不同的三个数据分片D2-D4的元数据分别是元数据M2、元数据M3和元数据M4。另外,备份服务器110对哈希值相同的数据分片只保留一份数据分片,所以,重删文件中备份的数据分片还包括元数据M1、元数据M6和元数据M8中任一元数据对应的数据分片,例如可以是元数据M1对应的数据分片。以及,重删文件中备份的数据分片还包括元数据M5、元数据M7、元数据M9中任一元数据对应的数据分片,例如可以是元数据M5对应的数据分片D5。所以图2所示的示例中,重删文件中的数据分片保存在目标数据区23中。目标数据区23中除了备份具有相同哈希值的数据分片中的一份数据分片以外,还用于备份具有不同哈希值的数据分片。示例性的,图2所示的重删文件中保存在存储设备120中的数据分片包括5个数据分片D1-D5。
[0043] 在数据恢复时,由于相同哈希值的每个数据分片中的数据相同,所以需要查找到相同哈希值的数据分片中只备份在存储设备120中的那一份数据分片,以实现相同哈希值的每个数据分片的恢复。因此,备份服务器110通过重删索引可以查找到重删文件中备份的数据分片,具有相同哈希值的数据分片对应同一重删索引,具有不同哈希值的数据分片对应不同的重删索引。具体的,备份服务器110将相同哈希值的数据分片只保存一份在重删文件时,会保存相同哈希值的数据分片中每个数据分片的元数据和同一重删索引的对应关系,以及保存同一重删索引与相同哈希值的数据分片中只保存在重删文件中的那份数据分片的对应关系。重删索引的具体的实现方式为保存在重删文件中的数据分片在存储设备120中的存储位置。
[0044] 如图2所示的示例,重删文件中每个数据分片对应自己的重删索引,即存储设备120中的重删索引区22中包括5个重删索引L1-L5,5个重删索引L1-L5分别与重删文件中的5个数据分片D1-D5一一对应。
[0045] 基于上述图1所示的备份系统100在实现数据恢复时,一种常用的实现方式为,备份服务器110按照需要恢复的数据分片的存储顺序依次查找重删索引,每次查找到重删索引后,根据重删索引与重删文件中只保存具有相同哈希值的数据分片中的一份数据分片的对应关系,查找所述重删文件中只保存的具有相同哈希值的数据分片中的这一份数据分片,进而依次对具有相同哈希值的每个数据分片中的数据进行恢复。因此,恢复虚拟机磁盘数据时,备份服务器需要多次获取同一重删索引,以及多次访问存储设备120获取所述重删文件中只保存的具有相同哈希值的数据分片中的一份数据分片。如此频繁地对存储设备120进行访问增加了备份服务器与存储设备120之间的通信负担,降低了数据恢复的效率,而且频繁地访问存储设备120也降低了存储设备120的使用寿命。
[0046] 备份服务器110在实现数据恢复时,相对于上述常用的实现方式,本申请实施例提供了一种不同的实现方式。该实现方式中,通过所述备份服务器110确认每个重删索引对应的所有元数据。所述备份服务器110依据每个元数据分别确认每个元数据对应的数据分片在虚拟机磁盘中的分布位置,在获取所述重删索引指向的存储于所述存储设备120中的数据分片后,将所述数据分片保存至所述重删索引对应的每个元数据描述的分布位置,对于同一重删索引对应的具有相同哈希值的多个数据分片的恢复,避免频繁的访问存储设备120去多次获取所述重删索引指向的存储于所述存储设备120中的数据分片,延长了存储设备120的使用寿命,减少了备份服务器110与存储设备120之间的通信负担,提高了数据恢复的效率。
[0047] 如图1所示,本申请实施例提供的备份系统100中,备份服务器110用于恢复数据,备份服务器110接收到客户端发送的数据恢复请求后,对虚拟机磁盘数据进行恢复。数据恢复请求中包括目标磁盘标识和虚拟机磁盘数据标识,所述数据恢复请求指示恢复虚拟机磁盘数据至目标磁盘。其中,虚拟机磁盘数据包括若干数据分片。
[0048] 具体的,所述备份服务器110,用于根据所述虚拟机磁盘数据标识查找所述虚拟机磁盘数据中每个所述数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述虚拟机磁盘数据的分布位置。
[0049] 所述备份服务器110,还用于查找与每个所述数据分片的元数据对应的重删索引,所述重删索引用于指示备份于存储设备120中的数据分片。
[0050] 所述存储设备120,还用于保存所述重删索引。在其他实现方式中,所述重删索引可以预先保存在所述备份服务器110中。
[0051] 所述备份服务器110,还用于保存所述重删索引和与所述重删索引对应的所有元数据的对应关系。
[0052] 所述备份服务器110,还用于查找所述重删索引指向的位于所述存储设备120中的所述数据分片。
[0053] 所述备份服务器110,还用于根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入目标磁盘中。
[0054] 本发明实施例的备份服务器110可以是文件服务器,也可以是计算机或者台式电脑等物理计算设备。
[0055] 下面基于图1所示的备份系统100的结构描述本申请实施例中的备份服务器110的结构。以下示例以备份服务器110和存储设备120集成在一起为例对本申请实施例中的备份服务器110的结构进行说明。
[0056] 请参见图3,图3为本发明实施例提供的一种备份服务器110的结构示意图。如图3所示,备份服务器110包括控制器310和存储阵列320。存储阵列320相当于图1所示的存储设备120,用于保存备份过程中需要备份的数据,例如是虚拟机磁盘数据,具体用于保存虚拟机磁盘数据中备份在重删文件中的所有数据分片。
[0057] 下面基于图3所示的备份服务器110的结构描述本发明实施例提供的一种备份服务器110的各个组成部分的作用。
[0058] 在备份服务器110中,控制器310,用于接收客户端发送的数据恢复请求,对虚拟机磁盘数据进行恢复。数据恢复请求中包括目标磁盘标识和虚拟机磁盘标识,所述数据恢复请求指示恢复虚拟磁盘数据至目标磁盘中。
[0059] 具体的,控制器310,用于根据所述虚拟机磁盘标识查找所述虚拟机磁盘数据中每个所述数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述虚拟机磁盘数据的分布位置。
[0060] 所述存储阵列320,用于保存所述虚拟机磁盘数据中每个所述数据分片的元数据。在其他实现方式中,所述虚拟机磁盘数据中每个所述数据分片的元数据可以预先保存在所述控制器310中。
[0061] 所述控制器310,还用于查找与每个所述数据分片的元数据对应的重删索引,所述重删索引用于指示备份于存储阵列320中的数据分片。
[0062] 存储阵列320,还用于保存所述重删索引。在其他实现方式中,所述重删索引可以预先保存在所述控制器310中。
[0063] 所述控制器310,还用于保存所述重删索引和与所述重删索引对应的所有元数据的对应关系。
[0064] 所述控制器310,还用于查找所述重删索引指向的位于所述存储阵列320中的所述数据分片。
[0065] 所述控制器310,还用于根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入目标磁盘中。
[0066] 传统方案中,当客户端需要将具有相同哈希值的每个数据分片进行恢复时,控制器310需要多次查找同一重删索引指向的存储于存储阵列320中的数据分片,进而多次访问存储阵列320,增加了存储阵列320与控制器310之间的通信负担,降低了数据恢复的效率,而且频繁地访问存储阵列320,也降低了存储阵列320的使用寿命。本发明的实施例针对现有技术中的不足,对具有相同哈希值的每个数据分片进行恢复时的情况,提出了如下的解决方案:
[0067] 本发明通过控制器310确认每个重删索引对应的所有元数据。控制器310依据每个元数据对应的数据分片在虚拟机磁盘中的分布位置,在获取所述重删索引指向的存储于所述存储阵列320中的数据分片后,将所述数据分片保存至所述重删索引对应的每个元数据描述的分布位置,对于同一重删索引对应的具有相同哈希值的多个数据分片的恢复,避免频繁的访问存储阵列320以获取所述重删索引指向的存储于所述存储阵列320中的数据分片,延长了存储阵列320的使用寿命,减少了备份服务器110与存储阵列320之间的通信负担,提高了数据恢复的效率。
[0068] 如图3所示,控制器310包含接口311和接口312,接口311用于和客户端通信。接口312用于和存储阵列320通信。接口311,用于接收客户端发送的数据恢复请求。
[0069] 控制器310还包括控制模块311,控制模块311用于根据所述接口311接收的客户端发送的数据恢复请求,对虚拟机磁盘数据进行恢复。
[0070] 具体的,控制模块311,用于根据所述虚拟机磁盘标识查找所述虚拟机磁盘数据中每个所述数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述虚拟机磁盘数据的分布位置。
[0071] 控制模块311,还用于查找与每个所述数据分片的元数据对应的重删索引。
[0072] 控制模块311,还用于保存所述重删索引和与所述重删索引对应的所有元数据的对应关系。
[0073] 控制模块311,还用于通过所述接口312查找所述重删索引指向的位于所述存储阵列320中的所述数据分片。
[0074] 控制模块311,还用于根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入目标磁盘中。
[0075] 如图3所示,控制模块311包括处理器313和存储器314。处理器313用于用于接收客户端发送的数据恢复请求,对虚拟机磁盘数据进行恢复。
[0076] 具体的,处理器313,用于根据所述虚拟机磁盘标识查找所述虚拟机磁盘数据中每个所述数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述虚拟机磁盘数据的分布位置。
[0077] 处理器313,还用于查找与每个所述数据分片的元数据对应的重删索引。
[0078] 处理器313,还用于保存所述重删索引和与所述重删索引对应的所有元数据的对应关系。
[0079] 处理器313,还用于通过所述接口312查找所述重删索引指向的位于所述存储阵列320中的所述数据分片。
[0080] 处理器313,还用于根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入目标磁盘中。
[0081] 备份服务器110在实现数据恢复时,相对于上述常用的实现方式,本申请实施例还提供了另一种不同实现方式。在提供的另一本发明实施例中,备份服务器110对备份数据进行恢复前,可以创建备份数据的元数据。所述备份数据的元数据包括数据内容相同的数据分片对应的同一重删索引与数据内容相同的每个数据分片的元数据的对应关系,以及包括数据内容不同的数据分片分别对应的不同重删索引与数据内容不同的每个数据分片的元数据的对应关系。如此,在对备份数据进行恢复时,通过所述备份服务器110依据备份数据的元数据中的重删索引与元数据的对应关系,确认每个重删索引对应的所有元数据。然后,所述备份服务器110在获取所述重删索引指向的存储于所述存储设备120中的数据分片后,将所述数据分片保存至与所述重删索引对应的每个元数据描述的分布位置,对于同一重删索引对应的数据内容相同的多个数据分片的恢复,避免频繁的访问存储设备120去多次获取所述重删索引指向的存储于所述存储设备120中的数据分片,延长了存储设备120的使用寿命,减少了备份服务器110与存储设备120之间的通信负担,提高了数据恢复的效率。
[0082] 相对于上述依据备份数据中每个数据分片的元数据对应的重删索引确认每个重删索引对应的所有元数据恢复备份数据的实现方式,在这个实施例中,备份服务器110在恢复备份数据之前,即创建备份元数据,则恢复备份数据时可以直接根据备份元数据确认每个重删索引对应的所有元数据。避免在恢复备份数据时先根据不同的元数据确认对应的若干重删索引,再确认每个重删索引对应的所有元数据,简化数据恢复流程。
[0083] 下面基于图3所示的备份服务器110的结构描述本发明实施例提供的另一种备份服务器110的各个组成部分的作用。
[0084] 在备份服务器110中,控制器310,用于接收客户端发送的数据恢复请求,对虚拟机磁盘数据进行恢复。数据恢复请求中包括目标磁盘标识和虚拟机磁盘标识,所述数据恢复请求指示恢复虚拟磁盘数据至目标磁盘标识对应的目标磁盘中。
[0085] 具体的,控制器310,用于根据所述备份数据的标识查找所述备份数据的元数据。所述备份数据的元数据包括重删索引以及所述备份数据包括的各个数据分片的元数据,所述重删索引用于指示备份于存储设备120中的数据分片。其中,同一重删索引对应数据内容相同的多个数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置。
[0086] 所述存储阵列320,用于保存所述虚拟机磁盘数据中每个所述数据分片的元数据。在其他实现方式中,所述虚拟机磁盘数据中每个所述数据分片的元数据可以预先保存在所述控制器310中。
[0087] 所述控制器310,还用于查找所述备份数据的元数据中的每个重删索引,查找所述重删索引指向的位于所述存储设备120中的所述数据分片,根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。
[0088] 存储阵列320,还用于保存所述重删索引。在其他实现方式中,所述重删索引可以预先保存在所述控制器310中。
[0089] 传统方案中,当客户端需要将具有相同哈希值的每个数据分片进行恢复时,控制器310需要多次查找同一重删索引指向的存储于存储阵列320中的数据分片,进而多次访问存储阵列320,增加了存储阵列320与控制器310之间的通信负担,降低了数据恢复的效率,而且频繁地访问存储阵列320,也降低了存储阵列320的使用寿命。本发明的实施例针对现有技术中的不足,对具有相同哈希值的每个数据分片进行恢复时的情况,提出了如下的解决方案:
[0090] 本发明实施例通过控制器310对备份数据进行恢复前,可以创建备份数据的元数据。所述备份数据的元数据包括数据内容相同的数据分片对应的同一重删索引与数据内容相同的每个数据分片的元数据的对应关系,以及包括数据内容不同的数据分片分别对应的不同重删索引与数据内容不同的每个数据分片的元数据的对应关系。如此,在对备份数据进行恢复时,通过控制器310依据备份数据的元数据中的重删索引与元数据的对应关系,确认每个重删索引对应的所有元数据。在获取所述重删索引指向的存储于所述存储设备120中的数据分片后,控制器310将所述数据分片保存至与所述重删索引对应的每个元数据描述的分布位置,对于同一重删索引对应的数据内容相同的多个数据分片的恢复,避免频繁的访问存储设备120去多次获取所述重删索引指向的存储于所述存储设备120中的数据分片,延长了存储设备120的使用寿命,减少了备份服务器110与存储设备120之间的通信负担,提高了数据恢复的效率。
[0091] 具体的,在控制器310中,控制模块311,用于根据所述备份数据的标识查找所述备份数据的元数据。所述备份数据的元数据包括所述备份数据中每个所述数据分片的元数据和与所述数据分片的元数据对应的重删索引。所述重删索引用于指示备份于存储设备120中的数据分片,其中,同一重删索引对应数据内容相同的多个数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置。
[0092] 控制模块311,还用于查找所述备份数据的元数据中的每个重删索引,查找所述重删索引指向的位于所述存储设备120中的所述数据分片,根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。
[0093] 在控制模块311中,具体的,处理器313,用于根据所述备份数据的标识查找所述备份数据的元数据。所述备份数据的元数据包括所述备份数据中每个所述数据分片的元数据和与所述数据分片的元数据对应的重删索引。所述重删索引用于指示备份于存储设备120中的数据分片,其中,同一重删索引对应数据内容相同的多个数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置。
[0094] 处理器313,还用于查找所述备份数据的元数据中的每个重删索引,查找所述重删索引指向的位于所述存储设备120中的所述数据分片,根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。
[0095] 在上述实施例中,处理器313可以是任何计算器件,可以是通用中央处理器(CPU),微处理器,可编程控制器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。处理器313通过运行或执行存储在存储器314内的软件程序和/或应用模块,以及调用存储在存储器314内的数据,执行备份服务器110的各种功能和处理数据,从而对备份服务器110进行整体监控。在具体实现中,作为一种实施例,处理器313可以包括一个或多个CPU。
[0096] 存储器314,用于临时存储从客户端发送的信息。存储器314还用于存储软件程序以及应用模块。处理器313通过运行存储在存储器314的软件程序以及应用模块,从而执行备份服务器110的各种功能应用以及数据处理。
[0097] 存储器314主要包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、至少一个功能所需的应用程序,比如发送响应消息等;存储数据区可存储应用程序待处理的数据。存储器314可以包括易失性存储器(Volatile Memory),例如,随机存取存储器(Random-Access  Memory,RAM);该存储器314也可以包括非易失性存储器(non-volatilememory),例如,只读存储器(Read-Only Memory,ROM),快闪存储器(Flash Memory),硬盘(Hard Disk Drive,HDD)、固态硬盘(Solid-State Drive,SSD)、磁盘存储介质或者其他存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由网络设备存取的任何其他介质,但不限于此。
[0098] 下面介绍本发明实施例提供的数据恢复方法的流程。
[0099] 请参见图4,图4为本发明实施例提供的一种数据恢复方法的流程图。如图4所示,本实施例提供的数据恢复方法,由图1或图3所示的备份服务器110执行,具体可由备份服务器110中的控制模块311或者图3所示的控制模块311中的处理器313执行,详细描述了在虚拟机磁盘数据备份至存储设备120后,如何恢复虚拟机磁盘数据的方法,具体包括如下步骤。
[0100] S410、所述备份服务器110接收数据恢复请求。
[0101] 所述数据恢复请求包括目标磁盘标识和虚拟机磁盘数据标识,所述数据恢复请求指示恢复虚拟磁盘数据至目标磁盘中,所述虚拟机磁盘数据包括若干数据分片。
[0102] 目标磁盘标识例如可以是“生产数据”或者“业务数据”等中文字符,也可以是虚拟机磁盘标识,也可以是字母、数字或其他符号,也可以是字母、数字或其他符号的组合。具体实现不受本实施例的限制。
[0103] 目标磁盘可以是之前用于存储虚拟机磁盘数据的虚拟机磁盘,也可以是其他磁盘。目标磁盘可以部署于存储设备120中或备份服务器110中,也可以部署于其他物理设备中,例如是其他的存储设备,存储设备可以是存储阵列。
[0104] S420、所述备份服务器110根据所述虚拟机磁盘数据标识查找所述虚拟机磁盘数据中每个所述数据分片的元数据。虚拟机磁盘数据标识为备份服务器110之前备份时存储的备份数据的标识。
[0105] 所述数据分片的元数据用于描述所述数据分片在所述虚拟机磁盘数据的分布位置。所述元数据包括描述所述数据分片在所述虚拟机磁盘数据的分布位置的信息,描述所述数据分片在所述虚拟机磁盘数据的分布位置的信息包括所述数据分片存储于所述目标磁盘时的地址。
[0106] 如果所述目标磁盘数据中每个所述数据分片的元数据保存在存储设备120中,备份服务器110预先保存有存储设备120用于存储目标磁盘数据的所有数据分片的元数据的存储空间的首地址和目标磁盘标识的对应关系,或者备份服务器110预先保存有目标磁盘标识和目标磁盘数据中每个数据分片的元数据的元数据标识的对应关系。备份服务器110会发送元数据获取请求至所述存储设备120,所述元数据获取请求中包括元数据标识或者存储设备120用于存储目标磁盘数据的所有数据分片的元数据的存储空间的首地址,存储设备120接收到元数据获取请求后,根据所述元数据标识或所述存储设备120用于存储目标磁盘数据的所有数据分片的元数据的的首地址查找所述目标磁盘数据中每个所述数据分片的元数据。
[0107] S430、所述备份服务器110查找与每个所述数据分片的元数据对应的重删索引。
[0108] 所述重删索引用于指示备份于存储设备120中的数据分片。
[0109] 所述备份服务器110查找每个重删索引的一种具体实现方式可以为,所述备份服务器110根据所述目标磁盘标识查询重删索引表,所述备份服务器110查询所述重删索引表中的每个重删索引。所述重删索引表中包括目标磁盘数据的所有数据分片的元数据以及与每个数据分片对应的重删索引,每个重删索引用于指示备份在所述重删文件中的一个数据分片。
[0110] 示例性的,基于图2所示的虚拟机磁盘数据包括元数据M1-M9分别对应的每个数据分片,元数据M1-M9依次存储于备份服务器110或存储设备120中。重删索引表的内容例如表1所示。
[0111] 表1
[0112]
[0113] 所述备份服务器110查找每个重删索引的另一种具体实现方式可以为,备份服务器110按照元数据的存储顺序,依次查找每个元数据对应的重删索引。元数据的存储顺序按照数据分片的确定时间进行排列。
[0114] 示例性的,基于图2所示的虚拟机磁盘数据包括元数据M1-M9分别对应的每个数据分片,对虚拟机磁盘数据进行分片时,元数据M1-M9依次存储于备份服务器110或存储设备120中。当备份服务器110首先查找到元数据M1后,依据元数据M1和重删索引L1的对应关系确认元数据M1对应的数据的重删索引L1。后续备份服务器110查找到元数据M6后,依据元数据M6和重删索引L1的对应关系确认元数据M6对应的重删索引也为重删索引L1。如此按照元数据的存储顺序依次获取每个元数据,根据每个元数据和重删索引的对应关系确定与重删所引对应的元数据,直至查找到最后一个元数据M9对应的重删索引。
[0115] 由于具有相同哈希值的每个数据分片的元数据对应的重删索引相同,备份服务器110或者所述存储设备120中通过保存具有相同哈希值的每个数据分片的元数据与同一重删索引的对应关系,避免保存多份相同的重删索引,节省了存储空间的占用,节省的存储空间可以用于存储其他信息或者更多的重删索引,提高了存储空间的利用率。示例性的,基于图2所示的的虚拟机磁盘数据,保存具有相同哈希值的每个数据分片的元数据与同一重删索引的对应关系的重删索引表可以如表2所示。
[0116] 表2
[0117]
[0118] 所述重删索引有多种表现形式。
[0119] 例如,所述重删索引的一种表现形式为,备份在所述重删文件中的数据分片保存在所述存储设备120中的地址。备份在所述重删文件中的数据分片保存在所述存储设备120中的地址,用于指向备份在所述重删文件中的数据分片。因此,通过备份在所述重删文件中的数据分片保存在所述存储设备120或者所述备份服务器110中的地址,可以查找到备份在所述重删文件中的数据分片。
[0120] 或者,所述重删索引的另一种表现形式为,备份在所述重删文件中的数据分片的标识,备份在所述重删文件中的数据分片的标识可以是字符、数字或者字符与数字的组合。因此,通过备份在所述重删文件中的数据分片的标识,可以查找到备份在所述重删文件中的数据分片。
[0121] 如果具有相同哈希值的每个数据分片的元数据与同一重删索引对应,则具有相同哈希值的每个数据分片的元数据对应的同一重删索引为备份在所述重删文件中的数据分片的标识,或者为备份在所述重删文件中的数据分片保存在所述存储设备120或者所述备份服务器110中的地址。
[0122] S440、所述备份服务器110保存所述重删索引和与所述重删索引对应的所有元数据的对应关系。
[0123] 所述备份服务器110保存所述重删索引和与所述重删索引对应的所有元数据的对应关系时,具体保存所述重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系。
[0124] 基于上述步骤S420之后,即备份服务器110获取目标磁盘数据中每个数据分片的元数据后,由于每个数据分片的元数据用于描述所述数据分片在目标磁盘的分布位置,因此备份服务器110可以根据每个元数据分别确认每个元数据对应的数据分片的所述分布位置,以在本步骤S440中,备份服务器110可以保存重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系。
[0125] 所述备份服务器110保存重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系,以避免查询到数据分片的分布位置后,由于存储系统故障而丢失了描述数据分片的分布位置信息后不能有效恢复数据分片的情况出现,进而提高了数据恢复的稳定性。
[0126] 基于图2所示的虚拟机磁盘数据包括元数据M1-M9分别对应的每个数据分片,元数据M1-M9依次存储于备份服务器110或存储设备120中。通过上述步骤S430,备份服务器110查找到元数据M1,依据元数据M1和重删索引L1的对应关系确认元数据M1对应的数据的重删索引L1后,在本步骤S440中,备份服务器110保存重删索引L1和元数据M1的对应关系,例如表3所示的,备份服务器110会保存重删索引L1和元数据M1的对应关系至恢复索引表中。
[0127] 表3
[0128]
[0129] 后续备份服务器110基于上述步骤S430查找到元数据M6,依据元数据M6和重删索引L1的对应关系确认元数据M6对应的重删索引也为重删索引L1后,在本步骤S440中,备份服务器110保存重删索引L1和元数据M6的对应关系,例如表4所示。
[0130] 表4
[0131]
[0132] 如此基于上述步骤S430所描述的,备份服务器110按照元数据M1-M9的存储顺序依次获取每个元数据,根据每个元数据和重删索引的对应关系确定与重删所引对应的所有元数据后,在本步骤S440中,备份服务器110保存重删索引和与所述重删索引对应的所有元数据的对应关系,直到分别确定并保存每个重删索引和与每个重删索引对应的所有元数据的对应关系,例如表5所示。
[0133] 表5
[0134]
[0135] S450、所述备份服务器110查找所述重删索引指向的位于所述存储设备120中的所述数据分片。需要说明的是,本步骤S450和上述步骤S440的执行顺序不分先后。
[0136] 备份服务器110发送获取数据分片的请求给存储设备120。获取数据分片的请求包括重删索引。
[0137] 当重删索引为在所述重删文件中的数据分片保存在所述存储设备120中的地址时,存储设备120直接根据所述重删索引获取所述重删索引指向的数据分片。重删索引为在所述重删文件中的数据分片保存在所述存储设备120中的地址时,可以直接用于索引所述重删文件中的数据分片,避免占用另外的存储空间存储重删索引与所述重删文件中的数据分片保存在所述存储设备120中的地址的对应关系,节省了存储空间。
[0138] 当重删索引为备份在所述重删文件中的数据分片的标识时,存储设备120中预先保存有备份在所述重删文件中的数据分片的标识与在所述重删文件中的数据分片保存在所述存储设备120的地址的映射关系。存储设备120接收到所述获取数据分片的请求后,根据存储设备120中预先保存的备份在所述重删文件中的数据分片的标识与在所述重删文件中的数据分片保存在所述存储设备120的地址的映射关系,查找在所述重删文件中的数据分片保存在所述存储设备120的地址,根据所述重删文件中的数据分片保存在所述存储设备120的地址,获取数据分片,并返回所述数据分片给所述备份服务器110。
[0139] 存储设备120在获取到备份在所述重删文件中的数据分片的标识后,查找与所述备份在所述重删文件中的数据分片的标识与备份在所述重删文件中的数据分片保存在所述存储设备120或者所述备份服务器110中的地址的对应关系,查找所述备份在所述重删文件中的数据分片,并返回所述数据分片给所述备份服务器110。
[0140] S460、所述备份服务器110根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入目标磁盘中。
[0141] 具体的,所述备份服务器110按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入目标磁盘中的多个位置后,目标磁盘中保存的具有相同哈希值的数据分片在目标磁盘中的分布位置与具有相同哈希值的数据分片的元数据描述的分布位置相同。
[0142] 所述备份服务器110发送数据恢复响应至管理目标磁盘的管理设备。该管理设备可以是一个存储设备或存储阵列。数据恢复影响包括所述重删索引指向的位于所述存储设备120中的所述数据分片,以及包括与所述重删索引对应的每个元数据描述的分布位置,管理设备接收到所述数据恢复响应后,将所述数据分片写入与所述重删索引对应的每个元数据描述的分布位置。
[0143] 基于图4所示的数据恢复方法,在步骤S420之后,即所述备份服务器110根据所述虚拟机磁盘数据标识查找所述虚拟机磁盘数据中每个所述数据分片的元数据后,所述备份服务器110确认查找到所有元数据的个数。以及,基于上述步骤S430,所述备份服务器110查找到与所述数据分片的元数据对应的重删索引后,所述备份服务器110会保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系。
[0144] 例如表6所示,所述备份服务器110会保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系至所述恢复索引表中。
[0145] 表6
[0146]
[0147] 在表6所示的恢复索引表中,重删索引包括index offset,index offset表示重删索引保存在重删索引表中的偏移位置。以及元数据包括disk offset,disk offset表示每个元数据对应的数据分片待存储在目标磁盘的分布位置。
[0148] 所述备份服务器110保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系,用于后续监控目标磁盘数据中的所有数据分片是否完全恢复。例如所述备份服务器110可以查询已恢复的具有相同哈希值的数据分片的个数是否和所述元数据的个数相同,若相同,则表明目标磁盘数据中具有相同哈希值的数据分片已全部恢复完成,若不同,则备份服务器110查询未恢复的数据分片的元数据,然后根据元数据与重删索引的对应关系,获取重删索引,并根据重删索引重新获取备份在重删文件中的数据分片。然后,备份服务器110根据所述数据分片的元数据,将根据重删索引重新获取到的所述数据分片保存至所述元数据描述的分布位置处,以完成未恢复的数据分片的恢复。通过保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系,以监控目标磁盘数据中的所有数据分片是否恢复完成,提高了数据恢复的准确性,降低数据恢复时数据分片的丢失率。
[0149] 请参见图5,图5为本发明实施例提供的一种数据恢复装置的结构图。如图5所示,本发明实施例提供的数据恢复装置50可以部署在备份服务器110中,具体用于执行图4所示的数据恢复方法,具体的数据恢复装置50包括接收模块51、查找模块52和处理模块53。接收模块51和查找模块52连接,查找模块52与处理模块53连接。数据恢复装置50中各个模块的功能见如下描述。
[0150] 本发明实施例中,接收模块51,用于接收数据恢复请求。所述数据恢复请求包括目标磁盘标识和备份数据的标识,所述数据恢复请求指示恢复所述备份数据至目标磁盘,所述备份数据包括若干数据分片。
[0151] 在本实施方式中,接收模块51接收数据恢复请求的功能,可以通过备份服务器110中的接口311实现,具体实现细节可以参考图4所示的步骤S410的具体细节,在这里不再赘述。
[0152] 本发明实施例中,查找模块52,用于根据所述备份数据的标识查找所述备份数据中每个所述数据分片的元数据,查找与每个所述数据分片的元数据对应的重删索引,查找所述重删索引指向的位于所述存储设备中的所述数据分片。所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置,所述重删索引用于指示备份于存储设备中的数据分片,其中,数据内容相同的多个数据分片的元数据对应于同一重删索引。
[0153] 在本实施方式中,查找模块52根据所述备份数据的标识查找所述备份数据中每个所述数据分片的元数据的功能,可以通过备份服务器110中的控制模块311或处理器313实现,查找模块52根据所述备份数据的标识查找所述备份数据中每个所述数据分片的元数据的具体实现细节可以参考图4所示的步骤S420的具体细节,在这里不再赘述。
[0154] 在本实施方式中,查找模块52查找与每个所述数据分片的元数据对应的重删索引的功能,可以通过备份服务器110中的控制模块311或处理器313实现,查找模块52查找与每个所述数据分片的元数据对应的重删索引的具体实现细节可以参考图4所示的步骤S430的具体细节,在这里不再赘述。
[0155] 在本实施方式中,查找模块52查找所述重删索引指向的位于所述存储设备中的所述数据分片的功能,可以通过备份服务器110中的控制模块311或处理器313实现,查找模块52查找所述重删索引指向的位于所述存储设备中的所述数据分片的具体实现细节可以参考图4所示的步骤S450的具体细节,在这里不再赘述。
[0156] 本发明实施例中,处理模块53,用于根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。
[0157] 在本实施方式中,处理模块53根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中的功能,可以通过备份服务器110中的控制模块311或处理器313实现,处理模块53根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中的具体实现细节可以参考图4所示的步骤S460的具体细节,在这里不再赘述。
[0158] 可选的,在本发明实施例中,所述处理模块53,还用于保存所述重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系。
[0159] 在本实施方式中,处理模块53保存所述重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系的功能,可以通过备份服务器110中的控制模块311或处理器313实现,处理模块53保存所述重删索引和与所述重删索引对应的每个元数据描述的所述分布位置的对应关系的具体实现细节可以参考图4所示的步骤S440的具体细节,在这里不再赘述。
[0160] 可选的,在本发明实施例中,所述查找模块52,还用于根据所述备份数据的标识查询重删索引表,查询所述重删索引表中的每个重删索引。
[0161] 在本实施方式中,查找模块52根据所述备份数据的标识查询重删索引表,查询所述重删索引表中的每个重删索引的功能,可以通过备份服务器110中的控制模块311或处理器313实现,查找模块52根据所述备份数据的标识查询重删索引表,查询所述重删索引表中的每个重删索引的具体实现细节可以参考图4所示的步骤S430中描述的根据所述备份数据的标识查询重删索引表的具体细节,在这里不再赘述。
[0162] 可选的,在本发明实施例中,所述查找模块52,还用于确认与所述重删索引对应的所有元数据的个数。
[0163] 在本实施方式中,查找模块52确认与所述重删索引对应的所有元数据的个数的功能,可以通过备份服务器110中的控制模块311或处理器313实现,查找模块52确认与所述重删索引对应的所有元数据的个数的具体实现细节可以参考图4所示的步骤S460后描述的如何确认与所述重删索引对应的所有元数据的个数的具体细节,在这里不再赘述。
[0164] 在本发明实施例中,所述处理模块53,还用于保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系。
[0165] 在本实施方式中,处理模块53保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系的功能,可以通过备份服务器110中的控制模块311或处理器313实现,处理模块53保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系的具体实现细节可以参考图4所示的步骤S460后描述的如何保存与所述重删索引对应的所有元数据的个数与所述重删索引的对应关系的具体实现细节,在这里不再赘述。
[0166] 基于图4所示的数据恢复方法及图5所示的数据恢复装置,备份服务器或数据恢复装置接收数据恢复请求后,依据备份数据中每个数据分片的元数据对应的重删索引,确认每个重删索引对应的所有元数据。在获取所述重删索引指向的存储于所述存储设备中的数据分片后,将所述数据分片保存至与所述重删索引对应的每个元数据描述的分布位置,对于同一重删索引对应的数据内容相同的多个数据分片的恢复,避免频繁的访问存储设备去多次获取所述重删索引指向的存储于所述存储设备中的数据分片,延长了存储设备的使用寿命,减少了备份服务器与存储设备之间的通信负担,提高了数据恢复的效率。
[0167] 请参见图6,图6为本发明实施例提供的一种数据恢复方法的流程图。如图6所示,本实施例提供的数据恢复方法,由图1或图3所示的备份服务器110执行,具体可由备份服务器110中的控制模块311或者图3所示的控制模块311中的处理器313执行,详细描述了虚拟机磁盘数据备份至存储设备120时如何获得备份数据的元数据,以及获得备份数据的元数据后如何恢复虚拟机磁盘数据的方法,具体包括如下步骤。
[0168] S610、划分所述虚拟机磁盘数据,获得若干数据分片,并生成每个数据分片的元数据。所述若干数据分片包括第一数据分片和第二数据分片。
[0169] 在步骤S610后,备份服务器110获得备份数据的元数据,包括:备份服务器110可以根据数据分片的哈希值确认虚拟机磁盘数据中具有相同数据内容的多个数据分片,以及确认虚拟机磁盘数据中具有不同数据内容的多个数据分片。其中,哈希值相同的多个数据分片的数据内容相同。对于具有相同数据内容的多个数据分片,备份服务器110只备份一个数据分片至存储设备120,对于具有不同数据内容的多个数据分片,备份服务器110备份每个数据分片至存储设备120。备份服务器110在数据分片备份至存储设备120后,为备份的每个数据分片创建重删索引,该重删索引用于指示备份在所述存储设备120中的这个数据分片。对于具有相同数据内容的多个数据分片,备份服务器110创建该重删索引后,保存该重删索引与具有相同数据内容的多个数据分片的元数据的对应关系。对于具有不同数据内容的多个数据分片,备份服务器110创建与备份在所述存储设备120中的数据分片分别对应的重删索引后,保存该重删索引与备份在所述存储设备120中的这个数据分片的元数据的对应关系。如此,备份数据的元数据包括数据内容相同的多个数据分片对应的同一重删索引和数据内容相同的每个数据分片的元数据的对应关系,还包括数据内容不同的数据分片的重删索引和该数据内容不同的数据分片的元数据的对应关系。
[0170] 备份服务器110接收到虚拟机磁盘数据后,获得备份数据的元数据的一种具体实现方式包括:备份服务器110划分所述虚拟机磁盘数据,将虚拟机磁盘数据中的首个数据分片备份在存储设备120中。备份服务器110确认具有相同数据内容的多个数据分片时,按照虚拟机磁盘数据中的数据分片在虚拟机磁盘数据中的分布位置,顺序确认继首个数据分片之后的待备份在存储设备120中的其他数据分片是否与已备份在存储设备120中的任一数据分片的数据内容相同。如果不同,获得备份数据的元数据所包括的信息的具体流程可以参照如下步骤S620和S630的细节。如果相同,获得备份数据的元数据所包括的信息的具体流程可以参照如下步骤S621的细节。
[0171] S620、确认所述第一数据分片的哈希值与已备份于存储设备120中的所有数据分片的哈希值均不同,备份所述第一数据分片至所述存储设备120,并对备份于所述存储设备120中的所述第一数据分片创建重删索引。
[0172] 例如所述虚拟机磁盘数据中已备份在所述存储设备120中的数据分片只有首个数据分片,在备份所述虚拟机磁盘数据中的其他数据分片(例如第一数据分片)时,先判断所述其他数据分片的哈希值与已备份在所述存储设备120中的每个数据分片的哈希值是否相同,如果不同,则备份所述其他数据分片至所述存储设备120,并对所述存储设备120中的所述其他数据分片创建重删索引,所述其他数据分片的重删索引指示备份在所述存储设备120中的所述其他数据分片。如此,所述备份数据中备份在所述存储设备120中的若干数据分片为哈希值不同的数据分片,备份在所述存储设备120中的若干数据分片分别对应不同的重删索引,重删索引指示备份在存储设备120中的与所述重删索引对应的数据分片,根据重删索引可以查找到备份在存储设备120中的数据分片。
[0173] 所述第一数据分片在虚拟机磁盘数据中与所述首个数据分片连续或与所述首个数据分片间隔分布。
[0174] 如果所述第一数据分片在虚拟机磁盘数据中与所述首个数据分片连续,所述第一数据分片为所述虚拟机磁盘数据的第二个数据分片。如果所述第一数据分片在虚拟机磁盘数据中与所述首个数据分片间隔分布,所述第一数据分片为所述虚拟机磁盘数据的第二个数据分片之后的任一数据分片。
[0175] S630、保存备份于所述存储设备120中的所述第一数据分片的重删索引和所述第一数据分片的元数据的对应关系。
[0176] 上述实施例中步骤S620以及S630描述了待备份的其他数据分片的内容与已备份的所有数据分片的数据内容不同,如何获得备份数据的元数据所包括的信息的第一种实现方式。即在步骤S620中确认待备份的其他数据分片的内容与已备份的所有数据分片的数据内容不同后,在步骤S620中备份与已备份的数据分片的内容不同的其他数据分片至存储设备120,并创建与已备份的数据分片的内容不同的其他数据分片的重删索引。然后,通过步骤S630保存与已备份的数据分片的内容不同的其他数据分片的重删索引和与已备份的数据分片的内容不同的所述其他数据分片的元数据的对应关系。如此,所述备份数据的元数据所包括的信息有,备份在所述存储设备120中的数据内容不同的数据分片的重删索引和数据内容不同的数据分片的元数据的一一对应关系。
[0177] 在其他实现方式中,如果待备份的其他数据分片(例如第二数据分片)的数据内容与已备份的第三数据分片的数据内容相同,如何获得备份数据的元数据所包括的信息的第二种实现方式,包括步骤S621:查找与所述其他数据分片的数据内容相同的所述已备份的所述第三数据分片的重删索引,保存与所述其他数据分片的数据内容相同的所述已备份的所述第三数据分片的重删索引和所述其他数据分片的元数据的对应关系。如此,所述备份数据的元数据所包括的信息有,数据内容相同的所有数据分片对应的同一重删索引和所述数据内容相同的所有数据分片中每个数据分片的元数据的对应关系。在这个实现方式中,待备份的其他数据分片的内容与已备份的所有数据分片的内容相同,为了节约存储设备120的存储空间,备份服务器110保存了数据内容相同的所有数据分片对应的同一重删索引,是不用对备份数据中与已备份的第三数据分片的数据内容相同的所述其他数据分片进行备份的,后续可以根据备份数据的元数据中同一重删索引指示的备份在存储设备120中的数据分片对数据内容相同的数据分片进行恢复。
[0178] 虚拟机磁盘数据中所有数据分片中部分或全部数据分片的数据内容可能相同,也可能不同。根据虚拟机磁盘数据中数据分片的数据内容相同或不同的情况,在获取备份数据的元数据所包括的信息时,可能仅采用上述获得备份数据的元数据所包括的信息的两种方式中的其中一种方式获得备份数据的元数据,也可能采用上述获得备份数据的元数据所包括的信息的两种方式获得备份数据的元数据。下面根据虚拟机磁盘数据中数据分片的数据内容相同或不同的情况,对如何获得备份数据的元数据的过程分别进行描述。
[0179] 如果虚拟机磁盘数据中的所有数据分片的数据内容不同,仅需要根据上述步骤S620和S630获得备份数据的元数据所包括的信息的第一种实现方式,获得备份数据的元数据所包括的信息。备份数据的元数据所包括的信息有,虚拟机磁盘数据中每个数据分片的重删索引和与所述数据分片的重删索引对应的元数据。在这种情况中,获得备份数据的元数据所包括的信息中不存在数据内容相同的多个数据分片的元数据对应的同一重删索引。
[0180] 如果虚拟机磁盘数据中所有数据分片中至少部分数据分片的数据内容相同,则采用上述获得备份数据的元数据所包括的信息的两种方式获得备份数据的元数据。其中,根据上述获得备份数据的元数据所包括的信息的第二种实现方式获得的备份数据的元数据所包括的信息有,虚拟机磁盘数据中数据内容相同的多个数据分片对应的同一重删索引和与所述同一重删索引对应的所述数据内容相同的所有数据分片中每个数据分片的元数据。以及,根据上述获得备份数据的元数据所包括的信息的第一种实现方式获得的备份数据的元数据所包括的信息有,数据内容不相同的多个数据分片分别对应的重删索引和所述数据内容不相同的多个数据分片中每个数据分片的元数据。如此,最终获得的备份数据的元数据所包括的信息中不仅存在数据内容相同的多个数据分片对应的同一重删索引,还包括数据内容不相同的多个数据分片分别对应的重删索引。
[0181] 在一种极端情况下,如果虚拟机磁盘数据中所有数据分片中全部数据分片的数据内容相同,则根据上述获得备份数据的元数据所包括的信息的第二种实现方式获得的备份数据的元数据所包括的信息有,虚拟机磁盘数据中数据内容相同的多个数据分片对应的同一重删索引和与所述同一重删索引对应的所述数据内容相同的所有数据分片中每个数据分片的元数据。由于虚拟机磁盘数据中所有数据分片中全部数据分片的数据内容相同,所以只需备份一个数据分片至存储设备120,因此备份数据的元数据所包括的信息只存在一个重删索引,该重删索引指示备份在所述存储设备120中的这一个数据分片。
[0182] 在获得备份数据的元数据后,执行如下步骤S640。
[0183] S640、保存备份数据的标识与备份数据的元数据的对应关系。所述备份数据的元数据包括备份于所述存储设备120中的所述第一数据分片的重删索引和所述第一数据分片的元数据的对应关系。备份服务器110获取虚拟机磁盘数据后可以创建备份数据的标识,备份数据的标识可以是虚拟机磁盘的标识或其他字符。
[0184] S650、接收数据恢复请求。所述数据恢复请求包括目标磁盘标识和备份数据的标识,所述数据恢复请求指示恢复所述备份数据至与所述目标磁盘标识对应的目标磁盘。
[0185] S660、根据所述备份数据的标识查找所述备份数据的元数据。
[0186] 所述备份数据的元数据包括的信息有,所述虚拟机磁盘数据中备份在存储设备120中的每个数据分片的重删索引和与所述重删索引对应的元数据。所述重删索引用于指示备份于存储设备120中的数据分片,其中,同一重删索引对应所述虚拟机磁盘数据中数据内容相同的多个数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述虚拟机磁盘数据的分布位置。所述备份数据的元数据所包括的信息的获取方式可以参照上述步骤S620、S630的细节或步骤S621的细节。
[0187] S670、查找所述重删索引指向的位于所述存储设备120中的所述数据分片。
[0188] S680、根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。
[0189] 在图6所示的实施例方式中,备份服务器110可以确认与所述重删索引对应的所有元数据的个数,保存所述重删索引和所述重删索引对应的所有元数据的个数的对应关系。
[0190] 请参见图7,图7为本发明实施例提供的另一种数据恢复装置的结构图。如图7所示,本发明实施例提供的数据恢复装置70可以部署在备份服务器110中,具体用于执行图4所示的数据恢复方法,具体的数据恢复装置70包括接收模块71、查找模块72和处理模块73。接收模块71和查找模块72连接,查找模块72与处理模块73连接。数据恢复装置70中各个模块的功能见如下描述。
[0191] 接收模块71,用于接收数据恢复请求。所述数据恢复请求包括目标磁盘标识和备份数据的标识,所述数据恢复请求指示恢复所述备份数据至与所述目标磁盘标识对应的目标磁盘,所述备份数据包括若干数据分片。
[0192] 在本实施方式中,接收模块71接收数据恢复请求的功能,可以通过备份服务器110中的接口311实现,具体实现细节可以参考图6所示的步骤S650的具体细节,在这里不再赘述。
[0193] 查找模块72,用于根据所述备份数据的标识查找所述备份数据的元数据,所述备份数据的元数据包括重删索引,所述重删索引用于指示备份于存储设备120中的数据分片,所述备份数据的元数据还包括与所述重删索引对应的元数据,其中,同一重删索引对应数据内容相同的多个数据分片的元数据,所述数据分片的元数据用于描述所述数据分片在所述备份数据的分布位置。
[0194] 所述查找模块72,还用于查找所述重删索引指向的位于所述存储设备120中的所述数据分片。
[0195] 处理模块73,用于根据所述重删索引和与所述重删索引对应的所有元数据的对应关系,按照与所述重删索引对应的每个元数据描述的分布位置,将所述数据分片写入所述目标磁盘中。
[0196] 在本实施方式中,查找模块72与处理模块73可以通过备份服务器110中的控制模块311或处理器313实现,具体实现细节可参照图6描述的相关步骤。在其他实现方式中,查找模块72与处理模块73可以部署在一个物理芯片上或分开独立部署,具体部署形式不受本实施例的细节限制。
[0197] 基于图7所示的数据恢复装置,数据恢复装置70通过上述接收模块71接收数据恢复请求之前,数据恢复装置70的处理模块73,还用于划分所述备份数据,获得若干数据分片,并生成每个数据分片的元数据,所述若干数据分片包括第一数据分片。处理模块73,还用于确认所述第一数据分片与所述备份数据中已备份于存储设备120中的所有数据分片的数据内容不同,备份所述第一数据分片至所述存储设备120,并对备份于所述存储设备120中的所述第一数据分片创建重删索引,其中,所述已备份于存储设备120中的所有数据分片的数据内容不同。处理模块73,还用于保存备份于所述存储设备120中的所述第一数据分片的重删索引和所述第一数据分片的元数据的对应关系,保存所述备份数据的标识与所述备份数据的元数据的对应关系,所述备份数据的元数据包括已备份于所述存储设备120中的所述第一数据分片的重删索引和所述第一数据分片的元数据的对应关系。在本实施方式中,处理模块73获得所述备份数据的元数据所包括的信息的方式可以参照上述步骤S620、S630的细节,在这里不再赘述。
[0198] 基于图7所示的数据恢复装置,数据恢复装置70通过上述接收模块71接收数据恢复请求之前,数据恢复装置70的处理模块73,还用于将所述备份数据划分为若干数据分片,并生成每个数据分片的元数据,所述若干数据分片包括第二数据分片。所述处理模块73,还用于确认所述第二数据分片与所述备份数据中已备份于存储设备120中的第三数据分片的数据内容相同,保存所述第三数据分片的重删索引和所述第二数据分片的元数据的对应关系,保存所述备份数据的标识与所述备份数据的元数据的对应关系。所述备份数据的元数据包括所述第三数据分片的重删索引和所述第二数据分片的元数据的对应关系。在本实施方式中,处理模块73获得所述备份数据的元数据所包括的信息的方式可以参照上述步骤S621的细节,在这里不再赘述。
[0199] 基于图7所示的数据恢复装置,所述处理模块73,还用于确认与所述重删索引对应的所有元数据的个数,保存所述重删索引和所述重删索引对应的所有元数据的个数的对应关系。
[0200] 基于图6所示的数据恢复方法及图7所示的数据恢复装置,备份服务器110对备份数据进行恢复前,可以创建备份数据的元数据。所述备份数据的元数据包括数据内容相同的数据分片对应的同一重删索引与数据内容相同的每个数据分片的元数据的对应关系,以及包括数据内容不同的数据分片分别对应的不同重删索引与数据内容不同的每个数据分片的元数据的对应关系。如此,在对备份数据进行恢复时,通过所述备份服务器110依据备份数据的元数据中的重删索引与元数据的对应关系,确认每个重删索引对应的所有元数据。然后,所述备份服务器1010在获取所述重删索引指向的存储于所述存储设备120中的数据分片后,将所述数据分片保存至与所述重删索引对应的每个元数据描述的分布位置,对于同一重删索引对应的数据内容相同的多个数据分片的恢复,避免频繁的访问存储设备120去多次获取所述重删索引指向的存储于所述存储设备120中的数据分片,延长了存储设备120的使用寿命,减少了备份服务器110与存储设备120之间的通信负担,提高了数据恢复的效率。
[0201] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0202] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0203] 另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0204] 上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0205] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。