IP Library Granted Patent US 7,822,933
Granted Patent B1
US 7,822,933 · App. 11/649,571 · Granted Oct 26, 2010

Enabling off-host data migration using volume translation mappings, snappoint maps and linked volume technologies

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,822,933
App. No.
11/649,571
Filed
Jan 4, 2007
Granted
Oct 26, 2010
Kind
B1
Art Unit
2187
USPC
711/162
Abstract

Enabling an off-host computer to migrate data of a data volume. In one embodiment, the off-host computer copies data contents of n data blocks of a first data volume to n data blocks, respectively, of a second data volume. A host computer is capable of modifying data contents of a first plurality of data blocks of the n data blocks of the first data volume after the off-host computer begins copying data contents of the n data blocks of the first data volume to the n data blocks, respectively, of the second data volume.

Claims (38)

1. A method comprising:

a first computer copying data contents of n data blocks of a first data volume to n data blocks, respectively, of a second data volume;

a second computer modifying data contents of a first plurality of the n data blocks of the first data volume after the first computer begins copying data contents of the n data blocks of the first data volume to the n data blocks, respectively, of the second data volume;

the second computer creating a volume translation map which maps the n data blocks of the first data volume to n physical memory blocks, respectively, of a data storage system;

the first computer receiving a copy of the volume translation map from the second computer;

the first computer using the copy of the volume translation map to copy data contents of the n data blocks of the first data volume to the n data blocks, respectively, of the second data volume;

the second computer creating a first snap-point map before contents of any of the n data blocks of the first data volume are copied to the n data blocks, respectively, of the second data volume;

wherein the first snap-point map comprises n bits corresponding to the n data blocks, respectively, of the first data volume;

wherein all of the n bits of the first snap-point map are initially set to indicate that data contents of the n data blocks, respectively, have not been modified since creation of the first snap-point map;

the second computer setting a first plurality of the n bits, wherein the first plurality of the n bits correspond to the first plurality of data blocks, wherein the first plurality of n bits are set to indicate that data contents of the first plurality of data blocks, respectively, have been modified since creation of the first snap-point map;

transmitting a copy of the first snap-point map to the first computer after the second computer sets the first plurality of n bits;

after the first computer copies data contents of the n data blocks of the first data volume to the n data blocks, respectively, of the second data volume, the first computer copying data contents of the first plurality of data blocks of the first volume to respective blocks of the second volume;

the second computer creating a second snap-point map after creation of the first snap-point map, wherein the second snap-point map comprises n bits corresponding to the n data blocks, respectively, of the first data volume;

wherein the n bits of the second snap-point map are initially set to indicate that data contents of the n data blocks, respectively, have not been modified since creation of the second snap-point map.

2. The method of claim 1 further comprising:

the second computer modifying data contents of a second plurality of the n data blocks of the first volume while or after the first computer copies data contents of the first plurality of data blocks of the first volume to respective blocks of the second volume;

the second computer setting a second plurality of bits of the second snap-point map, wherein the second plurality of bits of the second snap-point map correspond to the second plurality of data blocks, respectively, of the first volume, wherein the second computer sets the second plurality of bits of the second snap-point map to indicate that data contents of the second plurality of data blocks of the first data volume have been modified since creation of the second snap-point map.

3. The method of claim 2 further comprising:

the first computer receiving a copy of the second snap-point map after the second computer sets the second plurality of bits of the second snap-point map;

after the first computer copies data contents of the first plurality of data blocks of the first data volume to respective data blocks of the second data volume, the first computer copying data contents of the second plurality of data blocks of the first volume to respective blocks of the second volume.

4. The method of claim 2 further comprising:

after the first computer copies data contents of the first plurality of data blocks of the first data volume to respective data blocks of the second data volume, the second computer copying data contents of the second plurality of data blocks of the first volume to respective data blocks of the second data volume;

the second computer receiving a request to modify data of a first data block of the first data volume while the second computer copies data contents of the second plurality of data blocks of the first volume to respective data blocks of the second data volume;

the second computer accessing the second snap-point map to determine whether a first bit corresponding to the first data block of the first data volume, has been set to indicate that contents of the first data block has been modified since creation of the second snap-point map.

5. A computer readable memory storing instructions executable by a first computer, wherein the first computer implements a method in response to executing the instructions, the method comprising:

copying data contents of n data blocks of a first data volume to n data blocks, respectively, of a second data volume, while a second computer modifies data contents of a first plurality of the n data blocks of the first data volume;

using a copy of a volume translation map received from the second computer to copy data contents of the n data blocks of the first data volume to the n data blocks, respectively, of the second data volume, wherein the translation map maps the n data blocks of the first data volume to n physical memory blocks, respectively, of a data storage system;

the first computer receiving a copy of a first snap-point map from the second computer after the first computer copies data contents of the n data blocks of the first volume to the n data blocks, respectively, of the second data volume, wherein the first snap-point map comprises n bits corresponding to the n data blocks, respectively, of the first data volume;

the first computer, after copying data contents of the n data blocks of the first data volume to the n data blocks, respectively, of the second data volume, copying data contents of a first plurality of data blocks of the first volume to respective blocks of the second volume in response to receiving the copy of the first snap-point map, wherein a first plurality of the n bits in the first snap-point map are set to indicate that the first plurality of data blocks, respectively, of the first data volume were modified after the first computer began copying the n data blocks of the first data volume to the n data blocks, respectively, of the second data volume;

the first computer storing a copy of a second snap-point map received from the second computer after the first computer receives the copy of the first snap-point map, wherein the second snap-point map comprises n bits corresponding to the n data blocks, respectively, of the first data volume.

6. The computer readable memory of claim 5 wherein a second plurality of bits of the second snap-point map copy are set to indicate that data contents of a second plurality of data blocks, respectively, of the first data volume have been modified.

7. The computer readable memory of claim 6 wherein the method further comprises the first computer, after copying data contents of the first plurality of data blocks of the first data volume to respective data blocks of the second data volume, copying data contents of the second plurality of data blocks of the first volume to respective blocks of the second volume.

8. The computer readable memory of claim 7 wherein the method further comprises

the first computer comparing a predetermined value to the number of bits in the first snap-point map set to indicate that contents of respective data blocks in the first data volume have been modified;

the first computer transmitting a request to the second computer in response to the first computer determining that the number of bits is greater than the predetermined value.

9. The computer readable memory of claim 5 wherein the method further comprises

the first computer comparing a predetermined value to the number of bits in the first snap-point map set to indicate that contents of respective data blocks in the first data volume have been modified;

the first computer transmitting a message to the second computer in response to the first computer determining that the number of bits is less than the predetermined value, wherein the message indicates that the first computer will no longer copy contents of a data block from the first data volume to the second data volume.

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 Jan 4, 2007
From: SONTAKKE, NIKHIL KESHAV; FISKE, RAHUL; GARG, ANUJ; PENDHARKAR, NIRANJAN S.
To: VERITAS OPERATING CORPORATION
Reel/Frame 018778/0426 →