IP Library Granted Patent US 11,093,161
Granted Patent B1
US 11,093,161 · App. 16/889,299 · Granted Aug 17, 2021

Storage system with module affinity link selection for synchronous replication of logical storage volumes

Inventors: Xiangping Chen (Sherborn, MA); David Meiri (Somerville, MA)
Assignee: EMC IP Holding Company LLC
G06F3/065G06F3/064G06F3/0607G06F3/0619G06F3/0656G06F3/0683
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,093,161
App. No.
16/889,299
Granted
Aug 17, 2021
Kind
B1
Abstract

An apparatus includes a processing device comprising a processor and a memory. The processing device is configured, in conjunction with synchronous replication of a logical storage volume between first and second storage systems, to receive a synchronous write request comprising at least a portion of a data page to be written to the storage volume, to determine a source processing module associated with the data page in the first storage system, to determine at least one of a process identifier and a processor identifier of the source processing module in the first storage system, and to select a particular one of multiple links between the first and second storage systems for use with the synchronous write request based at least in part on at least one of the process identifier and the processor identifier of the source processing module. The selected link is illustratively associated with a transmit processing module.

Claims (39)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

said at least one processing device being configured, in conjunction with synchronous replication of at least one logical storage volume between first and second storage systems:

to receive a synchronous write request comprising at least a portion of a data page to be written to the logical storage volume;

to determine a source processing module associated with the data page in the first storage system;

to determine at least one of a process identifier and a processor identifier of the source processing module in the first storage system; and

to select a particular one of a plurality of links between the first and second storage systems for use with the synchronous write request based at least in part on said at least one of the process identifier and the processor identifier of the source processing module;

wherein the plurality of links are associated with respective different transmit processing modules in the first storage system, the transmit processing modules being configured to communicate with receive processing modules in the second storage system.

2. The apparatus of claim 1 wherein said at least one processing device comprises at least one of a plurality of storage nodes of the first storage system, with each such storage node comprising a set of processing modules configured to communicate with corresponding sets of processing modules on other ones of the storage nodes, the sets of processing modules of the storage nodes of the distributed storage system collectively comprising at least a portion of a distributed storage controller of the first storage system.

3. The apparatus of claim 2 wherein one or more of the sets of processing modules each comprises at least one routing module, at least one control module and at least one data module, the routing module being configured to handle data access and transfer operations, the control module being configured to handle logical address mapping operations, and the data module being configured to handle data persistency operations.

4. The apparatus of claim 1 wherein determining a source processing module associated with the data page in the first storage system comprises determining the source processing module based at least in part on a logical address of the data page.

5. The apparatus of claim 1 wherein determining a source processing module associated with the data page in the first storage system comprises determining a source control module associated with the data page in the first storage system.

6. The apparatus of claim 1 wherein selecting a particular one of a plurality of links between the first and second storage systems for use with the synchronous write request based at least in part on said at least one of the process identifier and the processor identifier of the source processing module comprises selecting a particular link associated with a transmit processing module that is implemented by at least one of a same process and a same processor that implements the source processing module in the first storage system.

7. The apparatus of claim 1 wherein the particular selected link is associated with a corresponding one of the transmit processing modules that is implemented in the first storage system by at least one of a same process and a same processor that implements the source processing module in the first storage system, and wherein data of the data page is transferred between the source processing module and the transmit processing module utilizing a local memory copy operation.

8. The apparatus of claim 7 wherein the local memory copy operation comprises copying data of the data page from a write cache of the source processing module to a transfer buffer of the transmit processing module.

9. The apparatus of claim 1 wherein the particular selected link is associated with a corresponding one of the receive processing modules that is implemented in the second storage system by at least one of a same process and a same processor that implements a target processing module in the second storage system, and wherein data of the data page is transferred between the receive processing module and the target processing module utilizing a local memory copy operation.

10. The apparatus of claim 9 wherein the local memory copy operation comprises copying data of the data page from a transfer buffer of the receive processing module to a write cache of the target processing module.

11. The apparatus of claim 9 wherein the target processing module comprises a control module of the second storage system, the control module being implemented in the second storage system by at least one of the same process and the same processor that implements the corresponding receive processing module in the second storage system.

12. The apparatus of claim 9 wherein the target processing module comprises a data module of the second storage system, the data module being implemented in the second storage system by at least one of the same process and the same processor that implements the corresponding receive processing module in the second storage system.

13. The apparatus of claim 1 wherein the source processing module is configured to access a processing module affinity data structure that stores in association with each of the transmit processing modules at least one of a process identifier and a processor identifier of the corresponding transmit processing module in the first storage system, and wherein selecting a particular one of a plurality of links between the first and second storage systems for use with the synchronous write request based at least in part on said at least one of the process identifier and the processor identifier of the source processing module comprises accessing the processing module affinity data structure using said at least one of the process identifier and the processor identifier of the source processing module.

14. The apparatus of claim 1 wherein the first and second storage systems comprise respective source and target storage systems of the synchronous replication of said at least one logical storage volume.

15. A method comprising:

in conjunction with synchronous replication of at least one logical storage volume between first and second storage systems:

receiving a synchronous write request comprising at least a portion of a data page to be written to the logical storage volume;

determining a source processing module associated with the data page in the first storage system;

determining at least one of a process identifier and a processor identifier of the source processing module in the first storage system; and

selecting a particular one of a plurality of links between the first and second storage systems for use with the synchronous write request based at least in part on said at least one of the process identifier and the processor identifier of the source processing module;

wherein the plurality of links are associated with respective different transmit processing modules in the first storage system, the transmit processing modules being configured to communicate with receive processing modules in the second storage system; and

wherein the method is implemented by at least one processing device comprising a processor coupled to a memory.

16. The method of claim 15 wherein the particular selected link is associated with a corresponding one of the transmit processing modules that is implemented in the first storage system by at least one of a same process and a same processor that implements the source processing module in the first storage system, and wherein data of the data page is transferred between the source processing module and the transmit processing module utilizing a local memory copy operation.

17. The method of claim 15 wherein the particular selected link is associated with a corresponding one of the receive processing modules that is implemented in the second storage system by at least one of a same process and a same processor that implements a target processing module in the second storage system, and wherein data of the data page is transferred between the receive processing module and the target processing module utilizing a local memory copy operation.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device, in conjunction with synchronous replication of at least one logical storage volume between first and second storage systems:

to receive a synchronous write request comprising at least a portion of a data page to be written to the logical storage volume;

to determine a source processing module associated with the data page in the first storage system;

to determine at least one of a process identifier and a processor identifier of the source processing module in the first storage system; and

to select a particular one of a plurality of links between the first and second storage systems for use with the synchronous write request based at least in part on said at least one of the process identifier and the processor identifier of the source processing module;

wherein the plurality of links are associated with respective different transmit processing modules in the first storage system, the transmit processing modules being configured to communicate with receive processing modules in the second storage system.

19. The computer program product of claim 18 wherein the particular selected link is associated with a corresponding one of the transmit processing modules that is implemented in the first storage system by at least one of a same process and a same processor that implements the source processing module in the first storage system, and wherein data of the data page is transferred between the source processing module and the transmit processing module utilizing a local memory copy operation.

20. The computer program product of claim 18 wherein the particular selected link is associated with a corresponding one of the receive processing modules that is implemented in the second storage system by at least one of a same process and a same processor that implements a target processing module in the second storage system, and wherein data of the data page is transferred between the receive processing module and the target processing module utilizing a local memory copy operation.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) 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 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) 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 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) 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 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2020
From: CHEN, XIANGPING; MEIRI, DAVID
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053281/0596 →