IP Library Granted Patent US 7,185,031
Granted Patent B2
US 7,185,031 · App. 10/391,115 · Granted Feb 27, 2007

Creating a backup volume using a data profile of a host volume

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,185,031
App. No.
10/391,115
Granted
Feb 27, 2007
Kind
B2
Abstract

A backup volume on a backup system is created/updated by reading data stored on a host volume on a host system. A data profile for the host volume is generated based on the read data, where the data profile characterizes the data stored on the host volume. The data profile is sent to the backup system, and data that does not need to be obtained from the host system is determined on the backup system based on the data profile.

Claims (100)

1. A method of creating/updating a backup volume based on a host volume, the method comprising:

reading data stored on the host volume on a host system, wherein the data stored on the host volume includes a plurality of data blocks of a predetermined length;

generating a data profile for the host volume based on the read data,

wherein the data profile characterizes the data stored on the host volume, and

wherein generating a data profile includes:

assigning a block number to a data block; and

assigning a block state to the data block, wherein the block state indicates whether the data block is allocated, unallocated, used, or unused, wherein the block number and block state of the data block are included in the data profile;

sending the data profile to a backup system; and

determining on the backup system data that does not need to be obtained from the host system based on the data profile.

2. The method of claim 1 wherein determining comprises:

if the block state of a data block indicates that the data block is unallocated and unused, determining that the data block does not need to be obtained from the host system.

3. The method of claim 2 , wherein the block state indicates whether the data block contains data corresponding to a common data pattern, and wherein determining comprises:

if the block state of a data block indicates that the data contained in the data block corresponds to a common data pattern, determining that the data block does not need to be obtained from the host system.

4. The method of claim 1 , wherein the data stored on the host volume includes a plurality of data blocks of a predetermined length, and wherein generating a data profile includes:

assigning a block number to a data block; and

assigning a check value to the data block, wherein the check value is generated based on the data contained in the data block.

5. The method of claim 4 , wherein determining comprises:

generating a check value for a data block in the backup volume corresponding to a block number in the data profile;

comparing the generated check value with the check value corresponding to the block number in the data profile; and

if the check values are the same, determining that the data block does not need to be obtained from the host system.

6. The method of claim 4 , further comprising:

assigning a check method code to the data block, wherein the check method code corresponds to a type of check method used to generate the check value.

7. The method of claim 1 further comprising:

setting a time marker corresponding to a time when the backup volume was first created.

8. The method of claim 7 further comprising:

determining a time interval when the backup volume was unavailable.

9. The method of claim 7 further comprising:

determining on the backup system data that needs to be obtained from the host system based on the data profile;

obtaining from the host system the data determined to be needed; and

assigning the obtained data the time marker.

10. A method of creating/updating a backup volume based on a host volume, the method comprising:

reading data stored on the host volume on a host system wherein the data stored on the host volume includes a plurality of data blocks of a predetermined length;

generating a data profile for the host volume based on the read data,

wherein the data profile characterizes the data stored on the host volume and

wherein generating a data profile includes:

assigning block number to a data block; and assigning a block state to the data block indicating whether the data block is allocated, unallocated, used, or unused and wherein the block number and block state of the data block are included in the data profile; and

sending the data profile to a backup system,

wherein the data profile is used by the backup system to determine data that needs to be obtained from the host system.

11. The method of claim 10 , wherein the block state is used by the backup system to determine if the data block needs to be obtained from the host system.

12. The method of claim 11 , wherein assigning a block state comprises:

assigning a first block state if the data block is unallocated and unused;

assigning a second block state if the data block includes all zeros; and

assigning a third block state if the data block includes all ones,

wherein the first, second, and third block states indicate that the data block does not need to be obtained from the host system.

13. The method of claim 10 , wherein the data stored on the host volume includes a plurality of data blocks, and wherein generating a data profile comprises:

assigning a black number to a data block; and

assigning a check value to the data block,

wherein the block state is used by the backup system to determine if the data block needs to be obtained from the host system.

14. The method of claim 13 , wherein assigning a check value comprises:

generating a check value for the data block based on data contained in the data block on the host volume.

15. The method of claim 13 , further comprising:

assigning a check method code to the data blocks wherein the check method code corresponds to a type of check method used to generate the check value.

16. A method of creating/updating a backup volume based on a host volume, the method comprising:

receiving a data profile from a host system,

wherein the data profile was generated by the host system based on data stored on the host volume on the host system,

wherein the data profile characterizes the data stored on the host volume, and

wherein the data profile includes:

a block number for a data block stored on the host volume; and

a block state for the data block indicating whether the data block is allocated, unallocated, used, or unused; and

examining on a backup system the data profile to determine data that needs to be obtained from the host system.

17. The method of claim 16 , wherein examining the data profile comprises:

examining the block state for the data block;

determining if the block state corresponds to a first block state, which indicates that the data block in the host volume was unallocated and unused;

determining if the block state corresponds to a second block state, which indicates that the data block in the host volume contained all zeros;

determining if the block state corresponds to a third block state, which indicates that the data block in the host volume contained all ones; and

when the block state is determined to correspond to the first, second, or third state, determining that the data block does not need to be obtained from the host system.

18. The method of claim 16 , wherein the data profile comprises:

a block number for a data block stored on the host volume; and

a check value for the data block.

19. The method of claim 18 , wherein examining the data profile comprises:

generating a check value for a data block in the backup volume corresponding to the block number in the data profile;

comparing the generated check value with the check value corresponding to the block number in the data profile; and

if the check values are different determining that the data block needs to be obtained from the host system.

20. The method of claim 18 , wherein the data profile further comprises:

a check method code corresponding to a type of check method used to generate the check value.

21. A system of creating/updating a backup volume based on a host volume, the system comprising:

a host system having the host volume, wherein the host system is configured to:

read data stored on the host volume;

generate a data profile that characterizes the read data, wherein the data profile includes:

a block number for a data block stored on the host volume; and

a block state for the data indicating whether the data block is allocated, unallocated, used, or unused; and

a backup system having the backup volume, wherein the data profile is sent by the host system to the backup system, and wherein the backup system is configured to:

examine the data profile to determine data that needs to be obtained from the host system.

22. A computer-readable storage medium containing computer executable code to create/update a backup volume on a backup system by instructing a host system to operate as follows:

reading data stored on a host volume on the host system;

generating a data profile for the host volume based on the read data,

wherein the data profile characterizes the data stored on the host volume, and

wherein the data profile includes:

a block number for the data stored on the host volume; and

a block state for the data block indicating whether the data block is allocated, unallocated, used, or unused; and

sending the data profile to the backup system,

wherein the data profile is used by the backup system to determine data that needs to be obtained from the host system.

23. A computer-readable storage medium containing computer executable code to create/update a backup volume by instructing a backup system to operate as follows:

receiving a data profile from a host system,

wherein the data profile was generated by the host system based on data stored on a host volume on the host system,

wherein the data profile characterizes the data stored on the host volume, and

wherein the data profile includes:

a block number for a data block stored on the host volume; and

a block state for the data black indicating whether the data block is allocated, unallocated, used, unused; and

examining on the backup system the data profile to determine data that needs to be obtained from the host system.

Assignments (20)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 18, 2025
From: QUANTUM CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 074024/0084 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 40473/0378 Recorded Oct 8, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 073061/0454 →
TERMINATION AND RELEASE OF AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 48029/0525 Recorded Aug 19, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 072542/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2025
From: BLUE TORCH FINANCE LLC, AS AGENT FOR THE SECURED PARTIES
To: ALTER DOMUS (US) LLC, AS AGENT FOR THE SECURED PARTIES
Reel/Frame 071019/0850 →
RELEASE OF SECURITY INTEREST Recorded Aug 10, 2021
From: U.S. BANK NATIONAL ASSOCIATION
To: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
Reel/Frame 057142/0252 →
SECURITY INTEREST Recorded Aug 5, 2021
From: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
To: BLUE TORCH FINANCE LLC, AS AGENT
Reel/Frame 057107/0001 →
SECURITY INTEREST Recorded Jan 8, 2019
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 048029/0525 →
RELEASE OF SECURITY INTEREST Recorded Dec 27, 2018
From: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 047988/0642 →
SECURITY INTEREST Recorded Dec 27, 2018
From: QUANTUM CORPORATION, AS GRANTOR; QUANTUM LTO HOLDINGS, LLC, AS GRANTOR
To: U.S. BANK NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 049153/0518 →
RELEASE OF SECURITY INTEREST Recorded Oct 25, 2016
From: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 040474/0079 →
SECURITY INTEREST Recorded Oct 25, 2016
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 040473/0378 →
SECURITY INTEREST Recorded Oct 21, 2016
From: QUANTUM CORPORATION
To: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
Reel/Frame 040451/0183 →
SECURITY AGREEMENT Recorded Mar 31, 2012
From: QUANTUM CORPORATION
To: WELLS FARGO CAPITAL FINANCE, LLC, AS AGENT
Reel/Frame 027967/0914 →
RELEASE BY SECURED PARTY Recorded Mar 31, 2012
From: CREDIT SUISSE, CAYMAN ISLANDS BRANCH (FORMERLY KNOWN AS CREDIT SUISSE), AS COLLATERAL AGENT
To: QUANTUM CORPORATION; ADVANCED DIGITAL INFORMATION CORPORATION; CERTANCE HOLDINGS CORPORATION; CERTANCE (US) HOLDINGS, INC.; CERTANCE, LLC; QUANTUM INTERNATIONAL, INC.
Reel/Frame 027968/0007 →
SECURITY AGREEMENT Recorded Jul 26, 2007
From: QUANTUM CORPORATION; ADVANCED DIGITAL INFORMATION CORPORATION; CERTANCE HOLDINGS CORPORATION; CERTANCE (US) HOLDINGS, INC.; CERTANCE LLC; QUANTUM INTERNATIONAL, INC.
To: CREDIT SUISSE
Reel/Frame 019605/0159 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL 018307 FRAME 0001 Recorded Jul 18, 2007
From: KEYBANK NATIONAL ASSOCIATION
To: QUANTUM CORPORATION
Reel/Frame 019562/0858 →
TERMINATION OF SECURITY INTEREST IN PATENTS REEL 018269 FRAME 0005 AND REEL 018268 FRAME 0475 Recorded Jul 13, 2007
From: KEY BANK, NATIONAL ASSOCIATION
To: QUANTUM CORPORATION
Reel/Frame 019550/0659 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT (FIRST LIEN) Recorded Sep 26, 2006
From: QUANTUM CORPORATION
To: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 018307/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT (SECOND LIEN) Recorded Sep 18, 2006
From: QUANTUM CORPORATION
To: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 018269/0005 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2003
From: RAND, DAVID L.
To: QUANTUM CORPORATION
Reel/Frame 014369/0773 →