IP Library Granted Patent US 10,956,078
Granted Patent B2
US 10,956,078 · App. 15/937,192 · Granted Mar 23, 2021

Storage system with loopback replication process providing object-dependent slice assignment

Inventors: David Meiri (Somerville, MA); Xiangping Chen (Sherborn, MA)
Assignee: EMC IP Holding Company LLC
G06F3/065G06F3/0604G06F3/067
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 10,956,078
App. No.
15/937,192
Granted
Mar 23, 2021
Kind
B2
Abstract

A storage system in one embodiment comprises a plurality of storage devices and a storage controller. The storage system is configured to implement a loopback replication process in which one or more source storage objects are replicated to one or more corresponding target storage objects within the storage system. The storage system is further configured to divide a storage space provided by at least portions of the storage devices of the storage system into slices, to subdivide the slices into source slices and target slices, and to replicate a source storage object associated with at least one of the source slices to a target storage object associated with at least one of the target slices. The source storage object may be associated with at least one of the source slices by, for example, storing the source storage object across portions of the storage devices in designated ones of the source slices.

Claims (61)

1. An apparatus comprising:

a storage system comprising a plurality of storage devices and a storage controller;

the storage system being configured to implement a loopback replication process in which one or more source storage objects are replicated to one or more corresponding target storage objects within the storage system to test one or more replication functionalities of the storage system;

wherein the storage system is further configured:

to divide a storage space provided by at least portions of the storage devices of the storage system into slices;

to subdivide the slices into source slices and target slices; and

to replicate a source storage object associated with at least one of the source slices to a target storage object associated with at least one of the target slices;

wherein the replication process comprises at least one of a cycle-based asynchronous replication mode and a synchronous replication mode;

wherein the storage system further comprises at least one loopback communication link over which replication-related information is both transmitted and received by the storage system;

wherein the source and the target storage objects comprise respective source and target logical volumes of the storage system;

wherein the storage system is further configured to pair the source storage object with the target storage object by associating the source and the target storage objects with a common pairing identifier;

wherein in conjunction with replication of the source storage object to the target storage object, the storage system is further configured:

to receive the pairing identifier with inbound loopback replication data of the source storage object; and

to utilize the received pairing identifier to identify the target storage object to which the inbound loopback replication data is to be replicated;

wherein logical block addresses of the source and the target storage objects of the storage system are configured to include at least one designated bit indicating for each such logical block address whether that logical block address is in one of the source slices or in one of the target slices;

wherein the pairing identifier comprises a globally-unique identifier randomly generated within the storage system; and

wherein the storage system is implemented using at least one processing device comprising a processor coupled to a memory.

2. The apparatus of claim 1 wherein when in the cycle-based asynchronous replication mode differential data derived from snapshots of the source storage object is utilized to update the target storage object in each of a plurality of replication cycles and when in the synchronous replication mode host write operations directed to the source storage object are mirrored to the target storage object.

3. The apparatus of claim 1 wherein the source storage object is associated with at least one of the source slices by storing the source storage object across portions of the storage devices in designated ones of the source slices.

4. The apparatus of claim 1 wherein the target storage object is associated with at least one of the target slices by storing the target storage object across portions of the storage devices in designated ones of the target slices.

5. The apparatus of claim 1 wherein the storage space is divided into the slices based at least in part on a specified range of bits within logical block addresses of a logical volume of the storage system.

6. The apparatus of claim 1 wherein the storage space has a total storage capacity of X*Y and is divided into X slices each having storage capacity Y and wherein the X slices each having storage capacity Y are further subdivided into X source slices and X target slices such that the storage space effectively includes a total of 2X source and target slices each having storage capacity Y/2.

7. The apparatus of claim 1 wherein the storage system comprises a plurality of storage nodes each comprising one or more of the storage devices and wherein each of the storage nodes of the storage system further comprises a set of processing modules configured to communicate over one or more networks with corresponding sets of processing modules on other ones of the storage nodes, the sets of processing modules of the storage nodes of the storage system collectively comprising at least a portion of the storage controller of the storage system.

8. The apparatus of claim 7 wherein each of the sets of processing modules of the storage system comprises one or more control modules, and wherein different ones of the slices are assigned to different ones of the control modules such that control of the slices within the storage controller of the storage system is evenly distributed over the control modules of the storage controller.

9. A method comprising:

dividing a storage space provided by at least portions of a plurality of storage devices of a storage system into slices;

subdividing the slices into source slices and target slices; and

performing loopback replication of a source storage object associated with at least one of the source slices to a target storage object associated with at least one of the target slices to test one or more replication functionalities of the storage system;

wherein the loopback replication comprises at least one of a cycle-based asynchronous replication mode and a synchronous replication mode;

wherein the storage system further comprises at least one loopback communication link over which replication-related information is both transmitted and received by the storage system;

wherein the source and the target storage objects comprise respective source and target logical volumes of the storage system;

wherein the storage system is further configured to pair the source storage object with the target storage object by associating the source and the target storage objects with a common pairing identifier;

wherein in conjunction with replication of the source storage object to the target storage object, the storage system is further configured:

to receive the pairing identifier with inbound loopback replication data of the source storage object; and

to utilize the received pairing identifier to identify the target storage object to which the inbound loopback replication data is to be replicated;

wherein logical block addresses of the source and the target storage objects of the storage system are configured to include at least one designated bit indicating for each such logical block address whether that logical block address is in one of the source slices or in one of the target slices;

wherein the pairing identifier comprises a globally-unique identifier randomly generated within the storage system; and

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

10. The method of claim 9 wherein the source storage object is associated with at least one of the source slices by storing the source storage object across portions of the storage devices in designated ones of the source slices and wherein the target storage object is associated with at least one of the target slices by storing the target storage object across portions of the storage devices in designated ones of the target slices.

11. The method of claim 9 wherein the storage space has a total storage capacity of X*Y and is divided into X slices each having storage capacity Y and wherein the X slices each having storage capacity Y are further subdivided into X source slices and X target slices such that the storage space effectively includes a total of 2X source and target slices each having storage capacity Y/2.

12. The method of claim 9 wherein the storage system comprises a plurality of storage nodes each comprising one or more of the storage devices and wherein each of the storage nodes of the storage system further comprises a set of processing modules configured to communicate over one or more networks with corresponding sets of processing modules on other ones of the storage nodes, the sets of processing modules of the storage nodes of the storage system collectively comprising at least a portion of a storage controller of the storage system.

13. The method of claim 12 wherein each of the sets of processing modules of the storage system comprises one or more control modules, and wherein different ones of the slices are assigned to different ones of the control modules such that control of the slices within the storage controller of the storage system is evenly distributed over the control modules of the storage controller.

14. The method of claim 9 wherein the storage space is divided into the slices based at least in part on a specified range of bits within logical block addresses of a logical volume of the storage system.

15. 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 of a storage system causes the storage system:

to divide a storage space provided by at least portions of a plurality of storage devices of the storage system into slices;

to subdivide the slices into source slices and target slices; and

to perform loopback replication of a source storage object associated with at least one of the source slices to a target storage object associated with at least one of the target slices to test one or more replication functionalities of the storage system;

wherein the replication process comprises at least one of a cycle-based asynchronous replication mode and a synchronous replication mode;

wherein the storage system further comprises at least one loopback communication link over which replication-related information is both transmitted and received by the storage system;

wherein the source and the target storage objects comprise respective source and target logical volumes of the storage system;

wherein the storage system is further configured to pair the source storage object with the target storage object by associating the source and the target storage objects with a common pairing identifier;

wherein in conjunction with replication of the source storage object to the target storage object, the storage system is further configured:

to receive the pairing identifier with inbound loopback replication data of the source storage object; and

to utilize the received pairing identifier to identify the target storage object to which the inbound loopback replication data is to be replicated;

wherein logical block addresses of the source and the target storage objects of the storage system are configured to include at least one designated bit indicating for each such logical block address whether that logical block address is in one of the source slices or in one of the target slices; and

wherein the pairing identifier comprises a globally-unique identifier randomly generated within the storage system.

16. The computer program product of claim 15 wherein the source storage object is associated with at least one of the source slices by storing the source storage object across portions of the storage devices in designated ones of the source slices and wherein the target storage object is associated with at least one of the target slices by storing the target storage object across portions of the storage devices in designated ones of the target slices.

17. The computer program product of claim 15 wherein the storage space has a total storage capacity of X*Y and is divided into X slices each having storage capacity Y and wherein the X slices each having storage capacity Y are further subdivided into X source slices and X target slices such that the storage space effectively includes a total of 2X source and target slices each having storage capacity Y/2.

18. The computer program product of claim 15 wherein the storage system comprises a plurality of storage nodes each comprising one or more of the storage devices and wherein each of the storage nodes of the storage system further comprises a set of processing modules configured to communicate over one or more networks with corresponding sets of processing modules on other ones of the storage nodes, the sets of processing modules of the storage nodes of the storage system collectively comprising at least a portion of a storage controller of the storage system.

19. The computer program product of claim 18 wherein each of the sets of processing modules of the storage system comprises one or more control modules, and wherein different ones of the slices are assigned to different ones of the control modules such that control of the slices within the storage controller of the storage system is evenly distributed over the control modules of the storage controller.

20. The computer program product of claim 15 wherein the storage space is divided into the slices based at least in part on a specified range of bits within logical block addresses of a logical volume of the storage system.

Assignments (8)
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 (046366/0014) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
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 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2018
From: MEIRI, DAVID; CHEN, XIANGPING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045368/0001 →