IP Library Granted Patent US 7,343,467
Granted Patent B2
US 7,343,467 · App. 11/017,554 · Granted Mar 11, 2008

Method to perform parallel data migration in a clustered storage environment

Assignee: EMC Corporation
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,343,467
App. No.
11/017,554
Filed
Dec 20, 2004
Granted
Mar 11, 2008
Kind
B2
Art Unit
2185
USPC
711/203
Abstract

A clustered storage array consists of several nodes coupled to one or more storage systems. The nodes provide a LUN-device for access by a client, the LUN-device mapping to a source logical unit corresponding to areas of storage on the one or more storage systems. A target logical unit corresponds to different areas of storage on the one or more storage systems. The source logical unit is migrated in parallel by the several nodes to the target logical unit.

Claims (77)

1. A method of migrating data from a source logical unit to a target logical unit, the source and target logical units corresponding to different areas of storage on one or more storage systems, the method comprising the steps of:

providing a plurality of nodes operational with the one or more storage systems; the plurality of nodes comprises a clustered system, the source logical unit and target logical unit are logical entities utilizing the clustered system to access the corresponding areas of storage;

providing by the nodes a LUN-device for access by a client, the LUN-device mapping to the source logical unit;

grouping data that are to be copied from the source logical unit to the target logical unit into chunks of data;

providing a bit-mask having one bit for each chunk of data;

dividing the bit-mask into splices of multiple bits; and

performing by each of the two or more of the plurality of nodes the following steps repeatedly until the source logical unit has been fully migrated to the target logical unit:

attempting to lock one of the splices;

if the splice is successfully locked, then:

copying the chunks of data corresponding to each bit in the splice to the target logical unit, wherein the copying of the chunks operates over the clustered system;

setting the bits in the bit-mask corresponding to the copied chunks; and

unlocking the splice when all the chunks corresponding to the bits in the splice have been copied;

migrating, in parallel by the two or more of the plurality of nodes, the data of the source logical unit to the target logical unit;

canceling the migrating at any time by coordinating the cancel request amongst all nodes in the cluster system, preserving the source logical unit and its corresponding LUN-device, and deleting the target logical unit and bit-mask;

storing multiple copies of the bit-mask in the clustered system, each copy of the bit-mask having an associated checksum; and

if any node of the plurality of nodes fails, checking by a surviving node the checksums to identify a valid copy of the bit-mask.

2. The method of claim 1 further comprising the step of: performing synchronous, sequential updates to those copies to ensure only one copy is being updated at any given time.

3. The method of claim 2 wherein the step of migrating completes successfully regardless of whether any of the plurality of nodes fails.

4. The method of claim 3 further comprising the steps of:

performing an I/O access by a node from a client to the LUN-device during the step of migrating, the step of performing comprising the steps of:

if the I/O access is a read access, returning data from the source logical unit to the client;

if the I/O access is a write access including data to be written:

ascertaining the chunk to which data is to be written:

locking the splice containing the chunk;

if all the bits in the splice are set, then writing the data to be written to the source logical unit and the target logical unit;

if less than all of the bits in the splice are set, then reading the chunks of data in the splice from the source logical unit, combining the data to be written with the chunks of data read, and writing the combined data to the target logical unit and source logical unit;

setting the bits in the bit mask corresponding to the copied chunks;

unlocking the splice.

5. Apparatus for migrating data from a source logical unit to a target logical unit, the source and target logical units corresponding to different areas of storage on one or more storage systems, the apparatus comprising:

a plurality of nodes operational with the one or more storage systems, the nodes comprising a clustered system, the source logical unit and target logical unit being logical entities that utilize the clustered system to access the corresponding areas of storage, the nodes providing a LUN-device for access by a client, the LUN-device mapping to the source logical unit, each node including logic for grouping data that are to be copied from the source logical unit to the target logical unit into chunks of data;

a bit-mask having one bit for each chunk;

logic for dividing the bit-mask into splices of multiple bits;

logic for attempting to lock one of the splices; and

logic for performing the following if the splice is successfully locked:

copying the chunks of data corresponding to each bit in the splice to the target logical unit, wherein the logic for copying operates over the clustered system;

setting the bits in the bit-mask corresponding to the copied chunks; and

unlocking the splice when all the chunks corresponding to the bits in the splice have been copied;

a mechanism on each node for causing two or more of the plurality of nodes to migrate in parallel the data of the source logical unit to the target logical unit, the mechanism including logic for canceling the migrating at any time, the logic for canceling including logic for coordinating the cancel request amongst all nodes in the cluster system, logic for preserving the source logical unit and its corresponding LUN-device, and logic for deleting the target logical unit and bit-mask;

logic for providing multiple copies of the bit-mask in the clustered system, each copy having an associated checksum; and

logic operational if any node of the plurality of nodes fails for checking by a surviving node the checksums to identify a valid copy of the bit-mask.

6. The apparatus of claim 5 further comprising logic for performing synchronous, sequential updates to those copies to ensure only one copy is being updated at any given time.

7. The apparatus of claim 6 wherein the source logical unit is successfully migrated to the target logical unit regardless of whether any of the plurality of nodes fails.

8. The apparatus of claim 7 further comprising:

logic performing an I/O access by a node from a client to the LUN-device during the step of migrating, the logic for performing comprising:

logic for returning data from the source logical unit to the client if the I/O access is a read access;

logic for performing the following if the I/O access is a write access including data to be written:

ascertaining the chunk to which data is to be written;

locking the splice containing the chunk;

if all the bits in the splice are set, then writing the data to be written to the source logical unit and the target logical unit;

if less than all of the bits in the splice are set, then reading the chunks of data in the splice from the source logical unit, combining the data to be written with the chunks of data read, and writing the combined data to the target logical unit and source logical unit;

setting the bits in the bit mask corresponding to the copied chunks;

unlocking the splice.

9. A program product comprising a computer readable medium having embodied therein a computer program for storing data, the computer program for operation on each of a plurality of nodes to migrate data from a source logical unit to a target logical unit, the source and target logical units corresponding to different areas of storage on one or more storage systems, the nodes comprising a clustered system, the source logical unit and target logical unit are logical entities utilizing the clustered system to access the corresponding areas of storage, the computer program comprising:

logic for providing a LUN-device for access by a client, the LUN-device mapping to the source logical unit;

logic for grouping data to be copied from the source logical unit to the target logical unit into chunks;

logic for providing a bit-mask having one bit for each chunk;

logic for dividing the bit-mask into splices of multiple bits; and

logic for attempting to lock one of the splices;

logic for performing includes the following if the splice is successfully locked:

logic for copying the chunks of data corresponding to each bit in the splice to the target logical unit, wherein the logic for copying the chunks operates over the clustered system;

logic for setting the bits in the bit-mask corresponding to the copied chunks; and

logic for unlocking the splice when all the chunks corresponding to the bits in the splice have been copied;

migration logic for migrating the data of the source logical unit to the target logical unit, the migration logic including logic for canceling the migrating at any time, the logic for canceling comprising logic for coordinating the cancel request amongst all nodes in the cluster, logic for preserving the source logical unit and its corresponding LUN-device, and logic for deleting the target logical unit and bit-mask, the migration logic operating in parallel with the migration logic on the other nodes such that each node participates in parallel in the migration of the data of the source logical unit;

logic for providing multiple copies of the bit-mask in the clustered system, each copy having associated with it a checksum; and

logic operational if any node of the plurality of nodes fails for checking by a surviving node the checksums to identify a valid copy of the bit mask.

10. The program product of claim 9 further comprising the logic for performing synchronous, sequential updates to those copies to ensure only one copy is being updated at any given time.

11. The program product of claim 10 wherein the source logical unit is successfully migrated to the target logical unit if any of the plurality of nodes fails.

12. The program product of claim 11 further comprising:

logic for performing an I/O access by a node from a client to the LUN-device during the migrating, the logic for performing comprising:

logic for returning data from the source logical unit to the client if the I/O access is a read access;

logic for performing the following if the I/O access is a write access including data to be written:

ascertaining the chunk to which data is to be written;

locking the splice containing the chunk;

if all the bits in the splice are set, then writing the data to be written to the source logical unit and the target logical unit;

if less than all of the bits in the splice are set, then reading the chunks of data in the splice from the source logical unit, combining the data to be written with the chunks of data read, and writing the combined data to the target logical unit and source logical unit;

setting the bits in the bit mask corresponding to the copied chunks;

unlocking the splice.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2004
From: BROWN, MICHAEL F.; MADNANI, KIRAN P.; DESROCHES, DAVID W.
To: EMC CORPORATION
Reel/Frame 016114/0722 →
Continuity (1)
Related Publication 20060136691A1 · Jun 22, 2006