IP Library Granted Patent US 11,586,376
Granted Patent B2
US 11,586,376 · App. 17/368,087 · Granted Feb 21, 2023

N-way active-active storage configuration techniques

Inventors: David Meiri (Somerville, MA); Xiangping Chen (Sherborn, MA)
Assignee: EMC IP Holding Company LLC
G06F3/065G06F3/067G06F3/0619G06F3/0644G06F3/0659G06F12/10G06F2212/65
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 11,586,376
App. No.
17/368,087
Granted
Feb 21, 2023
Kind
B2
Abstract

A stretched volume may be configured from N volumes of N data storage systems configured as a cluster. N may be an integer greater than two. Each of the N volumes may be included in a different one of the N data storage systems. The N volumes may be exposed to a host as a logical volume having a unique identifier over a plurality of paths from the N data storage systems. The N volumes may be configured for multidirectional synchronous replication. At a first system of the cluster, a write operation may be received that writes to a target logical address of the stretched volume. Servicing the first write may include synchronously replicating the first write to every other one of the N data storage systems of the cluster. Also described are techniques for handling lock contention and avoiding deadlock in connection with processing writes to the stretched volume.

Claims (65)

1. A computer-implemented method comprising:

configuring a stretched volume from N volumes of N data storage systems configured as a cluster, wherein N is an integer value that is greater than two, wherein each of the N volumes is included in a different one of the N data storage systems, wherein the N volumes are exposed to a host as a same logical volume having a same first unique identifier over a plurality of paths from the N data storage systems, wherein the N volumes are configured for multidirectional synchronous replication whereby a write directed to the stretched volume received at any one of the N data storage systems is synchronously replicated to every other one of the N data storage systems of the cluster;

receiving, at a first of the N data storage systems, a first write that writes first data to a target logical address of the stretched volume; and

in response to receiving the first write at the first data storage system, servicing the first write, wherein said servicing the first write includes synchronously replicating the first write received at the first data storage system to every other one of the N data storage systems of the cluster, and wherein servicing the first write further includes:

acquiring, by the first data storage system, N locks providing the first data storage system with exclusive access to the target logical address of the stretched volume across the cluster, wherein each of the N locks is acquired from a corresponding one of the N data storage systems of the cluster;

applying the first write to the first target logical address of the stretched volume, wherein applying the first write includes storing the first data at physical storage locations on the N volumes of the N data storage systems configured as a cluster, wherein the physical storage locations are mapped to the target logical address of the stretched volume; and

releasing the N locks.

2. The computer-implemented method of claim 1 , wherein the first write is synchronously replicated directly from the first data storage system to a second data storage system of the N data storage systems over a first link between the first data storage system and the second data storage system.

3. The computer-implemented method of claim 2 , wherein the first write is synchronously replicated indirectly from the first data storage system to a third data storage system of the N data storage systems, and wherein the method includes:

synchronously replicating the first write from the second data storage system to the third data storage system over a second link between the second data storage system and the third data storage system.

4. The computer-implemented method of claim 1 , wherein servicing the first write further includes:

determining, by the first data storage system, that a first of the N locks is currently held by a second data storage system of the cluster in connection with servicing a second write operation directed to the stretched volume.

5. The computer-implemented method of claim 4 , wherein a hierarchy of the N data storage systems of cluster denotes a ranking of the N data storage systems, and wherein servicing the first write further includes:

determining whether the first data storage system is ranked higher than the second data storage system in said ranking; and

responsive to determining that the first data storage system ranks higher than the second data storage system in said ranking, performing first processing comprising:

waiting for the first lock to be released by the second data storage system; and

acquiring, by the first data storage system, the first lock.

6. The computer-implemented method of claim 5 , wherein servicing the first write further includes:

responsive to determining that the first data storage system does not rank higher than the second data storage system in said ranking, performing second processing comprising:

releasing any of the N locks held by the first data storage system in connection with said servicing the first write.

7. The computer-implemented method of claim 5 , further comprising:

periodically determining a new ranking of the N data storage systems of the cluster, wherein the new ranking replaces of a current ranking of the N data storage systems of the cluster and wherein the new ranking is used in place the current ranking when servicing writes directed to a plurality of stretched volumes configured across the N data storage systems of the cluster, wherein the plurality of stretched volumes includes the stretched volume.

8. The computer-implemented method of claim 5 , wherein the ranking is randomly determined.

9. The computer-implemented of claim 4 , wherein a first weight is associated with the first write being serviced by the first data storage system, and wherein a second weight is associated with the second data storage system currently holding the first lock, and wherein servicing the first write further includes:

determining whether the first weight is greater than the second weight; and

responsive to determining that the first weight is greater than the second weight, performing first processing comprising:

waiting for the first lock to be released by the second data storage system; and

acquiring, by the first data storage system, the first lock.

10. The computer-implemented method of claim 9 , wherein servicing the first write further includes:

responsive to determining that the first weight is not greater than the second weight, performing second processing comprising:

releasing any of the N locks held by the first data storage system in connection with said servicing the first write.

11. The computer-implemented method of claim 1 , wherein a logical address range of the stretched volume is partitioned into a plurality of chunks, wherein each of the plurality of chunks is owned by a single one of the N data storage systems of the cluster, and wherein the target logical address of the first write is included in a first of the plurality of chunks owned by a particular one of the N data storage systems of the cluster.

12. The computer-implemented method of claim 11 , wherein servicing the first write further includes:

determining whether the first data storage system owns the first chunk; and

responsive to determining that the first data storage system owns the first chunk, performing first processing, wherein said first processing comprises:

said acquiring the N locks;

said applying the first write to the first target logical address of the stretched volume; and

said releasing the N locks.

13. The computer-implemented method of claim 12 , wherein servicing the first write further includes:

responsive to determining that the first data storage system does not own the first chunk, performing second processing comprising:

sending a request to each of the other N data storage systems of the cluster requesting ownership of the first chunk;

receiving, from one of the N data storage systems that is a current owner of the first chunk, a response indicating that ownership of the first chunk is transferred from the one data storage system to the first data storage system; and

performing said acquiring the N locks.

14. The computer-implemented method of claim 13 , wherein said second processing further comprises:

said applying the first write to the first target logical address of the stretched volume; and

said releasing the N locks.

15. The computer-implemented method of claim 14 , wherein the first data storage system is associated with a first bitmap indicating which of the plurality of chunks are owned by the first data storage system, and wherein the one data storage system is associated with a second bitmap indicating which of the plurality of chunks are owned by the one data storage system.

16. The computer-implemented method of claim 15 , wherein prior to transferring ownership of the first chunk to the first data storage system, the second bitmap indicates that the first chunk is owned by the one data storage system and the first bitmap indicates that the first chunk is not owned by the first data storage system.

17. The computer-implemented method of claim 16 , wherein after transferring ownership of the first chunk from the one data storage system to the first data storage system, the second bitmap is updated to indicate that the first chunk is not owned by the one data storage system and the first bitmap is updated to indicate that the first chunk is owned by the first data storage system.

18. A system comprising:

one or more processors; and

one or more memories comprising code stored thereon that, when executed, performs a method comprising:

configuring a stretched volume from N volumes of N data storage systems configured as a cluster, wherein N is an integer value that is greater than two, wherein each of the N volumes is included in a different one of the N data storage systems, wherein the N volumes are exposed to a host as a same logical volume having a same first unique identifier over a plurality of paths from the N data storage systems, wherein the N volumes are configured for multidirectional synchronous replication whereby a write directed to the stretched volume received at any one of the N data storage systems is synchronously replicated to every other one of the N data storage systems of the cluster;

receiving, at a first of the N data storage systems, a first write that writes first data to a target logical address of the stretched volume; and

in response to receiving the first write at the first data storage system, servicing the first write, wherein said servicing the first write includes synchronously replicating the first write received at the first data storage system to every other one of the N data storage systems of the cluster, and wherein servicing the first write further includes:

acquiring, by the first data storage system, N locks providing the first data storage system with exclusive access to the target logical address of the stretched volume across the cluster, wherein each of the N locks is acquired from a corresponding one of the N data storage systems of the cluster;

applying the first write to the first target logical address of the stretched volume, wherein applying the first write includes storing the first data at physical storage locations on the N volumes of the N data storage systems configured as a cluster, wherein the physical storage locations are mapped to the target logical address of the stretched volume; and

releasing the N locks.

19. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method comprising:

configuring a stretched volume from N volumes of N data storage systems configured as a cluster, wherein N is an integer value that is greater than two, wherein each of the N volumes is included in a different one of the N data storage systems, wherein the N volumes are exposed to a host as a same logical volume having a same first unique identifier over a plurality of paths from the N data storage systems, wherein the N volumes are configured for multidirectional synchronous replication whereby a write directed to the stretched volume received at any one of the N data storage systems is synchronously replicated to every other one of the N data storage systems of the cluster;

receiving, at a first of the N data storage systems, a first write that writes first data to a target logical address of the stretched volume; and

in response to receiving the first write at the first data storage system, servicing the first write, wherein said servicing the first write includes synchronously replicating the first write received at the first data storage system to every other one of the N data storage systems of the cluster, and wherein servicing the first write further includes:

acquiring, by the first data storage system, N locks providing the first data storage system with exclusive access to the target logical address of the stretched volume across the cluster, wherein each of the N locks is acquired from a corresponding one of the N data storage systems of the cluster;

applying the first write to the first target logical address of the stretched volume, wherein applying the first write includes storing the first data at physical storage locations on the N volumes of the N data storage systems configured as a cluster, wherein the physical storage locations are mapped to the target logical address of the stretched volume; and

releasing the N locks.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2021
From: MEIRI, DAVID; CHEN, XIANGPING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056763/0335 →
Continuity (1)
Related Publication 20230009529A1 · Jan 12, 2023