IP Library Granted Patent US 9,514,140
Granted Patent B2
US 9,514,140 · App. 14/040,459 · Granted Dec 6, 2016

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 9,514,140
App. No.
14/040,459
Granted
Dec 6, 2016
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 (65)

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

receiving, by a storage system, 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, the source file system comprising at least a source file;

storing, by the storage system, the received data blocks, wherein one or more stored data blocks associated with a point-in-time copy are 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;

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

receiving a second request to restore information associated with a second point-in-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.

2. 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.

3. The method of claim 1 , wherein the received data blocks comprise changed blocks from the source file system since a previous point-in-time copy was obtained.

4. The method of claim 1 , further comprising:

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

identifying a stored data block associated with the first virtual restored file system;

creating a copy of the stored data block and associating the stored data block with the first virtual restored file system; and

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

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

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

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

6. The method of claim 1 , wherein transforming the data of a received data block comprises compressing data stored in the received data block.

7. A computer-readable storage medium storing computer-executable code comprising instructions 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, the source file system comprising at least a source file;

a storage allocation manager module configured to:

store the received data blocks on a storage system, wherein one or more stored data blocks associated with a point-in-time copy are shared with 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;

a virtual restored file system manager configured to:

receive a first request to restore information associated with a first point-in-time copy for a first target system;

responsive to receiving the request to restore information obtained from the 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 instructions to provision comprise instructions to:

mount 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-in-time copy for a second target system; and

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.

8. The computer-readable storage medium of claim 7 , 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.

9. The computer-readable storage medium of claim 7 , wherein the received data blocks comprise changed blocks from the source file system since a previous point-in-time copy was obtained.

10. The computer-readable storage medium of claim 7 , wherein the virtual restored file system manager is further configured to:

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

identify a stored data block associated with the first virtual restored file system;

create a copy of the stored data block and associating the stored data block with the first virtual restored file system; and

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

11. The computer-readable storage medium of claim 7 , wherein the storage system is a first storage system, wherein the virtual restored file system manager is further configured to:

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

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

12. The computer-readable storage medium of claim 7 , wherein transforming the data of a received data block comprises compressing data stored in the received data block.

13. A computer-implemented system for performing backup of file systems, the system comprising:

one or more computer processors; and

one or more computer-readable storage mediums storing computer program modules configured to execute on the one or more computer processors, the computer program modules comprising at least:

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, the source file system comprising at least a source file;

a storage allocation manager module configured to:

store the received data blocks on a storage system, wherein one or more stored data blocks associated with a point-in-time copy are shared with 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;

a virtual restored file system manager configured to:

receive a first request to restore information associated with a first point-in-time copy for a first target system;

responsive to receiving the request to restore information obtained from the 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 instructions to provision comprise instructions to:

mount 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-in-time copy for a second target system; and

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.

14. The computer-implemented system of claim 13 , 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.

15. The computer-implemented system of claim 13 , wherein the received data blocks comprise changed blocks from the source file system since a previous point-in-time copy was obtained.

16. The computer-implemented system of claim 13 , wherein the virtual restored file system manager is further configured to:

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

identify a stored data block associated with the first virtual restored file system;

create a copy of the stored data block and associating the stored data block with the first virtual restored file system; and

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

17. The computer-implemented system of claim 13 , wherein the storage system is a first storage system, wherein the virtual restored file system manager is further configured to:

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

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

18. The computer-implemented system of claim 13 , wherein transforming the data of a received data block comprises compressing data stored in the received data block.

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 Mar 26, 2014
From: YUEH, JEDIDIAH
To: DELPHIX CORP
Reel/Frame 032535/0052 →