US20160070621A1 - Pruning unwanted file content from an image backup - Google Patents
Pruning unwanted file content from an image backup Download PDFInfo
- Publication number
- US20160070621A1 US20160070621A1 US14/811,200 US201514811200A US2016070621A1 US 20160070621 A1 US20160070621 A1 US 20160070621A1 US 201514811200 A US201514811200 A US 201514811200A US 2016070621 A1 US2016070621 A1 US 2016070621A1
- Authority
- US
- United States
- Prior art keywords
- backup
- files
- storage
- excluded
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Definitions
- the embodiments disclosed herein relate to pruning unwanted file content from an image backup.
- a storage is computer-readable media capable of storing data in blocks. Storages face a myriad of threats to the data they store and to their smooth and continuous operation. In order to mitigate these threats, a backup of the data in a storage may be created at a particular point in time to enable the restoration of the data at some future time. Such a restoration may become desirable, for example, if the storage experiences corruption of its stored data, if the storage becomes unavailable, or if a user wishes to create a second identical storage.
- a storage is typically logically divided into a finite number of fixed-length blocks.
- a storage also typically includes a file system which tracks the locations of blocks that are allocated to each file that is stored in the storage as well as the locations of allocated blocks which are used by the file system for its own internal on-storage structures.
- the file system may also track free blocks that are neither allocated to any file nor allocated to any file system on-storage structure.
- the file system generally tracks allocated and/or free blocks using a specialized on-storage structure stored in the file system metadata (FSM), referred to herein as a file system block allocation map (FSBAM).
- FSM file system metadata
- FSBAM file system block allocation map
- file backup uses the file system of the source storage as a starting point and performs a backup by writing the files to a backup storage. Using this approach, individual files are backed up if they have been modified since the previous backup. File backup may be useful for finding and restoring a few lost or corrupted files. However, file backup may also include significant overhead in the form of bandwidth and logical overhead because file backup requires the tracking and storing of information about where each file exists within the file system of the source storage and the backup storage.
- Another common technique for backing up a source storage ignores the locations of individual files stored in the source storage and instead simply backs up all allocated blocks stored in the source storage.
- This technique is often referred to as image backup because the backup generally contains or represents an image, or copy, of the entire allocated contents of the source storage.
- individual allocated blocks are backed up if they have been modified since the previous backup.
- image backup backs up all allocated blocks of the source storage
- image backup backs up both the blocks that make up the files stored in the source storage as well as the blocks that make up the file system on-storage structures such as the FSM.
- An image backup can be relatively fast compared to file backup because reliance on the file system is minimized. Further, the use of snapshot technology during an image backup may enable an image backup to capture the data stored in a source storage at a particular point in time without interrupting other processes, thus avoiding downtime of the source storage.
- a very large digital movie file may initially be stored in a source storage.
- a backup of the source storage or at a subsequent time of a collapse of backups into a synthetic backup that includes the movie file, a user may wish to delete the movie file in order to save space in the backup(s) of the source storage.
- image backup and collapse methods do not generally allow individual files to be deleted from a backup, and the content of the unwanted file must therefore be needlessly retained in the backup.
- Retaining unwanted file content in a backup may increase the overall size requirements of a backup storage where the backup is stored, increase the bandwidth overhead of transporting the backup, increase the processing time associated with collapsing the backup into a synthetic backup, and increase the processing time associated with restoring the backup.
- example embodiments described herein relate to pruning unwanted file content from an image backup.
- the example methods disclosed herein may be employed to prune blocks that correspond to content of one or more unwanted files during the creation of a backup or of a synthetic backup.
- the pruning of the example methods disclosed herein may decrease the overall size requirements of a backup storage where a backup is stored, decrease the bandwidth overhead of transporting the backup, decrease the processing time associated with collapsing the backup into a synthetic backup, and/or decrease the processing time associated with restoring the backup.
- a method of pruning unwanted file content from an image backup includes identifying files to be excluded from a base image backup of a source storage, identifying a set of allocated blocks in the source storage at a first point in time, pruning the set of allocated blocks to exclude the allocated blocks that correspond to content of the files to be excluded, backing up the pruned set of allocated blocks, and not backing up the excluded allocated blocks, in the base image backup, and restoring the base image backup to a restore storage, the restoring including pruning file system metadata of a file system of the restore storage prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the file system metadata.
- FIG. 1 is a schematic block diagram illustrating an example backup system
- FIG. 2 is a schematic flowchart illustrating an example method for creating a base backup, multiple incremental backups, multiple synthetic base backups, and multiple synthetic incremental backups of a source storage;
- FIGS. 3A-3C are schematic flowcharts illustrating pruning of unwanted file content during the creation and restoration or mounting of a base backup, an incremental backup, and a synthetic backup of a source storage;
- FIG. 4 is a schematic flowchart diagram of an example method of pruning unwanted file content from a base image backup
- FIGS. 5A-5B are a schematic flowchart diagram of an example method of pruning unwanted file content from an incremental image backup.
- FIGS. 6A-6B are a schematic flowchart diagram of an example method of pruning unwanted file content from a synthetic image backup.
- storage refers to computer-readable media, or some logical portion thereof such as a volume, capable of storing data in blocks.
- block refers to a fixed-length discrete sequence of bits.
- allocated block refers to a block in a storage that is currently tracked as storing data by a file system of the storage.
- free block refers to a block in a storage that is not currently tracked as storing data by a file system of the storage.
- backup when used herein as a noun refers to a copy or copies of one or more blocks from a storage.
- base backup refers to a base backup of a storage that includes at least a copy of each unique allocated block of the storage at a point in time such that the base backup can be restored to recreate the state of the storage at the point in time.
- a “base backup” may also include nonunique allocated blocks and free blocks of the storage at the point in time.
- incrementmental backup refers to an at least partial backup of a storage that includes at least a copy of each unique allocated block of the storage that changed between a previous point in time of a previous backup of the storage and the subsequent point in time of the incremental backup, either because the block was previously-allocated and changed or because the block was newly-allocated, such that the incremental backup, along with all previous backups of the storage including an initial base backup of the storage, can be restored together to recreate the exact state of the storage at the subsequent point in time.
- An “incremental backup” may also include nonunique allocated blocks and free blocks of the storage that changed between the previous point in time and the subsequent point in time.
- ⁇ Only “unique allocated blocks” may be included in a “base backup” or an “incremental backup” where only a single copy of multiple duplicate allocated blocks (i.e., nonunique allocated blocks) is backed up to reduce the size of the backup.
- a “base backup” or an “incremental backup” may exclude certain undesired allocated blocks such as blocks of data belonging to files whose contents are not necessary for restoration purposes, such as virtual memory pagination files and machine hibernation state files.
- synthetic backup refers to a backup that is created by combining copies of blocks from a combination of multiple sequential backups of a storage into a single backup.
- file system metadata refers to metadata maintained by a file system of a storage that tracks, at any given point in time, which blocks of the storage are assigned to each file of the storage and also maintains a file system block allocation map for the storage.
- file system block allocation map refers to a map maintained as part of the FSM of a storage that tracks, at any given point in time, which blocks of the storage are allocated and/or which blocks of the storage are free.
- file exclusion policy or “FEP” as used herein refers to a policy that defines which files of a storage should be excluded from a backup.
- file inclusion policy refers to a policy that defines which files of a storage should be included in a backup.
- FIG. 1 is a schematic block diagram illustrating an example backup system 100 .
- the example backup system 100 includes a source system 102 , a destination system 104 , and a restore system 106 .
- the systems 102 , 104 , and 106 include storages 108 , 110 , and 112 , respectively.
- the destination storage 110 may store various backups of the source storage 108 , including base backups, incremental backups, synthetic base backups, and synthetic incremental backups, as disclosed in greater detail in FIG. 2 .
- the source system 102 also includes a backup module 114 .
- the systems 102 , 104 , and 106 are able to communicate with one another over a network 116 .
- Each of the systems 102 , 104 , and 106 may be any computing device capable of supporting a storage, including a virtual storage such as a virtual volume, and communicating with other systems including, for example, a file server, a web server, a personal computer, a desktop computer, a laptop computer, a handheld device, a multiprocessor system, a microprocessor-based or programmable consumer electronic device, a smartphone, a digital camera, a hard disk drive, a flash memory drive, a virtual machine, or some combination thereof.
- the network 116 may be any wired or wireless communication network including, for example, a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a Wireless Application Protocol (WAP) network, a Bluetooth network, an Internet Protocol (IP) network such as the internet, or some combination thereof.
- LAN Local Area Network
- MAN Metropolitan Area Network
- WAN Wide Area Network
- WAP Wireless Application Protocol
- Bluetooth a Bluetooth network
- IP Internet Protocol
- the backups stored in the destination storage 110 may be created by the backup module 114 .
- the backup module 114 may be configured to execute computer instructions to perform image backup operations of creating backups, as discussed in connection with FIG. 2 . It is noted that these image backups may initially be created on the source system 102 and then copied to the destination system 104 .
- the backup module 114 may create a backup of the source storage 108 or may create a synthetic backup by collapsing multiple sequential backups, such as two or more of the backups of the source storage 108 that are stored in the destination storage 110 .
- the backup module 114 may prune blocks that correspond to content of one or more unwanted files, which may involve utilizing metadata from file system metadata (FSM) 118 of the source storage 108 . Later, during the restore of such a backup, the backup module 114 may prune corresponding metadata from FSM 120 of the restore storage 112 .
- FSM file system metadata
- pruning the blocks that correspond to content of one or more unwanted files during the creation of the backup or synthetic backup may decrease the overall size requirements of the destination storage 110 where the backup is stored, decrease the bandwidth overhead of transporting the backup over the network 116 , decrease the processing time associated with collapsing the backup into a synthetic backup, and/or decrease the processing time associated with restoring the backup on the restore storage 112 .
- the source system 102 may be a desktop computer
- the destination system 104 may be a file server
- the restore system 106 may be a virtual machine
- the network 116 may include the internet.
- the file server may be configured to periodically back up the storage of the desktop computer over the internet.
- the file server may also be configured to periodically collapse multiple sequential backups into a synthetic backup.
- the file server may also be configured to restore any one of the backups to the storage of the virtual machine over the internet if the desktop computer experiences corruption or a user simply desires to restore the storage of the desktop computer to an earlier point in time.
- any of the systems 102 , 104 , and 106 may instead include two or more storages, such as two or more volumes.
- the systems 102 , 104 , and 106 are disclosed in FIG. 1 as communicating over the network 116 , it is understood that the systems 102 , 104 , and 106 may instead communicate directly with each other.
- the systems 102 , 104 , and 106 may be combined into a single system.
- a first volume of the source storage 108 may function as a source storage during the creation of a backup and then the backup may be stored in a second volume of the source storage 108 . Subsequently, the backup stored in the second volume may be restored to the first volume, which may enable the first volume of the source storage 108 to be restored to a state of an earlier point in time.
- the same first storage functions as both the “source” storage as well as the “restore” storage.
- backup module 114 is the only module disclosed in the example backup system 100 of FIG. 1 , it is understood that the functionality of the backup module 114 may be replaced or augmented by one or more similar modules residing on any of the systems 102 , 104 , or 106 or another system.
- the destination system 104 of FIG. 1 may be configured to simultaneously store backups from multiple source storages.
- FIG. 1 Having described one specific environment with respect to FIG. 1 , it is understood that the specific environment of FIG. 1 is only one of countless environments in which the example methods disclosed herein may be employed. The scope of the example embodiments is not intended to be limited to any particular environment.
- FIG. 2 is a schematic flowchart illustrating an example method 200 for creating a base backup, multiple incremental backups, multiple synthetic base backups, and multiple synthetic incremental backups of the source storage 108 of the source system 102 of FIG. 1 .
- the method 200 may be implemented, in at least some embodiments, by the backup module 114 of the source system 102 of FIG. 1 .
- the backup module 114 may be configured to execute computer instructions to perform operations of creating a base backup, multiple incremental backups, multiple synthetic base backups, and multiple synthetic incremental backups of the source storage 108 and then storing these backups in the destination storage 110 , as represented by the method 200 .
- the method 200 will now be discussed with reference to FIGS. 1 and 2 .
- the method 200 may begin at step 202 , in which the backup module 114 creates a base backup to capture the state of the source storage 108 at time t( 0 ).
- the base backup may include all allocated blocks of the source storage 108 as allocated at time t( 0 ).
- an FSBAM of the FSM 118 of the source storage 108 may be accessed at the time of the backup to determine which of the blocks of the source storage 108 are allocated at the time of the backup.
- a copy of the FSM 118 may also be stored with each of the backups to capture the state of the FSM at the time of the backup.
- This copy may either be stored by virtue of the backup inherently including the FSM in its backed-up blocks, or the copy may be stored separately, or both.
- the base backup may be very large depending on the size of the source storage 108 and the number of allocated blocks at time t( 0 ). As a result, the base backup may take a relatively long time to create and consume a relatively large amount of space in the destination storage 110 .
- the backup module 114 creates a 1st incremental backup to capture the state of the source storage 108 at time t( 1 ).
- the 1st incremental backup may include all allocated blocks of the source storage 108 that changed between time t( 0 ) and time t( 1 ).
- the 1st incremental backup may take a relatively short time to create and consume a relatively small amount of storage space in the destination storage 110 .
- the backup module 114 creates 2nd and 3rd incremental backups to capture the states of the source storage 108 at times t( 2 ) and t( 3 ), respectively.
- the 2nd incremental backup may include all allocated blocks of the source storage 108 that changed between time t( 1 ) and time t( 2 ).
- the 3rd incremental backup may include all allocated blocks of the source storage 108 that changed between time t( 2 ) and time t( 3 ).
- the backup module 114 creates synthetic incremental backup [1-3].
- the label “[1-3]” indicates that the synthetic incremental backup [1-3] includes data from the 1st through 3rd incremental backups.
- the backup module 114 collapses the synthetic incremental backup [1-3] into the base backup to create the synthetic base backup [ 3 ].
- the label “[ 3 ]” indicates that the synthetic base backup [ 3 ] includes the data from the base backup through the 3rd incremental backup.
- the backup module 114 creates 4th and 5th incremental backups at times t( 4 ) and t( 5 ), respectively.
- the backup module 114 creates a synthetic incremental backup [4-5], which is a combination of the 4th and 5th incremental backups.
- the backup module 114 creates the synthetic base backup [ 5 A] by collapsing the base backup, the synthetic incremental backup [1-3], and the 4th and 5th incremental backups.
- the backup module 114 creates the synthetic base backup [ 5 B] by collapsing the synthetic base backup [ 3 ] and the synthetic incremental backup [4-5]. It is noted that the synthetic base backup [ 5 A] and the synthetic base backup [ 5 B] are identical even though they were created by combining different backups, as each includes data from the base backup through the 5th incremental backup.
- the backup module 114 creates a 6th incremental backup at time t( 6 ). Then the backup module 114 creates various additional incremental backups, finishing at step 226 with the creation of an nth incremental backup at time t(n).
- the data from the source storage 108 can be restored to the state at the point in time of a particular backup by applying the image backup file(s) to the restore storage 112 from oldest to newest, namely, first applying the base backup and then applying any successive incremental backup(s).
- the creation of synthetic backups may be useful in order to collapse multiple backups of a source storage created at different points in time into a single backup. Since restoring a fewer number of backups stored in a backup storage is generally faster than restoring a greater number of backups, the creations of synthetic backups, and the resulting decrease in the number of backups, may result in faster restore of the backups should the need arise for a restoration of the source storage. Also, once a backup has been collapsed with other sequential backups into a synthetic backup, the original backups may be deleted from the backup storage, thereby decreasing the overall size requirements of the destination storage 110 where the synthetic backup is stored.
- the creation of backups and synthetic backups during the method 200 may include pruning of unwanted file content, which may involve the FSMs and file exclusion policies (FEPs) that are associated with each of the backups created at steps 202 - 226 .
- This pruning of unwanted file content may decrease the overall size requirements of the destination storage 110 where the backups and synthetic backups are stored, decrease the bandwidth overhead of transporting the backups and synthetic backups over the network 116 , decrease the processing time associated with collapsing any of the backups into a synthetic backup, and/or decrease the processing time associated with restoring any of the backups and synthetic backups on the restore storage 112 , as discussed in greater detail below in connection with FIGS. 3A-6B .
- base backups and incremental backup files are discussed above, it is understood that the source storage 108 may instead be backed up by creating a base backup and one or more decremental image backup files. Decremental backups are created by initially creating a base backup to capture the state at an initial point in time, then updating the base backup to capture the state at a subsequent point in time by modifying only those blocks in the base backup that changed between the initial and subsequent points in time.
- the original blocks in the base backup that correspond to the changed blocks are copied to a decremental backup, thus enabling restoration of the source storage 108 at the initial point in time (by restoring the updated base backup and then restoring the decremental backup) or at the subsequent point in time (by simply restoring the updated base backup). Since restoring a single base backup is generally faster than restoring a base backup and one or more incremental or decremental backups, creating decremental backups instead of incremental backups may enable the most recent backup to be restored more quickly since the most recent backup is always a base backup or an updated base backup instead of potentially being an incremental backup. Therefore, the methods disclosed herein are not limited to pruning base and incremental backups, but may also include pruning base and decremental backups.
- FIGS. 3A-3C are schematic flowcharts illustrating pruning of unwanted file content during the creation and restoration or mounting of a base backup, an incremental backup, and a synthetic backup of the source storage 108 .
- the source storage 108 includes eight blocks having block positions 108 ( 1 )- 108 ( 8 ).
- the size of each block in the source storage 108 is 4096 bytes, although any other block size could instead be employed.
- the size of each block may be configured to match the standard cluster size of a file system of the source storage 108 or the standard sector size of the source storage 108 .
- the block positions in FIGS. 3A-3C having a label therein represent blocks that are allocated at the time indicated.
- the blank blocks in the storage 108 or 112 of FIGS. 3A-3C represent blocks in the storage 108 or 112 that are free at the time indicated.
- the blank blocks in the backup 302 , 306 , or 312 of FIGS. 3A-3C may or may not actually exist in the backup 302 , 306 , or 312 , but are generally illustrated to indicate that no corresponding blocks from the source storage 108 has been included in the backup 302 , 306 , or 312 .
- the labels in the block positions of FIGS. 3A-3C include a letter to identify the block as corresponding to content of a particular file and a number to identify the state of the block at a particular point in time. For example, the block labeled AO in FIG.
- 3A identifies the block as corresponding to content of a file named FileA.MP3 and also identifies the state of the block at time t( 0 ).
- the block labeled C 1 in FIG. 3B identifies the block as corresponding to content of a file named FileC.TXT and also identifies the state of the block at time t( 1 ).
- FIG. 3A illustrates the source storage 108 at time t( 0 ), a base backup 302 representing the state of the source storage at time t( 0 ) but with unwanted file content having been excluded, and the restore storage 112 after the base backup 302 has been restored to the restore storage 112 .
- FIG. 3A also illustrates the FSM 118 of the source storage at time t( 0 ), which is also backed up in the base backup 302 , an FEP 304 that is employed during the creation and restoration or mounting of the base backup 302 to prune unwanted file content, and the FSM 120 of the restore storage after having been restored to the state of the source storage 108 at time t( 0 ) but with unwanted file content having been excluded.
- FileA.MP3 includes content blocks at positions 108 ( 3 ), 108 ( 7 ), and 108 ( 4 )
- FileB.MOV includes content blocks at positions 108 ( 5 ) and 108 ( 2 )
- FileC.TXT includes content blocks at positions 108 ( 6 ) and 108 ( 8 ).
- the FSM 118 also include an FSBAM 119 which indicates which positions of the source storage 108 at time t( 0 ) include allocated blocks, with allocated blocks indicated by a 1 and free blocks indicated by a 0 .
- the FEP 304 directs the exclusion of the contents of all .MP3 files, and may be employed to identify FileA.MP3 as a file to be excluded from the base backup 302 .
- This exclusion can be accomplished by excluding the blocks at positions 108 ( 3 ), 108 ( 7 ), and 108 ( 4 ) of the source storage 108 from the base backup 302 because these blocks correspond to content of FileA.MP3.
- FIG. 1 illustrates the exclusion of the contents of all .MP3 files, and may be employed to identify FileA.MP3 as a file to be excluded from the base backup 302 .
- This exclusion can be accomplished by excluding the blocks at positions 108 ( 3 ), 108 ( 7 ), and 108 ( 4 ) of the source storage 108 from the base backup 302 because these blocks correspond to content of FileA.MP3.
- the FEP 304 which directs the exclusion of all .MP3 files, may be employed to prune the FSM 120 to remove FileA.MP3, which includes updating the FSBAM 121 to indicate that positions 112 ( 3 ), 112 ( 7 ), and 112 ( 4 ) are free, prior to exposing the file system of the restore storage 112 to any user.
- the restore storage 112 may be restored to the state of the source storage at time t( 0 ) but with unwanted file content of FileA.MP3 having been excluded and the FSM 120 entry for FileA.MP3 having been removed.
- This pruning of unwanted file content of FileA.MP3 may decrease the overall size requirements of the destination storage 110 where the base backup 302 is stored, decrease the bandwidth overhead of transporting the base backup 302 over the network 116 , decrease the processing time associated with collapsing the base backup 302 into a synthetic backup, and/or decrease the processing time associated with restoring the base backup 302 on the restore storage 112 .
- FIG. 3B illustrates the source storage 108 at time t( 1 ), the incremental backup 306 of the state of the source storage 108 at time t( 1 ) but with unwanted file content having been excluded, and the restore storage 112 after the incremental backup 306 has been restored to the restore storage 112 .
- FIG. 3B illustrates the source storage 108 at time t( 1 ), the incremental backup 306 of the state of the source storage 108 at time t( 1 ) but with unwanted file content having been excluded, and the restore storage 112 after the incremental backup 306 has been restored to the restore storage 112 .
- 3B also illustrates the FSM 118 , including the FSBAM 119 , of the source storage at time t( 1 ), which is also backed up in the incremental backup 306 , a change map 308 in which all blocks changed between time t( 0 ) and time t( 1 ) are tracked, with changed blocks indicated by a 1 and unchanged blocks indicated by a 0 , an FEP 310 that is employed during the creation and restoration or mounting of the incremental backup 306 to prune unwanted file content, and the FSM 120 of the restore storage 112 after having been restored to the state of the source storage 108 at time t( 1 ) but with unwanted file content having been excluded.
- the change map 308 which may be stored in a memory of the source system 102 for example, indicates that the blocks at positions 108 ( 1 ), 108 ( 4 ), 108 ( 5 ), and 108 ( 6 ) changed between time t( 0 ) and time t( 1 ).
- the block at position 108 ( 4 ) was modified between time t( 0 ) and time t( 1 ) but then later deleted from FileA.MP3 between time t( 0 ) and time t( 1 ). It is noted that the deletion of the block at position 108 ( 4 ) may not actually involve deleting the content of the block at position 108 ( 4 ), but may instead only involve altering the FSBAM 119 and the FSM 118 , leaving the content of the block at position 108 ( 4 ) unreferenced and thereby effectively “deleted.”
- the blocks at positions 108 ( 1 ), 108 ( 5 ), and 108 ( 6 ) are initially targeted from inclusion. It is noted that although the block at position 108 ( 4 ) is also indicated as changed in the change map 308 , since position 108 ( 4 ) is indicated as free in the FSBAM 119 in FIG. 3B , the block at position 108 ( 4 ) is not an allocated block, and therefore is not a changed allocated block. However, the FEP 310 directs the exclusion of all .MOV files, and may be employed to identify FileB.MOV as a file to be excluded from the incremental backup 306 .
- This exclusion can be accomplished by excluding the changed allocated block at position 108 ( 5 ) of the source storage 108 from the incremental backup 306 because this block corresponds to content of FileB.MOV.
- the copy of the FSM 118 that is stored in the incremental backup 306 continues to list FileB.MOV, and the FSBAM 119 of the FSM 118 continues to indicate that the content blocks of FileB.MOV at positions 108 ( 5 ) and 108 ( 2 ) are allocated.
- the creation of the incremental backup 306 may also include identifying files that were previously excluded from the base backup 302 but that now should be included in the incremental backup 306 due to a change in the file exclusion policy, and then including allocated blocks that correspond to content of the files to be included in the incremental backup 306 .
- identifying files that were previously excluded from the base backup 302 but that now should be included in the incremental backup 306 due to a change in the file exclusion policy, and then including allocated blocks that correspond to content of the files to be included in the incremental backup 306 .
- identifying files that were previously excluded from the base backup 302 but that now should be included in the incremental backup 306 due to a change in the file exclusion policy and then including allocated blocks that correspond to content of the files to be included in the incremental backup 306 .
- the FEP 310 directs the exclusion of all .MOV files and may be employed to prune the FSM 120 to remove FileB.MOV, which includes updating the FSBAM 121 to indicate that positions 112 ( 5 ) and 112 ( 2 ) are free, prior to exposing the file system of the restore storage 112 to any user.
- the restore storage 112 may be restored to the state of the source storage at time t( 1 ) but with unwanted file content of FileB.MOV having been excluded.
- This pruning of unwanted file content of FileB.MOV may decrease the overall size requirements of the destination storage 110 where the incremental backup 306 is stored, decrease the bandwidth overhead of transporting the incremental backup 306 over the network 116 , decrease the processing time associated with collapsing the incremental backup 306 into a synthetic backup, and/or decrease the processing time associated with restoring the incremental backup 306 on the restore storage 112 .
- FIG. 3C illustrates the base backup 302 , along with its associated FSM 118 and FSBAM 119 .
- FIG. 3C also illustrates the incremental backup 306 , along with its associated FSM 118 and FSBAM 119 .
- FIG. 3C also illustrates a synthetic base backup 312 , along with its associated FSM 118 and FSBAM 119 , which is a collapse of the base backup 302 and the incremental backup 306 but with unwanted file content having been excluded.
- FIG. 3C also illustrates the FEP 310 that is identical for both the incremental backup 306 and the synthetic base backup 312 .
- FIG. 3C also illustrates the restore storage 112 after the synthetic base backup 312 has been restored to the restore storage 112 .
- a set of allocated blocks may be identified that includes a most recent allocated block for each unique block position indicated as allocated within the FSBAM 119 of the incremental backup 306 .
- the blocks in positions 108 ( 1 ), 108 ( 3 ), 108 ( 6 ), 108 ( 7 ) will come from the incremental backup 306
- the blocks in positions 108 ( 2 ), 108 ( 5 ), and 108 ( 4 ) will come from the base backup 302
- the block in position 108 ( 4 ) will not be included since it is not indicated as being allocated in the FSBAM included with the incremental backup 306 .
- the FEP 310 which directs the exclusion of all .MOV files, may be employed to identify FileB.MOV as a file to be excluded from the synthetic base backup 312 .
- This exclusion can be accomplished by pruning the set of blocks to exclude the blocks at positions 108 ( 5 ) and 108 ( 2 ) because these blocks correspond to content of FileB.MOV.
- This pruned set of blocks can then be included in the synthetic base backup 312 .
- the copy of the FSM 118 that is stored in the synthetic base backup 312 continues to list FileB.MOV, and the FSBAM 119 of the FSM 118 continues to indicate that the content blocks of FileB.MOV at positions 108 ( 5 ) and 108 ( 2 ) are allocated.
- This continued listing of FileB.MOV in the FSM 118 of the synthetic base backup 312 despite the content blocks of FileB.MOV having been excluded from the synthetic base backup 312 , may ensure data integrity within a chain of any subsequent incremental backups that depend on the synthetic base backup 312 .
- the FEP 310 which directs the exclusion of all .MOV files, may be employed to prune the FSM 120 to remove FileB.MOV, which includes updating the FSBAM 121 to indicate that positions 112 ( 5 ) and 112 ( 2 ) are free, prior to exposing the file system of the restore storage 112 to any user.
- the restore storage 112 may be restored to the state of the source storage at time t( 1 ) but with unwanted file content of FileB.MOV having been excluded.
- This pruning of unwanted file content of FileB.MOV may decrease the overall size requirements of the destination storage 110 where the synthetic base backup 312 is stored, decrease the bandwidth overhead of transporting the synthetic base backup 312 over the network 116 , decrease the processing time associated with collapsing the synthetic base backup 312 into another synthetic backup, and/or decrease the processing time associated with restoring the synthetic base backup 312 on the restore storage 112 .
- FIGS. 3A-3C illustrate the restoration of various backups to the restore storage 112
- the restore storage 112 could be replaced with a virtual volume of a virtual machine, or of another virtual device such as a virtual disk, and these various backups could be mounted on the virtual volume in a similar manner.
- the mounting may include pruning FSM of a file system of the virtual volume to modify metadata associated with the files to be excluded prior to exposing the file system to any user. Therefore, the example methods disclosed herein apply equally to restoration of a backup to a physical volume or to mounting the backup as a virtual volume.
- the scale of the source storage 108 including only eight blocks, and the files on the source storage including only two or three blocks in FIGS. 3A-3C is for example purposes only, and in practice the source storage 108 may include at least billions of blocks, and each file may also include at least billions of blocks.
- a single digital movie file (a .MOV file) may include billions of blocks, and the exclusion of such a digital movie file from a backup will result in the backup being billions of blocks smaller in size.
- FIGS. 4 , 5 A- 5 B, and 6 A- 6 B are schematic flowchart diagrams of example methods 400 , 500 , and 600 of pruning unwanted file content from a base image backup, an incremental image backup, and a synthetic image backup, respectively.
- the methods 400 , 500 , and 600 may be implemented, in at least some embodiments, by the backup module 114 of the source system 102 of FIG. 1 .
- the backup module 114 may be configured to execute computer instructions to perform operations of pruning unwanted file content from backups of the source storage 108 , as represented by one or more steps of the methods 400 , 500 , and 600 .
- steps of the methods 400 , 500 , and 600 may be divided into additional steps, combined into fewer steps, or eliminated, depending on the desired implementation.
- the methods 400 , 500 , and 600 will now be discussed with reference to FIGS. 1-6B .
- the method 400 of FIG. 4 may include a step 402 of identifying files to be excluded from a base image backup of a source storage.
- the backup module 114 may identify, at step 402 , FileA.MP3 of FIG. 3A as a file to be excluded from the base backup 302 of the source storage 108 .
- This identification at step 402 may be accomplished in a variety of ways.
- the step 402 may be accomplished by identifying all files on the source storage 108 at time t( 0 ) that correspond to the FEP 304 and associating the FEP 304 with the base backup 302 .
- the step 402 may be accomplished by identifying all files on the source storage 108 at time t( 0 ) that do not correspond to a file inclusion policy and associating the file inclusion policy with the base backup 302 .
- the step 402 may be accomplished by identifying a user-specified list of excluded files and associating the user-specified list of excluded files with the base backup 302 .
- the step 402 may be accomplished by identifying all files on the source storage 108 at the time t( 0 ) that do not correspond to a user-specified list of included files and associating the user-specified list of included files with the base backup 302 .
- any of a file exclusion policy, a file inclusion policy, a user-specified list of excluded files, and a user-specified list of included files may be formulated in a variety of different ways including specifying one or more specific files, one or more file types, one or more file characteristics such as file size or file last modified date, or any other formulation that clearly identifies some subset of files to be included or excluded. Therefore, the identification of files to exclude at step 402 is not limited to the example method of identification employed in the example embodiments of FIGS. 3A-3C .
- the method 400 may also include a step 404 of identifying a set of all allocated blocks in the source storage at a first point in time by accessing a file system block allocation map (FSBAM) of file system metadata (FSM) of a file system of the source storage.
- the backup module 114 may, at step 404 , identify a set of all allocated blocks in the source storage 108 at time t( 0 ) by accessing the FSBAM 119 of the FSM 118 of a file system of the source storage 108 , as disclosed in FIG. 3A .
- the FSBAM 119 indicates, as being allocated, block positions that are allocated in the source storage 108 .
- the FSBAM 119 indicates that the blocks at positions 108 ( 1 )- 108 ( 8 ) are allocated.
- the method 400 may also include a step 406 of pruning the set of all allocated blocks to exclude the allocated blocks that correspond to content of the files to be excluded.
- the backup module 114 may, at step 406 , prune the set of all allocated blocks, which initially included blocks at positions 108 ( 1 )- 108 ( 8 ), to exclude the allocated blocks at positions 108 ( 3 ), 108 ( 7 ), and 108 ( 4 ) that correspond to the content of FileA.MP3.
- the method 400 may also include a step 408 of backing up the pruned set of allocated blocks, and not backing up the excluded allocated blocks, in the base image backup.
- the backup module 114 may, at step 408 , back up the pruned set of allocated blocks, which includes the allocated blocks at positions 108 ( 1 ), 108 ( 2 ), 108 ( 5 ), 108 ( 6 ), and 108 ( 8 ), and not backing up the excluded allocated blocks, which include the allocated blocks at positions 108 ( 3 ), 108 ( 4 ), and 108 ( 7 ), in the base backup 302 , as disclosed in FIG. 3A .
- the method 400 may also include a step 410 of restoring the base image backup to a restore storage, with the restoring including pruning FSM of a file system of the restore storage to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the restore storage.
- the backup module 114 may, at step 410 , restore the base backup 302 to the restore storage 112 .
- This restoring may include pruning the FSM 120 of a file system of the restore storage 112 to modify metadata associated with FileA.MP3 prior to exposing the file system to any user such that FileA.MP3 is no longer listed as existing within the FSM 120 of the file system of the restore storage 112 , as disclosed in FIG. 3A .
- the method 400 may instead include a step 412 of mounting the base image backup as a virtual volume, the mounting including pruning FSM of a file system of the virtual volume to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the virtual volume.
- the backup module 114 may, at step 412 , mount the base backup 302 as a virtual volume. This mounting may include pruning the FSM of a file system of the virtual volume to modify metadata associated with FileA.MP3 prior to exposing the file system to any user such that FileA.MP3 is no longer listed as existing within the FSM of the file system of the virtual volume.
- the method 500 of FIGS. 5A-5B may begin at step 502 of identifying files to be excluded from an incremental image backup of a source storage.
- the backup module 114 may identify, at step 502 , FileB.MOV of FIG. 3B as a file to be excluded from the incremental backup 306 of the source storage 108 .
- This identification at step 502 may be accomplished in a variety of ways, including any of the ways discussed above in connection with the step 502 , but using the FEP 310 of FIG. 3B instead of the FEP 304 of FIG. 3A .
- the method 500 may also include a step 504 of identifying a set of changed allocated blocks that changed in the source storage between the first point in time and a second point in time.
- the backup module 114 may, at step 504 , identify a set of changed allocated blocks, such as the changed allocated blocks at positions 108 ( 1 ), 108 ( 5 ), and 108 ( 6 ) as indicated in the change map 308 , that changed in the source storage 108 between time t( 0 ) and time t( 1 ). It is noted that although the block at position 108 ( 4 ) is also indicated as changed in the change map 308 , since position 108 ( 4 ) is indicated as free in the FSBAM 119 in FIG. 3B , the block at position 108 ( 4 ) is not a allocated block, and therefore does not belong in the set of changed allocated blocks.
- the method 500 may also include a step 506 of pruning the set of changed allocated blocks to exclude the allocated blocks that correspond to content of the files to be excluded.
- the backup module 114 may, at step 506 , prune the set of changed allocated blocks, which initially included blocks at positions 108 ( 5 ) and 108 ( 6 ), to exclude the allocated block at position 108 ( 5 ) that corresponds to the content of FileB.MOV.
- the method 500 may also include a step 508 of identifying files to be included in the incremental image backup that were previously excluded from the base image backup.
- the backup module 114 may, at step 508 , identify that FileA.MP3 should be included in the incremental backup 306 because while .MP3 files were previously excluded according to the initial FEP 304 , the current FEP 310 does not exclude .MP3 files.
- the method 500 may also include a step 510 of augmenting the pruned set of changed allocated blocks to include the allocated blocks that correspond to content of the files to be included.
- the backup module 114 may, at step 510 , augment the pruned set of changed allocated blocks, which after pruning only includes the block at position 108 ( 6 ), to include the allocated blocks at positions 108 ( 3 ) and 108 ( 7 ) that correspond to content of FileA.MP3.
- the method 500 may also include a step 512 of backing up the pruned set of changed allocated blocks, and not backing up the excluded changed allocated blocks, in the incremental image backup.
- the backup module 114 may, at step 512 , back up the pruned set of changed allocated blocks, which includes the allocated blocks at positions 108 ( 1 ), 108 ( 3 ), 108 ( 6 ), and 108 ( 7 ), and not backing up the excluded changed allocated blocks, which include the allocated block at position 108 ( 5 ), in the incremental backup 306 , as disclosed in FIG. 3B .
- the method 500 may also include a step 514 of restoring the base image backup and the incremental image backup to a restore storage, with the restoring including pruning FSM of a file system of the restore storage to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the restore storage.
- the backup module 114 may, at step 514 , restore the base backup 302 and the incremental backup 306 to the restore storage 112 .
- This restoring may include applying the backup files to the restore storage 112 from oldest to newest, namely, first applying the base backup 302 and then applying the incremental backup 306 .
- This restoring may also include pruning the FSM 120 of a file system of the restore storage 112 to modify metadata associated with FileB.MOV prior to exposing the file system to any user such that FileB.MOV is no longer listed as existing within the FSM 120 of the file system of the restore storage 112 , as disclosed in FIG. 3B .
- the method 500 may instead include a step 516 of mounting the base image backup and the incremental image backup as a virtual volume, the mounting including pruning FSM of a file system of the virtual volume to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the virtual volume.
- the backup module 114 may, at step 516 , mount the base backup 302 and the incremental backup 306 as a virtual volume. This mounting may include pruning the FSM of a file system of the virtual volume to modify metadata associated with FileB.MOV prior to exposing the file system to any user such that FileA.MOV is no longer listed as existing within the FSM of the file system of the virtual volume.
- the method 600 of FIGS. 6A-6B may include a step 602 of identifying multiple sequential image backups of a source storage to be included in a synthetic image backup of the source storage.
- the backup module 114 may, at step 602 , identify the base backup 302 and the incremental backup 306 to be included in the synthetic base backup 312 of the source storage 108 , as disclosed in FIG. 3C .
- the method 600 may include a step 604 of identifying files to be excluded from the synthetic image backup.
- the backup module 114 may identify, at step 604 , FileB.MOV as a file to be excluded from the synthetic base backup 312 .
- This identification at step 604 may be accomplished in a variety of ways, including any of the ways discussed above in connection with the step 602 , but using the FEP 310 of FIG. 3C instead of the FEP 304 of FIG. 3A .
- the method 600 may also include a step 606 of accessing a file system block allocation map (FSBAM) of a most recent of the multiple sequential image backups.
- FSBAM file system block allocation map
- the backup module 114 may, at step 606 , access the FSBAM 119 of the FSM 118 that is associated with the incremental backup 306 .
- the method 600 may also include a step 608 of identifying a set of allocated blocks that includes a most recent allocated block for each unique block position indicated as allocated within the FSBAM.
- the backup module 114 may, at step 608 , identify a set of allocated blocks that includes a most recent allocated block for each unique block position indicated as allocated within the FSBAM 119 .
- the most recent blocks for each of the positions that are indicated as allocated within the FSBAM 119 are blocks in positions 108 ( 1 ), 108 ( 3 ), 108 ( 6 ), and 108 ( 7 ) from the incremental backup 306 and blocks in positions 108 ( 2 ), 108 ( 5 ), and 108 ( 8 ) from the base backup 302 .
- the block in position 108 ( 4 ) in not included in the set of allocated blocks because this position is not indicated as being allocated in the FSBAM 119 that is included with the incremental backup 306 .
- the method 600 may also include a step 610 of pruning the set of allocated blocks to exclude the allocated blocks that correspond to content of the files to be excluded.
- the backup module 114 may, at step 610 , prune the set of allocated blocks, which initially included blocks at positions 108 ( 1 )- 108 ( 3 ) and 108 ( 5 )- 108 ( 8 ), to exclude the allocated blocks at positions 108 ( 2 ) and 108 ( 5 ) that correspond to the content of FileB.MOV.
- the method 600 may also include a step 612 of storing the pruned set of allocated blocks, and not storing the excluded allocated blocks, in the synthetic image backup.
- the backup module 114 may, at step 612 , store the pruned set of allocated blocks, which includes the allocated blocks at positions 108 ( 1 ), 108 ( 3 ), and 108 ( 6 )- 108 ( 8 ), and not backing up the excluded allocated blocks, which include the allocated blocks at positions 108 ( 2 ) and 108 ( 5 ), in the synthetic base backup 312 , as disclosed in FIG. 3C .
- the method 600 may also include a step 614 of restoring the synthetic image backup to a restore storage, with the restoring including pruning FSM of a file system of the restore storage to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the restore storage.
- the backup module 114 may, at step 614 , restore the synthetic base backup 312 to the restore storage 112 .
- This restoring may include pruning the FSM 120 of a file system of the restore storage 112 to modify metadata associated with FileB.MOV prior to exposing the file system to any user such that FileB.MOV is no longer listed as existing within the FSM 120 of the file system of the restore storage 112 , as disclosed in FIG. 3C .
- the method 600 may instead include a step 616 of mounting the synthetic image backup as a virtual volume, the mounting including pruning FSM of a file system of the virtual volume to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the virtual volume.
- the backup module 114 may, at step 616 , mount the synthetic base backup 312 as a virtual volume. This mounting may include pruning the FSM of a file system of the virtual volume to modify metadata associated with FileB.MOV prior to exposing the file system to any user such that FileA.MOV is no longer listed as existing within the FSM of the file system of the virtual volume.
- the identification of a set of blocks in the methods 400 , 500 , and 600 is generally discussed herein as preceding the pruning of the set of blocks, it is understood that the pruning could occur prior to or simultaneously with the identification of the set of blocks. Therefore, it is not necessary that a block be included in the set of blocks prior to being pruned from the set of blocks, and the pruning disclosed herein can instead prevent a block from ever being included in the set of blocks.
- the accessing of the FSBAM at step 606 precedes the identification of the set of blocks at step 608 and the pruning at step 610 , the accessing could occur simultaneously with the identification and/or the pruning.
- inventions described herein may include the use of a special-purpose or general-purpose computer including various computer hardware or software modules, as discussed in greater detail below.
- Embodiments described herein may be implemented using computer-readable media for carrying or having computer-executable instructions or data structures stored thereon.
- Such computer-readable media may be any available media that may be accessed by a general-purpose or special-purpose computer.
- Such computer-readable media may include non-transitory computer-readable storage media including RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other storage medium which may be used to carry or store desired program code in the form of computer-executable instructions or data structures and which may be accessed by a general-purpose computer, special-purpose computer, or virtual computer such as a virtual machine. Combinations of the above may also be included within the scope of computer-readable media.
- Computer-executable instructions comprise, for example, instructions and data which cause a general-purpose computer, special-purpose computer, or virtual computer such as a virtual machine to perform a certain function or group of functions.
- module may refer to software objects or routines that execute on a computing system.
- the different modules described herein may be implemented as objects or processes that execute on a computing system (e.g., as separate threads). While the system and methods described herein are preferably implemented in software, implementations in hardware or a combination of software and hardware are also possible and contemplated.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- This application is a continuation of U.S. patent application Ser. No. 14/477,984, filed Sep. 5, 2014, and titled “PRUNING UNWANTED FILE CONTENT FROM AN IMAGE BACKUP,” which is incorporated herein by reference in its entirety.
- The embodiments disclosed herein relate to pruning unwanted file content from an image backup.
- A storage is computer-readable media capable of storing data in blocks. Storages face a myriad of threats to the data they store and to their smooth and continuous operation. In order to mitigate these threats, a backup of the data in a storage may be created at a particular point in time to enable the restoration of the data at some future time. Such a restoration may become desirable, for example, if the storage experiences corruption of its stored data, if the storage becomes unavailable, or if a user wishes to create a second identical storage.
- A storage is typically logically divided into a finite number of fixed-length blocks. A storage also typically includes a file system which tracks the locations of blocks that are allocated to each file that is stored in the storage as well as the locations of allocated blocks which are used by the file system for its own internal on-storage structures. The file system may also track free blocks that are neither allocated to any file nor allocated to any file system on-storage structure. The file system generally tracks allocated and/or free blocks using a specialized on-storage structure stored in the file system metadata (FSM), referred to herein as a file system block allocation map (FSBAM).
- Various techniques exist for backing up a source storage. One common technique involves backing up individual files stored in the source storage on a per-file basis. This technique is often referred to as file backup. File backup uses the file system of the source storage as a starting point and performs a backup by writing the files to a backup storage. Using this approach, individual files are backed up if they have been modified since the previous backup. File backup may be useful for finding and restoring a few lost or corrupted files. However, file backup may also include significant overhead in the form of bandwidth and logical overhead because file backup requires the tracking and storing of information about where each file exists within the file system of the source storage and the backup storage.
- Another common technique for backing up a source storage ignores the locations of individual files stored in the source storage and instead simply backs up all allocated blocks stored in the source storage. This technique is often referred to as image backup because the backup generally contains or represents an image, or copy, of the entire allocated contents of the source storage. Using this approach, individual allocated blocks are backed up if they have been modified since the previous backup. Because image backup backs up all allocated blocks of the source storage, image backup backs up both the blocks that make up the files stored in the source storage as well as the blocks that make up the file system on-storage structures such as the FSM. Also, because image backup backs up all allocated blocks rather than individual files, this approach does not generally need to be aware of the file system on-storage data structures or the files stored in the source storage, beyond utilizing the FSBAM in order to only back up allocated blocks since free blocks are not generally backed up.
- An image backup can be relatively fast compared to file backup because reliance on the file system is minimized. Further, the use of snapshot technology during an image backup may enable an image backup to capture the data stored in a source storage at a particular point in time without interrupting other processes, thus avoiding downtime of the source storage.
- One common problem encountered when backing up a source storage using image backup or managing image backups is the potential for the inclusion of unwanted files in the backups. For example, a very large digital movie file may initially be stored in a source storage. At the time of a backup of the source storage, or at a subsequent time of a collapse of backups into a synthetic backup that includes the movie file, a user may wish to delete the movie file in order to save space in the backup(s) of the source storage. However, image backup and collapse methods do not generally allow individual files to be deleted from a backup, and the content of the unwanted file must therefore be needlessly retained in the backup. Retaining unwanted file content in a backup may increase the overall size requirements of a backup storage where the backup is stored, increase the bandwidth overhead of transporting the backup, increase the processing time associated with collapsing the backup into a synthetic backup, and increase the processing time associated with restoring the backup.
- The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one example technology area where some embodiments described herein may be practiced.
- In general, example embodiments described herein relate to pruning unwanted file content from an image backup. The example methods disclosed herein may be employed to prune blocks that correspond to content of one or more unwanted files during the creation of a backup or of a synthetic backup. The pruning of the example methods disclosed herein may decrease the overall size requirements of a backup storage where a backup is stored, decrease the bandwidth overhead of transporting the backup, decrease the processing time associated with collapsing the backup into a synthetic backup, and/or decrease the processing time associated with restoring the backup.
- In one example embodiment, a method of pruning unwanted file content from an image backup includes identifying files to be excluded from a base image backup of a source storage, identifying a set of allocated blocks in the source storage at a first point in time, pruning the set of allocated blocks to exclude the allocated blocks that correspond to content of the files to be excluded, backing up the pruned set of allocated blocks, and not backing up the excluded allocated blocks, in the base image backup, and restoring the base image backup to a restore storage, the restoring including pruning file system metadata of a file system of the restore storage prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the file system metadata.
- It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
- Example embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
-
FIG. 1 is a schematic block diagram illustrating an example backup system; -
FIG. 2 is a schematic flowchart illustrating an example method for creating a base backup, multiple incremental backups, multiple synthetic base backups, and multiple synthetic incremental backups of a source storage; -
FIGS. 3A-3C are schematic flowcharts illustrating pruning of unwanted file content during the creation and restoration or mounting of a base backup, an incremental backup, and a synthetic backup of a source storage; -
FIG. 4 is a schematic flowchart diagram of an example method of pruning unwanted file content from a base image backup; -
FIGS. 5A-5B are a schematic flowchart diagram of an example method of pruning unwanted file content from an incremental image backup; and -
FIGS. 6A-6B are a schematic flowchart diagram of an example method of pruning unwanted file content from a synthetic image backup. - The term “storage” as used herein refers to computer-readable media, or some logical portion thereof such as a volume, capable of storing data in blocks. The term “block” as used herein refers to a fixed-length discrete sequence of bits. The term “allocated block” as used herein refers to a block in a storage that is currently tracked as storing data by a file system of the storage. The term “free block” as used herein refers to a block in a storage that is not currently tracked as storing data by a file system of the storage. The term “backup” when used herein as a noun refers to a copy or copies of one or more blocks from a storage. The term “base backup” as used herein refers to a base backup of a storage that includes at least a copy of each unique allocated block of the storage at a point in time such that the base backup can be restored to recreate the state of the storage at the point in time. A “base backup” may also include nonunique allocated blocks and free blocks of the storage at the point in time. The term “incremental backup” as used herein refers to an at least partial backup of a storage that includes at least a copy of each unique allocated block of the storage that changed between a previous point in time of a previous backup of the storage and the subsequent point in time of the incremental backup, either because the block was previously-allocated and changed or because the block was newly-allocated, such that the incremental backup, along with all previous backups of the storage including an initial base backup of the storage, can be restored together to recreate the exact state of the storage at the subsequent point in time. An “incremental backup” may also include nonunique allocated blocks and free blocks of the storage that changed between the previous point in time and the subsequent point in time. Only “unique allocated blocks” may be included in a “base backup” or an “incremental backup” where only a single copy of multiple duplicate allocated blocks (i.e., nonunique allocated blocks) is backed up to reduce the size of the backup. A “base backup” or an “incremental backup” may exclude certain undesired allocated blocks such as blocks of data belonging to files whose contents are not necessary for restoration purposes, such as virtual memory pagination files and machine hibernation state files. The term “synthetic backup” as used herein refers to a backup that is created by combining copies of blocks from a combination of multiple sequential backups of a storage into a single backup. The term “file system metadata” or “FSM” as used herein refers to metadata maintained by a file system of a storage that tracks, at any given point in time, which blocks of the storage are assigned to each file of the storage and also maintains a file system block allocation map for the storage. The term “file system block allocation map” or “FSBAM” as used herein refers to a map maintained as part of the FSM of a storage that tracks, at any given point in time, which blocks of the storage are allocated and/or which blocks of the storage are free. The term “file exclusion policy” or “FEP” as used herein refers to a policy that defines which files of a storage should be excluded from a backup. The term “file inclusion policy” as used herein refers to a policy that defines which files of a storage should be included in a backup.
-
FIG. 1 is a schematic block diagram illustrating anexample backup system 100. As disclosed inFIG. 1 , theexample backup system 100 includes asource system 102, adestination system 104, and a restoresystem 106. Thesystems storages destination storage 110 may store various backups of thesource storage 108, including base backups, incremental backups, synthetic base backups, and synthetic incremental backups, as disclosed in greater detail inFIG. 2 . Thesource system 102 also includes abackup module 114. Thesystems network 116. - Each of the
systems network 116 may be any wired or wireless communication network including, for example, a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a Wireless Application Protocol (WAP) network, a Bluetooth network, an Internet Protocol (IP) network such as the internet, or some combination thereof. - The backups stored in the
destination storage 110 may be created by thebackup module 114. For example, thebackup module 114 may be configured to execute computer instructions to perform image backup operations of creating backups, as discussed in connection withFIG. 2 . It is noted that these image backups may initially be created on thesource system 102 and then copied to thedestination system 104. - During performance of the example methods disclosed herein, the
backup module 114 may create a backup of thesource storage 108 or may create a synthetic backup by collapsing multiple sequential backups, such as two or more of the backups of thesource storage 108 that are stored in thedestination storage 110. During the creation of either type of backup, thebackup module 114 may prune blocks that correspond to content of one or more unwanted files, which may involve utilizing metadata from file system metadata (FSM) 118 of thesource storage 108. Later, during the restore of such a backup, thebackup module 114 may prune corresponding metadata fromFSM 120 of the restorestorage 112. As discussed in greater detail below, pruning the blocks that correspond to content of one or more unwanted files during the creation of the backup or synthetic backup may decrease the overall size requirements of thedestination storage 110 where the backup is stored, decrease the bandwidth overhead of transporting the backup over thenetwork 116, decrease the processing time associated with collapsing the backup into a synthetic backup, and/or decrease the processing time associated with restoring the backup on the restorestorage 112. - In one example embodiment, the
source system 102 may be a desktop computer, thedestination system 104 may be a file server, the restoresystem 106 may be a virtual machine, and thenetwork 116 may include the internet. In this example embodiment, the file server may be configured to periodically back up the storage of the desktop computer over the internet. The file server may also be configured to periodically collapse multiple sequential backups into a synthetic backup. The file server may also be configured to restore any one of the backups to the storage of the virtual machine over the internet if the desktop computer experiences corruption or a user simply desires to restore the storage of the desktop computer to an earlier point in time. - Although only a single storage is disclosed in each of the
systems FIG. 1 , it is understood that any of thesystems systems FIG. 1 as communicating over thenetwork 116, it is understood that thesystems systems storages storages source storage 108 may function as a source storage during the creation of a backup and then the backup may be stored in a second volume of thesource storage 108. Subsequently, the backup stored in the second volume may be restored to the first volume, which may enable the first volume of thesource storage 108 to be restored to a state of an earlier point in time. In this example, the same first storage functions as both the “source” storage as well as the “restore” storage. Further, although thebackup module 114 is the only module disclosed in theexample backup system 100 ofFIG. 1 , it is understood that the functionality of thebackup module 114 may be replaced or augmented by one or more similar modules residing on any of thesystems example backup system 100 ofFIG. 1 , it is understood that thedestination system 104 ofFIG. 1 may be configured to simultaneously store backups from multiple source storages. - Having described one specific environment with respect to
FIG. 1 , it is understood that the specific environment ofFIG. 1 is only one of countless environments in which the example methods disclosed herein may be employed. The scope of the example embodiments is not intended to be limited to any particular environment. -
FIG. 2 is a schematic flowchart illustrating anexample method 200 for creating a base backup, multiple incremental backups, multiple synthetic base backups, and multiple synthetic incremental backups of thesource storage 108 of thesource system 102 ofFIG. 1 . Themethod 200 may be implemented, in at least some embodiments, by thebackup module 114 of thesource system 102 ofFIG. 1 . For example, thebackup module 114 may be configured to execute computer instructions to perform operations of creating a base backup, multiple incremental backups, multiple synthetic base backups, and multiple synthetic incremental backups of thesource storage 108 and then storing these backups in thedestination storage 110, as represented by themethod 200. Themethod 200 will now be discussed with reference toFIGS. 1 and 2 . - The
method 200 may begin atstep 202, in which thebackup module 114 creates a base backup to capture the state of thesource storage 108 at time t(0). The base backup may include all allocated blocks of thesource storage 108 as allocated at time t(0). During the creation of base backup and each of the incremental backups in themethod 200, an FSBAM of theFSM 118 of thesource storage 108 may be accessed at the time of the backup to determine which of the blocks of thesource storage 108 are allocated at the time of the backup. A copy of theFSM 118 may also be stored with each of the backups to capture the state of the FSM at the time of the backup. This copy may either be stored by virtue of the backup inherently including the FSM in its backed-up blocks, or the copy may be stored separately, or both. The base backup may be very large depending on the size of thesource storage 108 and the number of allocated blocks at time t(0). As a result, the base backup may take a relatively long time to create and consume a relatively large amount of space in thedestination storage 110. - At
step 204, thebackup module 114 creates a 1st incremental backup to capture the state of thesource storage 108 at time t(1). The 1st incremental backup may include all allocated blocks of thesource storage 108 that changed between time t(0) and time t(1). In general, as compared to the base backup, the 1st incremental backup may take a relatively short time to create and consume a relatively small amount of storage space in thedestination storage 110. - At
steps backup module 114 creates 2nd and 3rd incremental backups to capture the states of thesource storage 108 at times t(2) and t(3), respectively. The 2nd incremental backup may include all allocated blocks of thesource storage 108 that changed between time t(1) and time t(2). Similarly, the 3rd incremental backup may include all allocated blocks of thesource storage 108 that changed between time t(2) and time t(3). - At
step 210, thebackup module 114 creates synthetic incremental backup [1-3]. The label “[1-3]” indicates that the synthetic incremental backup [1-3] includes data from the 1st through 3rd incremental backups. - At
step 212, thebackup module 114 collapses the synthetic incremental backup [1-3] into the base backup to create the synthetic base backup [3]. The label “[3]” indicates that the synthetic base backup [3] includes the data from the base backup through the 3rd incremental backup. - At
steps backup module 114 creates 4th and 5th incremental backups at times t(4) and t(5), respectively. Atstep 218, thebackup module 114 creates a synthetic incremental backup [4-5], which is a combination of the 4th and 5th incremental backups. - At
step 220, thebackup module 114 creates the synthetic base backup [5A] by collapsing the base backup, the synthetic incremental backup [1-3], and the 4th and 5th incremental backups. Alternatively, atstep 222 thebackup module 114 creates the synthetic base backup [5B] by collapsing the synthetic base backup [3] and the synthetic incremental backup [4-5]. It is noted that the synthetic base backup [5A] and the synthetic base backup [5B] are identical even though they were created by combining different backups, as each includes data from the base backup through the 5th incremental backup. - At
step 224, thebackup module 114 creates a 6th incremental backup at time t(6). Then thebackup module 114 creates various additional incremental backups, finishing atstep 226 with the creation of an nth incremental backup at time t(n). - It is noted that the data from the
source storage 108 can be restored to the state at the point in time of a particular backup by applying the image backup file(s) to the restorestorage 112 from oldest to newest, namely, first applying the base backup and then applying any successive incremental backup(s). - In general, the creation of synthetic backups may be useful in order to collapse multiple backups of a source storage created at different points in time into a single backup. Since restoring a fewer number of backups stored in a backup storage is generally faster than restoring a greater number of backups, the creations of synthetic backups, and the resulting decrease in the number of backups, may result in faster restore of the backups should the need arise for a restoration of the source storage. Also, once a backup has been collapsed with other sequential backups into a synthetic backup, the original backups may be deleted from the backup storage, thereby decreasing the overall size requirements of the
destination storage 110 where the synthetic backup is stored. - In addition to the general usefulness of backups and synthetic backups noted above, the creation of backups and synthetic backups during the
method 200 may include pruning of unwanted file content, which may involve the FSMs and file exclusion policies (FEPs) that are associated with each of the backups created at steps 202-226. This pruning of unwanted file content may decrease the overall size requirements of thedestination storage 110 where the backups and synthetic backups are stored, decrease the bandwidth overhead of transporting the backups and synthetic backups over thenetwork 116, decrease the processing time associated with collapsing any of the backups into a synthetic backup, and/or decrease the processing time associated with restoring any of the backups and synthetic backups on the restorestorage 112, as discussed in greater detail below in connection withFIGS. 3A-6B . - Although only allocated blocks are included in the example base and incremental backups discussed above, it is understood that in alternative implementations both allocated and unallocated blocks may be backed up during the creation of a base backup or an incremental backup. This is typically done for forensic purposes, because the contents of unallocated blocks can be interesting where the unallocated blocks contain data from a previous point in time when the blocks were in use and allocated. Therefore, the creation of base backups and incremental backups as disclosed herein is not limited to allocated blocks but may also include unallocated blocks.
- Further, although only base backups and incremental backup files are discussed above, it is understood that the
source storage 108 may instead be backed up by creating a base backup and one or more decremental image backup files. Decremental backups are created by initially creating a base backup to capture the state at an initial point in time, then updating the base backup to capture the state at a subsequent point in time by modifying only those blocks in the base backup that changed between the initial and subsequent points in time. Prior to the updating of the base backup, however, the original blocks in the base backup that correspond to the changed blocks are copied to a decremental backup, thus enabling restoration of thesource storage 108 at the initial point in time (by restoring the updated base backup and then restoring the decremental backup) or at the subsequent point in time (by simply restoring the updated base backup). Since restoring a single base backup is generally faster than restoring a base backup and one or more incremental or decremental backups, creating decremental backups instead of incremental backups may enable the most recent backup to be restored more quickly since the most recent backup is always a base backup or an updated base backup instead of potentially being an incremental backup. Therefore, the methods disclosed herein are not limited to pruning base and incremental backups, but may also include pruning base and decremental backups. -
FIGS. 3A-3C are schematic flowcharts illustrating pruning of unwanted file content during the creation and restoration or mounting of a base backup, an incremental backup, and a synthetic backup of thesource storage 108. As disclosed inFIGS. 3A-3C , thesource storage 108 includes eight blocks having block positions 108(1)-108(8). In some example embodiments, the size of each block in thesource storage 108 is 4096 bytes, although any other block size could instead be employed. The size of each block may be configured to match the standard cluster size of a file system of thesource storage 108 or the standard sector size of thesource storage 108. The block positions inFIGS. 3A-3C having a label therein represent blocks that are allocated at the time indicated. The blank blocks in thestorage FIGS. 3A-3C represent blocks in thestorage backup FIGS. 3A-3C may or may not actually exist in thebackup source storage 108 has been included in thebackup FIGS. 3A-3C include a letter to identify the block as corresponding to content of a particular file and a number to identify the state of the block at a particular point in time. For example, the block labeled AO inFIG. 3A identifies the block as corresponding to content of a file named FileA.MP3 and also identifies the state of the block at time t(0). Similarly, the block labeled C1 inFIG. 3B identifies the block as corresponding to content of a file named FileC.TXT and also identifies the state of the block at time t(1). -
FIG. 3A illustrates thesource storage 108 at time t(0), abase backup 302 representing the state of the source storage at time t(0) but with unwanted file content having been excluded, and the restorestorage 112 after thebase backup 302 has been restored to the restorestorage 112.FIG. 3A also illustrates theFSM 118 of the source storage at time t(0), which is also backed up in thebase backup 302, anFEP 304 that is employed during the creation and restoration or mounting of thebase backup 302 to prune unwanted file content, and theFSM 120 of the restore storage after having been restored to the state of thesource storage 108 at time t(0) but with unwanted file content having been excluded. - In particular, the
FSM 118 at time t(0), which is stored in thesource storage 108 at position 108(1), indicates that thesource storage 108 includes three files named FileA.MP3, FileB.MOV, and FileC.TXT. FileA.MP3 includes content blocks at positions 108(3), 108(7), and 108(4), FileB.MOV includes content blocks at positions 108(5) and 108(2), and FileC.TXT includes content blocks at positions 108(6) and 108(8). TheFSM 118 also include anFSBAM 119 which indicates which positions of thesource storage 108 at time t(0) include allocated blocks, with allocated blocks indicated by a 1 and free blocks indicated by a 0. - During the creation of the
base backup 302, theFEP 304 directs the exclusion of the contents of all .MP3 files, and may be employed to identify FileA.MP3 as a file to be excluded from thebase backup 302. This exclusion can be accomplished by excluding the blocks at positions 108(3), 108(7), and 108(4) of thesource storage 108 from thebase backup 302 because these blocks correspond to content of FileA.MP3. However, as illustrated inFIG. 3A , the copy of theFSM 118 that is stored as part of thebase backup 302, continues to list FileA.MP3, and theFSBAM 119 of theFSM 118 continues to indicate that the content blocks of FileA.MP3 at positions 108(3), 108(7), and 108(4) are allocated. This continued listing of FileA.MP3 in theFSM 118 of thebase backup 302 despite the content blocks of FileA.MP3 having been excluded from thebase backup 302 may ensure data integrity within a chain of any subsequent incremental backups that depend on thebase backup 302, such as theincremental backup 306 ofFIG. 3B . - During the restoration of the
base backup 302 to the restorestorage 112, theFEP 304, which directs the exclusion of all .MP3 files, may be employed to prune theFSM 120 to remove FileA.MP3, which includes updating theFSBAM 121 to indicate that positions 112(3), 112(7), and 112(4) are free, prior to exposing the file system of the restorestorage 112 to any user. In this manner, the restorestorage 112 may be restored to the state of the source storage at time t(0) but with unwanted file content of FileA.MP3 having been excluded and theFSM 120 entry for FileA.MP3 having been removed. This pruning of unwanted file content of FileA.MP3 may decrease the overall size requirements of thedestination storage 110 where thebase backup 302 is stored, decrease the bandwidth overhead of transporting thebase backup 302 over thenetwork 116, decrease the processing time associated with collapsing thebase backup 302 into a synthetic backup, and/or decrease the processing time associated with restoring thebase backup 302 on the restorestorage 112. -
FIG. 3B illustrates thesource storage 108 at time t(1), theincremental backup 306 of the state of thesource storage 108 at time t(1) but with unwanted file content having been excluded, and the restorestorage 112 after theincremental backup 306 has been restored to the restorestorage 112.FIG. 3B also illustrates theFSM 118, including theFSBAM 119, of the source storage at time t(1), which is also backed up in theincremental backup 306, achange map 308 in which all blocks changed between time t(0) and time t(1) are tracked, with changed blocks indicated by a 1 and unchanged blocks indicated by a 0, anFEP 310 that is employed during the creation and restoration or mounting of theincremental backup 306 to prune unwanted file content, and theFSM 120 of the restorestorage 112 after having been restored to the state of thesource storage 108 at time t(1) but with unwanted file content having been excluded. - The
FSM 118 at time t(1), which is stored in thesource storage 108 at position 108(1), continues to indicate that thesource storage 108 includes three files named FileA.MP3, FileB.MOV, and FileC.TXT. However, thechange map 308, which may be stored in a memory of thesource system 102 for example, indicates that the blocks at positions 108(1), 108(4), 108(5), and 108(6) changed between time t(0) and time t(1). It is also clear from theFSBAM 119 and theFSM 118 that the block at position 108(4) was modified between time t(0) and time t(1) but then later deleted from FileA.MP3 between time t(0) and time t(1). It is noted that the deletion of the block at position 108(4) may not actually involve deleting the content of the block at position 108(4), but may instead only involve altering theFSBAM 119 and theFSM 118, leaving the content of the block at position 108(4) unreferenced and thereby effectively “deleted.” - During the creation of the
incremental backup 306, initially all allocated blocks indicated as changed in thechange map 308 are targeted for inclusion in the incremental backup. Therefore, the blocks at positions 108(1), 108(5), and 108(6) are initially targeted from inclusion. It is noted that although the block at position 108(4) is also indicated as changed in thechange map 308, since position 108(4) is indicated as free in theFSBAM 119 inFIG. 3B , the block at position 108(4) is not an allocated block, and therefore is not a changed allocated block. However, theFEP 310 directs the exclusion of all .MOV files, and may be employed to identify FileB.MOV as a file to be excluded from theincremental backup 306. This exclusion can be accomplished by excluding the changed allocated block at position 108(5) of thesource storage 108 from theincremental backup 306 because this block corresponds to content of FileB.MOV. However, as illustrated inFIG. 3B , the copy of theFSM 118 that is stored in theincremental backup 306 continues to list FileB.MOV, and theFSBAM 119 of theFSM 118 continues to indicate that the content blocks of FileB.MOV at positions 108(5) and 108(2) are allocated. This continued listing of FileB.MOV in theFSM 118 of theincremental backup 306 despite the content blocks of FileB.MOV having been excluded from theincremental backup 306 may ensure data integrity within a chain of any subsequent incremental backups that depend on theincremental backup 306. - In addition to excluding unwanted files, the creation of the
incremental backup 306 may also include identifying files that were previously excluded from thebase backup 302 but that now should be included in theincremental backup 306 due to a change in the file exclusion policy, and then including allocated blocks that correspond to content of the files to be included in theincremental backup 306. For example, while .MP3 files were previously excluded according to theinitial FEP 304, thecurrent FEP 310 does not exclude .MP3 files. Therefore, while FileA.MP3 was previously excluded from thebase backup 302, FileA.MP3 may now be identified to be included and then the blocks at positions 108(3) and 108(7) that correspond to content of FileA.MP3 may be included in theincremental backup 306. - During the restoration of the
incremental backup 306 to the restorestorage 112, theFEP 310 directs the exclusion of all .MOV files and may be employed to prune theFSM 120 to remove FileB.MOV, which includes updating theFSBAM 121 to indicate that positions 112(5) and 112(2) are free, prior to exposing the file system of the restorestorage 112 to any user. In this manner, the restorestorage 112 may be restored to the state of the source storage at time t(1) but with unwanted file content of FileB.MOV having been excluded. This pruning of unwanted file content of FileB.MOV may decrease the overall size requirements of thedestination storage 110 where theincremental backup 306 is stored, decrease the bandwidth overhead of transporting theincremental backup 306 over thenetwork 116, decrease the processing time associated with collapsing theincremental backup 306 into a synthetic backup, and/or decrease the processing time associated with restoring theincremental backup 306 on the restorestorage 112. -
FIG. 3C illustrates thebase backup 302, along with its associatedFSM 118 andFSBAM 119.FIG. 3C also illustrates theincremental backup 306, along with its associatedFSM 118 andFSBAM 119.FIG. 3C also illustrates asynthetic base backup 312, along with its associatedFSM 118 andFSBAM 119, which is a collapse of thebase backup 302 and theincremental backup 306 but with unwanted file content having been excluded.FIG. 3C also illustrates theFEP 310 that is identical for both theincremental backup 306 and thesynthetic base backup 312.FIG. 3C also illustrates the restorestorage 112 after thesynthetic base backup 312 has been restored to the restorestorage 112. - During the creation of the
synthetic base backup 312, a set of allocated blocks may be identified that includes a most recent allocated block for each unique block position indicated as allocated within theFSBAM 119 of theincremental backup 306. For example, the blocks in positions 108(1), 108(3), 108(6), 108(7) will come from theincremental backup 306, the blocks in positions 108(2), 108(5), and 108(4) will come from thebase backup 302, and the block in position 108(4) will not be included since it is not indicated as being allocated in the FSBAM included with theincremental backup 306. Then, theFEP 310, which directs the exclusion of all .MOV files, may be employed to identify FileB.MOV as a file to be excluded from thesynthetic base backup 312. This exclusion can be accomplished by pruning the set of blocks to exclude the blocks at positions 108(5) and 108(2) because these blocks correspond to content of FileB.MOV. This pruned set of blocks can then be included in thesynthetic base backup 312. However, as illustrated inFIG. 3C , the copy of theFSM 118 that is stored in thesynthetic base backup 312 continues to list FileB.MOV, and theFSBAM 119 of theFSM 118 continues to indicate that the content blocks of FileB.MOV at positions 108(5) and 108(2) are allocated. This continued listing of FileB.MOV in theFSM 118 of thesynthetic base backup 312, despite the content blocks of FileB.MOV having been excluded from thesynthetic base backup 312, may ensure data integrity within a chain of any subsequent incremental backups that depend on thesynthetic base backup 312. - During the restoration of the
synthetic base backup 312 to the restorestorage 112, theFEP 310, which directs the exclusion of all .MOV files, may be employed to prune theFSM 120 to remove FileB.MOV, which includes updating theFSBAM 121 to indicate that positions 112(5) and 112(2) are free, prior to exposing the file system of the restorestorage 112 to any user. In this manner, the restorestorage 112 may be restored to the state of the source storage at time t(1) but with unwanted file content of FileB.MOV having been excluded. This pruning of unwanted file content of FileB.MOV may decrease the overall size requirements of thedestination storage 110 where thesynthetic base backup 312 is stored, decrease the bandwidth overhead of transporting thesynthetic base backup 312 over thenetwork 116, decrease the processing time associated with collapsing thesynthetic base backup 312 into another synthetic backup, and/or decrease the processing time associated with restoring thesynthetic base backup 312 on the restorestorage 112. - Although
FIGS. 3A-3C illustrate the restoration of various backups to the restorestorage 112, it is understood that the restorestorage 112 could be replaced with a virtual volume of a virtual machine, or of another virtual device such as a virtual disk, and these various backups could be mounted on the virtual volume in a similar manner. In particular, the mounting may include pruning FSM of a file system of the virtual volume to modify metadata associated with the files to be excluded prior to exposing the file system to any user. Therefore, the example methods disclosed herein apply equally to restoration of a backup to a physical volume or to mounting the backup as a virtual volume. - It is understood also that the scale of the
source storage 108 including only eight blocks, and the files on the source storage including only two or three blocks inFIGS. 3A-3C is for example purposes only, and in practice thesource storage 108 may include at least billions of blocks, and each file may also include at least billions of blocks. For example, a single digital movie file (a .MOV file) may include billions of blocks, and the exclusion of such a digital movie file from a backup will result in the backup being billions of blocks smaller in size. -
FIGS. 4 , 5A-5B, and 6A-6B are schematic flowchart diagrams ofexample methods methods backup module 114 of thesource system 102 ofFIG. 1 . For example, thebackup module 114 may be configured to execute computer instructions to perform operations of pruning unwanted file content from backups of thesource storage 108, as represented by one or more steps of themethods methods FIGS. 1-6B . - The
method 400 ofFIG. 4 may include astep 402 of identifying files to be excluded from a base image backup of a source storage. For example, thebackup module 114 may identify, atstep 402, FileA.MP3 ofFIG. 3A as a file to be excluded from thebase backup 302 of thesource storage 108. - This identification at
step 402 may be accomplished in a variety of ways. For example, thestep 402 may be accomplished by identifying all files on thesource storage 108 at time t(0) that correspond to theFEP 304 and associating theFEP 304 with thebase backup 302. Additionally or alternatively, thestep 402 may be accomplished by identifying all files on thesource storage 108 at time t(0) that do not correspond to a file inclusion policy and associating the file inclusion policy with thebase backup 302. Additionally or alternatively, thestep 402 may be accomplished by identifying a user-specified list of excluded files and associating the user-specified list of excluded files with thebase backup 302. Additionally or alternatively, thestep 402 may be accomplished by identifying all files on thesource storage 108 at the time t(0) that do not correspond to a user-specified list of included files and associating the user-specified list of included files with thebase backup 302. It is understood any of a file exclusion policy, a file inclusion policy, a user-specified list of excluded files, and a user-specified list of included files may be formulated in a variety of different ways including specifying one or more specific files, one or more file types, one or more file characteristics such as file size or file last modified date, or any other formulation that clearly identifies some subset of files to be included or excluded. Therefore, the identification of files to exclude atstep 402 is not limited to the example method of identification employed in the example embodiments ofFIGS. 3A-3C . - The
method 400 may also include astep 404 of identifying a set of all allocated blocks in the source storage at a first point in time by accessing a file system block allocation map (FSBAM) of file system metadata (FSM) of a file system of the source storage. Continuing with the above example, thebackup module 114 may, atstep 404, identify a set of all allocated blocks in thesource storage 108 at time t(0) by accessing theFSBAM 119 of theFSM 118 of a file system of thesource storage 108, as disclosed inFIG. 3A . As noted above, theFSBAM 119 indicates, as being allocated, block positions that are allocated in thesource storage 108. As disclosed inFIG. 3A , theFSBAM 119 indicates that the blocks at positions 108(1)-108(8) are allocated. - The
method 400 may also include astep 406 of pruning the set of all allocated blocks to exclude the allocated blocks that correspond to content of the files to be excluded. Continuing with the above example, thebackup module 114 may, atstep 406, prune the set of all allocated blocks, which initially included blocks at positions 108(1)-108(8), to exclude the allocated blocks at positions 108(3), 108(7), and 108(4) that correspond to the content of FileA.MP3. - The
method 400 may also include astep 408 of backing up the pruned set of allocated blocks, and not backing up the excluded allocated blocks, in the base image backup. Continuing with the above example, thebackup module 114 may, atstep 408, back up the pruned set of allocated blocks, which includes the allocated blocks at positions 108(1), 108(2), 108(5), 108(6), and 108(8), and not backing up the excluded allocated blocks, which include the allocated blocks at positions 108(3), 108(4), and 108(7), in thebase backup 302, as disclosed inFIG. 3A . - The
method 400 may also include astep 410 of restoring the base image backup to a restore storage, with the restoring including pruning FSM of a file system of the restore storage to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the restore storage. Continuing with the above example, thebackup module 114 may, atstep 410, restore thebase backup 302 to the restorestorage 112. This restoring may include pruning theFSM 120 of a file system of the restorestorage 112 to modify metadata associated with FileA.MP3 prior to exposing the file system to any user such that FileA.MP3 is no longer listed as existing within theFSM 120 of the file system of the restorestorage 112, as disclosed inFIG. 3A . - As an alternative to the
step 410, themethod 400 may instead include astep 412 of mounting the base image backup as a virtual volume, the mounting including pruning FSM of a file system of the virtual volume to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the virtual volume. Continuing with the above example, thebackup module 114 may, atstep 412, mount thebase backup 302 as a virtual volume. This mounting may include pruning the FSM of a file system of the virtual volume to modify metadata associated with FileA.MP3 prior to exposing the file system to any user such that FileA.MP3 is no longer listed as existing within the FSM of the file system of the virtual volume. - The
method 500 ofFIGS. 5A-5B may begin atstep 502 of identifying files to be excluded from an incremental image backup of a source storage. Continuing with the above example, thebackup module 114 may identify, atstep 502, FileB.MOV ofFIG. 3B as a file to be excluded from theincremental backup 306 of thesource storage 108. This identification atstep 502 may be accomplished in a variety of ways, including any of the ways discussed above in connection with thestep 502, but using theFEP 310 ofFIG. 3B instead of theFEP 304 ofFIG. 3A . - The
method 500 may also include astep 504 of identifying a set of changed allocated blocks that changed in the source storage between the first point in time and a second point in time. Continuing with the above example, thebackup module 114 may, atstep 504, identify a set of changed allocated blocks, such as the changed allocated blocks at positions 108(1), 108(5), and 108(6) as indicated in thechange map 308, that changed in thesource storage 108 between time t(0) and time t(1). It is noted that although the block at position 108(4) is also indicated as changed in thechange map 308, since position 108(4) is indicated as free in theFSBAM 119 inFIG. 3B , the block at position 108(4) is not a allocated block, and therefore does not belong in the set of changed allocated blocks. - The
method 500 may also include astep 506 of pruning the set of changed allocated blocks to exclude the allocated blocks that correspond to content of the files to be excluded. Continuing with the above example, thebackup module 114 may, atstep 506, prune the set of changed allocated blocks, which initially included blocks at positions 108(5) and 108(6), to exclude the allocated block at position 108(5) that corresponds to the content of FileB.MOV. - The
method 500 may also include astep 508 of identifying files to be included in the incremental image backup that were previously excluded from the base image backup. Continuing with the above example, thebackup module 114 may, atstep 508, identify that FileA.MP3 should be included in theincremental backup 306 because while .MP3 files were previously excluded according to theinitial FEP 304, thecurrent FEP 310 does not exclude .MP3 files. - The
method 500 may also include astep 510 of augmenting the pruned set of changed allocated blocks to include the allocated blocks that correspond to content of the files to be included. Continuing with the above example, thebackup module 114 may, atstep 510, augment the pruned set of changed allocated blocks, which after pruning only includes the block at position 108(6), to include the allocated blocks at positions 108(3) and 108(7) that correspond to content of FileA.MP3. - The
method 500 may also include astep 512 of backing up the pruned set of changed allocated blocks, and not backing up the excluded changed allocated blocks, in the incremental image backup. Continuing with the above example, thebackup module 114 may, atstep 512, back up the pruned set of changed allocated blocks, which includes the allocated blocks at positions 108(1), 108(3), 108(6), and 108(7), and not backing up the excluded changed allocated blocks, which include the allocated block at position 108(5), in theincremental backup 306, as disclosed inFIG. 3B . - The
method 500 may also include astep 514 of restoring the base image backup and the incremental image backup to a restore storage, with the restoring including pruning FSM of a file system of the restore storage to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the restore storage. Continuing with the above example, thebackup module 114 may, atstep 514, restore thebase backup 302 and theincremental backup 306 to the restorestorage 112. This restoring may include applying the backup files to the restorestorage 112 from oldest to newest, namely, first applying thebase backup 302 and then applying theincremental backup 306. This restoring may also include pruning theFSM 120 of a file system of the restorestorage 112 to modify metadata associated with FileB.MOV prior to exposing the file system to any user such that FileB.MOV is no longer listed as existing within theFSM 120 of the file system of the restorestorage 112, as disclosed inFIG. 3B . - As an alternative to the
step 514, themethod 500 may instead include astep 516 of mounting the base image backup and the incremental image backup as a virtual volume, the mounting including pruning FSM of a file system of the virtual volume to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the virtual volume. Continuing with the above example, thebackup module 114 may, atstep 516, mount thebase backup 302 and theincremental backup 306 as a virtual volume. This mounting may include pruning the FSM of a file system of the virtual volume to modify metadata associated with FileB.MOV prior to exposing the file system to any user such that FileA.MOV is no longer listed as existing within the FSM of the file system of the virtual volume. - The
method 600 ofFIGS. 6A-6B may include astep 602 of identifying multiple sequential image backups of a source storage to be included in a synthetic image backup of the source storage. Continuing with the above example, thebackup module 114 may, atstep 602, identify thebase backup 302 and theincremental backup 306 to be included in thesynthetic base backup 312 of thesource storage 108, as disclosed inFIG. 3C . - The
method 600 may include astep 604 of identifying files to be excluded from the synthetic image backup. Continuing with the above example, thebackup module 114 may identify, atstep 604, FileB.MOV as a file to be excluded from thesynthetic base backup 312. This identification atstep 604 may be accomplished in a variety of ways, including any of the ways discussed above in connection with thestep 602, but using theFEP 310 ofFIG. 3C instead of theFEP 304 ofFIG. 3A . - The
method 600 may also include astep 606 of accessing a file system block allocation map (FSBAM) of a most recent of the multiple sequential image backups. Continuing with the above example, thebackup module 114 may, atstep 606, access theFSBAM 119 of theFSM 118 that is associated with theincremental backup 306. - The
method 600 may also include astep 608 of identifying a set of allocated blocks that includes a most recent allocated block for each unique block position indicated as allocated within the FSBAM. Continuing with the above example, thebackup module 114 may, atstep 608, identify a set of allocated blocks that includes a most recent allocated block for each unique block position indicated as allocated within theFSBAM 119. For example, the most recent blocks for each of the positions that are indicated as allocated within theFSBAM 119 are blocks in positions 108(1), 108(3), 108(6), and 108(7) from theincremental backup 306 and blocks in positions 108(2), 108(5), and 108(8) from thebase backup 302. It is noted that the block in position 108(4) in not included in the set of allocated blocks because this position is not indicated as being allocated in theFSBAM 119 that is included with theincremental backup 306. - The
method 600 may also include astep 610 of pruning the set of allocated blocks to exclude the allocated blocks that correspond to content of the files to be excluded. Continuing with the above example, thebackup module 114 may, atstep 610, prune the set of allocated blocks, which initially included blocks at positions 108(1)-108(3) and 108(5)-108(8), to exclude the allocated blocks at positions 108(2) and 108(5) that correspond to the content of FileB.MOV. - The
method 600 may also include astep 612 of storing the pruned set of allocated blocks, and not storing the excluded allocated blocks, in the synthetic image backup. Continuing with the above example, thebackup module 114 may, atstep 612, store the pruned set of allocated blocks, which includes the allocated blocks at positions 108(1), 108(3), and 108(6)-108(8), and not backing up the excluded allocated blocks, which include the allocated blocks at positions 108(2) and 108(5), in thesynthetic base backup 312, as disclosed inFIG. 3C . - The
method 600 may also include astep 614 of restoring the synthetic image backup to a restore storage, with the restoring including pruning FSM of a file system of the restore storage to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the restore storage. Continuing with the above example, thebackup module 114 may, atstep 614, restore thesynthetic base backup 312 to the restorestorage 112. This restoring may include pruning theFSM 120 of a file system of the restorestorage 112 to modify metadata associated with FileB.MOV prior to exposing the file system to any user such that FileB.MOV is no longer listed as existing within theFSM 120 of the file system of the restorestorage 112, as disclosed inFIG. 3C . - As an alternative to the
step 614, themethod 600 may instead include astep 616 of mounting the synthetic image backup as a virtual volume, the mounting including pruning FSM of a file system of the virtual volume to modify metadata associated with the files to be excluded prior to exposing the file system to any user such that the files to be excluded are no longer listed as existing within the FSM of the file system of the virtual volume. Continuing with the above example, thebackup module 114 may, atstep 616, mount thesynthetic base backup 312 as a virtual volume. This mounting may include pruning the FSM of a file system of the virtual volume to modify metadata associated with FileB.MOV prior to exposing the file system to any user such that FileA.MOV is no longer listed as existing within the FSM of the file system of the virtual volume. - Although the identification of a set of blocks in the
methods step 606 precedes the identification of the set of blocks atstep 608 and the pruning atstep 610, the accessing could occur simultaneously with the identification and/or the pruning. - The embodiments described herein may include the use of a special-purpose or general-purpose computer including various computer hardware or software modules, as discussed in greater detail below.
- Embodiments described herein may be implemented using computer-readable media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable media may be any available media that may be accessed by a general-purpose or special-purpose computer. By way of example, and not limitation, such computer-readable media may include non-transitory computer-readable storage media including RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other storage medium which may be used to carry or store desired program code in the form of computer-executable instructions or data structures and which may be accessed by a general-purpose computer, special-purpose computer, or virtual computer such as a virtual machine. Combinations of the above may also be included within the scope of computer-readable media.
- Computer-executable instructions comprise, for example, instructions and data which cause a general-purpose computer, special-purpose computer, or virtual computer such as a virtual machine to perform a certain function or group of functions. Although the subject matter has been described in language specific to structural features and/or methodological steps, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or steps described above. Rather, the specific features and steps described above are disclosed as example forms of implementing the claims.
- As used herein, the term “module” may refer to software objects or routines that execute on a computing system. The different modules described herein may be implemented as objects or processes that execute on a computing system (e.g., as separate threads). While the system and methods described herein are preferably implemented in software, implementations in hardware or a combination of software and hardware are also possible and contemplated.
- All examples and conditional language recited herein are intended for pedagogical objects to aid the reader in understanding the example embodiments and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically-recited examples and conditions.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/811,200 US20160070621A1 (en) | 2014-09-05 | 2015-07-28 | Pruning unwanted file content from an image backup |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/477,984 US9152507B1 (en) | 2014-09-05 | 2014-09-05 | Pruning unwanted file content from an image backup |
US14/811,200 US20160070621A1 (en) | 2014-09-05 | 2015-07-28 | Pruning unwanted file content from an image backup |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/477,984 Continuation US9152507B1 (en) | 2014-09-05 | 2014-09-05 | Pruning unwanted file content from an image backup |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160070621A1 true US20160070621A1 (en) | 2016-03-10 |
Family
ID=54203787
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/477,984 Active US9152507B1 (en) | 2014-09-05 | 2014-09-05 | Pruning unwanted file content from an image backup |
US14/811,200 Abandoned US20160070621A1 (en) | 2014-09-05 | 2015-07-28 | Pruning unwanted file content from an image backup |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/477,984 Active US9152507B1 (en) | 2014-09-05 | 2014-09-05 | Pruning unwanted file content from an image backup |
Country Status (1)
Country | Link |
---|---|
US (2) | US9152507B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619335B1 (en) | 2016-03-11 | 2017-04-11 | Storagecraft Technology Corporation | Filtering a directory enumeration of a directory to exclude files with missing file content from an image backup |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496496B2 (en) * | 2014-10-29 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Data restoration using allocation maps |
US10768848B2 (en) * | 2015-06-29 | 2020-09-08 | EMC IP Holding Company LLC | Backup performance in storage tiers using data allocation optimization |
US10705917B2 (en) * | 2015-06-30 | 2020-07-07 | Veritas Technologies Llc | Consolidated full backup of a restored virtual machine |
US9563633B1 (en) * | 2016-03-30 | 2017-02-07 | Storagecraft Technology Corporation | Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage |
US9804926B1 (en) * | 2016-04-12 | 2017-10-31 | Storagecraft Technology Corporation | Cataloging file system-level changes to a source storage between image backups of the source storage |
US10733045B2 (en) * | 2016-07-14 | 2020-08-04 | Microsoft Technology Licensing, Llc | Online repair of metadata for structured data including file systems |
US11269733B2 (en) * | 2018-11-13 | 2022-03-08 | Exagrid Systems, Inc. | Synthetic full backups and deduplication backup storage with landing zone |
US12013760B2 (en) * | 2019-07-10 | 2024-06-18 | Centurion Holdings I, Llc | Methods and systems for recognizing unintended file system changes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028736A1 (en) * | 2001-07-24 | 2003-02-06 | Microsoft Corporation | System and method for backing up and restoring data |
US20070174316A1 (en) * | 2006-01-18 | 2007-07-26 | Grubbs Mark A | Method, system and computer program product for shrinking a file system |
US20090307286A1 (en) * | 2008-06-09 | 2009-12-10 | Aaron Wallace Laffin | Creating synthetic backup images on a remote computer system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907672A (en) * | 1995-10-04 | 1999-05-25 | Stac, Inc. | System for backing up computer disk volumes with error remapping of flawed memory addresses |
DE69802294T2 (en) * | 1997-08-29 | 2002-05-16 | Hewlett-Packard Company, Palo Alto | SYSTEMS FOR DATA BACKUP AND RECOVERY |
GB0002019D0 (en) * | 2000-01-29 | 2000-03-22 | Ibm | Data migration tool |
US7310654B2 (en) * | 2002-01-31 | 2007-12-18 | Mirapoint, Inc. | Method and system for providing image incremental and disaster recovery |
EP1435576B1 (en) * | 2003-01-03 | 2013-03-20 | Austria Card Plastikkarten und Ausweissysteme GmbH | Method and apparatus for block-oriented memory management provided in smart card controllers |
US7266655B1 (en) * | 2004-04-29 | 2007-09-04 | Veritas Operating Corporation | Synthesized backup set catalog |
US7756833B2 (en) * | 2004-09-22 | 2010-07-13 | Microsoft Corporation | Method and system for synthetic backup and restore |
US7284150B2 (en) * | 2004-09-22 | 2007-10-16 | International Business Machines Corporation | System and method for reliably storing data and providing efficient incremental backup and asynchronous mirroring by preferentially handling new data |
US7415585B1 (en) * | 2004-11-18 | 2008-08-19 | Symantec Operating Corporation | Space-optimized backup repository grooming |
US20070261059A1 (en) * | 2006-04-25 | 2007-11-08 | Orth Joseph F | Array-based memory abstraction |
US20080140963A1 (en) * | 2006-12-11 | 2008-06-12 | Thomason Ronald G | Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots |
US7620765B1 (en) * | 2006-12-15 | 2009-11-17 | Symantec Operating Corporation | Method to delete partial virtual tape volumes |
US8364644B1 (en) * | 2009-04-22 | 2013-01-29 | Network Appliance, Inc. | Exclusion of data from a persistent point-in-time image |
WO2011082138A1 (en) * | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
US8407795B2 (en) * | 2010-05-18 | 2013-03-26 | Ca, Inc. | Systems and methods to secure backup images from viruses |
US8751454B1 (en) * | 2014-01-28 | 2014-06-10 | Storagecraft Technology Corporation | Virtual defragmentation in a deduplication vault |
-
2014
- 2014-09-05 US US14/477,984 patent/US9152507B1/en active Active
-
2015
- 2015-07-28 US US14/811,200 patent/US20160070621A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030028736A1 (en) * | 2001-07-24 | 2003-02-06 | Microsoft Corporation | System and method for backing up and restoring data |
US20070174316A1 (en) * | 2006-01-18 | 2007-07-26 | Grubbs Mark A | Method, system and computer program product for shrinking a file system |
US20090307286A1 (en) * | 2008-06-09 | 2009-12-10 | Aaron Wallace Laffin | Creating synthetic backup images on a remote computer system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619335B1 (en) | 2016-03-11 | 2017-04-11 | Storagecraft Technology Corporation | Filtering a directory enumeration of a directory to exclude files with missing file content from an image backup |
Also Published As
Publication number | Publication date |
---|---|
US9152507B1 (en) | 2015-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9152507B1 (en) | Pruning unwanted file content from an image backup | |
US8782005B2 (en) | Pruning previously-allocated free blocks from a synthetic backup | |
US9361185B1 (en) | Capturing post-snapshot quiescence writes in a branching image backup chain | |
US9811422B2 (en) | Head start population of an image backup | |
US9311190B1 (en) | Capturing post-snapshot quiescence writes in a linear image backup chain | |
US9304864B1 (en) | Capturing post-snapshot quiescence writes in an image backup | |
US10474537B2 (en) | Utilizing an incremental backup in a decremental backup system | |
US10120595B2 (en) | Optimizing backup of whitelisted files | |
US8966200B1 (en) | Pruning free blocks out of a decremental backup chain | |
US9886351B2 (en) | Hybrid image backup of a source storage | |
US8874527B2 (en) | Local seeding of a restore storage for restoring a backup from a remote deduplication vault storage | |
US9804926B1 (en) | Cataloging file system-level changes to a source storage between image backups of the source storage | |
US8914325B2 (en) | Change tracking for multiphase deduplication | |
US9152504B1 (en) | Staged restore of a decremental backup chain | |
US10437687B2 (en) | Filtering a directory enumeration of a directory of an image backup | |
US10423494B2 (en) | Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage | |
US9727264B1 (en) | Tracking content blocks in a source storage for inclusion in an image backup of the source storage | |
US9208033B1 (en) | Consolidating decremental backups in a decremental backup chain | |
US20140250077A1 (en) | Deduplication vault storage seeding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: STORAGECRAFT TECHNOLOGY CORPORATION, UTAH Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BUSHMAN, NATHAN S.;REEL/FRAME:036198/0737 Effective date: 20140904 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT, VIRG Free format text: SECURITY AGREEMENT;ASSIGNOR:STORAGECRAFT TECHNOLOGY CORPORATION;REEL/FRAME:038449/0943 Effective date: 20160415 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: STORAGECRAFT TECHNOLOGY CORPORATION, MINNESOTA Free format text: TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT;ASSIGNOR:SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT;REEL/FRAME:055614/0607 Effective date: 20210316 |