CN113220500A - Recovery method, apparatus and program product based on reverse differential recovery - Google Patents

Recovery method, apparatus and program product based on reverse differential recovery Download PDF

Info

Publication number
CN113220500A
CN113220500A CN202010080364.0A CN202010080364A CN113220500A CN 113220500 A CN113220500 A CN 113220500A CN 202010080364 A CN202010080364 A CN 202010080364A CN 113220500 A CN113220500 A CN 113220500A
Authority
CN
China
Prior art keywords
user system
summary information
block
backup
blocks
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.)
Pending
Application number
CN202010080364.0A
Other languages
Chinese (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN202010080364.0A priority Critical patent/CN113220500A/en
Priority to US16/888,822 priority patent/US20210240350A1/en
Publication of CN113220500A publication Critical patent/CN113220500A/en
Pending legal-status Critical Current

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/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system

Abstract

The present disclosure relates to a recovery method, apparatus and program product based on reverse differential recovery. In one method, a reference map of a user system is obtained, the reference map including a set of summary information for a set of blocks in the user system. Based on the identification of the backup copy for restoring the user system, a copy reference map associated with the backup copy is received from a backup storage that includes the backup copy, the copy reference map including a set of summary information for a set of chunks in the backup copy. A difference between the reference mapping and the duplicate reference mapping is determined. Restoring the user system to the backup copy based on the determined difference. With the above method, the user system can be restored to the specified version in a more efficient manner. Further, a corresponding apparatus and computer program product are provided.

Description

Recovery method, apparatus and program product based on reverse differential recovery
Technical Field
Implementations of the present disclosure relate to data backup and data restore, and more particularly, to methods, apparatuses, and computer program products for generating backup copies for chunks in a backup user system based on reverse differences and performing data restore based on the backup copies.
Background
With the development of user systems, various types of user systems have appeared. During use of the user system, backups may be performed with respect to the user system such that when the user system fails and/or otherwise, data objects (e.g., including directories and files) in the user system may be restored to a previous version. A user and/or administrator of the user system may select the data objects to be backed up, e.g., may select files, directories in the user system, or backup the entire user system, etc., to perform the backup. Data objects in a user system may be divided into a plurality of data chunks, backup copies generated based on the plurality of data chunks, and stored to a backup storage (e.g., a cluster of storage devices). Further, the data objects may be restored from the backup copy. When the user system is in an emergency state, recovery efficiency is critical. Therefore, the Recovery Time Object (RTO) is one of the most important parameters in data protection. The recovery time objective refers to the time it takes to recover a normal business process in a natural disaster, emergency, or other situation requiring data recovery.
Image-level or block-level restore schemes have been proposed in the field of data protection, and these schemes typically simply restore all data from backup storage to the user system. For example, in a PowerProtect data manager, a file system backup program would generate a copy of the protected data in the data domain that contains all the data chunks of the protected data. The recovery program transfers all copy chunks from the data field to the user system. If the backup copy is large, the recovery may take an extremely long time, which increases the risk of transmission failure and recovery failure. Further, the recovery process would be very expensive in view of the expense of transmitting large amounts of data in a hybrid cloud scenario. Thus, it is a research focus on how to reduce the recovery time and the amount of data transferred from the backup storage to the user system in a more efficient manner.
Disclosure of Invention
Accordingly, it is desirable to develop and implement a solution for performing data backup and data recovery in a more efficient manner. It is desirable that the solution be compatible with existing backup and restore solutions and perform data backup and restore in a more efficient manner by adapting various configurations of existing user systems and backup storage.
According to a first aspect of the present disclosure, a method for recovering data in a user system is provided. A reference map of a user system is obtained, the reference map including a set of summary information for a set of tiles in the user system. Based on the identification of the backup copy for restoring the user system, a copy reference map associated with the backup copy is received from a backup storage that includes the backup copy, the copy reference map including a set of summary information for a set of chunks in the backup copy. A difference between the reference mapping and the duplicate reference mapping is determined. Restoring the user system to the backup copy based on the determined difference.
According to a second aspect of the present disclosure, there is provided an electronic device comprising: at least one processor; and a memory coupled with the at least one processor, the memory having instructions stored therein that, when executed by the at least one processor, cause the apparatus to perform actions for recovering data in a user system. The actions include: obtaining a reference mapping of a user system, wherein the reference mapping comprises a group of summary information of a group of blocks in the user system; based on the identification of the backup copy for restoring the user system, receiving a copy reference map associated with the backup copy from a backup storage that includes the backup copy, the copy reference map including a set of summary information for a set of chunks in the backup copy; determining a difference between the reference mapping and the replica reference mapping; and restoring the user system to the backup copy based on the determined difference.
According to a third aspect of the present disclosure, there is provided a computer program product tangibly stored on a non-transitory computer-readable medium and comprising machine executable instructions for performing a method according to the first aspect of the present disclosure.
Drawings
The features, advantages and other aspects of various implementations of the present disclosure will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings, which illustrate, by way of example and not by way of limitation, several implementations of the present disclosure. In the drawings:
FIG. 1 schematically illustrates a block diagram of an architecture for performing backup and restore operations for a user system, according to one aspect;
fig. 2 schematically shows a block diagram of a procedure for performing a recovery operation according to the solution shown in fig. 1;
FIG. 3 schematically shows a block diagram of a process for backing up data and restoring data in a user system, according to an exemplary implementation of the present disclosure;
FIG. 4 schematically illustrates a flow chart of a method for recovering data in a user system according to an exemplary implementation of the present disclosure;
FIG. 5 schematically illustrates a block diagram of a mapping relationship between tiles in a user system and summary information in a reference map, according to an exemplary implementation of the present disclosure;
FIG. 6 schematically shows a block diagram of a process for backing up data in a user system, according to an exemplary implementation of the present disclosure;
FIG. 7 schematically shows a block diagram of a process for recovering data in a user system, according to an exemplary implementation of the present disclosure;
FIG. 8 schematically shows a block diagram of a process for determining a difference between a reference mapping and a replica reference mapping according to an exemplary implementation of the present disclosure;
FIG. 9 schematically shows a block diagram of a process for determining a difference between a reference mapping and a replica reference mapping according to another example implementation of the present disclosure; and
fig. 10 schematically illustrates a block diagram of an apparatus for managing a user system according to an exemplary implementation of the present disclosure.
Detailed Description
Preferred implementations of the present disclosure will be described in more detail below with reference to the accompanying drawings. While a preferred implementation of the present disclosure is shown in the drawings, it should be understood that the present disclosure may be implemented in various forms and should not be limited by the implementations set forth herein. Rather, these implementations are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
The term "include" and variations thereof as used herein is meant to be inclusive in an open-ended manner, i.e., "including but not limited to". Unless specifically stated otherwise, the term "or" means "and/or". The term "based on" means "based at least in part on". The terms "one example implementation" and "one implementation" mean "at least one example implementation". The term "another implementation" means "at least one additional implementation". The terms "first," "second," and the like may refer to different or the same object. Other explicit and implicit definitions are also possible below.
In different application environments, a variety of user systems have emerged. For example, a personal computer may be one example of a user system, and various types of files, such as documents, images, audio, video, and so forth, may be included in the personal computer. The user system may also include one or more directories, and other directories and/or one or more files may be included in the directories. In the context of this disclosure, a file, directory, may be referred to as a data object.
To ensure the reliability of the personal computer, backups may be performed periodically and/or according to user specified rules. For example, files, directories in the user system, or the entire user system, etc. may be backed up. As another example, a file server may be another example of a user system, in which case the file server may include multiple files from one or more users. A user and/or administrator may specify that backups be performed for certain and/or certain files, and may also perform backups for the entire file server.
Fig. 1 schematically illustrates a block diagram 100 of an architecture for performing backup operations and restore operations for a user system 110, according to one aspect. As shown in fig. 1, user system 110 may include a plurality of tiles 112, 114, …, 116, and 118. The data in the user system 110 may be divided by a predetermined size to form the plurality of tiles. Backup operations may be performed at different points in time to generate backup copies of user system 110. The generated backup copies may further be stored to backup storage 120. For example, backup copy 122 may be generated at time T0, backup copy 124 may be generated at time T1, and so on.
Various data backup solutions have been proposed. For example, full backup requires backing up all blocks in a user system, which takes up a lot of storage and bandwidth resources. For another example, an incremental backup (incremental backup) may only backup blocks in user system 110 that have been changed after the last backup. While incremental backups reduce the need for storage resources and bandwidth resources, incremental backups require multiple incremental backup copies to be managed strictly in time. During the restore operation, it is necessary to perform reverse restore operations one by one on each incremental backup copy in chronological order from back to front in order to restore the user system 110 to the desired version.
However, performing the reverse restore operation on a per incremental backup copy basis one-by-one may result in a large number of redundant operations, which may result in inefficient operation of the user system 110. Hereinafter, a recovery operation will be described with reference to fig. 2. Fig. 2 schematically shows a block diagram 200 of a procedure for performing a recovery operation according to the solution shown in fig. 1. The state of the tiles in the user system 110 at different points in time is schematically shown on the left side of fig. 2. A set of tiles 210 shows the state of the user system 110 at time T0, where each box represents a tile in the user system 110. Blank boxes in the state represent unchanged blocks, and a bar legend 230 shows the initial data (e.g., the second and third blocks in the user system 110).
At time point T1, the data in the second and third tiles of a group of tiles 212 is changed (the changed data is represented by legend 232). At this time, the second and third bits in the change indicator 220 are set to the shadow legend 234. At time point T2, a group of tiles 214 represents that the second and third tiles in the user system 110 were rolled back to the initial data 230. At this time, the second and third bits in the change indicator 222 are set to the shadow legend 234.
If it is desired to restore the data of the user system 110 to the version at the time point T0, although the data in the blocks in the user system 110 completely coincides with the desired version at the time point T2, it is also necessary to perform two restoration operations with respect to the data in the user system 110 in the incremental backup manner. Specifically, the data in user system 110 needs to be restored from user system 110 as shown in set of tiles 214 based on the delta between time point T1 and time point T2, as shown in set of tiles 212. The data in the user system 110 is then restored based on the delta between time point T0 and time point T1 as shown in the set of tiles 210. It will be appreciated that although the data in the user system 110 is not changed after the two restore operations are completed, the two restore operations will result in a significant amount of time and computational resource overhead.
To address the above deficiencies, implementations of the present disclosure provide a method for recovering data in a user system 110. In this approach, a concept of a reference map of the user system 110 is proposed, which may include a set of summary information for a set of tiles in the user system 110. In other words, the summary information of a block can uniquely identify the data in the block. In performing a backup operation, the reference map for user system 110 may be stored to a backup storage along with a backup copy of user system 110 to indicate which blocks are included in the backup copy. More information about the present disclosure will be described below with reference to fig. 3.
Fig. 3 schematically shows a block diagram 300 of a process for backing up data and restoring data in a user system 110 according to an exemplary implementation of the present disclosure. As shown in fig. 3, summary information for each chunk in the user system 110 may be determined during a backup operation. In particular, summary information 312 may be determined for block 112, summary information 314 may be determined for block 114, summary information 316 may be determined for block 116, summary information 318 may be determined for block 118, and so on. The reference map 310 may be generated based on summary information 312-318 for various tiles in the user system 110. A copy of reference map 310 (i.e., copy reference map 330) may then be stored in backup storage 120 along with backup copy 320 of user system 110.
With example implementations of the present disclosure, the summary information in the copy reference map 330 may identify the chunks included in the backup copy 320. During subsequent execution of the restore operation, a corresponding copy reference mapping may be determined based on the identification of the target version desired to be restored. By comparing the reference mapping of the current user system 110 with the reference mapping of the target version, it can be determined which blocks need to be retrieved from the backup storage 120.
With the exemplary implementations of the present disclosure, the restore operation need not be performed on a per backup copy basis in the chain of backup copies, but rather only blocks that are not included at the user system 110 need to be retrieved from the backup storage 120. In this manner, bandwidth overhead may be greatly reduced, and transmission overhead and computational overhead of repeatedly performing restore operations at the user system 110 based on each backup copy in the chain of backup copies may be reduced. More details regarding performing a backup operation will be described below with reference to fig. 4.
Fig. 4 schematically shows a block diagram 400 of a process for backing up data in a user system 110 according to an exemplary implementation of the present disclosure. As shown in FIG. 4, a backup operation may be performed at the user system 110 and the generated backup copy and reference map stored into the backup storage 120. Specifically, at arrow 410, a snapshot of the user system 110 may be created. The snapshot is created here for the purpose of determining the basis of the backup operation, and may be created at a time point T0, for example. It will be appreciated that since the snapshot fixes the extent to be transferred to backup storage 120, the contents of the snapshot will be fixed and remain unchanged. Even if the data in the user system 110 is modified after the snapshot is created, the contents of the backup copy are not affected. According to an exemplary implementation of the present disclosure, whether full or incremental backups are employed, a snapshot of the user system 110 needs to be created first.
At arrow 412, reference map 310 may be generated based on the snapshot. It will be understood that the snapshots herein may include a set of block snapshots for a set of blocks in the user system 110. Thus, a reference mapping for the user system 110 may be obtained based on a set of block snapshots. Specifically, according to an exemplary implementation of the present disclosure, a set of summary information of a set of blocks may be obtained based on a set of block snapshots, respectively.
Returning to fig. 3, the summary information of each block may be obtained based on the block snapshot of the block. The summary information for the chunk may be determined based on a hashing algorithm that is currently known or will be developed in the future. According to an exemplary implementation of the present disclosure, digest information of each chunk may be uniquely determined based on a secure hash algorithm. For example, the summary information may be determined based on an algorithm such as MD5, SHA, or the like. It will be appreciated that different byte lengths may be utilized to store the summary information, and that the corresponding hash algorithm may be selected based on the different byte lengths.
According to an example implementation of the present disclosure, after the summary information for each tile has been obtained, a reference map for the user system 110 may be generated based on a set of summary information. The summary information for each tile may be combined to obtain the reference map 310. In the example of fig. 3, summary information 312, 314, …, 316, and 318 may be combined to obtain reference map 310.
With continued reference to FIG. 4, at arrow 414, a backup copy of the user system 110 may be generated based on the taken snapshot. Here, a copy of each chunk may be generated based on the chunk snapshot of that chunk, and by combining copies of all chunks in the user system 110, a backup copy may be obtained. It will be appreciated that the copies may be generated based on different backup manners. According to an exemplary implementation of the present disclosure, the backup copies generated based on the full backup will include copies of all of the blocks in the user system 110. Alternatively and/or additionally, the backup copies generated based on the incremental backup will include copies of blocks that differ from the last backup copy. It will be appreciated that since the reference map may describe summary information for all blocks in the backup copy, whether full or incremental backups are employed, the desired backup copy may be obtained in backup storage 120 from the reference map.
According to an example implementation of the present disclosure, if full backup is employed, all blocks in the snapshot may be transferred to backup storage 120 to form a backup copy. It will be appreciated that in generating the first backup copy of user system 110, a full backup needs to be performed. In generating subsequent backup copies of user system 110, either full or incremental backups may be performed.
If incremental backup is employed, the newly created snapshot may be compared to previous snapshots to determine which data in the user system 110 has changed. In particular, the created new snapshot of the user system 110 may include a new set of block snapshots for a set of blocks in the user system 110. The differences between the new snapshot and the previous snapshot of the user system 110 may be compared to generate a new backup copy of the user system 110 on an incremental basis. A new backup copy may be generated based only on the blocks that differ.
Further, a new reference mapping for the user system 110 may be obtained based on the new set of block snapshots. It will be appreciated that the new reference map herein may include summary information for each block in the new snapshot. Assuming that the new snapshot includes 20 blocks and only the first block is changed, the summary information for the first block in the new reference map may be generated based on the changed blocks at this time, and the summary information for the next 19 blocks is the same as the summary information in the previous version of the reference map.
According to an example implementation of the present disclosure, the new backup copy and the new reference mapping may be stored in association in backup storage 120. For example, each reference map and backup copy may be uniquely identified with an identifier of the user system 110 and a timestamp of the snapshot being generated. Alternatively and/or additionally, the reference mapping may also be uniquely identified with a version number or other information. Different backup copies of user system 110 may be generated at different points in time and the generated different backup copies transferred to backup storage 120. At this point, each backup copy at backup storage 120 is associated with its own reference map, and the reference map may include a set of summary information for a set of chunks. Further, the corresponding block may be acquired based on the summary information.
The data in user system 110 may be restored to a specified version based on the backup copy and reference map in partial storage 120. Fig. 5 schematically shows a flow diagram of a method 500 for restoring data in a user system 110 according to an exemplary implementation of the present disclosure. At block 510, a reference map for the user system 110 may be obtained, the reference map including a set of summary information for a set of tiles in the current user system 110. It will be appreciated that the reference map herein describes the current state of the user system 110. In other words, the reference map may indicate which tiles are included in the current user system 110.
According to an exemplary implementation of the present disclosure, a snapshot of the user system 110 may be created to serve as a basis for a restore operation. Here, the snapshot may include a set of block snapshots of a set of blocks, and the reference map of the user system 110 may be obtained based on the set of block snapshots. In the restore operation, the process for creating the user snapshot and generating the reference map is similar to the process in the backup operation. In particular, respective summary information may be generated based on each block snapshot. For example, the summary information may be determined based on an algorithm such as MD5, SHA, or the like.
In this way, a set of summary information of a set of blocks can be obtained based on a set of block snapshots respectively. Further, a reference map for the user system 110 may be generated based on a set of summary information. It will be appreciated that the algorithm employed to generate the summary information herein should be the same as that employed during the backup phase. For example, the MD5 algorithm may be used to generate summary information for each tile and combine the summary information for multiple tiles to form a reference map representing the current user system 110 state.
It will be appreciated that since data in the user system 110 typically changes gradually, there may be one or more identical blocks between the current snapshot and the last snapshot of the user system 110. Since the summary information of the same block does not change, the summary information of the unchanged block in the previous reference map can be reused. In particular, the same portions and different portions between a set of previous block snapshots and a set of block snapshots in previous snapshots of the user system 110 may be determined and summary information may be generated for only the different portions.
Specifically, a part (changed part) of a set of summary information is generated based on a part of block snapshots corresponding to different parts of a set of block snapshots. Further, based on a portion of the summary information corresponding to the same portion in a set of previous summary information of a set of previous block snapshots, another portion (unchanged portion) in the set of summary information is generated. The two portions of summary information may be combined to obtain a final reference map.
With the exemplary implementation of the present disclosure, summary information need not be generated for each tile in the user system 110, but rather summary information may be generated only for tiles that have been changed. In this way, summary information about unchanged blocks in the previous reference map may be reused, thereby reducing the time and computational resource overhead for generating the summary information.
Summary information may have different granularities according to example implementations of the present disclosure. For example, the summary information may include a summary of a block in a group of blocks. For another example, the summary information may include summaries of a plurality of blocks in a group of blocks. It will be understood that the blocks herein may be the basic memory locations in the user system 110. In this way, the state of the data in each elementary memory cell can be accurately represented. Alternatively and/or additionally, a block may comprise a plurality of basic memory cells, i.e. larger memory cells that are divided in other ways. With the exemplary implementation of the present disclosure, it may be defined according to a user's requirement how many states of the basic storage unit are described with the summary information.
Hereinafter, a mapping relationship between the tiles and the summary information will be described with reference to fig. 6. Fig. 6 schematically illustrates a block diagram 600 of a mapping relationship between tiles in the user system 110 and summary information in a reference map, according to an exemplary implementation of the present disclosure. As shown in fig. 6, user system 110 may include tiles 112, 114, …, 116, and 118. The digests of the two blocks (block 112 and block 114) may be represented by digest information 612 and the digests of the two blocks (block 116 and block 118) may be represented by digest information 616.
It will be appreciated that if the granularity of the summary information is too fine, a large amount of summary information will be generated and will occupy more storage resources. If the granularity of the summary information is too coarse, it may result in a situation that data in a plurality of basic storage units indicated by the summary information needs to be backed up (restored) even if the data in only one basic storage unit is different, which may occupy more processing resources and time overhead. According to exemplary implementations of the present disclosure, a balance may be struck between the above two aspects to perform backup and restore operations in a more efficient manner.
At block 520, a copy reference map associated with the backup copy may be received from the backup storage 120 including the backup copy based on the identification of the backup copy used to restore the user system 110. Here, the copy reference map includes a set of summary information for a set of blocks in the backup copy. It will be appreciated that the copy reference map and backup copy herein are generated based on snapshots of the user system 110 created at previous points in time.
In this step, the received copy reference map is transferred to backup storage 120 during a previous backup process. The backup copies may be identified based on a variety of ways, for example, when the backup copies are identified with an identifier of the user system 110 and a timestamp, two backup copies with identifiers "user 01-20200101" and "user 01-20200110" may exist at the backup storage 120. The user system 110 may be designated to be restored to the backup copy "user 01-20200101," and the copy reference map associated with the backup copy may be retrieved from the backup storage 120.
At block 530, the reference mapping generated at block 510 and the copy reference mapping retrieved from backup storage 120 at block 520 may be compared and a difference determined between the two. It will be understood that the difference here refers to the difference between the summary information in the two reference maps. According to an exemplary implementation of the present disclosure, differences between the summary information of each chunk in the reference map and the copy reference map may be compared one by one to determine differences between chunks in the current user system 110 and the backup copy that is the target of recovery.
In particular, for replica digest information in a set of replica digest information included in a replica reference map, digest information corresponding to the replica digest information may be determined in the reference map. In other words, the replica digest information in the replica reference map may be traversed and each replica digest information compared to each digest information in the reference map. Further, a difference may be determined based on the comparison.
According to an example implementation of the present disclosure, assuming that the copy reference map and the reference map each include digest information of 20 chunks, and only the digest information of the first chunk in the two backup copies is different, the difference may be determined to be the first chunk in the copy reference map. According to an exemplary implementation of the present disclosure, it is assumed that the duplicate reference map includes digest information of 20 tiles, the reference map includes digest information of 19 tiles, and the digest information of 19 tiles in the reference map is the same as the digest information of the first 19 tiles in the duplicate reference map. The difference may be determined as the 20 th tile in the duplicate reference map.
It will be appreciated that the above only schematically illustrates two cases of storage differences, and that many more may be present according to exemplary implementations of the present disclosure. For example, two reference mappings may relate to the same or different number of tiles, there may be an intersection, or there may also be no intersection.
At block 540, the user system 110 may be restored to the backup copy based on the determined difference. It will be appreciated that with exemplary implementations of the present disclosure, only the blocks in the backup copy associated with the differences need to be retrieved from backup storage 120. It will be appreciated that in backup storage 120, backup copies are stored in association with copy reference mappings. For example, the backup copy may include a copy of the blocks for each block, and the copy reference map may include summary information for each block. There may be an association between each tile backup and the corresponding summary information, for example, addresses of tile copies corresponding to the summary information may be found by the association. At the user system 110, a difference block corresponding to the difference may be received from the backup storage 120 to update a block corresponding to the difference in a set of blocks with the difference block. In this way, the time and bandwidth requirements involved in data transfer may be greatly reduced, and the overhead of processing resources during recovery may be reduced to improve the overall performance of the recovery operation.
More details about the restore operation will be described in detail below with reference to fig. 7. Fig. 7 schematically shows a block diagram 700 of a process for recovering data in a user system 110 according to an exemplary implementation of the present disclosure. As indicated by arrow 710, at the user system 110, a snapshot of the user system 110 may be created, where the snapshot may be used as a basis for a subsequent comparison operation. At arrow 712, a current reference map may be generated based on the snapshot. The current reference map may include summary information for each block in the created snapshot. For example, the current reference map may include digest information of 20 blocks.
The copy reference map for the target version may be retrieved from backup storage 120, as indicated by arrow 716. For example, the duplicate reference map may include digest information for 20 chunks. As indicated by arrow 718, a difference between the current reference map and the replica reference map may be determined. Continuing with the example above, if there is only a difference in the first chunk, then a transfer of the first chunk from backup storage 120 may be requested, as indicated by arrow 720. The backup storage 120 may then transfer the first chunk to the user system 110. At the user system 110, the received first copy of the tile may be utilized to restore the user system 110 to the target version.
At this point, only one block needs to be transferred from backup storage 120. However, if the restore operation is performed as a full backup already in place, then all 20 blocks need to be transferred. If the restore operation is performed in the manner of an existing incremental backup, the data associated with all incremental backups formed between the desired version and the current version needs to be transferred. As can be seen, with the exemplary implementations of the present disclosure, various resources required for data transmission can be greatly reduced.
Fig. 8 schematically shows a block diagram 800 of a process for determining a difference between a reference mapping and a replica reference mapping according to an exemplary implementation of the present disclosure. Fig. 8 shows the states of a group of tiles in the user system 110 at time points T0 to T3 and the reference mapping at time points T0 to T2, respectively. At time point T0, the reference map corresponding to a group of tiles 810 is reference map 812; at time point T1, the reference map corresponding to a group of tiles 820 is the reference map 822; at time point T2, the reference map corresponding to a group of blocks 830 is the reference map 832. Backup copies corresponding to time points T0, T1, and T2, respectively, may be included in backup storage 120.
At point in time T3, where it is desired to restore a set of tiles 830 to a backup copy at point in time T0, the reference map 812 of the target version may be compared to the current reference map 832 in order to determine the difference between the two. As shown on the right side of fig. 8, there is no need to transfer any chunks from backup storage 120 to user system 110, since the two reference mappings are the same and there is no difference. At time T3, a set of blocks 840 is the target version that is desired to be restored to. However, if there is an incremental backup solution, then the 2 nd and 3 rd blocks need to be transferred to the user system 110 in order to restore the user system 110 to the set of blocks 820 at time T1. Further, the 2 nd and 3 rd tiles need to be transmitted to the user system 110 in order to restore the user system 110 to the set of tiles 810 at the time point T0. In contrast to the prior art solutions described above, with the exemplary implementation of the present disclosure, no blocks need to be transmitted.
Fig. 9 schematically shows a block diagram 900 of a process for determining a difference between a reference mapping and a replica reference mapping according to another exemplary implementation of the present disclosure. Fig. 9 shows the states of a group of tiles in the user system 110 at time points T0 to T3 and the reference mapping at time points T0 to T2, respectively. At time point T0, the reference map corresponding to a group of blocks 910 is reference map 912; at time point T1, the reference map corresponding to a group of tiles 920 is reference map 922; at time point T2, the reference map corresponding to a group of tiles 930 is reference map 932. Backup copies corresponding to time points T0, T1, and T2, respectively, may be included in backup storage 120.
At point in time T3, where it is desired to restore a group of tiles 930 to a backup copy at point in time T0, the target version's reference map 912 may be compared to the current reference map 932 in order to determine the difference between the two. As shown on the right side of fig. 9, since the difference between the two reference mappings only relates to the 3 rd chunk, the 3 rd chunk can be transferred from the backup storage 120 to the user system 110. At time T3, user system 110 may be updated to a set of tiles 940 based on a set of tiles 930 and the received 3 rd tile. Although the process shown in fig. 9 requires the transmission of one block, the overhead of network resources and the time energy overhead can also be reduced with the exemplary implementation of the present disclosure, compared to the transmission amount of 4 blocks in the existing incremental backup solution.
Further snapshots of the user system 110 may also be created in accordance with exemplary implementations of the present disclosure. For example, at a subsequent point in time T4, another snapshot of user system 110 may be created that includes another set of block snapshots for a set of blocks in user system 110. To reduce the workload of generating a backup copy, the differences between the other snapshot and the previous snapshot of user system 110 may be compared and another backup copy of user system 110 may be generated on an incremental basis. Further, another reference mapping for the user system 110 may be obtained based on another set of block snapshots. It will be appreciated that summary information for unchanged blocks in a previous snapshot may be reused here, but only summary information needs to be generated for blocks that have been changed. In a backup operation, another backup copy and another reference mapping may be transferred to backup storage 120 and stored in association with both into backup storage 120.
Examples of the method according to the present disclosure have been described in detail above with reference to fig. 2 to 9, in the following the implementation of the respective apparatus will be described. In accordance with an example implementation of the present disclosure, an apparatus for recovering data in a user system is provided. The device includes: an acquisition module configured to acquire a reference map of a user system, the reference map including a set of summary information for a set of blocks in the user system; a receiving module configured to receive, from a backup storage that includes backup copies, a copy reference map associated with the backup copies based on an identification of the backup copies used to restore the user system, the copy reference map including a set of summary information for a set of chunks in the backup copies; a determination module configured to determine a difference between the reference map and a replica reference map; and a restore module configured to restore the user system to the backup copy based on the determined difference.
According to an exemplary implementation of the present disclosure, the obtaining module includes: a creation module configured to create a snapshot of a user system, the snapshot including a set of block snapshots of a set of blocks; and a map acquisition module configured to acquire a reference map of the user system based on the set of block snapshots.
According to an exemplary implementation manner of the present disclosure, the mapping obtaining module includes: the abstract acquisition module is configured to respectively acquire a group of abstract information of a group of blocks based on a group of block snapshots; and a generation module configured to generate a reference mapping for the user system based on the set of summary information.
According to an exemplary implementation of the present disclosure, the summary acquisition module includes: a difference determination module configured to determine a same portion and a different portion between a set of previous block snapshots and a set of block snapshots in previous snapshots of a user system; a first generating module configured to generate a part of a set of summary information based on a part of block snapshots corresponding to different parts of the set of block snapshots; and a second generating module configured to generate another part of the set of summary information based on a part of the summary information corresponding to the same part of a set of previous summary information of a set of previous block snapshots.
According to an example implementation of the present disclosure, the discrepancy determining module comprises: the searching module is used for determining summary information corresponding to the copy summary information in the reference mapping aiming at the copy summary information in a group of copy summary information included in the copy reference mapping; and a comparison module configured to compare the replica summary information with the summary information to determine a difference.
According to an exemplary implementation of the present disclosure, summary information in a set of summary information represents at least any one of: a summary of a block in a set of blocks; and a summary of a plurality of blocks in a set of blocks.
According to an exemplary implementation of the present disclosure, a backup copy is generated based on a snapshot of a user system created at a previous point in time.
According to an example implementation of the present disclosure, backup copies are stored in a backup storage in association with a copy reference map.
According to an exemplary implementation of the present disclosure, a recovery module includes: a receiving module configured to receive a difference block corresponding to a difference from a backup storage; and an updating module configured to update a block corresponding to the difference in the group of blocks using the difference block.
According to an exemplary implementation of the present disclosure, the apparatus further comprises: a creation module configured to create another snapshot of the user system, the another snapshot including another set of block snapshots of a set of blocks in the user system; a comparison module configured to compare a difference between the other snapshot and a previous snapshot of the user system and generate another backup copy of the user system based on an incremental manner; a reference map acquisition module configured to acquire another reference map of the user system based on the another set of block snapshots; and a storage module configured to store the other backup copy and the other reference mapping in association in a backup storage.
Fig. 10 schematically shows a block diagram of an apparatus 1000 for managing a user system according to an exemplary implementation of the present disclosure. As shown, device 1000 includes a Central Processing Unit (CPU)1001 that can perform various appropriate actions and processes according to computer program instructions stored in a Read Only Memory (ROM)1002 or computer program instructions loaded from a storage unit 1008 into a Random Access Memory (RAM) 1003. In the RAM 1003, various programs and data necessary for the operation of the device 1000 can also be stored. The CPU 1001, ROM1002, and RAM 1003 are connected to each other via a bus 1004. An input/output (I/O) interface 1005 is also connected to bus 1004.
A number of components in device 1000 are connected to I/O interface 1005, including: an input unit 1006 such as a keyboard, a mouse, and the like; an output unit 1007 such as various types of displays, speakers, and the like; a storage unit 1008 such as a magnetic disk, an optical disk, or the like; and a communication unit 1009 such as a network card, a modem, a wireless communication transceiver, or the like. The communication unit 1009 allows the device 1000 to exchange information/data with other devices through a computer network such as the internet and/or various telecommunication networks.
The various processes and processes described above, such as method 500, may be performed by processing unit 1001. For example, in some implementations, the method 500 may be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 1008. In some implementations, part or all of the computer program can be loaded and/or installed onto device 1000 via ROM1002 and/or communications unit 1009. When the computer program is loaded into RAM 1003 and executed by CPU 1001, one or more steps of method 500 described above may be performed. Alternatively, in other implementations, the CPU 1001 may also be configured in any other suitable manner to implement the processes/methods described above.
According to an exemplary implementation of the present disclosure, there is provided an electronic device including: at least one processor; and a memory coupled with the at least one processor, the memory having instructions stored therein that, when executed by the at least one processor, cause the apparatus to perform actions for recovering data in a user system. The actions include: obtaining a reference mapping of a user system, wherein the reference mapping comprises a group of summary information of a group of blocks in the user system; based on the identification of the backup copy for restoring the user system, receiving a copy reference map associated with the backup copy from a backup storage that includes the backup copy, the copy reference map including a set of summary information for a set of chunks in the backup copy; determining a difference between the reference mapping and the replica reference mapping; and restoring the user system to the backup copy based on the determined difference.
According to an exemplary implementation of the present disclosure, obtaining a reference mapping of a user system includes: creating a snapshot of a user system, the snapshot including a set of block snapshots of a set of blocks; and obtaining a reference mapping for the user system based on the set of block snapshots.
According to an exemplary implementation of the present disclosure, obtaining a reference mapping of a user system based on a set of block snapshots comprises: respectively acquiring a group of summary information of a group of blocks based on a group of block snapshots; and generating a reference mapping for the user system based on the set of summary information.
According to an exemplary implementation manner of the present disclosure, respectively obtaining a set of summary information of a set of blocks based on a set of block snapshots includes: determining a same portion and a different portion between a set of previous block snapshots and a set of block snapshots in previous snapshots of a user system; generating a portion of a set of summary information based on a portion of the block snapshots corresponding to different portions of the set of block snapshots; and generating another part of the set of summary information based on a part of the summary information corresponding to the same part in a set of previous summary information of a set of previous block snapshots.
According to an example implementation of the present disclosure, determining a difference between the reference mapping and the replica reference mapping comprises: determining summary information corresponding to the copy summary information in the reference mapping aiming at the copy summary information in a group of copy summary information included in the copy reference mapping; and comparing the duplicate summary information with the summary information to determine a difference.
According to an exemplary implementation of the present disclosure, summary information in a set of summary information represents at least any one of: a summary of a block in a set of blocks; and a summary of a plurality of blocks in a set of blocks.
According to an exemplary implementation of the present disclosure, a backup copy is generated based on a snapshot of a user system created at a previous point in time.
According to an example implementation of the present disclosure, backup copies are stored in a backup storage in association with a copy reference map.
According to an example implementation of the present disclosure, restoring the user system to the backup copy based on the determined difference comprises: receiving a difference block corresponding to the difference from the backup storage; and updating the blocks corresponding to the differences in the group of blocks by using the difference blocks.
According to an exemplary implementation of the present disclosure, the actions further include: creating another snapshot of the user system, the another snapshot including another set of block snapshots for a set of blocks in the user system; comparing the difference between the other snapshot and a previous snapshot of the user system, and generating another backup copy of the user system based on an incremental manner; obtaining another reference mapping for the user system based on the another set of block snapshots; and storing the other backup copy in the backup storage in association with the other reference mapping.
According to an exemplary implementation of the present disclosure, there is provided a computer program product, tangibly stored on a non-transitory computer-readable medium and comprising machine executable instructions for performing a method according to the present disclosure.
According to an exemplary implementation of the present disclosure, a computer-readable medium is provided. The computer-readable medium has stored thereon machine-executable instructions that, when executed by at least one processor, cause the at least one processor to implement a method according to the present disclosure.
The present disclosure may be methods, apparatus, systems, and/or computer program products. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied thereon for carrying out various aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device via a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
The computer program instructions for carrying out operations of the present disclosure may be assembler instructions, Instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some implementations, by utilizing the state information of computer-readable program instructions to personalize an electronic circuit, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA), that can execute the computer-readable program instructions, various aspects of the present disclosure are implemented.
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products implemented in accordance with the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processing unit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processing unit of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various implementations of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The foregoing has described implementations of the present disclosure, and the above description is illustrative, not exhaustive, and not limited to the implementations disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The terminology used herein was chosen in order to best explain the principles of implementations, the practical application, or improvements to the technology in the marketplace, or to enable others of ordinary skill in the art to understand the implementations disclosed herein.

Claims (20)

1. A method for recovering data in a user system, comprising:
obtaining a reference map of the user system, the reference map including a set of summary information for a set of blocks in the user system;
based on an identification of a backup copy used to restore the user system, receiving a copy reference map associated with the backup copy from a backup storage that includes the backup copy, the copy reference map including a set of summary information for a set of chunks in the backup copy;
determining a difference between the reference map and the replica reference map; and
restoring the user system to the backup copy based on the determined difference.
2. The method of claim 1, wherein obtaining the reference mapping for the user system comprises:
creating a snapshot of the user system, the snapshot including a set of block snapshots of the set of blocks; and
obtaining the reference mapping for the user system based on the set of block snapshots.
3. The method of claim 2, wherein obtaining the reference mapping for the user system based on the set of block snapshots comprises:
respectively acquiring a set of summary information of the set of blocks based on the set of block snapshots; and
generating the reference mapping for the user system based on the set of summary information.
4. The method of claim 3, wherein obtaining the set of summary information for the set of blocks based on the set of block snapshots respectively comprises:
determining a same portion and a different portion between a set of previous block snapshots and the set of block snapshots in previous snapshots of the user system;
generating a portion of the set of summary information based on a portion of the set of block snapshots corresponding to the different portion; and
generating another portion of the set of summary information based on a portion of summary information of a set of previous summary information of the set of previous block snapshots corresponding to the same portion.
5. The method of claim 1, wherein determining the difference between the reference map and the replica reference map comprises: referencing replica digest information in the set of replica digest information included in the map for the replica,
determining summary information corresponding to the replica summary information in the reference map; and
comparing the replica digest information with the digest information to determine the difference.
6. The method of claim 1, wherein summary information in the set of summary information represents at least any one of:
a summary of a block in the set of blocks; and
a summary of a plurality of blocks in the set of blocks.
7. The method of claim 1, wherein the backup copy is generated based on a snapshot of the user system created at a previous point in time.
8. The method of claim 1, wherein the backup copy is stored in the backup storage in association with the copy reference map.
9. The method of claim 1, wherein restoring the user system to the backup copy based on the determined difference comprises:
receiving a difference block corresponding to the difference from the backup storage; and
and updating the block corresponding to the difference in the group of blocks by using the difference block.
10. The method of claim 1, further comprising:
creating another snapshot of the user system, the another snapshot including another set of block snapshots for a set of blocks in the user system;
comparing the difference between the other snapshot and a previous snapshot of the user system, generating another backup copy of the user system based on an incremental manner;
obtaining another reference mapping for the user system based on the another set of block snapshots; and
storing the other backup copy and the other reference mapping in association in the backup storage.
11. An electronic device, comprising:
at least one processor; and
a memory coupled with the at least one processor, the memory having instructions stored therein that, when executed by the at least one processor, cause the apparatus to perform acts for recovering data in a user system, the acts comprising:
obtaining a reference map of the user system, the reference map including a set of summary information for a set of blocks in the user system;
based on an identification of a backup copy used to restore the user system, receiving a copy reference map associated with the backup copy from a backup storage that includes the backup copy, the copy reference map including a set of summary information for a set of chunks in the backup copy;
determining a difference between the reference map and the replica reference map; and
restoring the user system to the backup copy based on the determined difference.
12. The apparatus of claim 11, wherein obtaining the reference mapping for the user system comprises:
creating a snapshot of the user system, the snapshot including a set of block snapshots of the set of blocks; and
obtaining the reference mapping for the user system based on the set of block snapshots.
13. The apparatus of claim 12, wherein obtaining the reference mapping for the user system based on the set of block snapshots comprises:
respectively acquiring a set of summary information of the set of blocks based on the set of block snapshots; and
generating the reference mapping for the user system based on the set of summary information.
14. The apparatus of claim 13, wherein obtaining the set of summary information for the set of blocks, respectively, based on the set of block snapshots comprises:
determining a same portion and a different portion between a set of previous block snapshots and the set of block snapshots in previous snapshots of the user system;
generating a portion of the set of summary information based on a portion of the set of block snapshots corresponding to the different portion; and
generating another portion of the set of summary information based on a portion of summary information of a set of previous summary information of the set of previous block snapshots corresponding to the same portion.
15. The apparatus of claim 11, wherein determining the difference between the reference map and the replica reference map comprises: referencing replica digest information in the set of replica digest information included in the map for the replica,
determining summary information corresponding to the replica summary information in the reference map; and
comparing the replica digest information with the digest information to determine the difference.
16. The apparatus of claim 11, wherein summary information in the set of summary information represents at least any one of:
a summary of a block in the set of blocks; and
a summary of a plurality of blocks in the set of blocks.
17. The apparatus of claim 11, wherein the backup copy is generated based on a snapshot of the user system created at a previous point in time.
18. The apparatus of claim 11, wherein the backup copy is stored in the backup storage in association with the copy reference map.
19. The apparatus of claim 11, wherein restoring the user system to the backup copy based on the determined difference comprises:
receiving a difference block corresponding to the difference from the backup storage; and
and updating the block corresponding to the difference in the group of blocks by using the difference block.
20. A computer program product tangibly stored on a non-transitory computer-readable medium and comprising machine executable instructions for performing the method of any one of claims 1-10.
CN202010080364.0A 2020-02-05 2020-02-05 Recovery method, apparatus and program product based on reverse differential recovery Pending CN113220500A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010080364.0A CN113220500A (en) 2020-02-05 2020-02-05 Recovery method, apparatus and program product based on reverse differential recovery
US16/888,822 US20210240350A1 (en) 2020-02-05 2020-05-31 Method, device, and computer program product for recovering based on reverse differential recovery

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010080364.0A CN113220500A (en) 2020-02-05 2020-02-05 Recovery method, apparatus and program product based on reverse differential recovery

Publications (1)

Publication Number Publication Date
CN113220500A true CN113220500A (en) 2021-08-06

Family

ID=77062514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010080364.0A Pending CN113220500A (en) 2020-02-05 2020-02-05 Recovery method, apparatus and program product based on reverse differential recovery

Country Status (2)

Country Link
US (1) US20210240350A1 (en)
CN (1) CN113220500A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546721A (en) * 2022-02-17 2022-05-27 中国银联股份有限公司 Backup method and system for application programs in cluster and computer readable storage medium
CN117493074A (en) * 2023-09-25 2024-02-02 广州鼎甲计算机科技有限公司 Virtual machine increment recovery method, device, computer equipment and storage medium

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318135B1 (en) * 2003-07-22 2008-01-08 Acronis Inc. System and method for using file system snapshots for online data backup
JP2008217209A (en) * 2007-03-01 2008-09-18 Hitachi Ltd Difference snapshot management method, computer system and nas computer
US20100023716A1 (en) * 2008-07-23 2010-01-28 Jun Nemoto Storage controller and storage control method
WO2013076782A1 (en) * 2011-11-25 2013-05-30 Hitachi, Ltd. Storage apparatus and its control method
WO2015090147A1 (en) * 2013-12-20 2015-06-25 百度在线网络技术(北京)有限公司 Virtual video call method and terminal
CN107506265A (en) * 2017-08-30 2017-12-22 安徽天达网络科技有限公司 A kind of backup of otherness telefile and recovery system based on internet
US20180188967A1 (en) * 2015-07-31 2018-07-05 Hewlett Packard Enterprise Development Lp Snapshot storage management
US20190042373A1 (en) * 2017-08-07 2019-02-07 Datto, Inc. Systems and methods for copying an operating source volume
US20190129970A1 (en) * 2017-10-31 2019-05-02 EMC IP Holding Company LLC Speeding deduplication using a most wanted digest cache

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7318135B1 (en) * 2003-07-22 2008-01-08 Acronis Inc. System and method for using file system snapshots for online data backup
JP2008217209A (en) * 2007-03-01 2008-09-18 Hitachi Ltd Difference snapshot management method, computer system and nas computer
US20100023716A1 (en) * 2008-07-23 2010-01-28 Jun Nemoto Storage controller and storage control method
WO2013076782A1 (en) * 2011-11-25 2013-05-30 Hitachi, Ltd. Storage apparatus and its control method
WO2015090147A1 (en) * 2013-12-20 2015-06-25 百度在线网络技术(北京)有限公司 Virtual video call method and terminal
US20180188967A1 (en) * 2015-07-31 2018-07-05 Hewlett Packard Enterprise Development Lp Snapshot storage management
US20190042373A1 (en) * 2017-08-07 2019-02-07 Datto, Inc. Systems and methods for copying an operating source volume
CN107506265A (en) * 2017-08-30 2017-12-22 安徽天达网络科技有限公司 A kind of backup of otherness telefile and recovery system based on internet
US20190129970A1 (en) * 2017-10-31 2019-05-02 EMC IP Holding Company LLC Speeding deduplication using a most wanted digest cache

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546721A (en) * 2022-02-17 2022-05-27 中国银联股份有限公司 Backup method and system for application programs in cluster and computer readable storage medium
CN117493074A (en) * 2023-09-25 2024-02-02 广州鼎甲计算机科技有限公司 Virtual machine increment recovery method, device, computer equipment and storage medium

Also Published As

Publication number Publication date
US20210240350A1 (en) 2021-08-05

Similar Documents

Publication Publication Date Title
US11947809B2 (en) Data management system
US9727273B1 (en) Scalable clusterwide de-duplication
US8468135B2 (en) Optimizing data transmission bandwidth consumption over a wide area network
US8849750B2 (en) Synchronization for initialization of a remote mirror storage facility
US9928248B2 (en) Self-healing by hash-based deduplication
US9002800B1 (en) Archive and backup virtualization
US11741067B2 (en) Filesystem embedded Merkle trees
CN109492049B (en) Data processing, block generation and synchronization method for block chain network
US11210003B2 (en) Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier
US11604808B2 (en) Methods, electronic devices and computer program product for replicating metadata
CN113220500A (en) Recovery method, apparatus and program product based on reverse differential recovery
CN110968417A (en) Method, apparatus, system and computer program product for managing storage units
CN114327239A (en) Method, electronic device and computer program product for storing and accessing data
CN111045856A (en) Method, apparatus and computer program product for managing application systems
CN106951443B (en) Method, equipment and system for synchronizing copies based on distributed system
CN111143231A (en) Method, apparatus and computer program product for data processing
US20210019231A1 (en) Method, device and computer program product for backing up data
US11586499B2 (en) Method, device and computer program product for storing data
US11281391B2 (en) Method, device, and computer program for migrating backup system
US11226739B2 (en) Method, device and computer program product for storage management
CN113821490A (en) Data synchronization method and device
US20200142622A1 (en) Deduplicated Storage with Multiple Storage Domains
US11221786B2 (en) Fast recovery in recoverpoint using direct storage access
CN111125001A (en) Snap copy method, electronic device, and computer program product
CN111090544A (en) Method, apparatus and computer program product for managing virtual machines

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