IP Library Granted Patent US 11,467,778
Granted Patent B2
US 11,467,778 · App. 17/151,325 · Granted Oct 11, 2022

Creating high availability storage volumes for software containers

Inventors: Anil Arun Degwekar (Bangalore, IN); Utkarsh Dubey (Lucknow, IN); Prasant Kumar Padhi (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F3/0665G06F3/0604G06F3/065G06F3/067G06F3/0629
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,467,778
App. No.
17/151,325
Granted
Oct 11, 2022
Kind
B2
Abstract

An apparatus comprises a processing device configured to receive a create volume request to create a given storage volume for a software container instance running on a container host device, to parse the given request to identify replication-related parameters for the given storage volume, the identified replication-related parameters comprising an availability parameter. The processing device is also configured, responsive to the availability parameter specifying that the given storage volume should be configured with enhanced availability, to create a first logical storage volume on a first storage array and a second logical storage volume on a second storage array, to establish a replication link between the first logical storage volume on the first storage array and the second logical storage volume on the second storage array, and to mount the first and second logical storage volumes to a designated volume mount point in the software container instance.

Claims (68)

1. A method comprising:

receiving a create volume request to create a given storage volume for a software container instance running on a container host device;

parsing the given request to identify one or more replication-related parameters for the given storage volume, the identified one or more replication-related parameters comprising an availability parameter specifying whether the given storage volume should be configured with enhanced availability;

responsive to the availability parameter specifying that the given storage volume should be configured with enhanced availability, creating a first logical storage volume on a first storage array and at least a second logical storage volume on a second storage array;

establishing a replication link between the first logical storage volume on the first storage array and the second logical storage volume on the second storage array; and

mounting the first logical storage volume and the second logical storage volume to a designated volume mount point in the software container instance;

wherein mounting the first logical storage volume and the second logical storage volume to the designated volume mount point in the software container instance comprises:

identifying a target path for the given storage volume;

associating the first storage volume and the second storage volume with the identified target path for the given storage volume; and

utilizing input-output multipathing functionality on the container host device to configure (i) one or more first input-output paths from the software container instance on the container host device to the first logical storage volume on the first storage array and (ii) one or more second input-output paths from the software container instance on the container host device to the second logical storage volume on the second storage array; and

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

2. The method of claim 1 wherein the one or more replication-related parameters are included in a storage class specified in the create volume request, the storage class specifying a set of attributes that determine a class of service for the given storage volume.

3. The method of claim 1 wherein the one or more replication-related parameters further comprises a replication group number, the replication group number identifying a first set of ports on the first storage array and a second set of ports on the second storage array to be used for establishing the replication link between the first logical storage volume on the first storage array and the second logical storage volume on the second storage array.

4. 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 the at least one processing device to perform steps of:

receiving a create volume request to create a given storage volume for a software container instance running on a container host device;

parsing the given request to identify one or more replication-related parameters for the given storage volume, the identified one or more replication-related parameters comprising an availability parameter specifying whether the given storage volume should be configured with enhanced availability;

responsive to the availability parameter specifying that the given storage volume should be configured with enhanced availability, creating a first logical storage volume on a first storage array and at least a second logical storage volume on a second storage array;

establishing a replication link between the first logical storage volume on the first storage array and the second logical storage volume on the second storage array; and

mounting the first logical storage volume and the second logical storage volume to a designated volume mount point in the software container instance;

wherein mounting the first logical storage volume and the second logical storage volume to the designated volume mount point in the software container instance comprises:

identifying a target path for the given storage volume;

associating the first storage volume and the second storage volume with the identified target path for the given storage volume; and

utilizing input-output multipathing functionality on the container host device to configure (i) one or more first input-output paths from the software container instance on the container host device to the first logical storage volume on the first storage array and (ii) one or more second input-output paths from the software container instance on the container host device to the second logical storage volume on the second storage array.

5. The computer program product of claim 4 wherein the one or more replication-related parameters are included in a storage class specified in the create volume request, the storage class specifying a set of attributes that determine a class of service for the given storage volume.

6. The computer program product of claim 4 wherein the one or more replication-related parameters further comprises a replication group number, the replication group number identifying a first set of ports on the first storage array and a second set of ports on the second storage array to be used for establishing the replication link between the first logical storage volume on the first storage array and the second logical storage volume on the second storage array.

7. An apparatus comprising:

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

the at least one processing device being configured to perform steps of:

receiving a create volume request to create a given storage volume for a software container instance running on a container host device;

parsing the given request to identify one or more replication-related parameters for the given storage volume, the identified one or more replication-related parameters comprising an availability parameter specifying whether the given storage volume should be configured with enhanced availability;

responsive to the availability parameter specifying that the given storage volume should be configured with enhanced availability, creating a first logical storage volume on a first storage array and at least a second logical storage volume on a second storage array;

establishing a replication link between the first logical storage volume on the first storage array and the second logical storage volume on the second storage array; and

mounting the first logical storage volume and the second logical storage volume to a designated volume mount point in the software container instance;

wherein mounting the first logical storage volume and the second logical storage volume to the designated volume mount point in the software container instance comprises:

identifying a target path for the given storage volume;

associating the first storage volume and the second storage volume with the identified target path for the given storage volume; and

utilizing input-output multipathing functionality on the container host device to configure (i) one or more first input-output paths from the software container instance on the container host device to the first logical storage volume on the first storage array and (ii) one or more second input-output paths from the software container instance on the container host device to the second logical storage volume on the second storage array.

8. The apparatus of claim 7 wherein the at least one processing device implements at least one container storage interface driver for a container orchestration engine that manages a plurality of container host devices including the container host device, the container storage interface driver being configured to perform the receiving, parsing, creating, establishing and mounting steps.

9. The apparatus of claim 7 wherein the one or more replication-related parameters are included in a storage class specified in the create volume request, the storage class specifying a set of attributes that determine a class of service for the given storage volume.

10. The apparatus of claim 7 wherein the one or more replication-related parameters further comprises a replication group number, the replication group number identifying a first set of ports on the first storage array and a second set of ports on the second storage array to be used for establishing the replication link between the first logical storage volume on the first storage array and the second logical storage volume on the second storage array.

11. The apparatus of claim 7 wherein the one or more replication-related parameters further comprises an array identifier of the second storage array.

12. The apparatus of claim 7 wherein the at least one processing device is configured to return a volume context for the given storage volume, the volume context comprising a first logical storage volume identifier for the first logical storage volume, a second logical storage volume identifier for the second logical storage volume, a storage group name and the array identifier of the second storage array.

13. The apparatus of claim 7 wherein mounting the first logical storage volume and the second logical storage volume to the designated volume mount point in the software container instance specified in the given request comprises:

receiving, responsive to the software container instance being scheduled on the container host device having the designated volume mount point specifying the given storage volume, a controller publish request comprising a volume context for the given storage volume;

adding the first logical storage volume and the second logical storage volume identified in the volume context to a masking view of the container host device on the first storage array and the second storage array; and

generating a publish context for the given storage volume, the publish context comprising logical unit addresses and port identifiers for the first logical storage volume on the first storage array and the second logical storage volume on the second storage array.

14. The apparatus of claim 7 wherein mounting the first logical storage volume and the second logical storage volume to the designated volume mount point in the software container instance specified in the given request further comprises:

receiving, responsive to the software container instance requesting to utilize the given storage volume on the container host device, a node stage volume request comprising a publish context for the given storage volume and a staging path for the container host device;

adding the first logical storage volume on the first storage array and the second logical storage volume on the second storage array to the staging path; and

utilizing logical unit address and port identifier information in the publish context to connect the container host device to the first logical storage volume on the first storage array and the second logical storage volume on the second storage array.

15. The apparatus of claim 7 wherein mounting the first logical storage volume and the second logical storage volume to the designated volume mount point in the software container instance specified in the given request further comprises receiving, responsive to the software container instance requesting to utilize the given storage volume on the container host device, a node publish volume request, the node publish volume request specifying the target path for the given storage volume.

16. The apparatus of claim 7 wherein the at least one processing device is further configured to perform the step of unmounting the first logical storage volume and the second logical storage volume from the designated volume mount point in the software container instance.

17. The apparatus of claim 16 wherein unmounting the first logical storage volume and the second logical storage volume from the designated volume mount point in the software container instance comprises:

receiving, responsive to determining that at least one of usage of the given storage volume on the container host device is completed and that the software container instance is to be moved to another container host device, a node unpublish volume request specifying the given storage volume and the target path for the given storage volume; and

unmounting the first logical storage volume and the second logical storage volume from the target path for the given storage volume on the container host device.

18. The apparatus of claim 16 wherein unmounting the first logical storage volume and the second logical storage volume from the designated volume mount point in the software container instance comprises:

receiving, responsive to unmounting the first logical storage volume and the second logical storage volume from a target path for the given storage volume on the container host device, a node unstage volume request specifying the given storage volume and a staging path on the container host device;

removing one or more files and directories in the staging path; and

disconnecting the container host device from the first logical storage volume on the first storage array and the second logical storage volume on the second storage array.

19. The apparatus of claim 16 wherein unmounting the first logical storage volume and the second logical storage volume from the designated volume mount point in the software container instance comprises:

receiving, responsive to unmounting the first logical storage volume and the second logical storage volume from a target path for the given storage volume on the container host device and disconnecting the container host device from the given storage volume, a controller unpublish volume request specifying the given storage volume and the container host device; and

removing the first logical storage volume and the second logical storage volume from a masking view of the container host device on the first storage array and the second storage array.

20. The apparatus of claim 16 wherein unmounting the first logical storage volume and the second logical storage volume from the designated volume mount point in the software container instance comprises:

receiving a request to delete the given storage volume;

performing a suspend action for a replication group associated with the given storage volume;

deleting a replica pair in the replication group, the replica pair comprising the first logical storage volume and the second logical storage volume;

performing a resume action for the replication group; and

deleting the first logical storage volume from the first storage array and the second logical storage volume from the second storage 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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2021
From: DEGWEKAR, ANIL ARUN; DUBEY, UTKARSH; PADHI, PRASANT KUMAR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054944/0536 →
Continuity (1)
Related Publication 20220229605A1 · Jul 21, 2022
Cited By (1)
US 12,373,315