IP Library Granted Patent US 11,023,134
Granted Patent B1
US 11,023,134 · App. 16/881,086 · Granted Jun 1, 2021

Addition of data services to an operating system running a native multi-path input-output architecture

Inventors: Vinay G. Rao (Bangalore, IN); Madhu Tarikere (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F3/061G06F3/0614G06F3/0647G06F3/0659G06F3/0685G06F9/4411
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,023,134
App. No.
16/881,086
Granted
Jun 1, 2021
Kind
B1
Abstract

A host device is configured to communicate over a network with a storage system. The host device comprises a multi-path input-output (MPIO) driver configured to control delivery of input-output (IO) operations from the host device to the storage system over selected ones of a plurality of paths through the network, and a data service driver. The data service driver is configured to provide one or more data services on the host device, wherein the one or more data services correspond to respective extensions. The respective extensions are organized in different levels in a stacked configuration. The data service driver is further configured to receive and process a given IO operation through the respective extensions in the stacked configuration. The MPIO driver is a component of first MPIO software for the host device, and the data service driver is a component of second MPIO software for the host device.

Claims (47)

1. An apparatus comprising:

a host device comprising a processor coupled to a memory;

the host device being configured to communicate over a network with a storage system;

the host device comprising:

a multi-path input-output driver configured to control delivery of input-output operations from the host device to the storage system over selected ones of a plurality of paths through the network, wherein the multi-path input-output driver is a component of first multi-path input-output software for the host device; and

a data service driver, wherein the data service driver is a component of second multi-path input-output software for the host device, and wherein the data service driver is configured:

to provide one or more data services on the host device, wherein the one or more data services correspond to respective extensions, the respective extensions being organized in different levels in a stacked configuration; and

to receive and process a given input-output operation through the respective extensions in the stacked configuration.

2. The apparatus of claim 1 wherein the first multi-path input-output software is an original component of an operating system of the host device, and wherein the second multi-path input-output software is an added component to the operating system of the host device.

3. The apparatus of claim 1 wherein the one or more data services comprise a host-based caching service.

4. The apparatus of claim 3 wherein the given input-output operation comprises a write input-output operation, and wherein, in receiving and processing the given input-output operation, the data service driver is configured:

to dispatch the write input-output operation down the stacked configuration; and

upon reaching a level corresponding to the host-based caching service, to schedule a thread in the level corresponding to the host-based caching service to read a written data block from a storage array and store a copy of the written data block in a cache.

5. The apparatus of claim 1 wherein the one or more data services comprise a migration service.

6. The apparatus of claim 5 wherein the data service driver is further configured:

to issue a commit command to move to a target device once a migration is complete; and

to redirect the input-output operations to the target device.

7. The apparatus of claim 6 wherein the data service driver is further configured to use an application programming interface provided by the first multi-path input-output software to change a persistence mapping database.

8. The apparatus of claim 1 wherein the data service driver is further configured to create one or more objects corresponding to the second multi-path input-output software on one or more logical storage devices used by the first multi-path input-output software.

9. The apparatus of claim 1 wherein the data service driver is further configured to trap one or more device entry points for one or more logical storage devices used by the first multi-path input-output software, wherein the trapping enables the given input-output operation to flow through the respective extensions in the stacked configuration.

10. The apparatus of claim 9 wherein, in trapping the one or more device entry points, the data service driver is configured to send an input-output command to a kernel of the second multi-path input-output software.

11. The apparatus of claim 1 wherein the host device is configured to decouple multi-pathing functionality from the second multi-path input-output software.

12. The apparatus of claim 11 wherein the multi-path input-output driver is configured to use the decoupled multi-pathing functionality from the second multi-path input-output software in controlling the delivery of the input-output operations from the host device to the storage system.

13. The apparatus of claim 1 wherein the data service driver is further configured:

to claim one or more logical storage devices used by the first multi-path input-output software; and

to direct one or more of the input-output operations corresponding to the claimed one or more logical storage devices to the respective extensions in the stacked configuration.

14. A method performed by a host device configured to communicate over a network with a storage system, comprising:

configuring a multi-path input-output driver of the host device to control delivery of input-output operations from the host device over selected ones of a plurality of paths through the network, wherein the multi-path input-output driver is a component of first multi-path input-output software for the host device;

configuring a data service driver to provide one or more data services on the host device, wherein the one or more data services correspond to respective extensions, the respective extensions being organized in different levels in a stacked configuration, and wherein the data service driver is a component of second multi-path input-output software for the host device;

the data service driver:

receiving and processing a given input-output operation through the respective extensions in the stacked configuration;

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

15. The method of claim 14 wherein the data service driver is further configured to create one or more objects corresponding to the second multi-path input-output software on one or more logical storage devices used by the first multi-path input-output software.

16. The method of claim 14 wherein the data service driver is further configured to trap one or more device entry points for one or more logical storage devices used by the first multi-path input-output software, wherein the trapping enables the given input-output operation to flow through the respective extensions in the stacked configuration.

17. The method of claim 14 wherein the data service driver is further configured:

to claim one or more logical storage devices used by the first multi-path input-output software; and

to direct one or more of the input-output operations corresponding to the claimed one or more logical storage devices to the respective extensions in the stacked configuration.

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 a host device comprising a multi-path input-output driver and a data service driver, the host device being configured to communicate over a network with a storage system:

causes the multi-path input-output driver to control delivery of input-output operations from the host device to the storage system over selected ones of a plurality of paths through the network, wherein the multi-path input-output driver is a component of first multi-path input-output software for the host device; and

causes the data service driver:

to provide one or more data services on the host device, wherein the one or more data services correspond to respective extensions, the respective extensions being organized in different levels in a stacked configuration; and

to receive and process a given input-output operation through the respective extensions in the stacked configuration;

wherein the data service driver is a component of second multi-path input-output software for the host device.

19. The computer program product of claim 18 wherein the program code further causes the data service driver to create one or more objects corresponding to the second multi-path input-output software on one or more logical storage devices used by the first multi-path input-output software.

20. The computer program product of claim 18 wherein the program code further causes the data service driver:

to claim one or more logical storage devices used by the first multi-path input-output software; and

to direct one or more of the input-output operations corresponding to the claimed one or more logical storage devices to the respective extensions in the stacked configuration.

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 May 22, 2020
From: RAO, VINAY G.; TARIKERE, MADHU
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052732/0018 →
Cited By (2)
US 12,192,282 US 12,666,096