CA2804372C

De-duplication based backup of file systems

Abstract

File system backups are performed by copying information describing changes in the file system since a previous point in time. To restore data, a virtual restored file system (VRFS) structure is created corresponding to a snapshot of data copied from the file system that is stored in the backup file system. A client can read the data stored in the backup file system pointed at by the VRFS structure as well as write to the backup file system. Multiple clients can share blocks of data stored on the backup file system via the same VRFS structure or via multiple VRFS structures. If a client writes to a data block pointed at by a VRFS, a copy of the data block is made to which the client makes changes so that the data in the original data blocks is saved for other clients.

CA2804372C, drawing sheet 1
Sheet 1 of 15

Term

4.8 yearsleft in the term

Expires 15 July 2031.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

34 claims: 7 independent, 27 dependent

  1. 1
    CA 2804372 2017-04-18 EMBODIMENTS IN WHICH AN EXCLUSIVE PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:1. A method for performing backup of file systems, the method comprising;receiving a set of data blocks for a plurality of point-in-time copies of a source file 5 system, each point-in-time copy of the source file-system obtained by extracting one or more data blocks from the source file-system that changed since a previous point-in-time copy was extracted, the source file system comprising at least a source file;storing the set of data blocks on a storage system, the stored set of data blocks 10 comprising one or more versions of a data block, each version corresponding to a point-in-time copy;receiving a request to restore information obtained from the source file system for a target system;and responsive to receiving the request to restore, creating a virtual restored file system 15 comprising a set of files including a restored file corresponding to the source file, the creating comprising: linking the restored file to a plurality of the data blocks stored on the storage system, the plurality of data blocks comprising at least a first data block associated with a first point in time copy and a second data block associated 20 with a second point in time copy, and mounting the set of files to the target system to allow the target system to access the set of files, the mounted set of files comprising the virtual restored file system. CA 2804372 2017-04-18
  2. 11
    A method for performing backups of file systems, the method comprising:10 receiving requests to perform backups of a plurality of source file systems, each request identifying a source file system, the source file system comprising at least a source file;for each request received, performing backup of an associated source file system, comprising: 15 receiving a set of data blocks for a plurality of point-in-time copies of the associated source file system each point-in-time copy of the associated source file-system obtained by extracting one or more data blocks from the associated source file-system that changed since a previous point-in-time copy was extracted, and 20 storing on a storage system, the set of data blocks, the stored set of data blocks comprising one or more versions of a data block, each version corresponding to a point-in-time copy;and receiving a request to restore information obtained from a particular source file system, the request to restore identifying a target system;and CA 2804372 2017-04-18 responsive to receiving the request to restore the particular source file system, creating a virtual restored file system comprising a set of files including a restored file corresponding to the source file, the creating comprising: linking the restored file to a plurality of stored data blocks stored on the 5 storage system, the plurality of data blocks comprising at least a first data block associated with a first point in time copy and a second data block associated with a second point in time copy, and mounting the set of files to the target system to allow the target system to access the set of files, the mounted set of files comprising the virtual restored 10 file system.
  3. 17
    The method of claim il, wherein the request to restore is associated with a restore time point, wherein the plurality of stored data blocks comprise data blocks received as part of point-in-time copies extracted before the restore time.
  4. 18
    A computer-readable storage medium storing computer-executable instructions that when executed by at least one processor cause the at least one processor to backup a file system by:receiving a set of data blocks for a plurality of point-in-time copies of a source file system, each point-in-time copy of the source file-system obtained by extracting one or more data blocks from the source file-system that changed since a previous point-in-time copy was extracted, the source file system comprising at least a source file;storing on a storage system, the set of data blocks;receiving a request to restore information from the source file system for a target system;and responsive to receiving the request to restore, creating a virtual restored file system comprising a set of files including a restored file corresponding to the source file, the creating comprising: linking the restored file to a plurality of the data blocks stored on the storage system, the plurality of data blocks comprising at least a first data block associated with a first point in time copy and a second data block associated with a second point in time copy, and CA 2804372 2017-04-18 mounting the set of files to the target system to allow the target system to access the set of files, the mounted set of files comprising the virtual restored file system.
  5. 22
    Λ method for performing backup of file systems, the method comprising:receiving, by a storage system, a set of data blocks for a plurality of point-in-time copies of a source file system, each point-in-time copy ofthe source file-system obtained by extracting one or more data blocks from the source file-system, the source file system comprising at least a source file;storing, by the storage system, the received set of data blocks, wherein one or more stored data blocks associated with a point-in-time copy arc shared with other point-in-time copies, wherein the storage system transforms data of a received data block to a format distinct from a format of the received data block and stores the transformed data;receiving a first request to restore information associated with a first point-in-time copy for a first target system;CA 2804372 2017-04-18 responsive to receiving the request to restore information obtained from the source file system, provisioning a first virtual restored file system comprising a set of files including a restored file corresponding to the source file, the restored file comprising a plurality of stored data blocks, the plurality of stored data blocks 5 comprising stored data blocks associated with two or more distinct point-in-time copies, the provisioning comprising: mounting the set of files to the first target system to provide read and write access to the set of files, the mounted set of files comprising the first virtual restored file system;10 receiving a second request to restore information associated with a second pointin-time copy for a second target system;and responsive to receiving the second request, provisioning a second virtual restored file system, wherein the second virtual restored file system shares one or more data blocks with the first virtual restored file system. 15
  6. 28
    A computer-readable storage medium storing computer-executable code comprising 10 instructions that when executed by at least one processor cause the at least one processor to perform a backup of file systems, by causing the at least one processor to:implement a block copy manager configured to: receive a set of data blocks for a plurality of point-in-time copies of a source file system, each point-in-time copy of the source file-system obtained by 15 extracting one or more data blocks from the source file-system, the source file system comprising at least a source file;implement a storage allocation manager module configured to: store the received set of data blocks on a storage system, wherein one or more stored data blocks associated with a point-in-time copy are shared with 20 other point-in-time copies, wherein instructions to store comprise instructions to: transform data of a received data block to a format distinct from a format of the received data block, and store the transformed data;CA 2804372 2017-04-18 implement a virtual restored file system manager configured to: receive a first request to restore information associated with a first point-intime copy for a first target system;responsive to receiving the request to restore information obtained from the 5 source file system, provision a first virtual restored file system comprising a set of files including a restored file corresponding to the source file, the restored file comprising a plurality of stored data blocks, the plurality of stored data blocks comprising stored data blocks associated with two or more distinct point-in-time copies, wherein provisioning comprises: 10 mounting the set of files to the first target system to provide read and write access to the set of files, the mounted set of files comprising the first virtual restored file system;receive a second request to restore information associated with a second point-intime copy for a second target system;and 15 responsive to receiving the second request, provision a second virtual restored file system, wherein the second virtual restored file system shares one or more data blocks with the first virtual restored file system.
  7. 34
    A computer-implemented system for performing backup of file systems, the system comprising:20 one or more computer processors in communication with the computer-readable storage medium of any one of claims 28 - 33;and configured to execute the instructions stored on said computer-readable storage medium on the one or more computer processors, to back up a file system.