IP Library Granted Patent US 11,226,851
Granted Patent B1
US 11,226,851 · App. 16/925,543 · Granted Jan 18, 2022

Execution of multipath operation triggered by container application

Inventors: Gopinath Marappan (Coimbatore, IN); Maneesh Singhal (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F9/542G06F13/102G06F16/13G06F16/1734
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,226,851
App. No.
16/925,543
Granted
Jan 18, 2022
Kind
B1
Abstract

A host device comprises a kernel space comprising a multipath driver component and a user space comprising a container comprising an application, a daemon process and a data structure comprising a plurality of file system entries. The multipath driver component comprises a handler that is configured to detect changes to the file system entries. The host device is configured to mount the data structure to the container and the file system entries are modifiable by the application via the mounting. The multipath driver component is configured to determine that a given file system entry has been modified based at least in part on a detection of a change by the handler and to issue an event to the daemon process. The daemon process is configured to execute an operation associated with the multipath driver in the user space based at least in part on the issued event.

Claims (106)

1. An apparatus comprising:

a host device comprising a processor coupled to a memory, the host device comprising:

a kernel space comprising a multipath driver component of a multipath driver, the multipath driver being configured to deliver input-output operations that are issued by an application from the host device to a storage system over a network; and

a user space comprising:

a container comprising the application;

a daemon process that is configured to execute operations in the user space based at least in part on events issued by the multipath driver component in the kernel space; and

a data structure comprising a plurality of file system entries, the multipath driver component comprising a handler in the kernel space that is configured to detect changes to the file system entries in the data structure;

wherein the host device is configured to mount the data structure to the container, the file system entries in the data structure being modifiable by the application via the mounting, wherein a modified file system entry is associated with a flag set by the application; and

wherein the multipath driver component is configured:

to determine that a given file system entry of the data structure has been modified by the application in the container via the mounting based at least in part on a detection of a change to the given file system entry by the handler; and

to issue an event that is configured for processing by the daemon process in the user space based at least in part on the determination that the given file system entry has been modified; and

wherein the daemon process is configured:

to determine that the event has been issued by the multipath driver component in the kernel space; and

to execute an operation associated with the multipath driver in the user space based at least in part on the issued event.

2. The apparatus of claim 1 wherein the multipath driver is configured to create the given file system entry in the data structure based at least in part on the operation associated with the multipath driver.

3. The apparatus of claim 1 wherein:

the daemon process is configured to generate a hanging message and to submit the hanging message to the multipath driver component, the hanging message being configured to await a response from the multipath driver component;

issuing the event comprises the multipath driver component responding to the hanging message; and

determining that the event has been issued comprises obtaining the response to the hanging message by the daemon process.

4. The apparatus of claim 1 wherein:

the operation comprises a first operation associated with the multipath driver;

the given file system entry corresponds to the first operation;

a second file system entry of the plurality of file system entries corresponds to a second operation associated with the multipath driver that is different than the first operation;

the multipath driver component is further configured:

to determine that the second file system entry of the data structure has been modified by the application in the container via the mounting based at least in part on a detection of a change to the second file system entry by the handler; and

to issue a second event that is configured for processing by the daemon process in the user space based at least in part on the determination that the second file system entry has been modified; and

wherein the daemon process is configured:

to determine that the second event has been issued by the multipath driver component in the kernel space; and

to execute the second operation in the user space based at least in part on the issued second event.

5. The apparatus of claim 4 wherein:

the user space further comprises a path mapping data structure that comprises mappings between device pseudo names and indications of paths to corresponding logical volumes of the storage system;

the multipath driver is configured to utilize the mappings to select one or more of the corresponding paths for delivering input-output operations to the logical volumes of the storage system;

the first operation comprises removing the indication corresponding a given path from the path data structure, the given path corresponding to a logical volume of the storage system that is no longer available; and

the second operation comprises releasing a device pseudo name corresponding to the removed indication such that the device pseudo name is available for mapping to another indication.

6. The apparatus of claim 1 wherein determining that the given file system entry of the data structure has been modified by the application in the container via the mounting comprises determining that the flag has been set in the given file system entry by the application.

7. The apparatus of claim 6 wherein determining that the flag has been set in the given file system entry by the application comprises receiving an indication that the flag has been set from a callback routine associated with the given entry, the callback routine being configured to trigger a submission of the indication to the handler based at least in part on the given entry being modified by the application.

8. A method comprising:

mounting a data structure to a container of a host device, the host device comprising:

a kernel space comprising a multipath driver component of a multipath driver, the multipath driver being configured to deliver input-output operations that are issued by an application from the host device to a storage system over a network; and

a user space comprising:

the container, the container comprising the application;

a daemon process that is configured to execute operations in the user space based at least in part on events issued by the multipath driver component in the kernel space; and

the data structure, the data structure comprising a plurality of file system entries, the multipath driver component comprising a handler in the kernel space that is configured to detect changes to the file system entries in the data structure, the file system entries in the data structure being modifiable by the application via the mounting, wherein a modified file system entry is associated with a flag set by the application;

determining, by the multipath driver component, that a given file system entry of the data structure has been modified by the application in the container via the mounting based at least in part on a detection of a change to the given file system entry by the handler;

issuing, by the multipath driver component, an event that is configured for processing by the daemon process in the user space based at least in part on the determination that the given file system entry has been modified;

determining, by the daemon process, that the event has been issued by the multipath driver component in the kernel space; and

executing, by the daemon process, an operation associated with the multipath driver in the user space based at least in part on the issued event;

wherein the host device comprises a processor coupled to a memory.

9. The method of claim 8 wherein the multipath driver is configured to create the given file system entry in the data structure based at least in part on the operation associated with the multipath driver.

10. The method of claim 8 wherein:

the daemon process is configured to generate a hanging message and to submit the hanging message to the multipath driver component, the hanging message being configured to await a response from the multipath driver component;

issuing the event comprises the multipath driver component responding to the hanging message; and

determining that the event has been issued comprises obtaining the response to the hanging message by the daemon process.

11. The method of claim 8 wherein:

the operation comprises a first operation associated with the multipath driver;

the given file system entry corresponds to the first operation;

a second file system entry of the plurality of file system entries corresponds to a second operation associated with the multipath driver that is different than the first operation; and

the method further comprises:

determining, by the multipath driver component, that the second file system entry of the data structure has been modified by the application in the container via the mounting based at least in part on a detection of a change to the second file system entry by the handler;

issuing, by the multipath driver component, a second event that is configured for processing by the daemon process in the user space based at least in part on the determination that the second file system entry has been modified;

determining, by the daemon process, that the second event has been issued by the multipath driver component in the kernel space; and

executing, by the daemon process, the second operation in the user space based at least in part on the issued second event.

12. The method of claim 11 wherein:

the user space further comprises a path mapping data structure that comprises mappings between device pseudo names and indications of paths to corresponding logical volumes of the storage system;

the multipath driver is configured to utilize the mappings to select one or more of the corresponding paths for delivering input-output operations to the logical volumes of the storage system;

the first operation comprises removing the indication corresponding a given path from the path data structure, the given path corresponding to a logical volume of the storage system that is no longer available; and

the second operation comprises releasing a device pseudo name corresponding to the removed indication such that the device pseudo name is available for mapping to another indication.

13. The method of claim 8 wherein determining that the given file system entry of the data structure has been modified by the application in the container via the mounting comprises determining that the flag has been set in the given file system entry by the application.

14. The method of claim 13 wherein determining that the flag has been set in the given file system entry by the application comprises receiving an indication that the flag has been set from a callback routine associated with the given entry, the callback routine being configured to trigger a submission of the indication to the handler based at least in part on the given entry being modified by the application.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, the program code being configured for execution by a host device comprising a processor coupled to a memory, the host device comprising:

a kernel space comprising a multipath driver component of a multipath driver, the multipath driver being configured to deliver input-output operations that are issued by an application from the host device to a storage system over a network; and

a user space comprising:

a container comprising the application;

a daemon process that is configured to execute operations in the user space based at least in part on events issued by the multipath driver component in the kernel space; and

a data structure comprising a plurality of file system entries, the multipath driver component comprising a handler in the kernel space that is configured to detect changes to the file system entries in the data structure;

wherein the program code, when executed by the host device, causes the host device:

to mount the data structure to the container, the file system entries in the data structure being modifiable by the application via the mounting, wherein a modified file system entry is associated with a flag set by the application:

to cause the multipath driver component:

to determine that a given file system entry of the data structure has been modified by the application in the container via the mounting based at least in part on a detection of a change to the given file system entry by the handler; and

to issue an event that is configured for processing by the daemon process in the user space based at least in part on the determination that the given file system entry has been modified; and

to cause the daemon process:

to determine that the event has been issued by the multipath driver component in the kernel space; and

to execute an operation associated with the multipath driver in the user space based at least in part on the issued event.

16. The computer program product of claim 15 wherein the multipath driver is configured to create the given file system entry in the data structure based at least in part on the operation associated with the multipath driver.

17. The computer program product of claim 15 wherein:

the daemon process is configured to generate a hanging message and to submit the hanging message to the multipath driver component, the hanging message being configured to await a response from the multipath driver component;

issuing the event comprises the multipath driver component responding to the hanging message; and

determining that the event has been issued comprises obtaining the response to the hanging message by the daemon process.

18. The computer program product of claim 15 wherein:

the operation comprises a first operation associated with the multipath driver;

the given file system entry corresponds to the first operation;

a second file system entry of the plurality of file system entries corresponds to a second operation associated with the multipath driver that is different than the first operation;

the program code further causes the multipath driver component:

to determine that the second file system entry of the data structure has been modified by the application in the container via the mounting based at least in part on a detection of a change to the second file system entry by the handler; and

to issue a second event that is configured for processing by the daemon process in the user space based at least in part on the determination that the second file system entry has been modified; and

the program code further causes the daemon process:

to determine that the second event has been issued by the multipath driver component in the kernel space; and

to execute the second operation in the user space based at least in part on the issued second event.

19. The computer program product of claim 18 wherein:

the user space further comprises a path mapping data structure that comprises mappings between device pseudo names and indications of paths to corresponding logical volumes of the storage system;

the multipath driver is configured to utilize the mappings to select one or more of the corresponding paths for delivering input-output operations to the logical volumes of the storage system;

the first operation comprises removing the indication corresponding a given path from the path data structure, the given path corresponding to a logical volume of the storage system that is no longer available; and

the second operation comprises releasing a device pseudo name corresponding to the removed indication such that the device pseudo name is available for mapping to another indication.

20. The computer program product of claim 15 wherein:

determining that the given file system entry of the data structure has been modified by the application in the container via the mounting comprises determining that the flag has been set in the given file system entry by the application; and

determining that the flag has been set in the given file system entry by the application comprises receiving an indication that the flag has been set from a callback routine associated with the given entry, the callback routine being configured to trigger a submission of the indication to the handler based at least in part on the given entry being modified by the application.

Assignments (9)
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 (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 (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 10, 2020
From: MARAPPAN, GOPINATH; SINGHAL, MANEESH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053172/0491 →