IP Library Granted Patent US 7,634,627
Granted Patent B1
US 7,634,627 · App. 11/208,371 · Granted Dec 15, 2009

System and method for performing extent level backups that support single file restores

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 7,634,627
App. No.
11/208,371
Granted
Dec 15, 2009
Kind
B1
Abstract

Various methods and systems for performing extent-level backups that support single file restores are disclosed. For example, one a method involves accessing a list, which identifies several extents of a first storage device in a non-contiguous order. The non-contiguous order is non-contiguous with respect to an order in which the extents are arranged on the first storage device. The method then involves reading information from the extents of the first storage device, in the non-contiguous order identified by the list, and the writing the information to backup media. The information is written to the backup media in the non-contiguous order identified by the list. As a result, a first portion of the information, which is included in a first data object, may be less fragmented on the backup media than on the first storage device.

Claims (112)

1. A method comprising:

accessing a list, wherein

the list identifies a plurality of extents of a first storage device,

the list identifies the extents in a non-contiguous order, wherein

the non-contiguous order is non-contiguous with respect to an order in which the extents are arranged on the first storage device;

reading information from the extents of the first storage device, in the non-contiguous order identified by the list; and

writing the information to backup media, wherein

the information is written to the backup media in the non-contiguous order identified by the list.

2. The method of claim 1 , wherein

a first portion of the information is included in a first data object, and

a version of the first data object stored on the backup media is less fragmented than a version of the first data object stored on the first storage device.

3. The method of claim 1 , wherein the writing the information to the backup media comprises aggregating information distributed among several ones of the extents of the first storage device into an extent of the backup media.

4. The method of claim 1 , further comprising:

generating the list, wherein the generating the list comprises:

accessing a file system, wherein

the file system maps a file to a plurality of first extents included in the plurality of extents of the first storage device,

the first extents are non-contiguous on the first storage device; and

writing to the list information identifying each of the first extents, wherein the first extents are identified within the list in an order identified by the file system.

5. The method of claim 4 , wherein the accessing the file system comprises traversing at least one of: a directory tree, an inode table, and a master file table.

6. The method of claim 1 , further comprising:

identifying a first file;

identifying which of the plurality of extents of the first storage device store information included in the first file;

writing to a list information identifying ones of the extents that store information included in the first file; and

updating a portion of a map corresponding to a first one of the identified ones of the plurality of extents, wherein

the portion of the map identifies that the first one of the identified ones of the plurality of extents has been processed, subsequent to being updated.

7. The method of claim 6 , further comprising:

identifying non-processed ones of the plurality of extents of the first storage device in the map; and

writing information stored in the non-processed ones of the extents to the backup media in an order identified in the map.

8. The method of claim 1 , further comprising:

restoring a data object, wherein the restoring the data object comprises:

reading information included in the data object from the backup media, wherein

the information included in the data object is stored in contiguous blocks of the backup media; and

writing the information included in the data object to a target storage device.

9. The method of claim 8 , wherein

the information included in the data object is written to a plurality of non-contiguous extents of the target storage device, and

the list identifies the non-contiguous extents of the target storage device.

10. A method comprising:

receiving information indicating a selection of one of a plurality of data objects to restore;

accessing a list stored on a backup media in response to receiving the selection, wherein the list identifies a plurality of extents that each store at least a portion of the data object; and

writing the data object from the backup media to the extents, identified in the list, of a target storage device in response to receiving the selection, wherein

information in the data object is stored contiguously on the backup media, and

the extents of the target storage device are non-contiguous.

11. The method of claim 10 , further comprising:

accessing a bitmap stored on a backup media, wherein

the bitmap identifies a plurality of extents that store non-data-object information, and

writing the non-data-object information from the backup media to the identified extents of the target storage device.

12. A system comprising:

a list of extents; and

a backup module coupled to access the list of extents, wherein

the list identifies a plurality of extents of a first storage device in a non-contiguous order,

the non-contiguous order is non-contiguous with respect to an order in which the extents are arranged on the first storage device,

the backup module is configured to read information from the extents of the first storage device, in the non-contiguous order identified by the list, and

the backup module is configured to write the information to backup media in the order that the information is read from the extents of the first storage device.

13. The system of claim 12 , wherein

the backup module is configured to access a file system, wherein

the file system maps a file to a plurality of first extents included in the plurality of extents of the first storage device, and

the first extents are non-contiguous on the first storage device; and

the backup module is configured to write to the list information identifying each of the first extents, wherein

the first extents are identified within the list in an order identified by the file system.

14. The system of claim 12 , wherein

the backup module is configured to restore a data object, wherein restoring the data object comprises:

reading information included in the data object from the backup media, wherein

the information included in the data object is stored in contiguous blocks of the backup media; and

writing the information included in the data object to a target storage device, wherein

the information included in the data object is written to a plurality of non-contiguous extents of the target storage device.

15. A computer readable medium comprising program instructions executable to:

access a list, wherein

the list identifies a plurality of extents of a first storage device,

the list identifies the extents in a non-contiguous order, wherein

the non-contiguous order is non-contiguous with respect to an order in which the extents are arranged on the first storage device;

read information from the extents of the first storage device, in the non-contiguous order identified by the list; and

write the information to backup media, wherein

the information is written to the backup media in the non-contiguous order identified by the list.

16. The computer readable medium of claim 15 , wherein the program instructions are further executable to:

generate the list, wherein generating the list comprises:

accessing a file system, wherein

the file system maps a file to a plurality of first extents included in the plurality of extents of the first storage device,

the first extents are non-contiguous on the first storage device; and

writing to the list information identifying each of the first extents, wherein the first extents are identified within the list in an order identified by the file system.

17. The computer readable medium of claim 15 , wherein the program instructions are further executable to:

restore a data object, wherein restoring the data object comprises:

receiving information indicating a selection of the data object, from among a plurality of data objects;

reading information included in the data object from the backup media in response to reading the selection, wherein

the information included in the data object is stored in contiguous blocks of the backup media; and

writing the information included in the data object to a target storage device in response to receiving the selection, wherein

the information included in the data object is written to a plurality of non-contiguous extents of the target storage device.

18. A system comprising:

means for accessing a list, wherein

the list identifies a plurality of extents of a first storage device,

the list identifies the extents in a non-contiguous order, wherein

the non-contiguous order is non-contiguous with respect to an order in which the extents are arranged on the first storage device;

means for reading information from the extents of the first storage device, in the non-contiguous order identified by the list; and

means for writing the information to backup media, wherein

the information is written to the backup media in the non-contiguous order identified by the list.

19. The system of claim 18 , further comprising:

means for accessing a file system, wherein

the file system maps a file to a plurality of first extents included in the plurality of extents of the first storage device,

the first extents are non-contiguous on the first storage device; and

means for writing to the list information identifying each of the first extents, wherein the first extents are identified within the list in an order identified by the file system.

20. A system comprising:

a processor; and

a memory coupled to the processor, wherein the memory stores program instructions executable by the processor to:

access a list, wherein

the list identifies a plurality of extents of a first storage device,

the list identifies the extents in a non-contiguous order, wherein

the non-contiguous order is non-contiguous with respect to an order in which the extents are arranged on the first storage device;

read information from the extents of the first storage device, in the non-contiguous order identified by the list; and

write the information to backup media, wherein

the information is written to the backup media in the non-contiguous order identified by the list.

21. The method of claim 1 , wherein

the list identifies the extents in a non-sequential order, wherein

the non-sequential order is non-sequential with respect to a sequential order in which the extents are arranged on the first storage device.

Assignments (14)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2005
From: OHR, JAMES P.; TEATER, DAVID L.
To: VERITAS OPERATING CORPORATION
Reel/Frame 016913/0843 →