IP Library Granted Patent US 8,548,944
Granted Patent B2
US 8,548,944 · App. 13/183,131 · Granted Oct 1, 2013

De-duplication based backup of file systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,548,944
App. No.
13/183,131
Granted
Oct 1, 2013
Kind
B2
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.

Claims (80)

1. A method for performing backup of file systems, the method comprising:

receiving 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 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 data blocks on a storage system, the stored data blocks 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 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

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.

2. The method of claim 1 , further comprising:

sending a request to receive the data blocks for a point-in-time copy of the source file system.

3. The method of claim 1 , wherein the access to the set of files allows read access and write access to information stored in the plurality of stored data blocks.

4. The method of claim 1 , wherein the plurality of point-in-time copies of the source file system are received based on a predetermined schedule associated with the source file system.

5. The method of claim 1 , further comprising:

receiving a request to read data from the virtual restored file system;

identifying a stored data block from the plurality of stored data blocks; and

sending information from the stored data block.

6. The method of claim 1 , further comprising:

receiving a request to write data to the restored file of the virtual restored file system;

identifying a stored data block from the plurality of data blocks linked to the restored file;

creating a copy of the stored data block and linking the restored file to the copy of the stored data block; and

updating the copy of the stored data block based on the request to write.

7. The method of claim 1 , further comprising:

receiving a request to merge updates to the virtual restored file system hack with the source file system; and

sending stored data blocks of the plurality of stored data blocks that have been updated to the source file system.

8. The method of claim 1 , wherein the request to restore information is a first request to restore information, the target system is a first target system, the virtual restored file system is a first virtual restored file system, the set of files is a first set of files, the restored file is a first restored file, and the plurality of stored data blocks is a first plurality of stored data blocks, the method further comprising:

receiving a second request to restore information obtained from the source file system, the second request identifying a second target system; and

responsive to receiving the second request to restore, creating a second virtual restored file system comprising a set of files linked to data blocks of the storage system including a second restored file corresponding to the source file, the creating comprising:

linking the second restored file to a second plurality of stored data blocks stored on the storage system, the second plurality of data blocks distinct from the first plurality of data blocks hut sharing at least one data block with the first plurality of data blocks, and

mounting the second set of files to the second target system to allow the second target system to access the second set of files, the mounted second set of files comprising the second virtual restored file system.

9. The method of claim 1 , wherein the storage system is a first storage system, the method comprising:

receiving a request to export the virtual restored file system to a second storage system; and

sending the plurality of stored data blocks to the second storage system.

10. The method of claim 1 , 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 of the source file system extracted before the restore time.

11. A method for performing backups of file systems, the method comprising:

receiving requests to perform backups of 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:

receiving 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 data blocks from the associated source file-system that changed since a previous point-in-time copy was extracted, and

storing on a storage system, the data blocks, the stored 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

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 storage system, the plurality of data blocks comprising at least 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 file system.

12. The method of claim 11 , further comprising:

sending a request to receive the data blocks for a point-in-time copy of the particular source file system.

13. The method of claim 11 , further comprising:

receiving a request to write data to the virtual restored file system;

identifying a stored data block from the plurality of stored data blocks; and

updating the stored data block based on the request to write.

14. The method of claim 11 , wherein the request to restore information is a first request to restore information, the target system is a first target system, the set of files is a first set of files, the virtual restored file system is a first virtual restored file system, and the plurality of stored data blocks is a first plurality of stored data blocks, the method further comprising:

receiving a second request to restore information obtained from the particular source file system, the request identifying a second target system; and

responsive to receiving the second request to restore, creating a second virtual restored file system comprising a set of files linked to data blocks of the storage system including a second restored file corresponding to the source file, the creating comprising:

linking the second restored file to a second plurality of stored data blocks stored on the storage system, the second plurality of data blocks distinct from the first plurality of data blocks but sharing at least one data block with the first plurality of data blocks, and

mounting the second set of files to the second target system to allow the second target system to access the second set of files, the mounted second set of files comprising the second virtual restored file system.

15. The method of claim 14 , wherein one or more of the stored data blocks associated with the first set of files are also associated with the second set of files.

16. The method of claim 14 , further comprising:

receiving a request to write data to the restored file of the first virtual restored file system;

identifying a stored data block from the first plurality of stored data blocks linked to the restored file;

responsive to determining that the stored data block is associated with the second virtual restored file system, creating a copy of the stored data block and linking the restored file to the copy of the stored data block; and

updating the copy of the stored data block based on the request to write.

17. The method of claim 11 , 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.

18. A computer program product having a computer-readable storage medium storing computer-executable code for performing backup of file systems, the code comprising:

a block copy manager configured to:

receive 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 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;

a storage allocation manager module configured to:

store on a storage system, the data, blocks;

a virtual restored file system manager configured to:

receive a request to restore information from the source file system for a target system; and

responsive to receiving the request to restore, create a virtual restored file system comprising a set of files including a restored file corresponding to the source file, the create 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 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.

19. The computer program product of claim 18 , wherein the virtual restored file system manager is further configured to:

receive a request to write data to the restored file of the virtual restored file system;

identify a stored data block from the plurality of data blocks linked to the restored file;

create a copy of the stored data block and link the restored file to the copy of the stored data block; and

update the copy of the stored data block based on the request to write.

20. The computer program product of claim 18 , wherein the request to restore information is a first request to restore information, the target system is a first target system, the virtual restored file system is a first virtual restored file system, the set of files is a first set of files, the restored file is a first restored file, and the plurality of stored data blocks is a first plurality of stored data blocks, wherein the virtual restored file system manager is further configured to:

receive a second request to restore information obtained from the source file system, the second request identifying a second target system; and

responsive to receiving the second request to restore, create a second virtual restored file system comprising a set of files linked to data blocks of the storage system including a second restored file corresponding to the source file, the creating comprising:

linking the second restored file to a second plurality of stored data blocks stored on the storage system, the second plurality of data blocks distinct from the first plurality of data blocks but sharing at least one data block with the first plurality of data blocks, and

mounting the second set of files to the second target system to allow the second target system to access the second set of files, the mounted second set of files comprising the second virtual restored file system.

21. The computer program product of claim 18 , 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.

Assignments (16)
FIRST LIEN PATENT SECURITY AGREEMENT Recorded May 24, 2024
From: DELPHIX CORP.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 067528/0384 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded May 17, 2024
From: DELPHIX CORP.
To: CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 067453/0344 →
RELEASE OF SECURITY INTEREST Recorded Mar 22, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: DELPHIX CORP.
Reel/Frame 066869/0540 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2022
From: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: DELPHIX CORP.
Reel/Frame 060737/0201 →
SECURITY INTEREST Recorded Aug 5, 2022
From: DELPHIX CORP.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 060734/0591 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2022
From: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 060738/0578 →
SECURITY INTEREST Recorded Jan 10, 2020
From: DELPHIX CORP.
To: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 051482/0043 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 9, 2020
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: DELPHIX CORP.
Reel/Frame 051532/0264 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE TO REMOVE APPLICATION NUMBERS 10025528 AND 10083196, AND REPLACE WITH PATENT NUMBERS 10025528 AND 10083196 PREVIOUSLY RECORDED ON REEL 047169 FRAME 0863. ASSIGNOR(S) HEREBY CONFIRMS THE AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT. Recorded Jan 6, 2020
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 051485/0422 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE TO REMOVE APPLICATION NUMBERS 10025528 AND 10083196, AND REPLACE WITH PATENT NUMBERS 10025528 AND 10083196 PREVIOUSLY RECORDED ON REEL 047016 FRAME 0544. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jan 6, 2020
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 051485/0438 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 9, 2019
From: DELPHIX CORP.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 050673/0234 →
SECURITY INTEREST Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047016/0544 →
AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 1, 2018
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 047169/0863 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Oct 1, 2018
From: SILICON VALLEY BANK
To: DELPHIX CORP.
Reel/Frame 047169/0901 →
SECURITY INTEREST Recorded Feb 28, 2017
From: DELPHIX CORP.
To: SILICON VALLEY BANK
Reel/Frame 041398/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2011
From: YUEH, JEDIDIAH
To: DELPHIX CORP.
Reel/Frame 026990/0429 →