IP Library Granted Patent US 12,093,576
Granted Patent B2
US 12,093,576 · App. 17/155,381 · Granted Sep 17, 2024

Metro cluster for virtual volumes

Inventors: Dmitry Nikolayevich Tylik (Westborough, MA); Alexey Vladimirovich Shusharin (Saint Petersburg, RU); Mark J. Halstead (Holliston, MA); Michael Specht (North Conway, NH)
Assignee: EMC IP Holding Company LLC
G06F3/0665G06F3/0604G06F3/065G06F3/067G06F3/0689
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 12,093,576
App. No.
17/155,381
Granted
Sep 17, 2024
Kind
B2
Abstract

A technique for deploying virtual volumes in a metro cluster across first and second arrays includes impersonating a third array that purports to host single-site virtual volumes. The technique further includes mapping the single-site virtual volumes purportedly hosted by the third array to respective pairs of actual virtual volumes. Each pair includes a first virtual volume in the first array and a second virtual volume in the second array and realizes a stretched virtual volume, with writes being mirrored between the virtual volumes of each pair.

Claims (53)

1. A method of deploying virtual volumes in a metro cluster involving a first array and a second array, comprising:

operating a software component that impersonates a third array for hosting single-site virtual volumes, the third array and the single-site virtual volumes of the third array existing virtually as constructions of the software component but not physically;

transforming, by the software component, a single-site virtual volume hosted by the third array to first and second virtual volumes hosted by the first and second arrays, respectively, such that the first and second virtual volumes form a stretched virtual volume corresponding to the single-site virtual volume; and

configuring mirroring between the first virtual volume and the second virtual volume to maintain data consistency therebetween,

wherein the method further comprises operating a VMAM (virtual machine administrative manager) that recognizes single-site virtual volumes but does not recognize stretched virtual volumes, and administering the single-site virtual volume that corresponds to the stretched virtual volume using the VMAM.

2. The method of claim 1 , wherein the software component is operatively coupled to the VMAM configured to administer single-site virtual volumes, wherein the VMAM is configured to administer the single-site virtual volume hosted by the third array and one or more virtual machines stored therein, and wherein the method further comprises mapping a command from the VMAM pertaining to the single-site virtual volume to corresponding instructions pertaining to the first and second virtual volumes.

3. The method of claim 2 , further comprising creating a stretched storage container that spans between the first array and the second array, the stretched storage container including a first storage container operating in the first array and a second storage container operating in the second array, the first storage container and the second storage container having a common identifier.

4. The method of claim 3 wherein, in response to creating a new virtual volume in the stretched container, the method further comprises implementing the new virtual volume as a stretched virtual volume having a first instance in the first array and a second instance in the second array.

5. The method of claim 4 , wherein creating the new virtual volume is performed in response to the software component receiving a command from the VMAM to create a new virtual volume.

6. The method of claim 4 , wherein creating the new virtual volume in the stretched container includes configuring the first instance in the first array and the second instance in the second array with a common virtual-volume identifier, such that the first instance and the second instance share the same virtual-volume identifier.

7. The method of claim 4 wherein, in response to creating another virtual volume outside the stretched container, the method further comprises implementing the other virtual volume as an un-stretched virtual volume that exists in only one of the first array or the second array.

8. The method of claim 1 , wherein the first and second virtual volumes are deployed with uniform host connectivity, such that a host has access to both virtual volumes of the stretched virtual volume in the respective arrays.

9. The method of claim 8 , further comprising:

establishing a first protocol endpoint (PE) in the first array for enabling host access to the first virtual volume;

establishing a second PE in the second array for enabling host access to the second virtual volume; and

providing a shared identifier for both the first PE and the second PE, such that the first PE and the second PE form a stretched PE that appears as a single PE to hosts.

10. The method of claim 9 , further comprising:

the first array exposing the stretched PE to the host as ALUA (Asymmetric Logical Unit Access) active optimized; and

the second array exposing the stretched PE to the host as ALUA active non-optimized.

11. The method of claim 1 , wherein the first and second virtual volumes are deployed with non-uniform host connectivity, such that a host has access to the first virtual volume in the first array but not to the second virtual volume in the second array.

12. The method of claim 11 , further comprising:

binding the first virtual volume in the first array to a first protocol endpoint (PE);

binding the second virtual volume in the second array to a second PE; and

providing the first PE and the second PE with respective identifiers that are different from each other.

13. A method of deploying virtual volumes in a metro cluster involving a first array and a second array, comprising:

forming a stretched storage container between the first array and the second array at least in part by assigning a first common identifier to both a first storage container in the first array and a second storage container in the second array;

forming a stretched virtual volume in the stretched storage container between the first array and the second array at least in part by assigning a second common identifier to both a first virtual volume in the first storage container and a second virtual volume in the second storage container;

operating a software component that impersonates a third array for hosting single-site virtual volumes, the third array and the single-site virtual volumes of the third array existing virtually as constructions of the software component but not physically; and

exposing the first virtual volume and the second virtual volume of the stretched virtual volume via respective protocol endpoints to one or more hosts,

wherein the method further comprises operating a VMAM (virtual machine administrative manager) that recognizes single-site virtual volumes but does not recognize stretched virtual volumes, and administering a single-site virtual volume that corresponds to the stretched virtual volume using the VMAM.

14. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a computerized apparatus, cause the computerized apparatus to perform a method of deploying virtual volumes in a metro cluster involving a first array and a second array, the method comprising:

operating a software component that impersonates a third array for hosting single-site virtual volumes, the third array and the single-site virtual volumes of the third array existing virtually as constructions of the software component but not physically;

transforming, by the software component, a single-site virtual volume hosted by the third array to first and second virtual volumes hosted by the first and second arrays, respectively, such that the first and second virtual volumes form a stretched virtual volume corresponding to the single-site virtual volume; and

configuring mirroring between the first virtual volume and the second virtual volume to maintain data consistency therebetween,

wherein the method further comprises operating a VMAM (virtual machine administrative manager) that recognizes single-site virtual volumes but does not recognize stretched virtual volumes, and administering the single-site virtual volume that corresponds to the stretched virtual volume using the VMAM.

15. The computer program product of claim 14 , wherein the first and second virtual volumes are deployed with uniform host connectivity, such that a host has access to both virtual volumes of the stretched virtual volume in the respective arrays.

16. The computer program product of claim 15 , wherein the method further comprises:

establishing a first protocol endpoint (PE) in the first array for enabling host access to the first virtual volume;

establishing a second PE in the second array for enabling host access to the second virtual volume; and

providing a shared identifier for both the first PE and the second PE, such that the first PE and the second PE for a stretched PE that appears as a single PE to hosts.

17. The computer program product of claim 16 , wherein the method further comprises:

the first array exposing the stretched PE to the host as ALUA (Asymmetric Logical Unit Access) active optimized ; and

the second array exposing the stretched PE to the host as ALUA active non-optimized.

18. The computer program product of claim 14 , wherein the first and second virtual volumes are deployed with non-uniform host connectivity, such that a host has access to the first virtual volume in the first array but not to the second virtual volume in the second array.

19. The computer program product of claim 18 , wherein the method further comprises:

binding the first virtual volume in the first array to a first protocol endpoint (PE);

binding the second virtual volume in the second array to a second PE; and

providing the first PE and the second PE with respective identifiers that are different from each other.

20. The computer program product of claim 14 , wherein the method further comprises creating a stretched storage container that spans between the first array and the second array, the stretched storage container including a first storage container operating in the first array and a second storage container operating in the second array, the first storage container and the second storage container having a common identifier.

21. The method of claim 1 , wherein the stretched virtual volume provides a virtual machine disk of a virtual machine, the virtual machine disk being individually manageable by a data storage system.

22. The method of claim 1 , wherein operating the software component that impersonates the third array includes:

running a first instance of the software component on a storage processor of the first array; and

running a second instance of the software component on a storage processor of the second array.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2021
From: TYLIK, DMITRY NIKOLAYEVICH; SHUSHARIN, ALEXEY VLADIMIROVICH; HALSTEAD, MARK J.; SPECHT, MICHAEL
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055477/0590 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →