CN110998537B - 一种过期备份处理方法及备份服务器 - Google Patents

一种过期备份处理方法及备份服务器 Download PDF

Info

Publication number
CN110998537B
CN110998537B CN201780002847.5A CN201780002847A CN110998537B CN 110998537 B CN110998537 B CN 110998537B CN 201780002847 A CN201780002847 A CN 201780002847A CN 110998537 B CN110998537 B CN 110998537B
Authority
CN
China
Prior art keywords
data
backup
storage system
large object
disk
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
Application number
CN201780002847.5A
Other languages
English (en)
Other versions
CN110998537A (zh
Inventor
舒治
侯杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN110998537A publication Critical patent/CN110998537A/zh
Application granted granted Critical
Publication of CN110998537B publication Critical patent/CN110998537B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Abstract

一种过期备份处理方法,所述方法由备份服务器(130)执行。包括:备份服务器(130)每次确定第一磁盘数据的过期备份后,会创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中。所述过期备份为截止当前第一时刻对象存储系统(140)中对所述第一磁盘数据进行的所有未过期备份中的最早备份。如此,后续备份服务器(130)检测满足删除条件后,获取与所述第一磁盘数据对应的多条删除日志,根据删除日志确定包括无效数据和有效数据的大对象,将有效数据移动至另一大对象,并且指示所述对象存储系统(140)删除包括无效数据的大对象,进而对以大对象存储方式进行增量备份的磁盘数据实现过期备份的处理。

Description

一种过期备份处理方法及备份服务器
技术领域
本发明实施例涉及存储领域,尤其涉及一种过期备份处理方法及备份服务器。
背景技术
为保证数据的安全性,在数据保存至磁盘后,可以按照对象存储方式通过备份服务器将磁盘数据备份至对象存储系统。具体的过程包括:对象存储系统将组成磁盘数据的连续的多个数据分片保存为至少一个对象,每个对象包括连续的至少一个数据分片。如果磁盘备份数据被分散地存储在多个对象中,后续备份服务器需要访问该备份数据时,需要多次访问对象存储系统的多个对象。为此,备份服务器发送至少两个对象和一个大对象标识给对象存储系统,由对象存储系统将至少两个对象保存成一个大对象,以通过访问大对象减少对所述对象存储系统的访问次数。
为了减少备份的数据量,通常也会采用增量备份的方式来备份,然而,目前还没有以大对象存储方式对磁盘数据进行增量备份的技术。
发明内容
本发明实施例提供一种过期备份处理方法及备份服务器,实现了基于大对象存储方式对磁盘的数据的进行增量备份的技术,如何实现过期备份的处理方法。
第一方面,本发明实施例提供一种过期备份处理方法,所述方法由备份服务器执行。包括:备份服务器每次确定第一磁盘数据的过期备份后,会创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中。所述过期备份为截止当前第一时刻对象存储系统中对所述第一磁盘数据进行的所有未过期备份中的最早备份。后续备份服务器检测满足删除条件后,获取与所述第一磁盘数据对应的多条删除日志。获取多条删除日志的目的是根据与所述第一磁盘数据对应的多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象。确定包括无效数据和有效数据的第一目标大对象后,向所述对象存储系统发送数据迁移指示和对象删除指示,所述数据迁移指示用于指示所述对象存储系统将所述第一目标大对象中的所述有效数据迁移至另一大对象中,所述对象删除指示用于指示所述对象存储系统删除所述第一目标大对象。
本发明中在确定过期备份后创建删除日志,将所述过期备份中的无效数据的指针保存至所述删除日志中,如此后续备份服务器可以根据删除日志确定包括无效数据和有效数据的大对象,进而对以大对象存储方式进行增量备份的磁盘数据实现过期备份的处理。
上述备份服务器确定包括无效数据和有效数据的第一目标大对象后,向所述对象存储系统发送数据迁移指示和对象删除指示的实现方式有多种。例如,数据迁移指示和对象删除指示可以包含在一条指令中,也可以通过两条指令分别发送。如果数据迁移指示和对象删除指示可以包含在一条指令中,对象存储系统接收到包括数据迁移指示和对象删除指示的指令后,先将所述第一目标大对象中的所述有效数据迁移至另一大对象中,再删除所述第一目标大对象。如果数据迁移指示和对象删除指示通过两条指令分别发送,备份服务器可以先发送包括数据迁移指示的指令,后发送包括对象删除指示的指令。备份服务器发送包括对象删除指示的指令之前,可以先确定对象存储系统是否完成有效数据的迁移。如果确认对象存储系统将有效数据迁移完成,再发送包括对象删除指示的指令至对象存储系统,以指示对象存储系统删除所述第一目标大对象。备份服务器可以根据是否获取到对象存储系统返回的迁移完成消息确定对象存储系统是否完成有效数据的迁移。
基于第一方面,在第一种实现方式中,所述检测是否满足删除条件包括:
检测与所述第一磁盘数据对应的多条删除日志的数量是否达到预设删除阈值,如果达到预设删除阈值,则满足删除条件;或
检测是否达到预设删除时间,如果达到预设删除时间,则满足删除条件;或
自上次满足删除条件后启动计时,检测所述计时是否结束,如果所述计时结束则满足删除条件。
基于第一方面或第一方面的第一种实现方式,在第二种实现方式中,所述根据所述多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象之后,还包括:创建所述有效数据移动后的指针,创建所述第一磁盘数据的移动日志,并将所述有效数据移动前的指针和所述有效数据移动后的指针的对应关系保存至所述移动日志中。所述有效数据移动后的指针表示所述有效数据移动至所述另一大对象后在所述另一大对象的位置。
基于第一方面的第二种实现方式,在第三种实现方式中,该方法还包括:接收客户端发送的数据恢复请求,所述数据恢复请求包括第一磁盘标识、第二磁盘标识和待恢复备份的备份标识,所述数据恢复请求用于指示基于所述待恢复备份的备份标识对应的待恢复备份,恢复所述第一磁盘数据至所述第二磁盘中,所述待恢复备份为对所述第一磁盘数据的所有未过期备份中的任一备份。获取所述待恢复备份的备份元数据,并获取所述第一磁盘数据的所有移动日志。根据所述第一磁盘数据的所有移动日志,确认所述待恢复备份的备份元数据中是否存在与所述移动日志中记录的有效数据移动前的指针相同的指针,如果存在,则将所述待恢复备份的备份元数据中的所述相同的指针修改为与所述有效数据移动前的指针对应的有效数据移动后的指针,获得修改后的备份元数据,所述修改后的备份元数据包括未修改的指针和修改后的指针,所述修改后的指针为所述移动日志中记录的所述有效数据移动后的指针。根据所述修改后的备份元数据获取与所述待恢复备份对应的所述第一磁盘数据。将所述第一磁盘数据保存至所述第二磁盘中。
基于第一方面的第三种实现方式,在第四种实现方式中,所述将所述有效数据移动前的指针和所述有效数据移动后的指针的对应关系保存至所述移动日志中之后,还包括:创建所述移动日志的对象标识;保存第一磁盘标识和所述移动日志的对象标识的对应关系,并发送移动日志存储请求至所述对象存储系统,所述移动日志存储请求包括所述移动日志的对象标识和所述移动日志,所述移动日志存储请求用于指示所述对象存储系统将所述移动日志保存至所述移动日志的对象标识对应的对象中;所述获取所述第一磁盘的所有移动日志,包括:根据所述第一磁盘标识获取所述移动日志的对象标识,发送所述移动日志获取请求至所述对象存储系统,所述移动日志获取请求包括所述移动日志的对象标识,所述移动日志获取请求用于指示所述对象存储系统从与所述移动日志的对象标识对应的对象中获取所述移动日志;接收所述对象存储系统发送的所述移动日志。
基于第一方面或第一方面的第一种至第四种实现方式中任一种实现方式,在第五种实现方式中,所述根据所述多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象,包括:根据所述多条删除日志确定所述对象存储系统中保存的包括无效数据的第一目标大对象;根据预定义的无效数据的大小以及所述第一目标大对象中包括的无效数据的数量,确定所述第一目标大对象中所有无效数据的数据量;发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述第一目标大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述第一目标大对象的数据量;接收数据量属性信息,所述数据量属性信息包括所述第一目标大对象的数据量;如果所述第一目标大对象中所有无效数据的数据量比所述数据量属性信息中所述第一目标大对象的数据量小,则确定所述对象存储系统中保存的所述第一目标大对象为包括无效数据和有效数据的第一目标大对象。
第二方面,提供一种过期备份处理方法,所述方法由备份服务器执行,包括:
每次确定第一磁盘数据的过期备份后,创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中,所述过期备份为截止当前第一时刻对象存储系统中对所述第一磁盘数据进行的所有未过期备份中的最早备份。检测是否满足删除条件,如果满足删除条件,获取与所述第一磁盘数据对应的多条删除日志。根据所述多条删除日志确定所述对象存储系统中保存的只包括无效数据的大对象。向所述对象存储系统发送对象删除指示,所述对象删除指示用于指示所述对象存储系统删除所述只包括无效数据的大对象。
基于第二方面,在第一种实现方式中,所述检测是否满足删除条件包括:
检测与所述第一磁盘数据对应的多条删除日志的数量是否达到预设删除阈值,如果达到预设删除阈值,则满足删除条件;或
检测是否达到预设删除时间,如果达到预设删除时间,则满足删除条件;或
自上次满足删除条件后启动计时,检测所述计时是否结束,如果所述计时结束则满足删除条件。
基于第二方面或第二方面的第一种实现方式,在第二种实现方式中,所述根据所述多条删除日志确定所述对象存储系统中保存的只包括无效数据的大对象,包括:根据所述多条删除日志确定包括无效数据的大对象;根据预定义的无效数据的大小以及所述包括无效数据的大对象中包括的无效数据的数量,确定所述包括无效数据的对象中所有无效数据的数据量;发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述包括无效数据的大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述包括无效数据的大对象的数据量;接收数据量属性信息,所述数据量属性信息包括所述包括无效数据的大对象的数据量;如果所述包括无效数据的大对象中所有无效数据的数据量与所述数据量属性信息中所述包括无效数据的大对象的数据量相同,则确定所述对象存储系统中保存的所述包括无效数据的大对象为只包括无效数据的大对象。
第三方面,本发明实施例提供了一种数据备份的方法,该方法包括:在对过期备份进行处理之前,备份服务器会对第一磁盘数据进行备份。对第一磁盘数据中的数据分片进行备份的过程为:备份服务器接收待备份至对象存储系统中的第一磁盘数据的多个数据分片,根据数据分片的大小以及预定义的数据块的大小确定待备份至对象存储系统的数据块,所述数据块包括所述第一磁盘数据中的至少一个数据分片。备份服务器会计算所述数据块的弱哈希值。确定所述对象存储系统中已保存的另一数据块的标识,所述数据块的弱哈希值与所述另一数据块的弱哈希值相似。查询所述另一数据块的标识,根据所述另一数据块的标识确定所述另一数据块所在的大对象的标识,确定所述另一数据块所在的大对象中已保存的数据量的大小没有达到预定义的大小,向所述对象存储系统发送数据备份请求。所述数据备份请求包括所述数据块和所述另一数据块所在的大对象的标识,所述数据备份请求用于指示所述对象存储系统保存所述数据块至所述另一数据块所在的大对象中。对象存储系统接收到所述数据存储请求后,保存所述数据块至所述另一数据块所在的大对象中。如此,本发明实施例在备份数据时可以实现弱哈希值相似的数据块的大对象存储。所述另一数据块中的数据分片可以是所述第一磁盘数据中的数据分片,也可以是其他磁盘数据中的数据分片。
可以理解的是,也可以在上述第一方面和第二方面的方法中,在对过期备份进行处理之前,备份服务器会采用第三面所提供的方法对所述第一磁盘的数据进行备份。
第四方面,提供一种备份服务器,包括用于执行第一方面或第一方面的任一种可能实现方式中的过期备份处理方法的各个模块,所述模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第五方面,提供一种备份服务器,包括用于执行第二方面或第二方面的任一种可能实现方式中的过期备份处理方法的各个模块,所述模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第六方面,提供一种备份服务器,包括用于执行第三方面提供的实现方式中的过期备份处理方法的各个模块,所述模块可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第七方面,提供一种备份服务器,包括接口、存储器和处理器,所述接口用于和对象存储系统通信,所述存储器用于存储软件程序,所述处理器通过运行存储在所述存储器中的软件程序,执行第一方面或第一方面的任一种可能实现方式中的过期备份处理方法。
第八方面,提供一种备份服务器,包括接口、存储器和处理器,所述接口用于和对象存储系统通信,所述存储器用于存储软件程序,所述处理器通过运行存储在所述存储器中的软件程序,执行第二方面或第二方面的任一种可能实现方式中的过期备份处理方法。
第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行上述第一方面或第一方面的任一种可能实现方式中的过期备份处理方法。
第十方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行上述第二方面或第二方面的任一种可能实现方式中的过期备份处理方法。
附图说明
图1为本发明实施例提供的一种备份系统的结构示意图;
图2为本发明实施例提供的虚拟机磁盘数据的全量备份方法流程图;
图3为本发明实施例提供的虚拟机磁盘数据的增量备份方法流程图;
图4为本发明实施例提供的过期备份的处理方法的流程图;
图5为本发明实施例提供的备份服务器根据累计的删除日志删除过期数据的方法流程图;
图6为本发明实施例提供的备份服务器通过多段复制技术指示对象存储系统保存有效数据的方法流程图;
图7为本发明实施例提供的恢复虚拟机磁盘数据的方法流程图;
图8为本发明实施例提供的一种备份服务器的结构图;
图9为本发明实施例提供的另一种备份服务器的结构图;
图10为本发明实施例提供的另一种备份服务器的结构图;
图11为本发明实施例提供的另一种备份服务器的结构图;
图12为本发明实施例提供的另一种备份服务器的结构图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本发明实施例提供了一种备份系统。请参见图1,图1为本发明实施例提供的一种存储系统的结构示意图。所述存储系统包括客户端110、存储节点120,以及备份系统100。其中,备份系统100包括备份服务器130和对象存储系统140,备份服务器130和对象存储系统140连接。该备份服务器130和客户端110以及存储节点120相连,存储节点120包括一个或多个磁盘,所述磁盘可以为虚拟机磁盘或物理磁盘。
存储节点120,用于将待存储至存储节点120的某一磁盘的数据划分为连续的多个数据分片,将所述连续的多个数据分片保存在存储节点120的磁盘的多个物理块中。
备份服务器130,用于接收到客户端110发送的数据备份请求时,或者确定到达预设的时间时,将存储节点120的磁盘上的数据全量备份或者增量备份至对象存储系统140中,并且创建并保存备份元数据和备份属性信息。其中,全量备份是指将存储节点120的磁盘上的所有数据备份至存储系统,增量备份是指将存储节点120的磁盘上有修改的数据备份至对象存储系统。备份元数据用于表示磁盘数据中的每个对象在磁盘数据中的位置。备份元数据中可以记录组成磁盘数据的每个对象的标识及指针,并且按照对象在磁盘中的排列顺序来记录每个对象的指针。所述备份属性信息包括备份的备份标识、备份时间和所述备份元数据的标识。备份服务器130创建备份属性信息后,还会保存存储节点120的磁盘的磁盘标识与备份属性信息的对应关系。
通常,在客户端110发送的数据备份请求中要包含需要备份的磁盘的磁盘标识,备份服务器130将该磁盘标识所指代的磁盘上的数据全量备份或增量备份至对象存储系统140中。具体的全量备份和增量备份的过程请参考下述方法实施例中的描述,在此不再赘述。
对该磁盘的磁盘数据进行全量备份或增量备份后,系统中会产生越来越多的备份。为了节省系统的存储空间,需要对存储系统中的备份进行管理。本发明实施例提供的备份系统中的备份服务器会根据需要删除过期备份。
备份服务器130,用于检测到该磁盘的所有备份属性信息的总份数超过预定值时,根据所有备份属性信息中的备份时间确定最早备份为过期备份。备份服务器130确定过期备份后,通过该过期备份的备份元数据以及与过期备份相邻的下一次备份的备份元数据识别过期备份中的无效数据,创建删除日志,将过期备份中的无效数据的指针保存至删除日志中。创建删除日志后,备份服务器130还用于删除该过期备份的备份属性信息,以及创建并保存磁盘标识和删除日志的标识的对应关系。其中,所述无效数据指的是相对于与所述过期备份相邻的下一次备份,过期备份中的包括被修改的数据分片的对象。
备份服务器130检测是否满足删除条件后,根据磁盘标识和删除日志的标识的对应关系,获取与所述磁盘数据对应的多条删除日志。该删除条件可以是与所述磁盘数据对应的多条删除日志的数量达到预设删除阈值,或是达到预设删除时间,或是自上次满足删除条件后启动计时直至所述计时结束。
备份服务器130,还用于根据所述多条删除日志确定所述对象存储系统140中保存的包括有效数据和所述无效数据的目标大对象,以及确定只包括无效数据的大对象。其中,所述有效数据指的是相对于与所述过期备份相邻的下一次备份,过期备份中的包括没有修改的数据分片的对象。
在确定所述对象存储系统140中保存的包括有效数据和所述无效数据的目标大对象后,备份服务器130,还用于向所述对象存储系统140发送数据迁移指示和对象删除指示,所述数据迁移指示用于指示所述对象存储系统140将所述目标大对象中的所述有效数据迁移至另一大对象中,所述对象删除指示用于指示所述对象存储系统140删除所述目标大对象。在确定只包括无效数据的大对象后,备份服务器130,还用于向所述对象存储系统140发送对象删除指示,所述对象删除指示用于指示所述对象存储系统140删除该只包括无效数据的大对象。
一段时间后对累计的过期备份进行处理,确定包括无效数据的大对象。如果确定大对象为包括有效数据和无效数据的大对象,将大对象中的有效数据移动至另一大对象,然后删除该大对象以节省系统的存储空间。如果确定大对象为只包括无效数据的大对象,删除该大对象,以节省系统的存储空间。如此,本发明实施例实现了对以大对象存储方式进行增量备份的磁盘数据如何实现过期备份的删除,并且避免每确定一个过期备份后对该过期备份进行处理,而是经过一段时间后对累计的多个过期备份进行处理,简化了备份系统频繁对过期备份进行处理的步骤。
如果将大对象中的有效数据移动至另一大对象,该大对象中的有效数据的指针有修改,为了避免更新其他所有备份分别对应的备份元数据中记录的该大对象中的有效数据的指针,通过移动日志记录该大对象中的有效数据移动前的指针和移动后的指针的对应关系,以便于在后续需要访问某一备份时,确认该某一备份的备份元数据中是否存在与移动日志记录的有效数据移动前的指针相同的指针,如果存在,则将该备份的备份元数据中的该相同的指针修改为该有效数据移动后的指针,避免移动有效数据后更新其他所有备份分别对应的备份元数据。
在移动大对象中的有效数据至另一大对象后,备份服务器130还用于创建移动日志,将有效数据移动前和移动后的指针的对应关系保存至移动日志中。这样,后续备份服务器130通过未过期备份的备份元数据访问磁盘数据中的有移动的有效数据时,会根据移动日志中保存的有效数据移动前和移动后的指针的对应关系,更新未过期备份的备份元数据。对未过期备份的备份元数据进行更新时,将所述未过期备份的备份元数据中与所述移动日志中记录的所述有效数据移动前的相同指针进行修改,修改后的指针为所述移动日志中记录的所述有效数据移动后的指针。
例如,备份服务器130接收到客户端110发送的数据恢复请求,从所有未过期备份中确定待恢复备份后,会根据移动日志修改待恢复备份的备份元数据,根据修改后的备份元数据获取组成磁盘数据的所有对象,然后将磁盘数据恢复至目标磁盘。目标磁盘可以位于另一存储节点120中,可以是物理磁盘或虚拟机磁盘,目标磁盘也可以位于磁盘数据备份前所在的存储节点120或与磁盘数据备份前所在的磁盘为同一磁盘。
相应的,备份系统100中的对象存储系统140,用于存储备份数据。其中,全量备份时对象存储系统140用于保存磁盘数据中的所有数据。增量备份时对象存储系统140用于保存磁盘数据中有修改的数据。
对象存储系统140还可以存储磁盘数据备份时创建的备份元数据。
对象存储系统140还可以存储对磁盘数据的过期备份处理时创建的删除日志或移动日志。
上述备份系统中,备份服务器130和对象存储系统140独立部署,客户端110可以是备份服务器130上部署的虚拟机或与备份服务器130独立部署。客户端110与备份服务器130独立部署时,客户端110可以是与备份服务器130独立的设备或是与备份服务器130独立的设备上部署的虚拟机。存储节点120可以是备份服务器130中的存储设备或与备份服务器130独立部署。存储节点120用于管理物理磁盘或用于管理虚拟机磁盘。其中,客户端110可以为物理服务器或者各种类型的终端设备。本发明实施例的终端设备包括平板电脑、笔记本电脑、移动互联网设备、掌上电脑、台式电脑、手机或者其他产品形态的终端设备。客户端110也可以是软件模块,例如可以是运行在物理设备上的软件模块或者运行在物理服务器上的虚拟机。
下面描述本发明实施例提供的过期数据的删除方法。该方法应用于上面图1所示的备份系统中。在描述本发明实施例提供的过期数据的删除方法之前,以备份虚拟机磁盘数据为例说明备份服务器130通过对象存储方式对虚拟机磁盘数据首次进行全量备份和后续进行增量备份的流程。请参见图2,图2为本发明实施例提供的虚拟机磁盘数据的全量备份方法流程图。该方法包括以下步骤:
200、备份服务器130发送快照通知至存储节点120。
快照通知包括虚拟机磁盘标识。快照通知用于指示存储节点120对与虚拟机磁盘标识对应的虚拟机磁盘进行快照。在本实施方式中,虚拟机磁盘标识对应的磁盘为待备份磁盘。存储节点120接收到快照通知后对虚拟机磁盘进行快照,创建虚拟机磁盘的快照标识,并保存虚拟机磁盘标识和快照标识的对应关系。
备份系统如何启动全量备份可以有多种方式实现。例如,用户可以通过客户端110选择对虚拟机磁盘数据进行全量备份的时间点,在全量备份的时间点到达后,客户端110发送备份请求至备份服务器130,备份请求中包括存储节点120的标识和虚拟机磁盘标识。备份服务器130接收到客户端110发送的备份请求后,发送快照通知至存储节点120。或者,存储节点120将待存储至虚拟机磁盘中连续的多个数据分片分别保存在虚拟机磁盘的一个物理块后,发送备份请求至备份服务器130启动全量备份。或者,用户在备份服务器130中预先设定存储节点120的全量备份的时间点,在全量备份的时间点到达后,备份服务器130发送快照通知至存储节点120。在其他实例中,备份系统如何启动全量备份的具体实现不受本发明实施例所举实例的限制。
210、存储节点120对虚拟机磁盘数据进行快照后,发送快照信息至备份服务器130。快照信息包括虚拟机磁盘的快照标识和虚拟机磁盘标识。
存储节点120对虚拟机磁盘数据进行快照时,会创建虚拟机磁盘的快照标识。然后根据所述虚拟机磁盘的快照标识和虚拟机磁盘标识生成快照信息。存储节点120通过发送快照信息发送虚拟机磁盘标识和快照标识至备份服务器130。
220、备份服务器130接收到快照信息后,保存快照标识和虚拟机磁盘标识的对应关系,并且,根据虚拟机磁盘标识确认虚拟机磁盘的已有备份情况,并根据已有备份情况确定是否进行全量备份。
在步骤220中,备份服务器130根据虚拟机磁盘标识确认虚拟机磁盘的已有备份情况分为以下两种情况:
第一种情况,备份服务器130根据虚拟机磁盘标识确认对虚拟机磁盘已备份的数量为0。如果已备份的数量为0,则对虚拟机磁盘数据进行全量备份。
第二种情况,备份服务器130根据虚拟机磁盘标识确认对虚拟机磁盘已备份的数量不为0,且最后一次对虚拟机磁盘进行备份时保存的信息与应该备份时需要保存的增量信息不一致。
在第二种情况中,发送给备份服务器的快照信息中还包括存储节点中记录的上一次备份时的快照的数据量。备份服务器根据虚拟机磁盘标识确认对虚拟机磁盘已备份的数量不为0后,通过对比备份服务器中记录的上一次备份时快照的数据量与存储节点中记录的上一次备份时快照的数据量确认最后一次对虚拟机磁盘进行备份时保存的信息与应该备份所要保存的增量信息是否一致,如果备份服务器中记录的上一次备份时的快照与存储节点中记录的上一次备份时快照的数据量不同,则表明最后一次对虚拟机磁盘进行备份时保存的信息与应该备份时需要保存的增量信息不一致。
可替换的,在第二种情况中,发送给备份服务器的快照信息中还包括上一次快照的标识。备份服务器根据虚拟机磁盘标识确认对虚拟机磁盘已备份的数量不为0后,通过对比备份服务器中记录的上一次备份时快照的标识与存储节点中记录的上一次备份时快照的标识确认最后一次对虚拟机磁盘进行备份时保存的信息与应该备份所要保存的增量信息是否一致,如果存储节点中记录的上一次备份时快照的标识与备份服务器中记录的上一次备份时快照的标识不同,则表明最后一次对虚拟机磁盘进行备份时保存的信息与应该备份所要保存的增量信息是否一致。
225、备份服务器130确定进行全量备份后,发送全量数据获取请求至虚拟机磁盘所在的存储节点120。
全量数据获取请求包括虚拟机磁盘标识以及待读取的数据块在虚拟机磁盘数据中的位置。待读取的数据块包括至少一个数据分片。待读取的数据块中数据分片的数量是由待读取的数据块的大小和数据分片的大小确定的。待读取的数据块的大小是在备份服务器130的备份软件中预先定义的,不同的备份软件预先定义的待读取的数据块的大小可以不同。备份服务器130可以发送多个全量数据获取请求获取虚拟机磁盘数据的所有数据分片。
其中,待读取的数据块在虚拟机磁盘数据中的位置可以是下面两种:
第一种:待读取的数据块在虚拟机磁盘数据中的起始位置和待读取的数据块的大小。如果待读取的数据块中的第一个数据分片为虚拟机磁盘数据中的第i个数据分片,其中,所述i为大于0的整数,则所述待读取的数据块在虚拟机磁盘数据中的起始位置为(i-1)与数据分片的大小的乘积。例如待读取的数据块为虚拟机磁盘数据中的第3个数据分片,如果待读取的数据分片的大小为4M,则待读取的数据块在虚拟机磁盘数据中的起始位置为(3-1)与4M的乘积,即待读取的数据块在虚拟机磁盘数据中的起始位置为8M。又如待读取的数据块的第一个数据分片为虚拟机磁盘数据中的第1个数据分片,如果待读取的数据分片的大小为4M,则待读取的数据块在虚拟机磁盘数据中的起始位置为(1-1)与4M的乘积,即待读取的数据块在虚拟机磁盘数据中的起始位置为0M。
第二种:待读取的数据块在虚拟机磁盘数据中的起始位置和结束位置。待读取的数据块在虚拟机磁盘数据中的起始位置如上一表现方式,在此不再赘述。待读取的数据块在虚拟机磁盘数据中的结束位置为待读取的数据块中的最后一个数据分片的结束位置,如果待读取的数据块中的最后一个数据分片为虚拟机磁盘数据中的第w个数据分片,则待读取的数据块中的最后一个数据分片的结束位置为所述w与所述数据分片的大小的乘积。
可以理解的是,上述的起始位置和结束位置指的是偏移量。
可替换的,如果待读取的数据块的数量有多个,多个待读取的数据块为连续的数据块,全量数据获取请求包括虚拟机磁盘标识以及该多个待读取的数据块在虚拟机磁盘数据中的位置。该多个待读取的数据块在虚拟机磁盘数据中的位置可以是该多个待读取的数据块中第一个待读取的数据块在虚拟机磁盘数据中的起始位置和该多个待读取的数据块的大小。可替换的,该多个待读取的数据块在虚拟机磁盘数据中的位置可以是该多个待读取的数据块中第一个待读取的数据块在虚拟机磁盘数据中的起始位置和该多个待读取的数据块中最后一个待读取的数据块在虚拟机磁盘数据中的结束位置。其中,该多个待读取的数据块中第一个待读取的数据块在虚拟机磁盘数据中的起始位置和该多个待读取的数据块中最后一个待读取的数据块在虚拟机磁盘数据中的结束位置可以参照删除待读取的数据块在虚拟机磁盘数据的位置的确定方式,具体实现细节不再在此赘述。
在步骤225之后,虚拟机磁盘所在的存储节点120接收全量数据获取请求,会根据待读取的数据块在虚拟机磁盘数据中的位置查找虚拟机磁盘数据中的组成数据块的多个数据分片。然后,发送虚拟机磁盘数据中的组成数据块的多个数据分片至备份服务器130。
230、备份服务器130接收虚拟机磁盘数据中的多个数据块后,确定组成大对象的多个数据块。每个数据块为大对象中的一个对象。
备份服务器130接收到的符合预定数量的连续的多个数据块为组成大对象的多个数据块。
备份服务器接收到的符合预定数量的连续的多个数据块后,可以计算每个数据块的弱哈希值,可以确定弱哈希值相似的多个数据块为组成大对象的多个数据块。240、备份服务器130确定组成大对象的多个数据块后,创建大对象的标识,发送所述多个数据块和大对象的标识至对象存储系统140。
对象存储系统140接收到所述多个数据块和大对象的标识后,将所述多个数据块保存至与所述大对象的标识对应的大对象中。
虚拟机磁盘的所有数据块组成多个大对象,被发送至对象存储系统140。
250、备份服务器130创建备份元数据和元数据对象的标识,将所述备份元数据和元数据对象的标识发送至对象存储系统140。
备份元数据用于表示虚拟机磁盘数据中的每个对象在虚拟机磁盘数据中的位置。备份元数据中可以记录组成虚拟机磁盘数据的每个对象的标识及指针,并且按照对象在虚拟机磁盘中的排列顺序来记录每个对象的指针。
可替换的,对象的标识也可以同时用作指针。也就是说,备份元数据中可以只记录组成虚拟机磁盘数据的每个对象的标识,并且按照对象在虚拟机磁盘中的排列顺序来记录每个对象的标识。其中,备份元数据中记录的对象标识可以包括大对象的标识和对象在其所属的大对象中的位置。
如果一个对象包含在一个大对象中,则该对象的指针表示该对象在其所属的大对象中的位置。例如下表1中表示的备份元数据中记录的磁盘数据中前四个大对象中的部分对象的指针。
表1
Figure GWB0000003500080000121
260、备份服务器130创建全量备份的备份属性信息,并保存所述全量备份的备份属性信息和虚拟机磁盘标识的对应关系。所述全量备份的备份属性信息包括全量备份的备份标识、备份元数据的元数据对象标识和备份时间。
以上步骤200至260描述了备份系统如何对虚拟机磁盘数据进行全量备份的方法。在本发明实施例中,对虚拟机磁盘数据进行全量备份之后,用户可能对数据做了修改,然后对修改数据进行增量备份。具体增量备份的过程包括图3中的过程。在增量备份后,为了减少备份数据的数据量,备份服务器130会确定过期备份并对过期备份进行处理。下面详细描述备份系统如何对虚拟机磁盘数据进行增量备份的方法。
请参见图3,图3为本发明实施例提供的虚拟机磁盘数据的增量备份方法流程图。如图3所示,本发明实施例提供的虚拟机磁盘数据的增量备份方法包括以下步骤:
300、备份服务器130发送快照通知至存储节点120。
快照通知包括虚拟机磁盘标识。快照通知用于指示存储节点120对与虚拟机磁盘标识对应的虚拟机磁盘进行快照。在本实施方式中,虚拟机磁盘标识对应的磁盘为待备份磁盘。存储节点120接收到快照通知后对虚拟机磁盘进行快照,创建虚拟机磁盘的快照标识,并保存虚拟机磁盘标识和快照标识的对应关系。
备份系统如何启动增量备份可以有多种方式实现。例如,用户可以通过客户端110选择对虚拟机磁盘数据进行增量备份的时间点,在增量备份的时间点到达后,客户端110发送备份请求至备份服务器130,备份请求中包括存储节点120的标识和虚拟机磁盘标识。备份服务器130接收到客户端110发送的备份请求后,发送快照通知至存储节点120。或者,存储节点120将待存储至虚拟机磁盘中连续的多个数据分片分别保存在虚拟机磁盘的一个物理块后,如果虚拟机磁盘所在的存储节点120对虚拟机磁盘数据中至少一个对象中的至少一个数据分片进行修改,存储节点120会发送备份请求至备份服务器130启动增量备份。或者,用户在备份服务器130中预先设定存储节点120的增量备份的时间点,在增量备份的时间点到达后,备份服务器130发送快照通知至存储节点120。在其他实例中,备份系统如何启动增量备份的具体实现不受本发明实施例所举实例的限制。
310、存储节点120对虚拟机磁盘数据进行快照后,发送快照信息至备份服务器130。快照信息包括当前快照的快照标识、改变块跟踪(Change Block Tracking,CBT)信息和虚拟机磁盘标识。
存储节点120对虚拟机磁盘数据进行快照时,会创建虚拟机磁盘的快照标识和当前快照的CBT信息。存储节点120创建虚拟机磁盘的快照标识后,可以根据所述虚拟机磁盘的快照标识、当前快照的CBT信息和虚拟机磁盘标识生成快照信息。存储节点120通过发送快照信息发送虚拟机磁盘标识、当前快照的CBT信息和快照标识至备份服务器130。
存储节点120创建虚拟机磁盘的快照标识和当前快照的CBT信息后,会保存当前快照的CBT信息、快照标识和虚拟机磁盘标识的对应关系。
在本实施方式中,当前快照的CBT信息用于表示当前快照时虚拟机磁盘数据中的每个数据分片相对于上一次快照时的修改状态。当前快照的CBT信息包括当前快照的CBT信息标识和虚拟机磁盘数据中的每个数据分片的修改状态标识。当前快照的CBT信息会按照组成虚拟机磁盘数据的每个数据分片的排列顺序来记录虚拟机磁盘数据中每个数据分片的修改状态标识。其中,修改状态标识用于指示当前快照时虚拟机磁盘数据中的数据分片相对于上一次快照时的修改状态。修改状态可以包括已修改状态和未修改状态。例如通过数字0表示本次快照时虚拟机磁盘数据中的数据分片相对于上一次快照时的修改状态为未修改状态,通过数据1表示当前快照时虚拟机磁盘数据中的数据分片相对于上一次快照时的修改状态为已修改状态。在其他实现方式中,修改状态标识例如可以是“修改”或者“未修改”等中文字符,也可以是字母、数字或其他符号,也可以是字母、数字或其他符号的组合。修改状态标识的具体表现形式不受本实施例的限制。
320、备份服务器130根据虚拟机磁盘标识确认虚拟机磁盘所在的存储节点120对虚拟机磁盘创建过快照,则发送增量对比信息获取请求至虚拟机磁盘所在的存储节点120。
增量对比信息获取请求包括虚拟机磁盘的快照标识和虚拟机磁盘标识。
在步骤320之后,虚拟机磁盘所在的存储节点120接收增量对比信息获取请求,发送增量对比信息至备份服务器130。增量对比信息包括虚拟机磁盘的快照标识对应的当前快照的前一次快照所生成的所述前一次快照的CBT信息标识。
虚拟机磁盘所在的存储节点120接收到增量对比信息获取请求后,根据虚拟机磁盘的快照标识查找所述虚拟机磁盘的快照标识对应的当前快照的前一次快照所生成的前一次快照的CBT信息,如果查找到相对于虚拟机磁盘的快照标识对应的当前快照的前一次快照所生成的该前一次快照的CBT信息,则发送该前一次快照的CBT信息中的该前一次快照的CBT信息标识至备份服务器130。如果查找不到相对于虚拟机磁盘的快照标识对应的当前快照的前一次快照生成的该前一次快照的CBT信息,则发送查找失败的信息至备份服务器130。
如果本次快照是第二次快照,则第一次快照是全量备份时的快照,全量备份创建快照时是没有创建CBT信息的。因此,存储节点120是查找不到相对于虚拟机磁盘的快照标识对应的本次快照的前一次快照生成的该前一次快照的CBT信息,则发送查找失败的信息至备份服务器130。
330、备份服务器130接收到虚拟机磁盘所在的存储节点120发送的增量对比信息后,根据增量对比信息中的所述前一次快照的CBT信息标识和快照信息中的当前快照的CBT信息确认当前快照对应的增量数据在虚拟机磁盘数据中的偏移位置。
备份服务器130确认当前快照对应的增量数据在虚拟机磁盘数据中的偏移位置的具体实现方式包括:备份服务器130首先确认备份服务器130在前一次对虚拟机磁盘数据进行备份时在备份服务器130中记录的CBT信息标识与所述增量对比信息中的前一次快照的CBT信息标识是否相同,如果相同,备份服务器130根据当前快照的CBT信息中记录的修改状态标识,确认当前快照对应的增量数据在虚拟机磁盘数据中的偏移位置。
备份服务器130根据当前快照的CBT信息记录的修改状态标识确认当前快照对应的增量数据在虚拟机磁盘数据中的偏移位置的具体实现方式为:备份服务器130根据当前快照的CBT信息中记录的修改状态标识的排列顺序读取预定数量个修改状态标识,如果所述预定数量个修改状态标识包括表示修改状态为已修改的修改状态标识,则确定所述预定数量个修改状态标识对应的多个数据分片中包括已修改的数据分片。其中,所述预定数量等于一个对象中数据分片的数量。所述预定数量个修改状态标识在当前快照的CBT信息记录的修改状态标识中的偏移位置即为当前快照对应的增量数据在虚拟机磁盘数据中的偏移位置。
依据上述确定增量数据在虚拟机磁盘数据中的偏移位置位置方式依次确定出多个增量数据在虚拟机磁盘数据中的偏移位置位置后,备份服务器130依次发送增量数据获取请求至虚拟机磁盘所在的存储节点120,即顺序执行如下步骤340。
340、备份服务器130发送增量数据获取请求至虚拟机磁盘所在的存储节点120。增量数据获取请求包括虚拟机磁盘标识以及增量数据在虚拟机磁盘数据中的偏移位置。
增量数据在虚拟机磁盘数据中的偏移位置的表现方式有两种,具体实现可以参照图2所示的全量备份过程中对待读取的数据块在虚拟机磁盘数据中的偏移位置的表现方式。在此不再赘述。
在步骤340之后,虚拟机磁盘所在的存储节点120接收增量数据获取请求,根据增量数据在虚拟机磁盘数据中的偏移位置查找虚拟机磁盘数据中的增量数据。然后,虚拟机磁盘所在的存储节点120发送增量数据至备份服务器130。
350、备份服务器130接收到增量数据后,创建新的大对象标识,将新的大对象标识和增量数据发送至对象存储系统140。每个增量数据在对象存储系统140中被保存为一个新的大对象中的一个新的对象。
多个增量数据对应的多个新的对象可以归属于一个新的大对象或多个新的大对象。
例如,备份软件预先定义大对象实际可以保存的多个对象的数量。当收到增量数据的数量达到大对象实际可以保存的多个对象的数量时,备份服务器130创建一个新的大对象的标识,将收到的多个增量数据和新的大对象的标识发送给对象存储系统140,以使对象存储系统140将多个增量数据保存至新的大对象的标识对应的新的大对象中。
在步骤350之后,对象存储系统140接收到增量数据,通过对象存储方式将增量数据保存至与新的对象标识对应的一个新的对象,作为增量备份。然后,对象存储系统140发送增量备份完成请求至备份服务器130。
备份服务器130在增量备份时,如果以对象存储方式存储增量备份对应的备份元数据,备份服务器130会创建增量备份的备份标识和元数据对象标识,并保存增量备份的备份标识和元数据对象标识的对应关系。
360、备份服务器130发送元数据获取请求至对象存储系统140。
元数据获取请求包括上一次备份对应的元数据对象标识。
备份服务器130创建元数据获取请求之前,会先查找上一次备份的备份标识,根据上一次备份的备份标识查找与上一次备份的备份标识对应的元数据对象标识。
在步骤360之后,对象存储系统140接收元数据获取请求,发送上一次备份对应的备份元数据至备份服务器130。
370、备份服务器130接收到对象存储系统140发送的上一次备份对应的备份元数据后,修改上一次备份对应的备份元数据,获得修改后的备份元数据作为增量备份的备份元数据。
备份服务器130将增量数据对应的对象的指针进行修改,修改后用于指示对象存储系统140中保存的增量数据对应的对象在其所属的新的大对象中的位置。
例如以修改上表1中涉及的一部分磁盘数据中的个别数据为例,说明备份元数据在修改后的表现形式。依据表1中涉及的一部分磁盘数据,如果备份服务器130对大对象B中的第一个对象B1中的至少一个数据分片、以及大对象D中的第一个对象D1中的至少一个数据分片进行修改,备份系统在增量备份时,会创建一个新的大对象E。备份服务器130会将修改后的数据分片所属的对象保存至新的大对象E中。因此,新的大对象E包括两个有数据分片修改的对象。备份服务器130将修改后的数据分片所属的对象保存至新的大对象E后,备份服务器130会获取表1中涉及的备份元数据,将表1中涉及的备份元数据进行修改,修改后的备份元数据中的一部分如下表2所示。
表2
Figure GWB0000003500080000151
备份服务器130获得修改后的备份元数据后,会创建增量备份的备份元数据的元数据对象标识,然后创建增量备份的备份属性信息,所述增量备份的备份属性信息包括增量备份的备份标识、元数据对象标识和备份时间。备份服务器130会保存所述增量备份的备份属性信息和虚拟机磁盘标识的对应关系。
380、备份服务器130发送修改后的备份元数据和增量备份的元数据对象标识至对象存储系统140。
备份服务器130发送增量备份的备份元数据至对象存储系统140时,会指示对象存储系统140将增量备份的备份元数据保存至与增量备份对应的所述元数据对象标识对应的对象中。
在步骤380之后,对象存储系统140将增量备份时创建的备份元数据保存至与增量备份的所述元数据对象标识对应的对象中,然后发送增量数据的元数据存储完成消息至备份服务器130。
以上步骤300至380描述了备份系统如何通过对象存储方式对虚拟机磁盘数据进行增量备份的方法。对虚拟机磁盘数据完成全量备份或增量备份后,为节省备份系统的存储空间,本发明实施例中,备份服务器130会检测对象存储系统140中对虚拟机磁盘数据进行的所有备份中未过期的备份的总份数。如果对象存储系统140中对磁盘数据进行的所有备份中未过期的备份的总份数超过预定值,则确定对象存储系统140中所有未过期的备份中的最早备份属于过期备份,备份系统进而会对所有未过期的备份中的最早备份进行处理以节省备份系统的存储空间。下面描述一下本发明实施例提供的过期备份的处理方法。
请参见图4,图4为本发明实施例提供的过期备份的处理方法的流程图。如图4所示,本发明实施例提供的过期备份的处理方法包括以下步骤:
400、备份服务器130确定虚拟机磁盘数据的第一过期备份后,发送第一过期备份信息获取请求至对象存储系统140。第一过期备份信息获取请求包括所述第一过期备份的元数据对象标识和与所述第一过期备份相邻的下一次备份的元数据对象标识。
在步骤400之前,备份服务器130确定虚拟机磁盘数据的第一过期备份。
确定第一过期备份的过程包括:备份服务器130会检测备份服务器130中保存的所有备份属性信息的数量,如果备份服务器130中保存的所有备份属性信息的数量超过预定值,根据备份属性信息查询对所述虚拟机磁盘数据进行的所有备份中的第一过期备份的备份标识,所述第一过期备份为截止所述当前第一时刻对象存储系统140中对所述虚拟机磁盘数据进行的所有未过期备份中的最早备份。
备份服务器130确定虚拟机磁盘数据的第一过期备份后,以及备份服务器130发送第一过期备份信息获取请求之前,会先查找所述第一过期备份的备份标识,然后根据所述第一过期备份的备份标识查找与所述第一过期备份的备份标识对应的元数据对象标识。以及,备份服务器130发送第一过期备份信息获取请求之前,会先查找与所述第一过期备份相邻的下一次备份的备份标识,然后根据与所述第一过期备份相邻的下一次备份的备份标识查找与所述第一过期备份相邻的下一次备份的备份标识对应的元数据对象标识。备份服务器130确认所述第一过期备份的元数据对象标识和与所述第一过期备份相邻的下一次备份的元数据对象标识后,发送第一过期备份信息获取请求至对象存储系统140,以指示对象存储系统140将所述第一过期备份的元数据对象标识和与所述第一过期备份相邻的下一次备份的元数据对象标识所对应的备份元数据发送至备份服务器130。
410、对象存储系统140接收到第一过期备份信息获取请求后,根据第一过期备份的元数据对象标识查找第一过期备份的备份元数据,以及根据与所述第一过期备份相邻的下一次备份的元数据对象标识查找与所述第一过期备份相邻的下一次备份的备份元数据。
411、对象存储系统140发送第一过期备份的备份元数据以及与所述第一过期备份相邻的下一次备份的备份元数据至备份服务器130。
420、备份服务器130接收到第一过期备份对应的备份元数据以及与所述第一过期备份相邻的下一次备份的备份元数据后,根据第一过期备份对应的备份元数据以及与所述第一过期备份相邻的下一次备份的备份元数据,识别出第一过期备份中的有效数据和无效数据。
确认第一过期备份中的无效数据和有效数据的具体实现方式包括:备份服务器130首先对比第一过期备份的备份元数据以及与第一过期备份相邻的下一次备份对应的备份元数据,判断第一过期备份所对应的备份元数据以及所述下一次备份所对应的备份元数据中同一排列位置是否指向同一对象,如果指向同一对象,则表明第一过期备份当中该排列位置指向的对象是有效数据;相反,指向不同的对象,则表明第一过期备份当中该排列位置指向的对象是无效数据。
421、备份服务器130确认第一过期备份中的无效数据后,创建虚拟机磁盘数据的第一删除日志,并将第一过期备份中的无效数据的指针保存至第一删除日志中。
例如基于表1所示的关于全量备份的备份元数据中的部分对象的指针以及表2所示的关于增量备份的备份元数据中的部分对象的指针,如果与表1对应的全量备份为第一过期备份,与表2对应的增量备份为与第一过期备份相邻的备份,则第一过期备份中大对象B中的第一个对象的指针B1对应的对象为无效数据,以及大对象D中的第一个对象的指针D1对应的对象为无效数据,则创建的与第一过期备份对应的第一删除日志中记录的部分无效数据的指针可参考下表3所示的内容。
表3
Figure GWB0000003500080000171
在本发明实施例中,在上述步骤421之后,即备份服务器130创建第一删除日志后,备份服务器130可以发送第一过期备份元数据删除指令至对象存储系统140。第一过期备份元数据删除指令包括与第一过期备份的备份元数据对应的元数据对象标识。第一过期备份元数据删除指令用于指示删除第一过期备份的备份元数据。备份服务器130发送第一过期备份元数据删除指令至对象存储系统140后,对象存储系统140可以根据所述第一过期备份元数据删除指令删除第一过期备份的备份元数据。
另外,在本发明实施例中,备份服务器130在创建删除日志后,备份服务器130还会删除所述第一过期备份的备份属性信息。备份服务器130删除第一过期备份的备份属性信息后,备份服务器130中保存的剩余的备份属性信息为未过期备份的备份属性信息。所以,删除第一过期备份的备份属性信息后,后续增量备份后,备份服务器130可以检测保存的所有备份属性信息的数量,以检测所有未过期备份的总份数是否超过预定值。
422、备份服务器130发送所述第一删除日志至所述对象存储系统140。
430、对象存储系统140接收到所述第一删除日志后,将第一删除日志保存至对象存储系统140中。
将第一删除日志保存至对象存储系统140后,对象存储系统140可以发送删除日志保存完成消息至备份服务器130,以通知备份服务器130已将第一删除日志保存至对象存储系统140。
后续如果虚拟机磁盘数据再有修改,备份服务器130还可以通过以上图3所示的步骤对虚拟机磁盘数据进行增量备份。
例如,关于表2对应的增量备份后,如果虚拟机磁盘数据中的大对象A中的第一个对象A1、大对象C中的第一个对象C1以及大对象E中的第二个对象E2中的数据分片有修改,则对修改的数据分片所属的对象进行增量备份后,修改后的数据分片所属的对象保存在大对象F中。如此,增量备份的备份元数据如下表4所示。
表4
Figure GWB0000003500080000181
经过与表4对应的增量备份,如果备份服务器130检测对象存储系统140中对虚拟机磁盘数据进行的所有备份中未过期的备份的总份数超过预定值,则确定对象存储系统140中所有未过期的备份中的最早备份为第二过期备份。确定第二过期备份后,备份服务器130会创建所述虚拟机磁盘数据的第二删除日志,并保存所述第二过期备份中的无效数据的指针至所述第二删除日志。所述第二过期备份为截止当前第二时刻所述对象存储系统140中对所述虚拟机磁盘数据进行的所有未过期备份中的最早备份。基于本发明实施例的过期备份处理方法,每确定一个过期备份后的处理方式可以参照上述图4所示的步骤400至430的细节,具体实现细节不再在此赘述。
例如,经过与表4对应的增量备份后,如果表2对应的增量备份为第二过期备份,则创建的第二删除日志中记录的部分无效数据的指针可参考下表5所示的内容。
表5
Figure GWB0000003500080000182
又如,关于表4对应的增量备份后,如果虚拟机磁盘数据中的大对象A中的第二个对象A2以及大对象A中的第三个对象A3中的数据分片有修改,则对修改的数据分片所属的对象进行增量备份后,修改后的数据分片所属的对象保存在大对象G中。如此,增量备份的备份元数据如下表6所示。
表6
Figure GWB0000003500080000183
经过与表6对应的增量备份,如果备份服务器130检测对象存储系统140中对虚拟机磁盘数据进行的所有备份中未过期的备份的总份数超过预定值,则确定对象存储系统140中所有未过期的备份中的最早备份为第三过期备份。确定第三过期备份后,备份服务器130会创建所述虚拟机磁盘数据的第三删除日志,并保存所述第三过期备份中的无效数据的指针至所述第三删除日志。所述第三过期备份为截止当前第三时刻所述对象存储系统140中对所述虚拟机磁盘数据进行的所有未过期备份中的最早备份。基于本发明实施例的过期备份处理方法,每确定一个过期备份后的处理方式可以参照上述图4所示的步骤400至430的细节,具体实现细节不再在此赘述。
例如,经过与表6对应的增量备份后,如果表4对应的增量备份为第三过期备份,则创建的第三删除日志中记录的部分无效数据的指针可参考下表7所示的内容。
表7
Figure GWB0000003500080000191
保存虚拟机磁盘的多个过期备份分别对应的删除日志至对象存储系统140中的目的是,备份系统后续可以根据所有删除日志确定过期备份中包含无效数据的所有对象,以对包括无效数据的所有对象进行处理。包括无效数据的所有对象中,可以即有包括无效数据和有效数据的大对象,也可以有只包括无效数据的大对象或为无效数据的对象。
备份服务器130将删除日志保存至对象存储系统140后,待检测满足删除条件时,备份服务器130根据累计的删除日志启动过期数据删除流程。下面详细描述备份服务器130如何根据累计的删除日志删除过期数据。请参见图5,图5为本发明实施例提供的备份服务器根据累计的删除日志删除过期数据的方法流程图。如图5所示,本发明实施例提供的备份服务器130根据累计的删除日志删除过期数据的方法包括以下步骤。
500、备份服务器130接收对象存储系统140发送的保存在所述对象存储系统140中的与所述第一磁盘数据对应的多条删除日志。
备份服务器130接收对象存储系统140发送的多条删除日志之前,检测是否满足删除条件,如果满足删除条件,从对象存储系统140中获取虚拟机磁盘数据的所有删除日志。检测是否超过预设删除阈值,如果超过预设删除阈值,则满足删除条件;或检测是否达到预设删除时间,如果达到预设删除时间,则满足删除条件;或自上次满足删除条件后启动计时,检测所述计时是否结束,如果所述计时结束则满足删除条件。备份服务器130可以检测与所述第一磁盘数据对应的删除日志的日志对象标识的数量是否达到预设删除阈值,以检测与所述第一磁盘数据对应的多条删除日志的数量是否达到预设删除阈值。保存在所述对象存储系统140中的与所述第一磁盘数据对应的多条删除日志,例如可以是上述示例中描述的第一删除日志、第二删除日志以及第三删除日志。
501、备份服务器130接收对象存储系统140发送的所述多条删除日志后,根据所有删除日志确定所述对象存储系统140中保存的包括无效数据和有效数据的所有大对象,以及确定只包括无效数据的所有大对象。
步骤501中,备份服务器130是根据所述包括无效数据的大对象中无效数据的数量以及包括无效数据的大对象的数据量,确定所述对象是包括无效数据和有效数据的大对象还是只包括无效数据的大对象。
备份服务器130根据所述包括无效数据的大对象中无效数据的数量以及包括无效数据的大对象的实际数据量,确定所述大对象是包括无效数据和有效数据的大对象还是只包括无效数据的大对象的实现方式为,备份服务器130根据所述包括无效数据的大对象中无效数据的数量以及无效数据的大小确定所述包括无效数据的大对象的目标数据量,以及备份服务器130会获取包括无效数据的大对象的实际数据量,如果所述包括无效数据的大对象的目标数据量小于包括无效数据的大对象的实际数据量,则包括无效数据的大对象为包括无效数据和有效数据的大对象。如果所述包括无效数据的大对象的目标数据量等于包括无效数据的大对象的实际数据量,则包括无效数据的大对象为只包括无效数据的大对象。
备份服务器130获取包括无效数据的大对象的实际数据量的实现方式为,备份服务器130发送数据量确定请求至所述对象存储系统140,所述数据量确定请求中携带包括无效数据的大对象的标识,所述数据量确定请求用于指示所述对象存储系统140发送所述包括无效数据的大对象的实际数据量。对象存储系统140接收到所述数据量确定请求后,发送数据量属性信息至备份服务器130。备份服务器130接收数据量属性信息,所述数据量属性信息中携带包括无效数据的大对象的实际数据量。
例如,基于上述根据所述包括无效数据的大对象中无效数据的数量以及包括无效数据的大对象的实际数据量,确定所述大对象是包括无效数据和有效数据的大对象还是只包括无效数据的大对象的实现方式,备份服务器130根据上述示例中描述的第一删除日志、第二删除日志以及第三删除日志确定的包括无效数据的大对象有大对象B、大对象D、大对象A、大对象C以及大对象E。其中大对象B为包括无效数据和有效数据的大对象,大对象B为只包括无效数据的大对象,大对象A为只包括无效数据的大对象,大对象C为只包括无效数据的大对象,大对象E为包括无效数据和有效数据的大对象。
可替换的,备份服务器确定大对象为包括有效数据和无效数据的大对象的方式还有两种,第一种:备份服务器在确定包括无效数据的大对象后,向对象存储系统请求该大对象中所有对象的指针,如果大对象中的部分对象的指针为删除日志中记录的该大对象的无效数据的指针,则确定该大对象为包括有效数据和无效数据的大对象。第二种:备份服务器在确定包括无效数据的大对象后,向对象存储系统请求该大对象中所有对象的指针的数量,如果删除日志中记录的该大对象的所有无效数据的指针的数量小于向对象存储系统请求的大对象中的所有对象的指针的数量,则确定该大对象为包括有效数据和无效数据的大对象。
同理,可替换的,备份服务器确定大对象为只包括无效数据的大对象的方式还有两种,第一种:备份服务器在确定包括无效数据的大对象后,向对象存储系统请求该大对象中所有对象的指针,如果大对象中的所有对象的指针为删除日志中记录的该大对象的无效数据的指针,则确定该大对象为包括有效数据和无效数据的大对象。第二种:备份服务器在确定包括无效数据的大对象后,向对象存储系统请求该大对象中所有对象的指针的数量,如果删除日志中记录的该大对象的所有无效数据的指针的数量等于向对象存储系统请求的大对象中的所有对象的指针的数量,则确定该大对象为只包括无效数据的大对象。
在步骤501中,确定包括无效数据和有效数据的所有大对象,以及确定只包括无效数据的所有大对象后分别对应不同的处理方式,可以参考如下描述。
备份服务器130根据所有删除日志确定了包括无效数据和有效数据的所有大对象后,顺序执行如下步骤510至560,即备份服务器130从对象存储系统140中获取包括无效数据和有效数据的所有大对象,将包括无效数据和有效数据的所有大对象中的有效数据保存至至对象存储系统140中至少一个新创建的新大对象中,然后指示对象存储系统140删除包括无效数据和有效数据的所有大对象,具体实现请参见以下步骤510至560。
以及,备份服务器130根据所有删除日志确定了只包括无效数据的所有大对象后,顺序执行如下步骤570至580,即备份服务器130指示对象存储系统140删除只包括无效数据的所有对象,具体实现请参见一下步骤570和580。
在本实施方式中,步骤570和步骤510的执行顺序不分先后。
下面先描述备份服务器130根据多条删除日志确定了包括无效数据和有效数据的所有大对象后的处理方式,具体包括如下步骤510至560。
510、备份服务器130根据所有删除日志确定所述对象存储系统140中至少一个大对象包括无效数据和有效数据后,发送大对象获取请求至对象存储系统140。大对象获取请求包括所述包括无效数据和有效数据的大对象的标识。
例如,所有过期备份中包括无效数据和有效数据的所有大对象中包括第一目标大对象。大对象获取请求包括第一目标大对象的标识。第一目标大对象可以是大对象B和大对象E中的任一大对象。
大对象获取请求包括至少一个包括有效数据和无效数据的大对象的标识。例如,如果备份服务器130根据若干删除日志确定的包括无效数据和有效数据的大对象的数量不止一个,则备份服务器130发送大对象获取请求的实现方式有多种。例如,备份服务器130通过发送多个大对象获取请求至对象存储系统140,以请求获取多个包括无效数据和有效数据的大对象,每个大对象获取请求包括一个包括有效数据和无效数据的大对象的标识。或者,备份服务器130发送一个大对象获取请求,以请求获取多个大对象,所述大对象获取请求包括多个包括有效数据和无效数据的大对象的标识。
511、备份服务器130确定所述对象存储系统140中包括无效数据和有效数据的大对象后,生成至少一个新大对象的标识。至少一个新大对象的标识与至少一个新大对象一一对应。在本实施方式中,步骤510和511的执行顺序不分先后。本实施例中,以至少一个新大对象包括第一新大对象为例。
备份服务器130确定所述对象存储系统140中包括无效数据和有效数据的大对象后,根据包括无效数据和有效数据的至少一个大对象中的有效数据的数量和大对象实际可以保存的多个对象的数量确定创建的新大对象的标识的数量,创建的新大对象的标识的数量为包括无效数据和有效数据的至少一个大对象中的所有有效数据的数量与大对象实际可以保存的多个对象的数量的商进行取整加1运算后获得的数量。例如,包括无效数据和有效数据的大对象有两个,分别是大对象B和大对象E。大对象B中的B2以及大对象E中的E1是有效数据。有效数据的数量为2个,如果新大对象实际可以保存的对象的数量为3个,则创建新大对象的标识的数量为1。
可替换的,备份服务器130在创建新大对象的标识之前,可以先根据确认的有效数据的指针的排列顺序,依次确定待保存至新大对象的多个有效数据的指针,当依次确定的多个有效数据的指针的数量达到大对象实际可以保存的多个对象的数量时,创建新大对象的标识。对于后续剩余的有效数据,备份服务器130也可以在后续剩余的有效数据中,按照有效数据的指针的排列顺序,依次确定待保存至另一个新大对象的多个有效数据的指针,当依次确定的多个有效数据的指针的数量达到大对象实际可以保存的多个对象的数量时,创建所述另一个新大对象的标识,以此类推以创建多个新大对象的标识。
520、对象存储系统140接收到大对象获取请求后,根据所述大对象获取请求查询大对象的标识对应的大对象。例如,对象存储系统140根据所述大对象获取请求中的第一目标大对象的标识查询对应的第一目标大对象。
在步骤510之后,执行步骤520。例如,对象存储系统140根据所述大对象获取请求中的第一目标大对象的标识查询对应的第一目标大对象可以是大对象B或大对象E。
521、对象存储系统140发送查询到的大对象至备份服务器130。在步骤520之后,执行步骤步骤521。
例如,对象存储系统140发送查询到的第一目标大对象至备份服务器130。比如对象存储系统140发送查询到的大对象B或大对象E至备份服务器130。
530、备份服务器130接收到包括无效数据和有效数据的至少一个大对象后,创建有效数据移动指令。
所述有效数据移动指令包括新大对象的标识、包括所述无效数据和有效数据的至少一个大对象中至少一个有效数据。所述有效数据移动指令用于指示所述对象存储系统140将所述包括无效数据和有效数据的大对象中的至少一个有效数据保存至与所述新大对象的标识对应的所述新大对象中。
所述有效数据移动指令还包括有效数据移动后在新大对象的位置标识。有效数据移动后在新大对象的位置标识用于表示有效数据移动后在新大对象中的位置。
备份服务器130接收到包括无效数据和有效数据的大对象后,解析包括无效数据和有效数据的大对象,确认包括无效数据和有效数据的大对象中的有效数据。备份服务器130确定了至少一个大对象中的至少一个有效数据后,创建有效数据移动指令。
有效数据移动指令中的至少一个有效数据的实现方式有多种,可选的一种实现方式中,有效数据移动指令中的至少一个有效数据可以由两个或两个以上包括无效数据和有效数据的的多个大对象中每个大对象中的至少一个有效数据组成。例如,有效数据移动指令中的至少一个有效数据可以由包括无效数据和有效数据的至少一个大对象中所有有效数据以及包括无效数据和有效数据的其他大对象中的部分或全部有效数据组成。
备份服务器130创建有效数据移动指令的数量不受本申请实施例的限制。例如备份服务器130可以创建至少一个有效数据移动指令。即可以创建一个有效数据移动指令,也可以创建多个有效数据移动指令。每个有效数据移动指令中的至少一个有效数据可以由包括所述无效数据和所述有效数据的至少一个大对象中的一部分或全部有效数据组成。
当每个有效数据移动指令中的至少一个有效数据由包括所述无效数据和所述有效数据的至少一个大对象中的一部分有效数据组成时,备份服务器130可以通过发送多个有效数据移动指令,以实现包括所述无效数据和所述有效数据的大对象中的所有有效数据至对象存储系统140的发送。
以上述包括有效数据和无效数据的第一目标大对象为例说明所有有效数据移动指令的实现方式,例如所述有效数据移动指令包括所述第一新大对象的标识、所述第一目标大对象中至少一个有效数据,所述有效数据移动指令用于指示所述对象存储系统140将所述有效数据移动指令中的所述第一目标大对象中的所述至少一个有效数据保存至所述第一新大对象的标识对应的第一新大对象中。例如第一目标大对象为大对象B时,所述有效数据移动指令包括的所述第一目标大对象中至少一个有效数据可以是B2。例如第一目标大对象为大对象E时,所述有效数据移动指令包括的所述第一目标大对象中至少一个有效数据可以是E1。备份服务器130可以创建两个有效数据移动指令,一个有效数据移动指令包括有效数据B2,另一个有效数据移动指令包括E1,也可以创建一个有效数据移动指令,该有效数据移动指令包括两个有效数据B2和E1。
531、发送有效数据移动指令至对象存储系统140。
540、对象存储系统140接收到有效数据移动指令后,将有效数据移动指令中包括的至少一个有效数据保存至对象存储系统140中与所述新大对象的标识对应的所述新大对象中。
在步骤540之后,即对象存储系统140将有效数据移动指令中包括的至少一个有效数据保存至对象存储系统140中与所述新大对象的标识对应的所述新大对象后,发送有效数据保存完成信息至备份服务器130,以通知备份服务器130有效数据移动指令中包括的所有有效数据保存完成。
备份服务器130根据所有删除日志确定包括无效数据和有效数据的所有大对象后,通过上述步骤510至540将包括无效数据和有效数据的所有大对象中的所有有效数据保存至对象存储系统140中至少一个新大对象中。
基于上述步骤510至540,在对象存储系统140将包括无效数据和有效数据的所有大对象中的有效数据保存至对象存储系统140中的至少一个新大对象后,后续执行步骤541至560,即备份服务器130创建有效数据移动后的指针,有效数据移动后的指针用于表示有效数据保存至新大对象后在新大对象中的位置。备份服务器130创建有效数据移动后的指针后,由备份服务器130记录有效数据移动前和移动后的指针的对应关系,删除备份服务器130根据所有删除日志确定的包括无效数据和有效数据的大对象,以实现过期数据的删除。具体过程详见如下步骤541至560。
541、备份服务器130确定有效数据移动后的指针。步骤541与步骤531的执行顺序不分先后。
备份服务器130接收到对象存储系统140发送的有效数据保存完成信息后,可以确定有效数据移动后的指针。有效数据移动后的指针用于表示有效数据保存至新大对象后在新大对象中的位置。备份服务器130可以根据上述步骤530中创建的有效数据移动指令中的有效数据移动后在新大对象中的位置标识确定有效数据移动后的指针。
542、备份服务器130创建移动日志,并保存有效数据移动前和移动后的指针的对应关系至所述移动日志中。
在步骤542中,备份服务器130创建移动日志之前,预先创建移动日志的对象标识,保存虚拟机磁盘标识和所述移动日志的对象标识的对应关系。
由于备份服务器130对虚拟机磁盘数据进行备份后,客户端110对虚拟机磁盘数据的恢复频率不高,因此本发明实施例提供的过期备份处理方法中,每次处理过期备份时,备份系统在将过期备份中的有效数据移动至新大对象后,并没有对所有未过期的备份分别对应的备份元数据进行更新,而是通过创建移动日志,将过期备份中有效数据移动后的指针保存至所述移动日志中,以确保后续通过未过期备份中的待恢复备份对虚拟机磁盘数据进行恢复时,可以根据移动日志中记录的有效数据移动后的指针确定待恢复备份对应的备份元数据,进而根据待恢复备份对应的备份元数据从对象存储系统140中获取待恢复备份对应的虚拟机磁盘数据。
移动日志是在备份系统处理过期备份时对过期备份中的有效数据进行移动后创建的,以便后续在恢复未过期的备份时,有针对性的对待恢复备份对应的备份元数据进行更新,简化了过期备份处理备份元数据的复杂度,提高了过期备份的处理效率。
543、备份服务器130发送移动日志至对象存储系统140。
备份服务器130保存有效数据移动前和移动后的指针的对应关系至所述移动日志中后,可以发送移动日志存储请求至对象存储系统140。所述移动日志存储请求包括移动日志的对象标识和移动日志。所述移动日志存储请求用于指示对象存储系统140将所述移动日志存储请求中的所述移动日志保存至所述移动日志的对象标识对应的对象中。
544、对象存储系统140接收到移动日志后,保存移动日志。
对象存储系统140接收到所述移动日志存储请求后,保存移动日志至所述移动日志的对象标识对应的对象中。
在步骤544之后,对象存储系统140发送大对象写完成消息至备份服务器130。对象存储系统140发送大对象写完成消息至备份服务器130的目的是通知备份服务器130已完成移动日志的保存。
550、发送第一对象删除指令至对象存储系统140。第一对象删除指令包括备份服务器130根据多条删除日志确定的包括无效数据和有效数据的每个大对象的标识。
备份服务器130可以在接收到大对象写完成消息后,发送第一对象删除指令至对象存储系统140。
560、对象存储系统140接收到第一对象删除指令后,根据第一对象删除指令删除包括无效数据和有效数据的每个大对象的标识分别对应的大对象。
下面描述备份服务器130根据所有删除日志确定了只包括无效数据的所有大对象后的处理方式,具体包括如下步骤570和580。
备份服务器130根据多条删除日志确定了只包括无效数据的所有大对象后,顺序执行如下步骤570至580,即备份服务器130指示对象存储系统140删除只包括无效数据的所有大对象。具体实现请参见以下步骤570和580。
570、备份服务器130根据多条删除日志确定只包括无效数据的所有大对象后,发送第二对象删除指令至对象存储系统140。第二对象删除指令包括备份服务器130根据多条删除日志确定的只包括无效数据的每个大对象的标识。
580、对象存储系统140接收到第二对象删除指令后,根据第二对象删除指令删除大对象的标识对应的大对象。
在本实施方式中,以上步骤510至540描述了备份系统如何将备份服务器130根据所有删除日志确定的包括无效数据和有效数据的所有大对象中的有效数据保存至对象存储系统140。具体实现方法为备份服务器130从对象存储系统140请求以及获取包括无效数据和有效数据的所有大对象,然后由备份服务器130将包括无效数据和有效数据的所有大对象中的有效数据发送至对象存储系统140进行保存。
在另一种实现方式中,区别于步骤510至540描述的备份系统对有效数据进行保存的方法,本发明实施例还提供另一种有效数据的保存方法,即备份服务器130根据上述确认无效数据和有效数据的方法确认包含无效数据和有效数据的所有大对象后,通过多段复制技术指示对象存储系统140将包括无效数据和有效数据的所有大对象中的有效数据保存至对象存储系统140中至少一个新创建的新大对象中。与上述步骤510至540描述的有效数据的保存方法相比,本发明实施例提供的这种有效数据的保存方法,备份服务器130根据多条多条删除日志确定的包括无效数据和有效数据的所有大对象后,备份服务器130不用从对象存储系统140中请求读取包含无效数据和有效数据的所有大对象,而是通过多段复制技术指示对象存储系统140将包括无效数据和有效数据的所有大对象中的有效数据保存至对象存储系统140中至少一个新创建的新大对象中,减少了备份服务器130与对象存储系统140的交互流程,提高了备份系统的处理性能。本发明实施例提供的通过多段复制技术指示对象存储系统140保存有效数据的方法的具体实现方式可以参考后续图6描述的备份服务器130通过多段复制技术指示对象存储系统140保存有效数据的流程。
下面详细描述一下备份服务器130通过多段复制技术指示对象存储系统140保存有效数据的方法。请参见图6,图6为本发明实施例提供的备份服务器通过多段复制技术指示对象存储系统保存有效数据的方法流程图。如图6所示,本发明实施例提供的备份服务器130通过多段复制技术指示对象存储系统140保存有效数据的方法包括以下步骤。
610、备份服务器130根据所有删除日志确定包括无效数据和有效数据的所有大对象后,创建至少一个新大对象的标识。本步骤610创建至少一个新大对象的标识的细节可以参考上述步骤511的实现方式,具体实现细节不再在此赘述。
611、备份服务器130创建有效数据移动指令。
所述有效数据移动指令包括所述新大对象的标识和包括有效数据和无效数据的至少一个大对象分别对应的有效数据信息,所述有效数据信息包括所述包括无效数据和有效数据的大对象中至少一个连续的有效数据段中每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的偏移位置,和/或者所述包括无效数据和有效数据的大对象中至少一个有效数据中每个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置。
在步骤611之前,备份服务器130可以根据步骤501确认所述对象存储系统140中保存的包括无效数据和有效数据的所有大对象的多个有效数据,确认有效数据在包括所述无效数据和有效数据的大对象中的偏移位置。
备份服务器130可以根据上述步骤611之前确认的有效数据在包括所述无效数据和有效数据的大对象中的偏移位置,创建有效数据移动指令。
如果所述有效数据信息包括所述包括无效数据和有效数据的大对象中至少一个有效数据中每个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置,至少一个有效数据可以是所述包括无效数据和有效数据的大对象中非连续的多个有效数据。
如果所述有效数据信息包括所述包括无效数据和有效数据的大对象中至少一个连续的有效数据段中每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的偏移位置时,有效数据移动指令用于指示对象存储系统140根据有效数据信息,将对象存储系统140中保存的所述至少一个连续的有效数据段保存至所述新大对象的标识对应的新大对象中。
每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的偏移位置的表现方式有两种,下面对每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的偏移位置的两种表现方式分别进行说明。
每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的偏移位置的第一种表现方式为,每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的起始位置和每个连续的有效数据段的大小。其中,每个连续的有效数据段的大小是根据每个连续的有效数据段包括的有效数据的数量确定的,每个有效数据分别为一个对象,由于每个对象包括的数据分片的数量是固定的,因此每个对象的大小是固定的。这样备份服务器130可以根据对象的大小以及每个连续的有效数据段包括的有效数据的数量确定每个连续的有效数据段的大小,每个连续的有效数据段的大小为对象的大小以及每个连续的有效数据段包括的有效数据的数量的乘积。每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的起始位置是根据每个连续的有效数据段的第一个有效数据在所述包括无效数据和有效数据的大对象中的起始位置确定的。如果一段连续的有效数据的第一个有效数据为所述包括无效数据和有效数据的大对象中的第j个对象,其中,所述j为大于0的整数,则该段连续的有效数据的第一个有效数据在所述包括无效数据和有效数据的大对象中的起始位置为(j-1)与对象的大小的乘积。例如,一段连续的有效数据的第一个有效数据为所述包括无效数据和有效数据的大对象中的第2个对象,如果对象的大小为16M,则该段连续的有效数据的第一个有效数据的起始位置为(2-1)与16M的乘积,即该段连续的有效数据的第一个有效数据的起始位置为16M。因此,该段连续的有效数据的起始位置为16M。
每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的偏移位置的第二种表现方式为,每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的起始位置和结束位置。每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的起始位置如上第一种表现方式中的细节描述,在此不再赘述。每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的结束位置是根据每个连续的有效数据段的最后一个有效数据在所述包括无效数据和有效数据的大对象中的结束位置确定的。如果一段连续的有效数据的最后一个有效数据为所述包括无效数据和有效数据的大对象中的第n个有效数据,其中,所述n为大于0的整数,则该段连续的有效数据的最后一个有效数据在所述包括无效数据和有效数据的大对象中的结束位置为所述n与对象的大小的乘积。
如果所述有效数据信息包括所述包括无效数据和有效数据的大对象中至少一个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置,至少一个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置有两种表现形式,下面分别进行说明。
至少一个有效数据中每个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置的第一种表现形式为,每个有效数据在所述包括无效数据和有效数据的大对象中的起始位置和有效数据的大小。有效数据为一个对象,因此有效数据的大小是固定的。每个有效数据在所述包括无效数据和有效数据的大对象中的起始位置的确定方式为,如果该有效数据为所述包括无效数据和有效数据的大对象中的第k个对象,其中,所述k为大于0的整数,则该有效数据的起始位置为(k-1)与对象的大小的乘积。例如,该有效数据为所述包括无效数据和有效数据的大对象中的第4个对象,如果对象的大小为16M,则该有效数据的起始位置为(4-1)与16M的乘积,即该有效数据的起始位置为48M。
至少一个有效数据中每个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置的第二种表现形式为,每个有效数据在所述包括无效数据和有效数据的大对象中的起始位置和结束位置。每个有效数据在所述包括无效数据和有效数据的大对象中的起始位置如上第一种表现方式中的细节描述,在此不再赘述。每个有效数据在所述包括无效数据和有效数据的大对象中的结束位置的确定方式为,如果该有效数据为所述包括无效数据和有效数据的大对象中的第t个对象,其中,所述t为大于0的整数,则该有效数据的结束位置为t与对象的大小的乘积。例如,该有效数据为所述包括无效数据和有效数据的大对象中的第4个对象,如果对象的大小为16M,则该有效数据的结束位置为4与16M的乘积,即该有效数据的结束位置为64M。
有效数据移动指令中可以包括多个所述包括有效数据和无效数据的大对象分别对应的有效数据信息。每个大对象对应的有效数据信息包括至少一个连续的有效数据段中每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的偏移位置,和/或者至少一个有效数据中每个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置。
备份服务器130可以创建至少一个有效数据移动指令,每个有效数据移动指令中的有效数据信息包括所述包括无效数据和有效数据的大对象中一部分有效数据的偏移位置。所以备份服务器130可以通过发送多个有效数据移动指令实现包括所述无效数据和所述有效数据的大对象中的所有有效数据的偏移位置至对象存储系统140的发送。所述包括无效数据和有效数据的大对象中一部分有效数据可以是所述包括无效数据和有效数据的大对象中部分连续的有效数据段和/或部分有效数据。所述包括无效数据和有效数据的大对象中一部分有效数据的偏移位置包括部分连续的有效数据段中每个连续的有效数据段在所述包括无效数据和有效数据的大对象中的偏移位置,和/或部分有效数据中每个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置。
612、备份服务器130发送有效数据移动指令至对象存储系统140。
620、对象存储系统140接收到有效数据移动指令后,根据有效数据移动指令中的有效数据信息中至少一个连续的有效数据段和/或至少一个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置,将对象存储系统140中保存的包括无效数据和有效数据的大对象中的至少一个连续的有效数据段和/或至少一个有效数据保存至所述新大对象的标识对应的新大对象中。
对象存储系统140接收到有效数据移动指令后,会先根据有效数据移动指令中所述新大对象的标识查询是否有创建所述新大对象的标识对应的新大对象。如果查询没有创建所述新大对象的标识对应的新大对象,则对象存储系统140会根据所述新的大对象的标识创建一个新的大对象,然后根据有效数据移动指令中的有效数据信息中至少一个连续的有效数据段和/或至少一个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置,将对象存储系统140中保存的包括无效数据和有效数据的大对象中的至少一个连续的有效数据段和/或至少一个有效数据保存至所述新大对象的标识对应的新大对象中。
对象存储系统140接收到有效数据移动指令后,如果根据所述新大对象的标识查询已创建所述新大对象的标识对应的新大对象,则对象存储系统140会根据有效数据移动指令中的有效数据信息中至少一个连续的有效数据段和/或至少一个有效数据在所述包括无效数据和有效数据的大对象中的偏移位置,将对象存储系统140中保存的包括无效数据和有效数据的大对象中的至少一个连续的有效数据段和/或至少一个有效数据保存至所述新大对象的标识对应的新大对象中。
备份服务器130根据所有删除日志确定包括无效数据和有效数据的所有大对象后,通过上述步骤610至620将包括无效数据和有效数据的所有大对象中的所有有效数据保存至对象存储系统140中至少一个新大对象中。
与上述步骤510至540描述的保存有效数据的方法相比,基于图6所示的备份服务器130通过多段复制技术指示对象存储系统140保存有效数据的方法,备份服务器130根据多条删除日志确定的包括无效数据和有效数据的所有大对象后,备份服务器130不用从对象存储系统140中请求读取包含无效数据和有效数据的所有大对象,而是通过多段复制技术指示对象存储系统140将包括无效数据和有效数据的所有大对象中的有效数据保存至对象存储系统140的至少一个新大对象中,减少了备份服务器130与对象存储系统140的交互流程,提高了备份系统的处理性能。
在图6所示的步骤620之后,即对象存储系统140将包括无效数据和有效数据的所有大对象中的有效数据保存至对象存储系统140中的至少一个新大对象后,后续执行步骤541至560,即备份服务器130创建有效数据移动后的指针,有效数据移动后的指针用于表示有效数据保存至新大对象后在新大对象中的位置。备份服务器130创建有效数据移动后的指针后,由备份服务器130记录有效数据移动前和移动后的指针的对应关系,删除备份服务器130根据多条删除日志确定的包括无效数据和有效数据的大对象,以实现过期数据的删除。具体过程详见步骤541至560,在此不再赘述。
备份系统对虚拟机磁盘数据进行备份后,如果客户端110对虚拟机磁盘数据有恢复的需求,客户端110会发送数据恢复请求至备份服务器130。备份服务器130接收到数据恢复请求后会执行恢复流程对虚拟机磁盘数据进行恢复。备份服务器130对虚拟机磁盘数据进行恢复时,根据数据恢复请求中包括的待恢复备份标识获取待恢复备份对应的虚拟机磁盘数据,通过待恢复备份对应的虚拟机磁盘数据对虚拟机磁盘数据进行恢复,其中待恢复备份属于未过期的备份。
由于备份服务器130对虚拟机磁盘数据进行备份后,客户端110对虚拟机磁盘数据的恢复频率不高,因此本发明实施例提供的过期备份处理方法中,每次处理过期备份时,备份系统在将过期备份中的有效数据移动至新大对象后,并没有对所有未过期的备份分别对应的备份元数据进行更新,而是通过创建移动日志,将过期备份中有效数据移动后的指针保存至所述移动日志中,以确保后续通过未过期备份中的待恢复备份对虚拟机磁盘数据进行恢复时,可以根据移动日志中记录的有效数据移动后的指针确定待恢复备份对应的备份元数据,进而根据待恢复备份对应的备份元数据从对象存储系统140中获取待恢复备份对应的虚拟机磁盘数据。下面通过图7描述本发明实施例提供的如何通过移动日志对虚拟机磁盘数据进行恢复的方法。
请参见图7,图7为本发明实施例提供的恢复虚拟机磁盘数据的方法流程图。如图7所示,本发明实施例提供的虚拟机磁盘数据的恢复方法包括以下步骤。
700、备份服务器130接收客户端110发送的数据恢复请求。
所述数据恢复请求包括目标磁盘标识、虚拟机磁盘标识和与虚拟机磁盘数据的待恢复备份对应的待恢复备份标识。所述数据恢复请求用于指示基于待恢复备份标识对应的待恢复备份,恢复虚拟机磁盘数据至目标磁盘中。所述虚拟机磁盘数据包括连续的若干数据分片。与所述数据恢复请求中的待恢复备份标识对应的虚拟机磁盘数据的备份为待恢复备份。
目标磁盘标识例如可以是“生产数据”或者“业务数据”等中文字符,也可以是字母、数字或其他符号,也可以是字母、数字或其他符号的组合。具体实现不受本实施例的限制。
目标磁盘可以是之前用于存储虚拟机磁盘数据的虚拟机磁盘,也可以是其他磁盘。目标磁盘可以部署于虚拟机磁盘所在的存储节点120中或备份服务器130中,也可以部署于其他物理设备中,例如是其他的存储设备,可以是存储阵列。
在本步骤700中,所述备份服务器130可以接收客户端110发送的数据恢复请求。数据恢复请求中的待恢复备份标识可以通过备份时间标识或者备份版本标识或者备份次数标识实现。
701、所述备份服务器130创建待恢复备份的元数据获取请求。所述待恢复备份的元数据获取请求包括虚拟机磁盘标识和待恢复备份标识。
702、所述备份服务器130发送待恢复备份的元数据获取请求至对象存储系统140。
所述备份服务器130预先保存有所述待恢复备份标识与所述待恢复备份的备份元数据对应的元数据对象标识之间的对应关系。所述备份服务器130发送所述元数据获取请求之前,先根据所述待恢复备份标识与所述待恢复备份的备份元数据对应的元数据对象标识之间的对应关系,查找所述待恢复备份的备份元数据对应的元数据对象标识;然后根据所述待恢复备份的备份元数据对应的元数据对象标识创建所述待恢复备份的元数据获取请求。所述元数据获取请求包括所述待恢复备份的备份元数据对应的元数据对象标识,所述待恢复备份的元数据获取请求用于指示所述对象存储系统140根据与所述待恢复备份的备份元数据对应的元数据对象标识,获取所述待恢复备份的备份元数据。
703、所述备份服务器130发送移动日志获取请求至对象存储系统140。所述移动日志获取请求包括移动日志的对象标识。所述移动日志获取请求用于指示对象存储系统140发送所述虚拟机磁盘的所有移动日志。移动日志以对象存储方式保存在所述对象存储系统140中。
所述备份服务器130预先保存有虚拟机磁盘标识和移动日志的对象标识的对应关系。所述备份服务器130根据虚拟机磁盘标识和移动日志的对象标识的对应关系查找移动日志的对象标识。
步骤703与702的执行顺序不分先后。
710、对象存储系统140根据待恢复备份的元数据获取请求查找待恢复备份的备份元数据。
711、对象存储系统140根据移动日志的对象标识查找移动日志的对象标识对应的移动日志。
步骤711和710的执行顺序不分先后。
712、对象存储系统140发送与移动日志的对象标识对应的移动日志至备份服务器130。
步骤712和710的执行顺序不分先后。
713、对象存储系统140发送待恢复备份的备份元数据至备份服务器130。
步骤713和712的执行顺序不分先后。以及,步骤713和711的执行顺序不分先后。
720、备份服务器130接收到对象存储系统140发送的待恢复备份的备份元数据以及虚拟机磁盘的所有移动日志后,根据所有移动日志更新待恢复备份的备份元数据,获得修改后的备份元数据。
由于在本发明实施例提供的过期备份处理方法中,备份系统对备份类型属于增量备份的过期备份处理后,并没有对未过期备份的备份元数据进行更新,所以备份服务器130在对虚拟机磁盘数据进行恢复时,备份服务器130接收到基于本发明实施例提供的过期备份处理方法所创建的所有移动日志之后,需要根据所有移动日志中记录的有效数据移动后的指针对待恢复备份的备份元数据进行更新。
备份服务器130根据所有移动日志更新待恢复备份的备份元数据时,备份服务器130将备份元数据中与移动日志中记录的有效数据移动前的相同指针进行修改,修改后的指针为移动日志中记录的与所述有效数据移动前的相同指针对应的有效数据移动后的指针。
721、备份服务器130获得待恢复备份对应的修改后的备份元数据后,根据修改后的备份元数据创建待恢复备份对象获取请求。所述待恢复备份对象获取请求包括修改后的备份元数据中记录的的指针。
备份服务器130对待恢复备份的备份元数据进行更新获得修改后的备份元数据后,以及创建待恢复备份数据获取请求之前,先按照所述修改后的备份元数据中记录的指针的排列顺序依次确认多个连续的指针,所述多个连续的指针对应的多个对象属于同一个大对象。然后备份服务器130创建待恢复备份对象获取请求,所述待恢复对象获取请求包括所述多个连续的指针。所述待恢复对象获取请求用于指示对象存储系统140根据一个待恢复对象获取请求查找待恢复备份中同一个大对象中的多个对象。如果同一个大对象中的多个对象的指针在待恢复备份对应的备份元数据中不连续,则备份服务器130需要创建多个待恢复备份对象获取请求,每个待恢复备份对象获取请求只包括连续的多个指针或一个独立的指针。
722、备份服务器130发送所述待恢复备份对象获取请求至对象存储系统140。
730、对象存储系统140接收到所述待恢复备份对象获取请求后,根据所述修改后的备份元数据中记录的指针查找所述待恢复备份对应的虚拟机磁盘数据中的对象。
731、对象存储系统140发送查找到的所述待恢复备份对应的虚拟机磁盘数据中的对象。
740、备份服务器130接收到所述待恢复备份对应的虚拟机磁盘数据中的对象后,发送待恢复备份恢复指示至目标磁盘标识对应的目标磁盘所在的存储节点120。待恢复备份恢复指示包括所述待恢复备份对应的虚拟机磁盘数据中的对象和目标磁盘标识。
750、目标磁盘所在的存储节点120接收到待恢复备份对应的虚拟机磁盘数据中的对象后,将待恢复备份对应的虚拟机磁盘数据中的对象保存至目标磁盘标识对应的目标磁盘。
由于处理过期备份时,不同大对象中的有效数据会保存至同一个新大对象中,且没有对未过期备份的备份元数据中的指针进行修改。待恢复备份也为一个未过期备份,所以基于图7所示的虚拟机磁盘数据的恢复方法,通过步骤720对待恢复备份的备份元数据更新后,属于同一个新大对象的有效数据移动后的指针在待恢复备份对应的修改后的备份元数据中不一定连续。所以,按照上述步骤721中根据连续的指针创建待恢复对象获取请求的实现方式,备份服务器130需要创建多个待恢复备份对象获取请求,并发送多个待恢复备份对象获取请求至对象存储系统140,增加了备份服务器130与对象存储系统140的交互次数,消耗了备份服务器130与对象存储系统140之间的传输资源。因此,本发明实施例还提供了一种对待恢复备份对应的修改后的备份元数据进行整理的方法,即对修改后的备份元数据中的所有指针的排列顺序进行整理,将属于同一个大对象的多个对象对应的多个指针排列在一起。本发明实施例对待恢复备份对应的修改后的备份元数据进行整理的具体实现方式有两种,下面对这两种对修改后的备份元数据进行整理的方法分别进行描述。
对待恢复备份对应的修改后后的备份元数据进行整理的第一种实现方式为,备份服务器130根据修改后的备份元数据,确认与属于同一个大对象的多个对象对应的多个指针,将所述与属于同一个大对象的多个对象对应的多个指针保存至一段连续的地址指向的第一存储空间中。以及,将修改后的备份元数据中的所有指针保存至一段连续的地址指向的第二存储空间。所述第二存储空间包括第一存储空间。
例如,备份服务器130依次确认多个大对象中每个大对象包括的多个对象对应的多个指针,将每个大对象包括的多个对象对应的多个指针保存至一个第一存储空间中,以此通过多个第一存储空间保存多个大对象中所有对象对应的多个指针。所述多个第一存储空间对应的多段连续地址相互之间可以是连续的也可以是不连续的。所述多个第一存储空间中任意两个第一存储空间对应的地址连续时,所述任意两个第一存储空间中存储的多个指针不包括独立的指针,即不存在不属于同一个大对象的对象对应的指针。所述多个第一存储空间对应的多段连续地址相互之间不连续时,所述多个第一存储空间存储的多个指针之间排列有独立的指针,即存在不属于同一个大对象的指针,所述独立的指针以及与其相邻的其他指针分别对应的对象不属于同一个大对象。
又如,备份服务器130可以确认与属于同一个大对象的多个对象对应的多个指针,以及确认不属于同一个大对象的多个独立的对象对应的多个独立的指针,然后备份服务器130将与属于同一个大对象的多个对象对应的多个指针保存至一段连续地址指向的第一存储空间中,以及,将不属于同一个大对象的多个独立的对象对应的多个指针保存至连续地址指向的第三存储空间中,所述第一存储空间的结束地址和所述第三存储空间的起始地址连续,或所述第一存储空间的起始地址和所述第三存储空间的结束地址连续。所述第二存储空间包括所述第一存储空间和所述第三存储空间,如果存在多个大对象,则所述第二存储空间包括多个所述第一存储空间。
对待恢复备份对应的修改后的备份元数据进行整理的第二种实现方式为,备份服务器130根据修改后的备份元数据,确认与属于同一个大对象的多个对象对应的多个指针,创建第一索引,保存第一索引与所述与属于同一个大对象的多个对象对应的多个指针的对应关系,以及确认不属于同一个大对象的多个独立的对象对应的多个独立的指针,创建第二索引,保存第二索引与不属于同一个大对象的独立的对象对应的独立的指针的对应关系。如果大对象有多个,则第一索引有多个,第一索引的数量和大对象的数量相同。如果独立的指针有多个,则第二索引有多个,第二索引的数量和独立的指针的数量相同。所有第一索引和所有第二索引保存在一段连续地址指向的存储空间中。
本发明实施例还提供一种不同的数据备份方法,在本发明实施例提供的数据备份方法中,在将至少一个虚拟机磁盘分别对应的虚拟机磁盘数据备份至对象存储系统140的具体实现方式包括以下步骤。
备份服务器130获取到待备份至对象存储系统140的虚拟机磁盘的连续的多个数据分片后,按照数据分片在虚拟机磁盘数据的排列位置确定符合预定数量的连续的多个数据分片组成的数据集合。
备份服务器130确定符合预定数量的连续的多个数据分片组成的第一数据集合后,会计算数据集合的弱哈希值,并创建一个新大对象的标识,保存新大对象的标识和弱哈希值的对应关系。
备份服务器130创建新大对象的标识后,备份服务器130会发送第一数据集合保存指令至对象存储系统140。所述第一数据集合保存指令包括第一数据集合以及所述新大对象的标识。第一数据集合保存指令用于指示对象存储系统140将第一数据集合保存至所述新大对象的标识对应的新大对象中。
备份服务器130将所述第一数据集合保存指令发送给对象存储系统140存储后,由对象存储系统140将所述第一数据集合保存至所述新大对象标识对应的新大对象中。
后续,备份服务器130需要将其他第二数据集合保存至对象存储系统140时,会先计算其他第二数据集合的弱哈希值,然后检测对象存储系统140中是否保存与所述其他第二数据集合的弱哈希值相近似的数据集合,如果有则查询与所述其他数据集合的弱哈希值相近似的数据集合所属的新大对象的标识,备份服务器130会检测与所述其他第二数据集合的弱哈希值相近似的数据集合所属的新大对象是否达到预定义的大小,如果检测到没有达到预定义的大小,则备份服务器130会发送另一第二数据集合保存指令至对象存储系统140,所述另一第二数据集合保存指令包括所述其他第二数据集合以及与所述其他第二数据集合的弱哈希值相近似的数据集合所属的新大对象的标识。
对象存储系统140接收到所述另一第二数据集合保存指令后,会将所述其他第二数据集合保存至与所述其他第二数据集合的弱哈希值相近似的数据集合所属的新大对象。例如与所述其他第二数据集合的弱哈希值相近似的数据集合可以是第一数据集合。
下面描述本发明实施例提供的备份服务器的结构。备份服务器具有实现上述系统实施例中备份服务器130的功能,所述功能可以由硬件执行相应的软件实现。
请参考图8,图8为本发明实施例提供的一种备份服务器的结构图。如图8所示,备份服务器130包括控制器210和存储设备220。控制器210和存储设备220连接。图8所示的备份服务器130可以应用于图1所示的存储系统中。存储设备220用于为控制器210提供存储服务。
控制器210,用于接收到客户端110发送的数据备份请求时,或者确定到达预设的时间时,将存储节点120的磁盘上的数据全量备份或者增量备份至对象存储系统140中,并且创建并保存备份元数据和备份属性信息。其中,全量备份是指将存储节点120的磁盘上的所有数据备份至存储系统,增量备份是指将存储节点120的磁盘上有修改的数据备份至对象存储系统。备份元数据用于表示磁盘数据中的每个对象在磁盘数据中的位置。备份元数据中可以记录组成磁盘数据的每个对象的标识及指针,并且按照对象在磁盘中的排列顺序来记录每个对象的指针。所述备份属性信息包括备份的备份标识、备份时间和所述备份元数据的标识。该控制器210创建备份属性信息后,还会保存存储节点120的磁盘的磁盘标识与备份属性信息的对应关系。
通常,在客户端110发送的数据备份请求中要包含需要备份的磁盘的磁盘标识,该控制器210将该磁盘标识所指代的磁盘上的数据全量备份或增量备份至对象存储系统140中。具体的全量备份和增量备份的过程请参考上述方法实施例中关于备份服务器130实现全量备份和增量备份的描述,在此不再赘述。
对该磁盘的磁盘数据进行全量备份或增量备份后,系统中会产生越来越多的备份。为了节省系统的存储空间,需要对存储系统中的备份进行管理。本发明实施例提供的备份系统中的备份服务器130会根据需要删除过期备份。
控制器210,用于检测到该磁盘的所有备份属性信息的总份数超过预定值时,根据所有备份属性信息中的备份时间确定最早备份为过期备份。控制器210确定过期备份后,通过该过期备份的备份元数据以及与过期备份相邻的下一次备份的备份元数据识别过期备份中的无效数据,创建删除日志,将过期备份中的无效数据的指针保存至删除日志中。创建删除日志后,控制器210还用于删除该过期备份的备份属性信息,以及创建并保存磁盘标识和删除日志的标识的对应关系。其中,所述无效数据指的是相对于与所述过期备份相邻的下一次备份,过期备份中的包括被修改的数据分片的对象。
控制器210检测是否满足删除条件后,根据磁盘标识和删除日志的标识的对应关系,获取与所述磁盘数据对应的多条删除日志。该删除条件可以是与所述磁盘数据对应的多条删除日志的数量达到预设删除阈值,或是达到预设删除时间,或是自上次满足删除条件后启动计时直至所述计时结束。
控制器210,还用于根据所述多条删除日志确定所述对象存储系统140中保存的包括有效数据和所述无效数据的目标大对象,以及确定只包括无效数据的大对象。其中,所述有效数据指的是相对于与所述过期备份相邻的下一次备份,过期备份中的包括没有修改的数据分片的对象。
在确定所述对象存储系统140中保存的包括有效数据和所述无效数据的目标大对象后,控制器210,还用于向所述对象存储系统140发送数据迁移指示和对象删除指示,所述数据迁移指示用于指示所述对象存储系统140将所述目标大对象中的所述有效数据迁移至另一大对象中,所述对象删除指示用于指示所述对象存储系统140删除所述目标大对象。在确定只包括无效数据的大对象后,控制器210,还用于向所述对象存储系统140发送对象删除指示,所述对象删除指示用于指示所述对象存储系统140删除该只包括无效数据的大对象。
如果将大对象中的有效数据移动至另一大对象,该大对象中的有效数据的指针有修改,为了避免更新其他所有备份分别对应的备份元数据中记录的该大对象中的有效数据的指针,通过移动日志记录该大对象中的有效数据移动前的指针和移动后的指针的对应关系,以便于在后续需要访问某一备份时,确认该某一备份的备份元数据中是否存在与移动日志记录的有效数据移动前的指针相同的指针,如果存在,则将该备份的备份元数据中的该相同的指针修改为该有效数据移动后的指针,避免移动有效数据后更新其他所有备份分别对应的备份元数据。
在移动大对象中的有效数据至另一大对象后,控制器210还用于创建移动日志,将有效数据移动前和移动后的指针的对应关系保存至移动日志中。这样,后续控制器210通过未过期备份的备份元数据访问磁盘数据中的有移动的有效数据时,会根据移动日志中保存的有效数据移动前和移动后的指针的对应关系,更新未过期备份的备份元数据。对未过期备份的备份元数据进行更新时,将所述未过期备份的备份元数据中与所述移动日志中记录的所述有效数据移动前的相同指针进行修改,修改后的指针为所述移动日志中记录的所述有效数据移动后的指针。
例如,控制器210接收到客户端110发送的数据恢复请求,从所有未过期备份中确定待恢复备份后,会根据移动日志修改待恢复备份的备份元数据,根据修改后的备份元数据获取组成磁盘数据的所有对象,然后将磁盘数据恢复至目标磁盘。
在图8所示的备份服务器130中,控制器210包括第一接口211、第二接口212和控制模块213,控制模块213和第一接口211、第二接口212分别连接,第一接口211用于和客户端110通信。第二接口212用于和存储设备220、对象存储系统140进行通信。
控制模块213,用于实现控制器210的功能,具体功能的实现细节可参照上述控制器210的功能描述。
在图8所示的备份服务器130中,控制模块213包括处理器214和存储器215。处理器214与第一接口211、第二接口212连接,处理器214用于实现上述控制器210的功能。处理器214与和存储器215连接,存储器215与第一接口211和第二接口212连接,存储器215,用于临时存储从客户端或对象存储系统140发送的信息。存储器215还用于存储软件程序以及应用模块。处理器214通过运行存储在存储器215的软件程序以及应用模块,从而实现备份服务器130的各种功能。
处理器214可以是任何计算器件,可以是通用中央处理器(CPU),微处理器,可编程处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。在具体实现中,作为一种实施例,处理器214可以包括一个或多个CPU。
存储器215可以包括易失性存储器(Volatile Memory),例如,随机存取存储器(Random-Access Memory,RAM);该存储器215也可以包括非易失性存储器(non-volatilememory),例如,只读存储器(Read-Only Memory,ROM),快闪存储器(Flash Memory),硬盘(Hard Disk Drive,HDD)、固态硬盘(Solid-State Drive,SSD)、磁盘存储介质,但不限于此。
请参考图9,图9为本发明实施例提供的另一种备份服务器的结构图。如图9所示,该备份服务器900包括:创建模块910、检测模块920、确定模块930和第一收发模块940,该备份服务器900中各模块的连接关系为:检测模块920与创建模块910和确定模块930分别连接,第一收发模块940与确定模块930连接。创建模块910、检测模块920、确定模块930在具体实现时可以通过图8所示的控制器210或处理器214实现。第一收发模块940在具体实现时可以通过图8所示的第二接口212实现。图9所示的各个模块的作用如下描述:
创建模块910,用于在所述备份服务器900每次确定第一磁盘数据的过期备份后,创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中,所述过期备份为截止当前第一时刻对象存储系统中对所述第一磁盘数据进行的所有未过期备份中的最早备份。创建模块910创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中的具体实现细节可以参考图4所示的步骤400-421的内容,具体细节不再在这里赘述。
检测模块920,用于检测是否满足删除条件,如果满足删除条件,获取与所述第一磁盘数据对应的多条删除日志。
确定模块930,用于根据所述多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象。确定模块930根据所述多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象的具体实现细节可以参考图5所示的步骤501描述的内容,具体实现细节在此不再赘述。
第一收发模块940,用于向所述对象存储系统发送数据迁移指示和对象删除指示,所述数据迁移指示用于指示所述对象存储系统将所述第一目标大对象中的所述有效数据迁移至另一大对象中,所述对象删除指示用于指示所述对象存储系统删除所述第一目标大对象。第一收发模块940向所述对象存储系统发送数据迁移指示细节可以参考图5所示的步骤510-540的描述的内容或图6所示的步骤610-620描述的内容,第一收发模块940向所述对象存储系统发送对象删除指示的具体实现细节可以参考图5所示的步骤550-560描述的内容,具体实现细节在此不再赘述。
可选的一种实现方式,所述检测模块920,还用于检测与所述第一磁盘数据对应的多条删除日志的数量是否达到预设删除阈值,如果达到预设删除阈值,则满足删除条件;或
检测是否达到预设删除时间,如果达到预设删除时间,则满足删除条件;或
自上次满足删除条件后启动计时,检测所述计时是否结束,如果所述计时结束则满足删除条件。
可选的一种实现方式,所述创建模块910,还用于创建所述有效数据移动后的指针,创建所述第一磁盘数据的移动日志,并将所述有效数据移动前的指针和所述有效数据移动后的指针的对应关系保存至所述移动日志中,所述有效数据移动后的指针表示所述有效数据移动至所述另一大对象后在所述另一大对象的位置。所述创建模块910创建所述有效数据移动后的指针,创建所述第一磁盘数据的移动日志,并将所述有效数据移动前的指针和所述有效数据移动后的指针的对应关系保存至所述移动日志中的细节可以参考图5所示的步骤541-544描述的内容,具体实现细节在此不再赘述。
基于图9所示的实例,在一种可选的实现方式中,请参见图10,图10为本发明实施例提供的另一种备份服务器1000的结构图。如图10所示,所述备份服务器1000还包括:第二收发模块1010和处理模块1020。处理模块1020在具体实现时可以通过图8所示的控制器210或处理器214实现。第二收发模块1010在具体实现时可以通过图8所示的第一接口211实现。图10所示的与图9所示的不同的模块的作用如下描述:
第二收发模块1010,还用于接收客户端110发送的数据恢复请求,所述数据恢复请求包括第一磁盘标识、第二磁盘标识和待恢复备份的备份标识,所述数据恢复请求用于指示基于所述待恢复备份的备份标识对应的待恢复备份,恢复所述第一磁盘数据至所述第二磁盘中,所述待恢复备份为所述第一磁盘数据的所有未过期备份中的任一备份。第一收发模块940用于接收客户端发送的数据恢复请求的细节可以参考图7所示的步骤700描述的内容,具体实现细节在此不再赘述。
所述处理模块1020,用于获取所述待恢复备份的备份元数据,并获取所述第一磁盘数据的所有移动日志;处理模块1020用于获取所述待恢复备份的备份元数据,并获取所述第一磁盘数据的所有移动日志的细节可以参考图7所示的步骤701-713描述的内容,具体实现细节在此不再赘述。
处理模块1020,还用于根据所述第一磁盘数据的所有移动日志,确认所述待恢复备份的备份元数据中是否存在与所述移动日志中记录的有效数据移动前的指针相同的指针,如果存在,则将所述待恢复备份的备份元数据中的所述相同的指针修改为与所述有效数据移动前的指针对应的有效数据移动后的指针,获得修改后的备份元数据,所述修改后的备份元数据包括未修改的指针和修改后的指针,所述修改后的指针为所述移动日志中记录的所述有效数据移动后的指针;更新模块1030获得修改后的备份元数据的细节可以参考图7所示的步骤720描述的内容,具体实现细节在此不再赘述。
所述第一收发模块940,还用于根据所述修改后的备份元数据获取与所述待恢复备份对应的所述第一磁盘数据;第一收发模块940根据所述修改后的备份元数据获取与所述待恢复备份对应的所述第一磁盘数据的细节可以参考图7所示的步骤722-731描述的内容,具体实现细节在此不再赘述。
处理模块1020,还用于将所述第一磁盘数据保存至所述第二磁盘中。处理模块1020将所述第一磁盘数据保存至所述第二磁盘中的细节可以参考图7所示的步骤740-750描述的内容,具体实现细节在此不再赘述。
基于图10所示的实施例,在一种可选的实施例中,请参见图11,图11为本发明实施例提供的另一种备份服务器的结构图。如图11所示,创建模块910与处理模块1020连接。
所述创建模块910,还用于创建所述移动日志的对象标识;具体实现细节可以参考图5所示的步骤543描述的细,具体实现细节在此不再赘述。
所述处理模块1020,还用于保存第一磁盘标识和所述移动日志的对象标识的对应关系,并发送移动日志存储请求至所述对象存储系统,所述移动日志存储请求包括所述移动日志的对象标识和所述移动日志,所述移动日志存储请求用于指示所述对象存储系统将所述移动日志保存至所述移动日志的对象标识对应的对象中;具体实现细节可以参考图5所示的步骤543描述的细节,具体实现细节在此不再赘述。
所述处理模块1020,还用于根据所述第一磁盘标识获取所述移动日志的对象标识;具体实现细节可以参见图7中的步骤701描述的内容,具体实现细节不再在此赘述。
所述第一收发模块940,还用于发送移动日志获取请求,所述移动日志获取请求包括所述移动日志的对象标识,所述移动日志获取请求用于指示所述对象存储系统从与所述移动日志的对象标识对应的对象中获取所述移动日志;具体实现细节可以参考图7中的步骤703描述的内容,具体实现细节不再在此赘述。
所述第一收发模块940,还用于接收所述对象存储系统发送的所述移动日志。具体实现细节可以参考图7中的步骤710-712描述的内容,具体实现细节不再在此赘述。
基于图9或图10所示的任一实施例,在另一可选的实施例中,请参见图12,图12为本发明实施例提供的另一种备份服务器的结构图。如图12所示,第一收发模块940与所述检测模块920连接。
所述确定模块930,还用于根据所述多条删除日志确定所述对象存储系统中保存的包括无效数据的第一目标大对象,根据预定义的无效数据的大小以及所述第一目标大对象中包括的无效数据的数量,确定所述第一目标大对象中所有无效数据的数据量;
所述第一收发模块940,还用于发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述第一目标大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述第一目标大对象的数据量;
所述第一收发模块940,还用于接收数据量属性信息,所述数据量属性信息包括所述第一目标大对象的数据量;
所述检测模块920,还用于检测所述第一目标大对象中所有无效数据的数据量比所述数据量属性信息中所述第一目标大对象的数据量小,确定所述对象存储系统中保存的所述第一目标大对象为包括无效数据和有效数据的第一目标大对象。
在另一种实现方式中,基于图9所示的备份服务器900的结构,创建模块910,用于在所述备份服务器900每次确定第一磁盘数据的过期备份后,创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中,所述过期备份为截止当前第一时刻对象存储系统中对所述第一磁盘数据进行的所有未过期备份中的最早备份;创建模块910创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中的具体实现细节可以参考图4所示的步骤400-421的内容,具体细节不再在这里赘述。
检测模块920,用于检测是否满足删除条件,如果满足删除条件,获取与所述第一磁盘数据对应的多条删除日志;
确定模块930,用于根据所述多条删除日志确定所述对象存储系统中保存的只包括无效数据的大对象;确定模块930根据所述多条删除日志确定所述对象存储系统中保存的只包括无效数据的大对象的具体实现细节可以参考图5所示的步骤501描述的内容,具体实现细节在此不再赘述。
第一收发模块940,用于向所述对象存储系统发送对象删除指示,所述对象删除指示用于指示所述对象存储系统删除所述只包括无效数据的大对象。第一收发模块940,用于向所述对象存储系统发送对象删除指示的实现细节可以参考图5所示的步骤570和580描述的内容,具体实现细节在此不再赘述。
在另一种实现方式中,所述确定模块930,还用于根据所述多条删除日志确定包括无效数据的大对象,根据预定义的无效数据的大小以及所述包括无效数据的大对象中包括的无效数据的数量,确定所述包括无效数据的对象中所有无效数据的数据量;
所述第一收发模块940,还用于发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述包括无效数据的大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述包括无效数据的大对象的数据量;
所述第一收发模块940,还用于接收数据量属性信息,所述数据量属性信息包括所述包括无效数据的大对象的数据量;
所述检测模块920,还用于检测所述包括无效数据的大对象中所有无效数据的数据量与所述数据量属性信息中所述包括无效数据的大对象的数据量相同,确定所述对象存储系统中保存的所述包括无效数据的大对象为只包括无效数据的大对象。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(Digital Video Disc,DVD))或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (22)

1.一种过期备份处理方法,其特征在于,所述方法由备份服务器执行,包括:
每次确定第一磁盘数据的过期备份后,创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中,所述过期备份为截止当前第一时刻对象存储系统中对所述第一磁盘数据进行的所有未过期备份中的最早备份;
检测是否满足删除条件,如果满足所述删除条件,获取与所述第一磁盘数据对应的多条删除日志;
根据所述多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象;
向所述对象存储系统发送数据迁移指示和对象删除指示,所述数据迁移指示用于指示所述对象存储系统将所述第一目标大对象中的所述有效数据迁移至另一大对象中,
所述对象删除指示用于指示所述对象存储系统删除所述第一目标大对象。
2.如权利要求1所述的方法,其特征在于,所述检测是否满足删除条件包括:
检测与所述第一磁盘数据对应的多条删除日志的数量是否达到预设删除阈值,如果达到所述预设删除阈值,则满足删除条件;或
检测是否达到预设删除时间,如果达到所述预设删除时间,则满足删除条件;或
自上次满足删除条件后启动计时,检测所述计时是否结束,如果所述计时结束则满足删除条件。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象之后,还包括:
创建所述有效数据移动后的指针,所述有效数据移动后的指针表示所述有效数据移动至所述另一大对象后在所述另一大对象的位置;
创建所述第一磁盘数据的移动日志,并将所述有效数据移动前的指针和所述有效数据移动后的指针的对应关系保存至所述移动日志中。
4.如权利要求3所述的方法,其特征在于,还包括:
接收客户端发送的数据恢复请求,所述数据恢复请求包括第一磁盘标识、第二磁盘标识和待恢复备份的备份标识,所述数据恢复请求用于指示基于所述待恢复备份的备份标识对应的待恢复备份,恢复所述第一磁盘数据至所述第二磁盘中,所述待恢复备份为所述第一磁盘数据的所有未过期备份中的任一备份;
获取所述待恢复备份的备份元数据,并获取所述第一磁盘数据的所有移动日志;
根据所述第一磁盘数据的所有移动日志,确认所述待恢复备份的备份元数据中是否存在与所述移动日志中记录的有效数据移动前的指针相同的指针,如果存在,则将所述待恢复备份的备份元数据中的所述相同的指针修改为与所述有效数据移动前的指针对应的有效数据移动后的指针,获得修改后的备份元数据,所述修改后的备份元数据包括未修改的指针和修改后的指针,所述修改后的指针为所述移动日志中记录的所述有效数据移动后的指针;
根据所述修改后的备份元数据获取与所述待恢复备份对应的所述第一磁盘数据;
将所述第一磁盘数据保存至所述第二磁盘中。
5.如权利要求4所述的方法,其特征在于,所述将所述有效数据移动前的指针和所述有效数据移动后的指针的对应关系保存至所述移动日志中之后,还包括:
创建所述移动日志的对象标识;
保存第一磁盘标识和所述移动日志的对象标识的对应关系,并发送移动日志存储请求至所述对象存储系统,所述移动日志存储请求包括所述移动日志的对象标识和所述移动日志,所述移动日志存储请求用于指示所述对象存储系统将所述移动日志保存至所述移动日志的对象标识对应的对象中;
所述获取所述第一磁盘的所有移动日志,包括:
根据所述第一磁盘标识获取所述移动日志的对象标识,发送所述移动日志获取请求至所述对象存储系统,所述移动日志获取请求包括所述移动日志的对象标识,所述移动日志获取请求用于指示所述对象存储系统从与所述移动日志的对象标识对应的对象中获取所述移动日志;
接收所述对象存储系统发送的所述移动日志。
6.如权利要求3所述的方法,其特征在于,所述根据所述多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象,包括:
根据所述多条删除日志确定所述对象存储系统中保存的包括无效数据的第一目标大对象;
根据预定义的无效数据的大小以及所述第一目标大对象中包括的无效数据的数量,确定所述第一目标大对象中所有无效数据的数据量;
发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述第一目标大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述第一目标大对象的数据量;
接收数据量属性信息,所述数据量属性信息包括所述第一目标大对象的数据量;
如果所述第一目标大对象中所有无效数据的数据量比所述数据量属性信息中所述第一目标大对象的数据量小,则确定所述对象存储系统中保存的所述第一目标大对象为包括无效数据和有效数据的第一目标大对象。
7.如权利要求1、2、4或5所述的方法,其特征在于,所述根据所述多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象,包括:
根据所述多条删除日志确定所述对象存储系统中保存的包括无效数据的第一目标大对象;
根据预定义的无效数据的大小以及所述第一目标大对象中包括的无效数据的数量,确定所述第一目标大对象中所有无效数据的数据量;
发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述第一目标大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述第一目标大对象的数据量;
接收数据量属性信息,所述数据量属性信息包括所述第一目标大对象的数据量;
如果所述第一目标大对象中所有无效数据的数据量比所述数据量属性信息中所述第一目标大对象的数据量小,则确定所述对象存储系统中保存的所述第一目标大对象为包括无效数据和有效数据的第一目标大对象。
8.一种过期备份处理方法,其特征在于,所述方法由备份服务器执行,包括:
每次确定第一磁盘数据的过期备份后,创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中,所述过期备份为截止当前第一时刻对象存储系统中对所述第一磁盘数据进行的所有未过期备份中的最早备份;
检测是否满足删除条件,如果满足删除条件,获取与所述第一磁盘数据对应的多条删除日志;
根据所述多条删除日志确定所述对象存储系统中保存的只包括无效数据的大对象;
向所述对象存储系统发送对象删除指示,所述对象删除指示用于指示所述对象存储系统删除所述只包括无效数据的大对象。
9.如权利要求8所述的方法,其特征在于,所述检测是否满足删除条件包括:
检测与所述第一磁盘数据对应的多条删除日志的数量是否达到预设删除阈值,如果达到预设删除阈值,则满足删除条件;或
检测是否达到预设删除时间,如果达到预设删除时间,则满足删除条件;或
自上次满足删除条件后启动计时,检测所述计时是否结束,如果所述计时结束则满足删除条件。
10.如权利要求8或9所述的方法,其特征在于,所述根据所述多条删除日志确定所述对象存储系统中保存的只包括无效数据的大对象,包括:
根据所述多条删除日志确定包括无效数据的大对象;
根据预定义的无效数据的大小以及所述包括无效数据的大对象中包括的无效数据的数量,确定所述包括无效数据的对象中所有无效数据的数据量;
发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述包括无效数据的大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述包括无效数据的大对象的数据量;
接收数据量属性信息,所述数据量属性信息包括所述包括无效数据的大对象的数据量;
如果所述包括无效数据的大对象中所有无效数据的数据量与所述数据量属性信息中所述包括无效数据的大对象的数据量相同,则确定所述对象存储系统中保存的所述包括无效数据的大对象为只包括无效数据的大对象。
11.一种备份服务器,其特征在于,包括:
创建模块,用于在所述备份服务器每次确定第一磁盘数据的过期备份后,创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中,所述过期备份为截止当前第一时刻对象存储系统中对所述第一磁盘数据进行的所有未过期备份中的最早备份;
检测模块,用于检测是否满足删除条件,如果满足删除条件,获取与所述第一磁盘数据对应的多条删除日志;
确定模块,用于根据所述多条删除日志确定所述对象存储系统中保存的包括有效数据和所述无效数据的第一目标大对象;
第一收发模块,用于向所述对象存储系统发送数据迁移指示和对象删除指示,所述数据迁移指示用于指示所述对象存储系统将所述第一目标大对象中的所述有效数据迁移至另一大对象中,所述对象删除指示用于指示所述对象存储系统删除所述第一目标大对象。
12.如权利要求11所述的备份服务器,其特征在于,所述检测模块,还用于检测与所述第一磁盘数据对应的多条删除日志的数量是否达到预设删除阈值,如果达到预设删除阈值,则满足删除条件;或
检测是否达到预设删除时间,如果达到预设删除时间,则满足删除条件;或
自上次满足删除条件后启动计时,检测所述计时是否结束,如果所述计时结束则满足删除条件。
13.如权利要求11或12所述的备份服务器,其特征在于,所述创建模块,还用于创建所述有效数据移动后的指针,创建所述第一磁盘数据的移动日志,并将所述有效数据移动前的指针和所述有效数据移动后的指针的对应关系保存至所述移动日志中,所述有效数据移动后的指针表示所述有效数据移动至所述另一大对象后在所述另一大对象的位置。
14.如权利要求13所述的备份服务器,其特征在于,还包括:
第二收发模块,用于接收客户端发送的数据恢复请求,所述数据恢复请求包括第一磁盘标识、第二磁盘标识和待恢复备份的备份标识,所述数据恢复请求用于指示基于所述待恢复备份的备份标识对应的待恢复备份,恢复所述第一磁盘数据至所述第二磁盘中,所述待恢复备份为所述第一磁盘数据的所有未过期备份中的任一备份;
处理模块,用于获取所述待恢复备份的备份元数据,并获取所述第一磁盘数据的所有移动日志;
所述处理模块,还用于根据所述第一磁盘数据的所有移动日志,确认所述待恢复备份的备份元数据中是否存在与所述移动日志中记录的有效数据移动前的指针相同的指针,如果存在,则将所述待恢复备份的备份元数据中的所述相同的指针修改为与所述有效数据移动前的指针对应的有效数据移动后的指针,获得修改后的备份元数据,所述修改后的备份元数据包括未修改的指针和修改后的指针,所述修改后的指针为所述移动日志中记录的所述有效数据移动后的指针;
所述第一收发模块,还用于根据所述修改后的备份元数据获取与所述待恢复备份对应的所述第一磁盘数据;
所述处理模块,还用于将所述第一磁盘数据保存至所述第二磁盘中。
15.如权利要求14所述的备份服务器,其特征在于,
所述创建模块,还用于创建所述移动日志的对象标识;
所述处理模块,还用于保存第一磁盘标识和所述移动日志的对象标识的对应关系,并发送移动日志存储请求至所述对象存储系统,所述移动日志存储请求包括所述移动日志的对象标识和所述移动日志,所述移动日志存储请求用于指示所述对象存储系统将所述移动日志保存至所述移动日志的对象标识对应的对象中;
所述处理模块,还用于根据所述第一磁盘标识获取所述移动日志的对象标识;
所述第一收发模块,还用于发送移动日志获取请求,所述移动日志获取请求包括所述移动日志的对象标识,所述移动日志获取请求用于指示所述对象存储系统从与所述移动日志的对象标识对应的对象中获取所述移动日志;
所述第一收发模块,还用于接收所述对象存储系统发送的所述移动日志。
16.如权利要求13所述的备份服务器,其特征在于,
所述确定模块,还用于根据所述多条删除日志确定所述对象存储系统中保存的包括无效数据的第一目标大对象,根据预定义的无效数据的大小以及所述第一目标大对象中包括的无效数据的数量,确定所述第一目标大对象中所有无效数据的数据量;
所述第一收发模块,还用于发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述第一目标大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述第一目标大对象的数据量;
所述第一收发模块,还用于接收数据量属性信息,所述数据量属性信息包括所述第一目标大对象的数据量;
所述检测模块,还用于检测所述第一目标大对象中所有无效数据的数据量比所述数据量属性信息中所述第一目标大对象的数据量小,确定所述对象存储系统中保存的所述第一目标大对象为包括无效数据和有效数据的第一目标大对象。
17.如权利要求11、12、14或15所述的备份服务器,其特征在于,
所述确定模块,还用于根据所述多条删除日志确定所述对象存储系统中保存的包括无效数据的第一目标大对象,根据预定义的无效数据的大小以及所述第一目标大对象中包括的无效数据的数量,确定所述第一目标大对象中所有无效数据的数据量;
所述第一收发模块,还用于发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述第一目标大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述第一目标大对象的数据量;
所述第一收发模块,还用于接收数据量属性信息,所述数据量属性信息包括所述第一目标大对象的数据量;
所述检测模块,还用于检测所述第一目标大对象中所有无效数据的数据量比所述数据量属性信息中所述第一目标大对象的数据量小,确定所述对象存储系统中保存的所述第一目标大对象为包括无效数据和有效数据的第一目标大对象。
18.一种备份服务器,其特征在于,包括:
创建模块,用于在所述备份服务器每次确定第一磁盘数据的过期备份后,创建所述第一磁盘数据的删除日志,并保存所述过期备份中的无效数据的指针至所述删除日志中,所述过期备份为截止当前第一时刻对象存储系统中对所述第一磁盘数据进行的所有未过期备份中的最早备份;
检测模块,用于检测是否满足删除条件,如果满足删除条件,获取与所述第一磁盘数据对应的多条删除日志;
确定模块,用于根据所述多条删除日志确定所述对象存储系统中保存的只包括无效数据的大对象;
收发模块,用于向所述对象存储系统发送对象删除指示,所述对象删除指示用于指示所述对象存储系统删除所述只包括无效数据的大对象。
19.如权利要求18所述的备份服务器,其特征在于,所述检测模块,还用于检测与所述第一磁盘数据对应的多条删除日志的数量是否达到预设删除阈值,如果达到预设删除阈值,则满足删除条件;或
检测是否达到预设删除时间,如果达到预设删除时间,则满足删除条件;或
自上次满足删除条件后启动计时,检测所述计时是否结束,如果所述计时结束则满足删除条件。
20.如权利要求18或19所述的备份服务器,其特征在于,所述确定模块,还用于根据所述多条删除日志确定包括无效数据的大对象,根据预定义的无效数据的大小以及所述包括无效数据的大对象中包括的无效数据的数量,确定所述包括无效数据的对象中所有无效数据的数据量;
所述收发模块,还用于发送数据量确定请求至所述对象存储系统,所述数据量确定请求包括所述包括无效数据的大对象的标识,所述数据量确定请求用于指示所述对象存储系统发送所述包括无效数据的大对象的数据量;
所述收发模块,还用于接收数据量属性信息,所述数据量属性信息包括所述包括无效数据的大对象的数据量;
所述检测模块,还用于检测所述包括无效数据的大对象中所有无效数据的数据量与所述数据量属性信息中所述包括无效数据的大对象的数据量相同,确定所述对象存储系统中保存的所述包括无效数据的大对象为只包括无效数据的大对象。
21.一种备份服务器,其特征在于,包括接口、存储器和处理器,所述接口用于和对象存储系统通信,所述存储器用于存储软件程序,所述处理器通过运行存储在所述存储器中的软件程序,执行权利要求1-10中任一过期备份处理方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行上述权利要求1-10中任一过期备份处理方法。
CN201780002847.5A 2017-12-26 2017-12-26 一种过期备份处理方法及备份服务器 Active CN110998537B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/118689 WO2019127034A1 (zh) 2017-12-26 2017-12-26 一种过期备份处理方法及备份服务器

Publications (2)

Publication Number Publication Date
CN110998537A CN110998537A (zh) 2020-04-10
CN110998537B true CN110998537B (zh) 2022-09-02

Family

ID=67064270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780002847.5A Active CN110998537B (zh) 2017-12-26 2017-12-26 一种过期备份处理方法及备份服务器

Country Status (5)

Country Link
US (1) US11615000B2 (zh)
EP (1) EP3537302B1 (zh)
JP (1) JP6968876B2 (zh)
CN (1) CN110998537B (zh)
WO (1) WO2019127034A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597078A (zh) * 2020-05-15 2020-08-28 山东汇贸电子口岸有限公司 一种复制ceph块存储数据至对象存储的定时备份方法及系统
US11947493B2 (en) * 2022-03-16 2024-04-02 Rubrik, Inc. Techniques for archived log deletion
US11876864B1 (en) * 2023-02-13 2024-01-16 Dell Products L.P. Using predictive analytics on SFP metrics to influence the target port selection process
CN116340732B (zh) * 2023-05-29 2023-08-04 天翼云科技有限公司 一种过期数据的自动清理方法、装置及电子设备
CN116560914B (zh) * 2023-07-10 2023-10-13 成都云祺科技有限公司 虚拟机cbt失效下的增量备份方法、系统及存储介质
CN116661706B (zh) * 2023-07-26 2023-11-14 江苏华存电子科技有限公司 一种固态硬盘的缓存清理分析方法及系统
CN117349086B (zh) * 2023-12-04 2024-02-23 四川精容数安科技有限公司 一种Windows整机永久增量备份的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453490A (zh) * 2008-12-23 2009-06-10 上海爱数软件有限公司 一种合成备份方法和装置
CN101937377A (zh) * 2009-06-29 2011-01-05 百度在线网络技术(北京)有限公司 数据恢复方法和装置
CN103399806A (zh) * 2013-07-26 2013-11-20 安徽省徽商集团有限公司 网络备份更新管理方法及其系统
CN103645971A (zh) * 2013-12-13 2014-03-19 江苏名通信息科技有限公司 Linux系统下文件备份及转移方法
CN105740098A (zh) * 2016-01-26 2016-07-06 浪潮(北京)电子信息产业有限公司 备份数据中过期数据的判定方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3632539B2 (ja) * 2000-01-11 2005-03-23 日本電気株式会社 自動バックアップ装置、自動バックアップ方法および自動バックアップ用プログラムを記録した記録媒体
US7756833B2 (en) * 2004-09-22 2010-07-13 Microsoft Corporation Method and system for synthetic backup and restore
US7694088B1 (en) * 2005-03-31 2010-04-06 Symantec Operating Corporation System and method for efficient creation of aggregate backup images
JP4883027B2 (ja) * 2008-02-27 2012-02-22 日本電気株式会社 バックアップ装置、その制御方法及びプログラム
WO2013102506A2 (en) * 2012-01-02 2013-07-11 International Business Machines Corporation Method and system for backup and recovery
US9367401B2 (en) * 2014-09-30 2016-06-14 Storagecraft Technology Corporation Utilizing an incremental backup in a decremental backup system
US9626250B2 (en) * 2015-03-16 2017-04-18 International Business Machines Corporation Data synchronization of block-level backup
US10942813B2 (en) * 2015-10-30 2021-03-09 Netapp, Inc. Cloud object data layout (CODL)
US10228962B2 (en) * 2015-12-09 2019-03-12 Commvault Systems, Inc. Live synchronization and management of virtual machines across computing and virtualization platforms and using live synchronization to support disaster recovery

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453490A (zh) * 2008-12-23 2009-06-10 上海爱数软件有限公司 一种合成备份方法和装置
CN101937377A (zh) * 2009-06-29 2011-01-05 百度在线网络技术(北京)有限公司 数据恢复方法和装置
CN103399806A (zh) * 2013-07-26 2013-11-20 安徽省徽商集团有限公司 网络备份更新管理方法及其系统
CN103645971A (zh) * 2013-12-13 2014-03-19 江苏名通信息科技有限公司 Linux系统下文件备份及转移方法
CN105740098A (zh) * 2016-01-26 2016-07-06 浪潮(北京)电子信息产业有限公司 备份数据中过期数据的判定方法及系统

Also Published As

Publication number Publication date
EP3537302A4 (en) 2020-01-22
JP2020506444A (ja) 2020-02-27
US11615000B2 (en) 2023-03-28
WO2019127034A1 (zh) 2019-07-04
EP3537302B1 (en) 2022-01-19
US20200319976A1 (en) 2020-10-08
JP6968876B2 (ja) 2021-11-17
EP3537302A1 (en) 2019-09-11
CN110998537A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN110998537B (zh) 一种过期备份处理方法及备份服务器
US20230117542A1 (en) Remote Data Replication Method and System
US10013317B1 (en) Restoring a volume in a storage system
US20220188003A1 (en) Distributed Storage Method and Device
US8683156B2 (en) Format-preserving deduplication of data
US9195668B2 (en) Log access method storage control apparatus, archive system, and method of operation
US8782011B2 (en) System and method for scalable reference management in a deduplication based storage system
US10599337B2 (en) Method and device for writing data and acquiring data in a distributed storage system
CN103098035B (zh) 存储系统
US9424185B1 (en) Method and system for garbage collection of data storage systems
US9367448B1 (en) Method and system for determining data integrity for garbage collection of data storage systems
US10019323B1 (en) Method and system for container data recovery in a storage system
US9990156B1 (en) Deduplicating snapshots associated with a backup operation
CN111381779B (zh) 数据处理方法、装置、设备及存储介质
US9292520B1 (en) Advanced virtual synthetic full backup synthesized from previous full-backups
US10929176B2 (en) Method of efficiently migrating data from one tier to another with suspend and resume capability
WO2013086969A1 (zh) 重复数据查找方法、装置及系统
CN109508254B (zh) 一种数据恢复方法及装置
US10229127B1 (en) Method and system for locality based cache flushing for file system namespace in a deduplicating storage system
CN105493080B (zh) 基于上下文感知的重复数据删除的方法和装置
EP3522040B1 (en) Method and device for file storage
US11093453B1 (en) System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication
CN113767378A (zh) 文件系统元数据去重复
US10649807B1 (en) Method to check file data integrity and report inconsistencies with bulk data movement
CN115422135A (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