CN112612576B - 虚拟机备份方法、装置、电子设备及存储介质 - Google Patents

虚拟机备份方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112612576B
CN112612576B CN202011532687.5A CN202011532687A CN112612576B CN 112612576 B CN112612576 B CN 112612576B CN 202011532687 A CN202011532687 A CN 202011532687A CN 112612576 B CN112612576 B CN 112612576B
Authority
CN
China
Prior art keywords
backup
data block
file
recovery point
virtual machine
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
CN202011532687.5A
Other languages
English (en)
Other versions
CN112612576A (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.)
New H3C Big Data Technologies Co Ltd
Original Assignee
New H3C Big Data 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 New H3C Big Data Technologies Co Ltd filed Critical New H3C Big Data Technologies Co Ltd
Priority to CN202011532687.5A priority Critical patent/CN112612576B/zh
Publication of CN112612576A publication Critical patent/CN112612576A/zh
Application granted granted Critical
Publication of CN112612576B publication Critical patent/CN112612576B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种虚拟机备份方法、装置、电子设备及存储介质,用于解决基于单个虚拟机进行去重备份恢复的技术问题。本公开提供的虚拟机备份恢复方法,通过数据块记录文件记录所有具有唯一数据块指纹的备份数据块的存储位置以及备份数据块与多个备份恢复点之间的复用关系,通过数据块索引文件记录备份虚拟机磁盘文件的原始分割数据块与数据块记录文件中的记录之间的对应关系,实现了支持重删功能的虚拟机级的备份与恢复,提高了备份灵活性,节省了备份空间。

Description

虚拟机备份方法、装置、电子设备及存储介质
技术领域
本公开涉及云计算及数据存储技术领域,尤其涉及一种虚拟机备份方法、装置、电子设备及存储介质。
背景技术
随着虚拟化技术的成熟,越来越多的用户将业务部署在虚拟机中。另外一方面,随着用户数据的爆发以及对数据安全性的重视,用户在建设虚拟化系统的同时,一般会选购虚拟机备份软件来保护他们的数据安全。重复数据删除是一种数据缩减技术,通常用于基于磁盘的备份系统,旨在减少备份文件所使用的存储空间。不同的备份软件去除重复数据的方式不同,目前备份软件实现重复数据删除(简称重删或去重)时是基于整个备份磁盘或者磁盘分区来实现的,无法实现基于单个虚拟机进行备份时的去重。
发明内容
有鉴于此,本公开提供一种虚拟机备份方法、装置及存储介质,用于解决基于单个虚拟机进行去重备份恢复的技术问题。
基于本公开一实施例,本公开提供了一种虚拟机备份方法,包括:
通过元数据信息MET文件记录元数据信息;
通过与备份恢复点对应的数据块索引BRI文件记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系;
通过与备份恢复点对应的备份数据BRD文件存储非重复的备份数据块;
通过数据块记录REC文件存储所有备份恢复点引用的非重复的备份数据块的数据块记录,所述数据块记录中记录备份数据块的数据块指纹、存储位置及备份恢复点与备份数据块之间的引用关系,所述数据块指纹由原始分割数据块计算获得,与备份数据块具有一一对应关系。
基于本公开实施例,进一步地,在对虚拟机的虚拟机磁盘文件进行初次备份时,创建所述MET文件和REC文件;所述元数据信息包括:虚拟机元数据信息、备份相关文件元数据信息及备份链信息,备份链由备份恢复点组成;
在创建备份恢复点时,创建与备份恢复点对应的BRI文件和BRD文件;
在创建备份恢复点时,通过REC文件来记录本次新生成的非重复的备份数据块的数据块记录,以及通过更新已存储的备份数据块的数据块记录中的引用关系来记录当前创建的备份恢复点中包含的重复备份数据。
基于本公开实施例,进一步地,创建备份恢复点的过程为:
创建与当前备份恢复点对应的数据块索引BRI文件和备份数据BRD文件;
将虚拟机磁盘文件按预设固定大小切割为多个原始分割数据块,计算当前原始分割数据块的数据块指纹,在对每个原始分割数据块进行备份的过程中:
所述通过REC文件来记录本次新生成的非重复的备份数据块的数据块记录的方法为:
当根据数据块指纹判断当前原始分割数据块为非重复数据块时,生成该数据块指纹对应的备份数据块并将其存储在BRD文件中;在REC文件中生成新数据块记录,并在新数据块记录中记录该数据块指纹、该数据块指纹对应的备份数据块的存储位置及当前备份恢复点与新生成的备份数据块之间的引用关系;
所述通过更新已存储的备份数据块的数据块记录中的引用关系来记录当前创建的备份恢复点中包含的重复备份数据的方法为:
当根据数据块指纹判断当前原始分割数据块为重复数据块时,在该数据块指纹对应的已存储于REC文件中的数据块记录中记录当前备份恢复点与该数据块记录对应的已存储的备份数据块之间的引用关系。
基于本公开实施例,进一步地,所述通过与备份恢复点对应的数据块索引 BRI文件记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系的方法为:
在数据块索引BRI文件中为虚拟机磁盘文件的每个原始分割数据块对应地生成一个索引记录,通过索引记录指向原始分割数据块的数据块指纹在REC文件中对应的数据块记录的存储位置;
所述REC文件中备份恢复点与备份数据块之间的引用关系通过位图字段进行标识,位图字段中每一位对应一个备份恢复点,置位表示对应的备份恢复点引用了该备份数据块。
基于本公开实施例,进一步地,所述方法还包括:
当删除一个备份恢复点时,需要对应地删除与该备份恢复点对应的BRI文件和BRD文件;
在删除BRD文件中的备份数据块之前,需要判断该备份数据块是否被其它备份恢复点引用;
当判定待该备份数据块被其它备份恢复点引用时,基于REC文件中记录的该备份数据块与备份恢复点之间的引用关系,将该备份数据块迁移到除待删除的备份恢复点之外的第一个引用该备份数据块的备份恢复点对应的BRD文件中。
图5为本公开一实施例提供的一种虚拟机备份装置结构示意图,该装置 500中的各功能模块可以采用软件、硬件或软硬件相结合的方式实现。各模块可部署在一个硬件设备上实施前述对应的方法步骤,也可以将各模块分散部署在不同硬件设备上由多个硬件设备共同实施前述对应的方法步骤。当由多个硬件设备共同实施时,由于各硬件设备之间相互协作的目的是共同实现本发明目的,一方的动作和处理结果确定了另一方的动作执行的时机及所能获得的结果,因此,在逻辑功能上可视为彼此之间具有相互指挥和控制关系。
该装置500包括:
控制模块510,用于进行备份流程的控制。该控制模块510用于进行整体的备份和恢复流程的控制,例如各类文件建立的时机、周期性地进行备份恢复点的创建,该模块通过控制协调元数据信息模块520、数据块索引模块530、备份数据块模块540、数据块记录模块550在相应的时机执行相应的步骤,协调一致地完成虚拟机的备份和恢复步骤。
元数据信息模块520,用于创建元数据信息MET文件并在MET文件中记录元数据信息;
数据块索引模块530,用于创建与备份恢复点对应的数据块索引BRI文件并在BRI文件中记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系;
备份数据块模块540,用于创建与备份恢复点对应的备份数据BRD文件并在BRD文件中存储非重复的备份数据块;
数据块记录模块550,用于创建数据块记录REC文件并在REC文件中存储所有备份恢复点引用的非重复的备份数据块的数据块记录,所述数据块记录中记录备份数据块的数据块指纹、存储位置及备份恢复点与备份数据块之间的引用关系,所述数据块指纹由原始分割数据块计算获得,与备份数据块具有一一对应关系。
基于本公开实施例,进一步地,元数据信息模块520和数据块记录模块550 在对虚拟机的虚拟机磁盘文件进行初次备份时,创建所述MET文件和REC文件;所述元数据信息包括:虚拟机元数据信息、备份相关文件元数据信息及备份链信息,备份链由备份恢复点组成。
数据块索引模块530和备份数据块模块540在创建备份恢复点时,创建与备份恢复点对应的BRI文件和BRD文件;
数据块记录模块550在创建备份恢复点时,通过REC文件来记录本次新生成的非重复的备份数据块的数据块记录,以及通过更新已存储的备份数据块的数据块记录中的引用关系来记录当前创建的备份恢复点中包含的重复备份数据。
基于本公开实施例,进一步地,创建备份恢复点的过程中:
数据块索引模块530和备份数据块模块540在创建备份恢复点时创建与当前备份恢复点对应的数据块索引BRI文件和备份数据BRD文件;
数据块索引模块530将虚拟机磁盘文件按预设固定大小切割为多个原始分割数据块,计算当前原始分割数据块的数据块指纹;
当数据块记录模块550根据数据块指纹判断当前原始分割数据块为非重复数据块时,生成该数据块指纹对应的备份数据块并将其存储在BRD文件中;在 REC文件中生成新数据块记录,并在新数据块记录中记录该数据块指纹、该数据块指纹对应的备份数据块的存储位置及当前备份恢复点与新生成的备份数据块之间的引用关系;
当数据块记录模块550根据数据块指纹判断当前原始分割数据块为重复数据块时,在该数据块指纹对应的已存储于REC文件中的数据块记录中记录当前备份恢复点与该数据块记录对应的已存储的备份数据块之间的引用关系。
基于本公开实施例,进一步地,数据块索引模块530在数据块索引BRI文件中为虚拟机磁盘文件的每个原始分割数据块对应地生成一个索引记录,通过索引记录指向原始分割数据块的数据块指纹在REC文件中对应的数据块记录的存储位置;
所述REC文件中备份恢复点与备份数据块之间的引用关系通过位图字段进行标识,位图字段中每一位对应一个备份恢复点,数据块记录模块550通过将备份恢复点对应的位(例如比特位)置位来记录备份恢复点与备份数据块之间的引用关系。
基于本公开实施例,进一步地,控制模块510还用于删除备份恢复点的流程控制;
当删除一个备份恢复点时,控制模块510指令数据块索引模块530和备份数据块模块540对应地删除与该备份恢复点对应的BRI文件和BRD文件;
在删除BRD文件中的备份数据块之前,控制模块510判断该备份数据块是否被其它备份恢复点引用,当判定待该备份数据块被其它备份恢复点引用时,基于REC文件中记录的该备份数据块与备份恢复点之间的引用关系,将该备份数据块迁移到除待删除的备份恢复点之外的第一个引用该备份数据块的备份恢复点对应的BRD文件中,并对应地更新数据块记录中记录的该备份数据块的存储位置及该备份数据块与备份恢复点之间的引用关系。
基于本公开实施例,本公开还提供了一种虚拟机恢复方法,该方法包括:
从元数据信息MET文件中读取元数据信息,所述元数据信息包括:虚拟机元数据信息、备份相关文件元数据信息及备份链信息,备份链由备份恢复点组成;
根据选定的待恢复的备份恢复点打开该备份恢复点对应的数据块索引BRI 文件和备份数据块BRD文件,所述BRI文件用于记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系;所述BRD文件用于存储非重复的备份数据块;
从所述BRI文件中依次读取索引记录,根据索引记录读取数据块记录REC 文件中的对应的数据块记录;
根据数据块记录中记录的备份数据块的存储位置从对应的BRD文件中读取备份数据块;
将读取备份数据块恢复到生产存储中的虚拟机磁盘文件当中。
基于本公开实施例,本公开还提供了一种虚拟机恢复装置,该装置包括:
元数据信息读取模块,用于从元数据信息MET文件中读取元数据信息,所述元数据信息包括:虚拟机元数据信息、备份相关文件元数据信息及备份链信息,备份链由备份恢复点组成;
恢复模块,用于根据选定的待恢复的备份恢复点打开该备份恢复点对应的数据块索引BRI文件和备份数据块BRD文件,从所述BRI文件中依次读取索引记录,根据索引记录读取数据块记录REC文件中的对应的数据块记录,根据数据块记录中记录的备份数据块的存储位置从对应的BRD文件中读取备份数据块,以及将读取备份数据块恢复到生产存储中的虚拟机磁盘文件当中;
所述BRI文件用于记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系;所述BRD文件用于存储非重复的备份数据块。
图6为本公开一实施例提供的一种电子设备结构示意图,该设备600包括:诸如中央处理单元(CPU)的处理器610、通信总线620、通信接口640 以及存储介质630。其中,处理器610与存储介质630可以通过通信总线620 相互通信。存储介质630内存储有计算机程序,当该计算机程序被处理器610 执行时执行本公开提供的上述虚拟机备份方法或虚拟机恢复方法的各步骤。
其中,存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。另外,存储介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(Central Processing Unit, CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本公开提供的虚拟机备份恢复方法,通过数据块记录文件记录所有具有唯一数据块指纹的备份数据块的存储位置以及备份数据块与多个备份恢复点之间的复用关系,通过数据块索引文件记录备份虚拟机磁盘文件的原始分割数据块与数据块记录文件中的记录之间的对应关系,实现了支持重删功能的虚拟机级的备份与恢复,提高了备份灵活性,节省了备份空间。
附图说明
为了更加清楚地说明本公开实施例或者现有技术中的技术方案,下面将对本公开实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本公开实施例的这些附图获得其他的附图。
图1为本公开一实施例提供的虚拟机备份恢复方案所采用的文件结构;
图2为本公开一实施例示例了虚拟机备份从生产存储写入备份存储整备份过程;
图3为本公开一实施提供的虚拟机数据恢复流程示意图;
图4为本公开一实施例提供的删除备份恢复点的步骤流程图;
图5为本公开一实施例提供的一种虚拟机备份装置结构示意图;
图6为本公开一实施例提供的一种电子设备结构示意图。
具体实施方式
在本公开实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本公开实施例。本公开实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本公开中使用的术语“和/ 或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本公开主要目的是实现以虚拟机为单位的数据备份及恢复,该备份方案支持基于虚拟机的重复数据去除功能。以下首先对备份恢复过程中涉及到的主要过程、技术术语进行详细说明。
虚拟机备份过程中,虚拟机的磁盘文件会被分割成固定长度的数据块,称为原始分割数据块,每个原始分割数据块根据备份策略可能经过生成校验值、重复数据去除、压缩、加密等处理,最后保存到备份服务器的备份存储空间中。执行虚拟机恢复时,则过程相反,从备份服务器读取备份数据块,执行数据解密、解压、重复数据块恢复、校验等处理步骤,按备份时的顺序依次还原出原始分割数据块,并写入虚拟机磁盘文件当中。其中,压缩、加密步骤可配置为可选步骤,每个原始分割数据块大小固定可配置,可以支持配置为512K、1M、 2M、4M字节大小等,本公开不做限定。
一个虚拟机的备份通常由多个备份恢复点构成,每个虚拟机在每次备份成功后即产生一个备份恢复点,使用一个备份恢复点的备份数据可以将虚拟机的磁盘文件还原到该备份恢复点对应的备份时刻的存储状态。一个虚拟机的所有的备份恢复点组成一个虚拟机的备份链,备份链中的备份恢复点最大个数一般是固定可配置的,假定虚拟机备份链中的备份恢复点总个数为1024个。当恢复点个数达到最大值时,可以删除或合并备份链中时间最久的恢复点,以保证恢复点个数不超过最大值。
为了唯一识别每一个原始分割数据块,备份过程中会为每个原始分割数据块生成一个指纹,数据块指纹也是后续判断数据是否重复的基础。数据块指纹可基于MD5等算法生成,本公开不做限定。例如采用MD5算法对每个原始分割数据块计算其哈希值,将所计算的哈希值作为该数据块的数据块指纹。为了避免指纹生成算法生成的数据块指纹可能存在的不唯一的情况,本公开实施例在进行重复数据块判断时,增加针对原始分割数据块的字节比对方式来确定数据块的唯一性,若字节比对后当前处理的原始分割数据块与已备份的原始分割数据块块完全相同,则认为当前处理的原始分割数据块为重复数据块,无需再写入备份存储中。若当前处理的原始分割数据块的指纹不同于已备份过的所有数据块,则认为这是一个新的需要备份的数据块,将该数据块写入到备份存储中。原始分割数据块的指纹可存储于指纹索引表中,指纹索引表可存储在数据库、本地配置文件或内存数据结构中,本公开不做限定。
本公开实施例提供的虚拟机备份恢复方案涉及到多种文件类型,这些文件类型包括:元数据信息文件(简称MET文件)、备份数据文件(简称BRD文件)、数据块记录文件(简称REC文件)、数据块索引文件(简称BRI文件)。以下分别对每种文件类型及其结构做详细描述。
元数据信息文件即MET文件用于记录与虚拟机备份相关的元数据信息,虚拟机备份相关的元数据信息包括虚拟机元数据信息、备份相关文件元数据信息及备份链信息等。
虚拟机元数据信息包括但不限于:虚拟机名称、虚拟机所在的宿主机名称、虚拟机磁盘文件名称及大小等。
备份相关文件元数据信息包括但不限于:数据块记录REC文件元数据信息、数据块索引BRI文件元数据信息、备份数据BRD文件元数据信息等。本公开中,备份相关文件包括REC文件、BRI文件和BRD文件,备份相关文件的元数据信息具体内容包括但不限于:文件名称、文件生成时间、文件存储位置等。
MET文件记录有虚拟机所有备份恢复点的元数据信息即备份链信息。每个备份恢复点的元数据信息包括备份恢复点的编号、备份恢复点名称、前后备份恢复点编号等信息。
每个备份的虚拟机对应一个MET文件,可用虚拟机名称进行命名,例如虚拟机vm1的元数据信息文件名称为vm1.met。MET文件在最初创建虚拟机备份时创建,在创建或删除备份恢复点时进行更新。
备份数据文件即BRD文件用于存储于备份数据块,所述备份数据块与数据块指纹一一对应。虚拟机的一个备份恢复点对应一个BRD文件。BRD文件可使用备份恢复点的索引号命名,例如:第12个备份恢复点对应的备份数据文件名为0012.brd。
在本公开一实施中,BRD文件组织格式可由文件头和一系列的备份数据块即Block字段组成。BRD文件结构可如下表1示例:
表1
字段名称 字段说明
Magic字段 固定为“BRD/0xF9”,4字节
Version字段 版本号字段,4字节
Block字段1 备份数据块字段,长度固定可配置
Block字段n
Magic字段用于校验文件的有效性,防止文件被篡改。
Block字段用于保存备份数据。每个Block由数据Data字段和长度Length 字段两部分组成,Length字段用于存储Data字段的长度,Data字段用于存储与原始分割数据块对应的备份数据,但原始分割数据块的内容通常不能等同于 Data字段的内容,因为虚拟机磁盘文件被分割为多个原始分割数据块后,可能会经过压缩、加密等处理。
在虚拟机的每个备份恢复点会产生一个BRD文件,RBD文件是真正保存虚拟机备份数据的地方。当有新的备份数据写入时,根据备份数据块的长度需要新建一个Block,该新建Block的起始地址从BRD文件的末尾开始写入。数据写入Block后,同时需要更新该Block的长度Length的值。删除备份恢复点时,会将该备份恢复点对应的BRD文件直接删除。
数据块索引文件即BRI文件用于按顺序记录每个原始分割数据块对应的数据块记录Record的存储位置即索引地址,BRI文件建立了虚拟机磁盘文件的原始分割数据块与REC文件中的数据块记录的对应关系。其中,数据块记录位于 REC文件当中,数据块记录记录了每个数据块指纹对应的备份数据块的存储位置。原始分割数据块与数据块指纹之间是多对一的关系,即可能有位于不同备份恢复点的多个重复的原始分割数据块对应同一个数据块指纹。
一个BRI文件对应一个虚拟机磁盘文件的一个备份恢复点,在创建备份恢复点时创建。在本公开一实施例中,BRI文件格式可采用表2的示例结构:
表2
Figure BDA0002852475560000121
BRI文件的名称可采用备份恢复点索引号+虚拟机磁盘文件名称的方式命名,例如虚拟机磁盘文件vda的第21个备份恢复点的BRI文件名称为:0021vda.bri。
Rec_offset数据块记录索引字段指向REC文件中数据块记录的存储地址。每个Rec_offset字段在BRI文件中的位置由原始分割数据块在虚拟机磁盘文件中的位置确定。
数据块记录文件即REC文件用于记录虚拟机的所有备份恢复点所引用的具有唯一数据块指纹的备份数据块的存储位置及备份数据块复用信息,所有备份恢复点中重复的原始分割数据块通过REC文件中的数据块指纹进行复用,即 REC文件中的一个数据块记录对应一个数据块指纹,一个数据块记录可能对应一个或多个BRI文件中的一个或多个Rec_Offest记录索引字段。
REC文件在最初创建虚拟机备份时创建,在每个备份恢复点进行更新。每个虚拟机对应一个REC文件,REC文件可以虚拟机名字进行命名,如:vm1.rec。 REC文件由文件头和一系列的Record数据块记录字段组成,每个Record记录一个数据块指纹对应的备份数据块的存储位置以及备份数据块与原始分割数据块之间的映射关系。
在本公开一实施例中,REC文件采用如表3的文件格式示例:
表3
Figure BDA0002852475560000131
Record字段采用如表4的格式示例:
表4
Figure BDA0002852475560000132
Record字段结构中,Fro_head和Fro_next组成一个单向的空闲record链表。当该Record指向有效数据时,该域为MD5数据块指纹值。
Ref_bitmap字段:假定支持最大的备份恢复点个数为1024个,则该字段为128字节,共1024比特位。该字段保存了虚拟机所有的备份恢复点对数据块指纹对应的备份数据块的引用情况,每个恢复点根据索引值占用一个比特,该比特位为1时,表示对应的备份恢复点引用了该备份数据块。在支持重复数据删除的情况下,可能会存在多个备份恢复点引用同一备份数据块的情况。
REC文件在刚开始创建时,Fro_head的值为0,Record的个数为0。当一个新的备份数据块生成写入BRD文件时,需要对应地新建Record数据块记录,字段,新建Record的过程如下:
步骤a1.新建Record字段结构,从REC文件的末尾开始写入。
步骤a2.将备份数据块对应的数据块指纹写入新建的Record的 MD5/Fro_next字段当中,Brd_index字段填写该备份数据块所属的BRD文件索引值,即备份恢复点索引值。Brd_offset字段填写该备份数据块在BRD文件中的偏移地址,通过该偏移地址可直接定位到备份数据块的存储位置。
步骤a3.新建的Record的偏移地址将记录在引用该备份数据块的BRI文件的Rec_offset字段个中。
当删除备份恢复点时,需要删除该备份恢复点所有的备份数据块对应的 Record,然而,由于Record存在被多个BRI文件复用的情况,因此删除备份恢复点对应的Record并不意味着一定删除REC文件中Record的数据。
当删除一个备份恢复点及相应地删除Record的过程如下:
步骤b1.首先根据虚拟机磁盘文件名及备份恢复点序号获取对应的BRI数据块索引文件,读取该备份恢复点所引用的所有的Record记录。每个Record根据BRI文件的Rec_offset的值找到其在REC文件中存储位置。
步骤b2.找到对应的Record后,将该备份恢复点对应的在Record的 Ref_bitmap字段中比特位置为0。
步骤b3.检查Ref_bitmap的所有比特位是否都为0,如果该Record指向的备份数据块被其他备份恢复点复用,则其它比特位会被置位。如果Ref_bitmap 的所有位为0,则说明该Record对应的备份数据块未被复用,可将该Record置为空闲。
将一个Record置为空闲状态并将该Record插入到空闲Record链表的步骤为:
步骤b31.将Record记录中Fro_next字段写0。
步骤b32.将REC文件的Fro_head的值写入到Fro_next字段中
步骤b33.将fro_head的值更新为该record的偏移地址;
步骤b34.将其它字段清零。
如果Record对应的备份数据块被多个备份恢复点复用,如果在删除备份恢复点时直接删除该备份恢复点的BRD文件,则会导致该备份恢复点的BRD文件中被其它备份恢复点引用的备份数据块的丢失,因此在这种情况下,需要将该Record对应的备份数据块从当前准备删除的备份恢复点的BRD文件中拷贝到其它备份恢复点中第一个引用该Record的BRD文件中,具体步骤如下:
步骤b41.根据Ref_bitmap的值找到第一个引用该Record的备份恢复点即第一引用恢复点。
步骤b42.找到第一引用恢复点对应的BRD文件并新建备份数据块,更新该Record对应的Brd_index为该第一引用恢复点的BRD文件索引号(即备份恢复点索引号),Brd_offset更新为该新建的备份数据块在第一引用恢复点的BRD 文件中的偏移地址。
基于表3和表4的Record字段结构,备份系统在多次备份后,会生成多个备份恢复点,当删除其中一个或者多个备份点,REC文件中会产生空闲的Record 链表,Record链表由多个空闲的Record组成的单链表结构,当下次再备份时,首先是在Record链表中寻找空闲的Record插入备份数据,而不是新建Record,这样可以避免频繁的生成和释放Record从而提高备份效率。
插入Record的过程如下:
步骤c1.读取REC文件的Fro_head的值,如果该值不为0,说明有空闲的 Record。
步骤c2.根据Fro_head的值定位该Record的偏移地址,更新Fro_head的值为该Record的Fro_next的值。
步骤c3.该插入的Record的MD5/Fro_next填写为对应的新生成的数据块指纹的MD5值,Brd_index填写数据块指纹对应备份数据块所在的RBD文件索引,即备份恢复点索引值。Brd_offset填写对应备份数据块在BRD文件偏移地址。
步骤c4.将该插入的Record在REC文件中的偏移地址记录引用该Record 的RBI文件中原始分割数据块对应的Rec_offset字段中。
基于上述公开内容,图1示例了本公开一具体实施例中虚拟机备份恢复方案所采用的文件结构,该实施例中,假定虚拟机vm1的虚拟磁盘文件vda有2 个备份恢复点,分别为005和006。MET文件名称为vm1.met,两个备份恢复点对应的BRD文件名称为005.brd和006.brd。REC文件名称为vm1.rec,两个备份恢复点对应的BRI文件名称为005vda.bri和006vda.bri。
MET文件存储的元数据信息指向两个BRI文件,BRI文件中与原始分割数据块对应的Rec_offset字段指向REC文件对应的Record记录地址,根据Record 中的Brd_index和Brd_offset可找到数据块指纹对应的BRD文件中的备份数据块。从图中可以看出,备份恢复点5对应的数据块索引文件0005vda.bri中的 rec_offset2和备份恢复点6对应的数据块索引文件0006vda.bri中的rec_offset3 指向了相同的Record数据块记录,说明该Record数据块记录存在复用的情况,即rec_offset2和rec_offset3对应的两个不同备份恢复点的原始分割数据块具有相同的数据块指纹,引用了0005.brd中同一备份数据块,相应地该record中的 ref_bitmap字段对应的005和006备份恢复点的比特位置为1。
为了实现备份过程中的重复数据去除功能,本公开一实施例引入了指纹数据库。在虚拟机备份的过程中,虚拟机磁盘文件被分割成等长的原始分割数据块,通过MD5等指纹生成算法生成每个原始分割数据块的数据块指纹,将每个数据块指纹及该数据块指纹对应的REC文件中的Record偏移地址存储在指纹数据库中,利用指纹数据库的存储和检索功能判断是否有重复的原始分割数据块。
在虚拟机备份过程中,首先计算原始分割数据块的数据块指纹,然后在指纹数据库中查询是否存在相同的数据块指纹,如果有则说明当前处理的原始分割数据块与之前生成的原始分割数据块重复,发现重复数据块后,从指纹数据库中读取已存储的具有相同数据块指纹的Record地址,更新对应Record的 ref_bitmap字段,从而实现去除重复备份数据块的目的,带来的效果是,多个具有相同数据块指纹的原始分割数据块仅需要在BRD文件中备份一次,节省了备份存储空间。
结合上述实施例中所给的文件结构示例,图2示例了虚拟机备份从生产存储写入备份存储的备份过程,包括以下步骤:
步骤201.针对虚拟机1定制备份任务,在备份任务初始第一次启动时,创建MET文件和REC文件。
通常备份任务周期性地运行对虚拟机磁盘文件进行持续性的备份,每次备份生成对应的备份恢复点,在备份任务第一次运行时即创建MET文件和REC 文件,REC文件的记录头部指针fro_head=0,Record记录个数为0。
步骤202.获取一个空闲的备份恢复点索引号,创建对应的BRD文件和BRI 文件,相应地更新MET文件中的备份相关文件信息。
假设备份恢复点的索引号为0001,则创建BRD文件0001.brd。根据备份的虚拟机磁盘文件名称创建BRI文件,若虚拟机磁盘文件名称为vda,则备份恢复点0001对应的BRI文件的名称可命名为0001vda.bri。
步骤203.对备份的虚拟机磁盘文件按预设固定块大小进行分割;
步骤204.从生产端读取一个备份虚拟机的虚拟机磁盘文件的原始分割数据块,并计算该原始分割数据块的MD5值生成数据块指纹;
步骤205.在指纹数据库中查询该原始分割数据块的数据块指纹是否存在,判断该原始分割数据块是否为重复数据块,若存在则执行步骤209,否不存在则执行步骤206;
步骤206.当判定该原始分割数据块为不重复的新的原始分割数据块(以下称为新增原始分割数据块)时,在当前备份恢复点对应的BRD文件中为该新的原始分割数据块新建一个备份数据块(以下称为新增备份数据块),并将所述原始分割数据块的内容对应写入BRD文件中新增备份数据块中。如果需要对原始分割数据块做加密、压缩等处理,则在写入之前还需要执行相应的加密、压缩等处理步骤,因此,原始分割数据块的内容与备份数据块的内容并不一定完全一致。
步骤207.在REC文件新建或者插入一个Record(以下称为新增Record),将新增原始分割数据块对应的数据块指纹、新增备份数据块对应的BRD文件索引号、Brd_offset写入到该新增Record中。
步骤208.根据原始分割数据块在虚拟机磁盘文件中的偏移地址(或序号),得到分割数据块在BRI文件中的偏移地址,并在该偏移地址写入新增Record在 REC文件中的偏移地址。
至此,该步骤完成后即完成一个非重复的原始分割数据块的备份处理步骤。
步骤209.当判定该原始分割数据块为重复的原始分割数据块时,从指纹数据库中取出该重复数据块的MD5指纹值对应的Record的偏移值Rec_offset,根据Rec_offset在REC文件中找到对应的Record,更新对应Record的Ref_bitmap,将Ref_bitmap中该备份恢复点索引对应的比特位置1。至此,对于当前原始分割数据块的备份处理结束。
至此,该步骤完成后即完成一个重复的原始分割数据块的备份处理步骤。
重复上述步骤204~209,直到该虚拟机所有的原始分割数据块都处理完成。在完成对所有原始分割数据块的备份处理后,最后还需要更新元数据文件,例如记录新建立的备份链信息等。
图3为本公开一实施提供的虚拟机数据恢复流程示意图,基于上述虚拟机备份文件结构,数据恢复即数据还原的步骤如下:
步骤301.首先打开MET文件和REC文件,根据选定的需要恢复的备份恢复点打开该备份恢复点对应的BRI文件和BRD文件。
步骤302.从BRI文件中依次读取Rec_offset字段(即索引记录),根据当前处理的Rec_offset字段值读取REC文件中的对应的数据块记录Record。
步骤303.在Record中根据Brd_index和Brd_offset字段的值从对应的BRD 文件中读取对应的备份数据块。
步骤304.将读取的备份数据块恢复到生产存储中虚拟机磁盘文件当中,如果需要对备份数据块进行解压和/或解密的处理,则还包括对备份数据块进行解压和/或解密的步骤。
重复步骤302~304,直到处理完BRI文件中的所有Rec_offset字段,然后再关闭所打开的备份文件,至此即可完成指定备份恢复点的数据恢复。
图4为本公开一实施例提供的删除备份恢复点的步骤流程图,当需要删除某个备份恢复点时,首先打开待删除备份恢复点对应的BRI文件和BRD文件,然后执行如下步骤:
步骤401.依次读取待删除备份恢复点对应的BRI文件的Rec_offset字段,根据Rec_offset找到REC文件中Record;
步骤402.根据该Record中的ref_bitmap字段判断是否该Record指向的备份数据块被多个备份恢复点引用,即判断该Record是否指向一个被复用的备份数据块,如果是,执行步骤403,否则执行步骤406;
步骤403.判断该Record指向的备份数据块是否位于待删除的备份恢复点对应的BRD文件当中,如果是则执行步骤404,否则执行步骤;405;
步骤404.将该Record指向的备份数据块迁移到ref_bitmap字段中除待删除备份恢复点之外的第一个引用该备份数据块的备份恢复点对应的BRD文件中;
该步骤需要将待删除备份恢复点对应的BRD文件中存储的被其它备份恢复点复用的备份数据块迁移到ref_bitmap字段中第一个引用该备份数据块的备份恢复点对应的BRD文件中,例如当要删除备份恢复点005对应的BRI文件中第1个Rec_offset1字段对应的原始分割数据块时,发现Rec_offset1指向的REC文件中的Record中的ref_bitmap字段中备份恢复点005和006对应的比特位被置位,说明备份恢复点005和006同时引用了该Record指向的BRD文件中的备份数据块,由于当前删除的就是备份恢复点005,则需要将该备份数据块从备份恢复点005对应的BRD文件迁移到备份恢复点006对应的BRD文件中。
步骤405.将该Record的ref_bitmap字段中待删除备份恢复点对应的比特位置0,然后执行步骤407。
步骤406.当BRI文件的当前Rec_offset指向的REC文件中Record未被多个备份恢复点复用时,则可从REC文件中直接删除当前Rec_offset指向的Record。
步骤407.判断是否处理完待删除备份恢复点对应的BRI文件中的所有Rec_offset字段,如果是则执行步骤408,否则再次执行步骤401处理下一 Rec_offset字段。
步骤408.删除待删除备份恢复点对应的BRI文件和BRD文件,并更新MET 文件中的备份相关文件信息。
本公开提供的虚拟机备份恢复方法,通过数据块记录文件记录所有具有唯一数据块指纹的备份数据块的存储位置以及备份数据块与多个备份恢复点之间的复用关系,通过数据块索引文件记录备份虚拟机磁盘文件的原始分割数据块与数据块记录文件中的记录之间的对应关系,基于本公开提供的文件结构和备份恢复方法可实现支持重删功能虚拟机级的备份与恢复,提高了备份灵活性,节省了备份空间。
应当认识到,本公开的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本公开描述的过程的操作,除非本公开另外指示或以其他方式明显地与上下文矛盾。本公开描述的过程(或变型和/或其组合) 可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本公开的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本公开所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本公开所述的方法和技术编程时,本公开还包括计算机本身。
以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (8)

1.一种虚拟机备份方法,其特征在于,所述方法包括:
在对虚拟机的虚拟机磁盘文件进行初次备份时,创建元数据信息MET文件和数据块记录REC文件;所述元数据信息MET文件用于记录元数据信息,所述元数据信息包括:虚拟机元数据信息、备份相关文件元数据信息及备份链信息,备份链由备份恢复点组成;所述数据块记录REC文件用于存储所有备份恢复点引用的非重复的备份数据块的数据块记录,所述数据块记录中记录备份数据块的数据块指纹、存储位置及备份恢复点与备份数据块之间的引用关系,所述数据块指纹由原始分割数据块计算获得,与备份数据块具有一一对应关系;
在创建备份恢复点时,创建与备份恢复点对应的数据块索引BRI文件和备份数据BRD文件;所述BRD文件用于存储非重复的备份数据块;所述BRI文件用于记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系;
将虚拟机磁盘文件按预设固定大小切割为多个原始分割数据块,计算当前原始分割数据块的数据块指纹,在对每个原始分割数据块进行备份的过程中:
通过REC文件来记录本次新生成的非重复的备份数据块的数据块记录的方法为:
当根据数据块指纹判断当前原始分割数据块为非重复数据块时,生成该数据块指纹对应的备份数据块并将其存储在BRD文件中;在REC文件中生成新数据块记录,并在新数据块记录中记录该数据块指纹、该数据块指纹对应的备份数据块的存储位置及当前备份恢复点与新生成的备份数据块之间的引用关系;
通过更新已存储的备份数据块的数据块记录中的引用关系来记录当前创建的备份恢复点中包含的重复备份数据的方法为:
当根据数据块指纹判断当前原始分割数据块为重复数据块时,在该数据块指纹对应的已存储于REC文件中的数据块记录中记录当前备份恢复点与该数据块记录对应的已存储的备份数据块之间的引用关系;
通过与备份恢复点对应的数据块索引BRI文件记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系的方法为:
在数据块索引BRI文件中为虚拟机磁盘文件的每个原始分割数据块对应地生成一个索引记录,通过索引记录指向原始分割数据块的数据块指纹在REC文件中对应的数据块记录的存储位置;
所述REC文件中备份恢复点与备份数据块之间的引用关系通过位图字段进行标识,位图字段中每一位对应一个备份恢复点,置位表示对应的备份恢复点引用了该备份数据块。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当删除一个备份恢复点时,需要对应地删除与该备份恢复点对应的BRI文件和BRD文件;
在删除BRD文件中的备份数据块之前,需要判断该备份数据块是否被其它备份恢复点引用;
当判定待该备份数据块被其它备份恢复点引用时,基于REC文件中记录的该备份数据块与备份恢复点之间的引用关系,将该备份数据块迁移到除待删除的备份恢复点之外的第一个引用该备份数据块的备份恢复点对应的BRD文件中。
3.一种虚拟机备份装置,其特征在于,该装置包括:
控制模块,用于进行备份流程的控制;
元数据信息模块,用于创建元数据信息MET文件并在MET文件中记录元数据信息;
数据块索引模块,用于创建与备份恢复点对应的数据块索引BRI文件并在BRI文件中记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系;
备份数据块模块,用于创建与备份恢复点对应的备份数据BRD文件并在BRD文件中存储非重复的备份数据块;
数据块记录模块,用于创建数据块记录REC文件并在REC文件中存储所有备份恢复点引用的非重复的备份数据块的数据块记录,所述数据块记录中记录备份数据块的数据块指纹、存储位置及备份恢复点与备份数据块之间的引用关系,所述数据块指纹由原始分割数据块计算获得,与备份数据块具有一一对应关系;
所述元数据信息模块和所述数据块记录模块在对虚拟机的虚拟机磁盘文件进行初次备份时,创建所述MET文件和REC文件;所述元数据信息包括:虚拟机元数据信息、备份相关文件元数据信息及备份链信息,备份链由备份恢复点组成;
所述数据块索引模块和所述备份数据块模块在创建备份恢复点时,创建与备份恢复点对应的BRI文件和BRD文件;
所述数据块记录模块在创建备份恢复点时,通过REC文件来记录本次新生成的非重复的备份数据块的数据块记录,以及通过更新已存储的备份数据块的数据块记录中的引用关系来记录当前创建的备份恢复点中包含的重复备份数据;
所述数据块索引模块和备份数据块模块在创建备份恢复点时创建与当前备份恢复点对应的数据块索引BRI文件和备份数据BRD文件;
数据块索引模块将虚拟机磁盘文件按预设固定大小切割为多个原始分割数据块,计算当前原始分割数据块的数据块指纹;
当数据块记录模块根据数据块指纹判断当前原始分割数据块为非重复数据块时,生成该数据块指纹对应的备份数据块并将其存储在BRD文件中;在REC文件中生成新数据块记录,并在新数据块记录中记录该数据块指纹、该数据块指纹对应的备份数据块的存储位置及当前备份恢复点与新生成的备份数据块之间的引用关系;
当数据块记录模块根据数据块指纹判断当前原始分割数据块为重复数据块时,在该数据块指纹对应的已存储于REC文件中的数据块记录中记录当前备份恢复点与该数据块记录对应的已存储的备份数据块之间的引用关系;
所述数据块索引模块在数据块索引BRI文件中为虚拟机磁盘文件的每个原始分割数据块对应地生成一个索引记录,通过索引记录指向原始分割数据块的数据块指纹在REC文件中对应的数据块记录的存储位置;
所述REC文件中备份恢复点与备份数据块之间的引用关系通过位图字段进行标识,位图字段中每一位对应一个备份恢复点,所述数据块记录模块通过将备份恢复点对应的位置位来记录备份恢复点与备份数据块之间的引用关系。
4.根据权利要求3所述的装置,其特征在于,所述控制模块还用于删除备份恢复点的流程控制;
当删除一个备份恢复点时,所述控制模块指令数据块索引模块和备份数据块模块对应地删除与该备份恢复点对应的BRI文件和BRD文件;
在删除BRD文件中的备份数据块之前,所述控制模块判断该备份数据块是否被其它备份恢复点引用,当判定待该备份数据块被其它备份恢复点引用时,基于REC文件中记录的该备份数据块与备份恢复点之间的引用关系,将该备份数据块迁移到除待删除的备份恢复点之外的第一个引用该备份数据块的备份恢复点对应的BRD文件中,并对应地更新数据块记录中记录的该备份数据块的存储位置及该备份数据块与备份恢复点之间的引用关系。
5.一种虚拟机恢复方法,其特征在于,该方法包括:
从元数据信息MET文件中读取元数据信息,所述元数据信息包括:虚拟机元数据信息、备份相关文件元数据信息及备份链信息,备份链由备份恢复点组成;
根据选定的待恢复的备份恢复点打开该备份恢复点对应的数据块索引BRI文件和备份数据块BRD文件,所述BRI文件用于记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系;所述BRD文件用于存储非重复的备份数据块;
从所述BRI文件中依次读取索引记录,根据索引记录读取数据块记录REC文件中的对应的数据块记录;所述数据块记录REC文件用于存储所有备份恢复点引用的非重复的备份数据块的数据块记录,所述数据块记录中记录备份数据块的数据块指纹、存储位置及备份恢复点与备份数据块之间的引用关系,所述数据块指纹由原始分割数据块计算获得,与备份数据块具有一一对应关系;所述REC文件中备份恢复点与备份数据块之间的引用关系通过位图字段进行标识,位图字段中每一位对应一个备份恢复点,置位表示对应的备份恢复点引用了该备份数据块;
根据数据块记录中记录的备份数据块的存储位置从对应的BRD文件中读取备份数据块;
将读取备份数据块恢复到生产存储中的虚拟机磁盘文件当中。
6.一种虚拟机恢复装置,其特征在于,该装置包括:
元数据信息读取模块,用于从元数据信息MET文件中读取元数据信息,所述元数据信息包括:虚拟机元数据信息、备份相关文件元数据信息及备份链信息,备份链由备份恢复点组成;
恢复模块,用于根据选定的待恢复的备份恢复点打开该备份恢复点对应的数据块索引BRI文件和备份数据块BRD文件,从所述BRI文件中依次读取索引记录,根据索引记录读取数据块记录REC文件中的对应的数据块记录,根据数据块记录中记录的备份数据块的存储位置从对应的BRD文件中读取备份数据块,以及将读取备份数据块恢复到生产存储中的虚拟机磁盘文件当中;
所述BRI文件用于记录虚拟机磁盘文件的原始分割数据块与非重复的备份数据块之间的对应关系;所述BRD文件用于存储非重复的备份数据块;
所述数据块记录REC文件用于存储所有备份恢复点引用的非重复的备份数据块的数据块记录,所述数据块记录中记录备份数据块的数据块指纹、存储位置及备份恢复点与备份数据块之间的引用关系,所述数据块指纹由原始分割数据块计算获得,与备份数据块具有一一对应关系;所述REC文件中备份恢复点与备份数据块之间的引用关系通过位图字段进行标识,位图字段中每一位对应一个备份恢复点,置位表示对应的备份恢复点引用了该备份数据块。
7.一种电子设备,其特征在于,包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;
存储介质,用于存放计算机程序;
处理器,用于执行存储介质上所存放的计算机程序时,实现权利要求1-2、5中任一项所述的方法步骤。
8.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序当被处理器执行时实现权利要求1-2、5中任一项所述的方法步骤。
CN202011532687.5A 2020-12-23 2020-12-23 虚拟机备份方法、装置、电子设备及存储介质 Active CN112612576B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011532687.5A CN112612576B (zh) 2020-12-23 2020-12-23 虚拟机备份方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011532687.5A CN112612576B (zh) 2020-12-23 2020-12-23 虚拟机备份方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112612576A CN112612576A (zh) 2021-04-06
CN112612576B true CN112612576B (zh) 2022-08-30

Family

ID=75244310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011532687.5A Active CN112612576B (zh) 2020-12-23 2020-12-23 虚拟机备份方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112612576B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220505A (zh) * 2021-05-26 2021-08-06 成都易我科技开发有限责任公司 备份镜像数据的管理方法、装置、系统及存储介质
TWI819916B (zh) * 2022-12-07 2023-10-21 中華電信股份有限公司 基於分散式儲存技術之雲服務虛擬機災難備援系統及其方法
CN117493074A (zh) * 2023-09-25 2024-02-02 广州鼎甲计算机科技有限公司 虚拟机增量恢复方法、装置、计算机设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216791A (zh) * 2008-01-04 2008-07-09 华中科技大学 基于指纹的文件备份方法
CN103019887A (zh) * 2012-12-12 2013-04-03 华为技术有限公司 数据备份方法及装置
CN103365745A (zh) * 2013-06-07 2013-10-23 上海爱数软件有限公司 一种基于内容地址存储的块级备份方法及系统
CN108595290A (zh) * 2018-03-23 2018-09-28 上海爱数信息技术股份有限公司 一种保证备份数据可靠性的方法及数据备份方法
CN109154881A (zh) * 2016-03-25 2019-01-04 Netapp股份有限公司 基于对象的存储复制和恢复
CN109508254A (zh) * 2017-09-14 2019-03-22 华为技术有限公司 一种数据恢复方法及装置
CN110941514A (zh) * 2019-11-25 2020-03-31 湖北工业大学 一种数据备份方法、恢复方法、计算机设备和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135748B2 (en) * 2009-04-10 2012-03-13 PHD Virtual Technologies Virtual machine data replication
CN103593256B (zh) * 2012-08-15 2017-05-24 阿里巴巴集团控股有限公司 一种基于多层排重的虚机快照备份方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216791A (zh) * 2008-01-04 2008-07-09 华中科技大学 基于指纹的文件备份方法
CN103019887A (zh) * 2012-12-12 2013-04-03 华为技术有限公司 数据备份方法及装置
CN103365745A (zh) * 2013-06-07 2013-10-23 上海爱数软件有限公司 一种基于内容地址存储的块级备份方法及系统
CN109154881A (zh) * 2016-03-25 2019-01-04 Netapp股份有限公司 基于对象的存储复制和恢复
CN109508254A (zh) * 2017-09-14 2019-03-22 华为技术有限公司 一种数据恢复方法及装置
CN108595290A (zh) * 2018-03-23 2018-09-28 上海爱数信息技术股份有限公司 一种保证备份数据可靠性的方法及数据备份方法
CN110941514A (zh) * 2019-11-25 2020-03-31 湖北工业大学 一种数据备份方法、恢复方法、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
针对虚拟机备份的分布式重复数据删除系统的设计与实现;黄国强;《万方》;20150730;全文 *

Also Published As

Publication number Publication date
CN112612576A (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
CN112612576B (zh) 虚拟机备份方法、装置、电子设备及存储介质
US9514138B1 (en) Using read signature command in file system to backup data
US8510279B1 (en) Using read signature command in file system to backup data
US10175894B1 (en) Method for populating a cache index on a deduplicated storage system
US8315985B1 (en) Optimizing the de-duplication rate for a backup stream
US7814149B1 (en) Client side data deduplication
US7366859B2 (en) Fast incremental backup method and system
CN103870514B (zh) 重复数据删除方法和装置
CN105009067B (zh) 管理对存储数据单元的操作
CN107229420B (zh) 数据存储方法、读取方法、删除方法和数据操作系统
US20070208918A1 (en) Method and apparatus for providing virtual machine backup
US10936228B2 (en) Providing data deduplication in a data storage system with parallelized computation of crypto-digests for blocks of host I/O data
WO2017020576A1 (zh) 一种键值存储系统中文件压实的方法和装置
US20180253358A1 (en) Information processing apparatus
CN104077380A (zh) 一种重复数据删除方法、装置及系统
US9594643B2 (en) Handling restores in an incremental backup storage system
CN107798063B (zh) 快照处理方法和快照处理装置
US9535799B2 (en) Apparatus, systems, and methods for data recovery
CN109753381B (zh) 一种基于对象存储的持续数据保护方法
CN112817962B (zh) 基于对象存储的数据存储方法、装置和计算机设备
US9594635B2 (en) Systems and methods for sequential resilvering
CN111124940A (zh) 一种基于全闪存阵列的空间回收方法及系统
US9798793B1 (en) Method for recovering an index on a deduplicated storage system
CN105573862B (zh) 一种恢复文件系统的方法和设备
CN113868018A (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