IP Library Granted Patent US 11,175,840
Granted Patent B2
US 11,175,840 · App. 16/777,162 · Granted Nov 16, 2021

Host-based transfer of input-output operations from kernel space block device to user space block device

Inventors: Sanjib Mallick (Bangalore, IN); Md Haris Iqbal (Kolkata, IN); Kundan Kumar (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F3/0635G06F3/061G06F9/505G06F9/545G06F3/0679
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,175,840
App. No.
16/777,162
Granted
Nov 16, 2021
Kind
B2
Abstract

An apparatus in one embodiment comprises a host device comprising a processor coupled to memory. The host device is configured to communicate over a network with at least one storage system. The host device is further configured to generate a user space block device and to generate a kernel space block device corresponding to the user space block device. The host device is further configured to receive an input-output operation at the kernel space block device from an application executing on the host device and to transfer the input-output operation from the kernel space block device to the corresponding user space block device. The host device is further configured to submit the input-output operation to the at least one storage system based at least in part on the user space block device.

Claims (52)

1. An apparatus comprising:

a host device comprising a processor coupled to memory, the host device being configured to communicate over a network with at least one storage system along a plurality of paths, wherein the host device is further configured:

to generate a user space block device in a user space of the host device, the user space block device corresponding to a path of the plurality of paths between the host device and the at least one storage system;

to generate a kernel space block device in a kernel space of the host device, the kernel space block device corresponding to the user space block device;

to receive an input-output operation at the kernel space block device from an application executing on the host device;

to transfer the input-output operation from the kernel space block device to the corresponding user space block device;

to select a path of the plurality of paths based at least in part on the transferred input-output operation and the user space block device; and

to submit the transferred input-output operation to the at least one storage system based at least in part on the selected path using the user space block device.

2. The apparatus of claim 1 wherein the user space block comprises information about at least one path from the host device to a given logical volume of the at least one storage system.

3. The apparatus of claim 1 wherein the host device further comprises communication hardware that is configured to communicate with the at least one storage system, the user space block device being configured to submit the transferred input-output operation directly from the user space to the communication hardware in the hardware space, the communication hardware being configured to provide the transferred input-output operation to the at least one storage system based at least in part on the selected path.

4. The apparatus of claim 1 wherein:

the host device comprises input-output load balancing and submission functionality residing in the user space; and

submitting the transferred input-output operation to the at least one storage system comprises submitting the transferred input-output operation to the at least one storage system based at least in part on the user space block device and the input-output load balancing and submission functionality residing in the user space.

5. The apparatus of claim 1 wherein the transferred input-output operation is submitted to the at least one storage system from the user space without utilizing functionality in the kernel space.

6. The apparatus of claim 1 wherein the host device is configured to transfer the input-output operation from the kernel space block device to the user space block device based at least in part on at least one communication protocol that is configured to transfer data between the user space and the kernel space of the host device.

7. A method comprising:

generating a user space block device in a user space of a host device, the user space block device corresponding to a path of a plurality of paths between the host device and at least one storage system;

generating a kernel space block device in a kernel space of the host device, the kernel space block device corresponding to the user space block device;

receiving an input-output operation at the kernel space block device from an application executing on a host device;

transferring the input-output operation from the kernel space block device to the corresponding user space block device;

selecting a path of the plurality of paths based at least in part on the transferred input-output operation and the user space block device; and

submitting the transferred input-output operation to the at least one storage system based at least in part on the selected path using the user space block device;

wherein the method is implemented by the host device, the host device comprising a processor coupled to a memory.

8. The method of claim 7 wherein the user space block comprises information about at least one path from the host device to a given logical volume of the at least one storage system.

9. The method of claim 7 , wherein the host device further comprises communication hardware that is configured to communicate with the at least one storage system, the user space block device being configured to submit the transferred input-output operation directly from the user space to the communication hardware in the hardware space, the communication hardware being configured to provide the transferred input-output operation to the at least one storage system based at least in part on the selected path.

10. The method of claim 7 , wherein:

the host device comprises input-output load balancing and submission functionality residing in the user space; and

submitting the transferred input-output operation to the at least one storage system comprises submitting the transferred input-output operation to the at least one storage system based at least in part on the user space block device and the input-output load balancing and submission functionality residing in the user space.

11. The method of claim 7 , wherein the transferred input-output operation is submitted to the at least one storage system from the user space without utilizing functionality in the kernel space.

12. The method of claim 7 , wherein the host device is configured to transfer the input-output operation from the kernel space block device to the user space block device based at least in part on at least one communication protocol that is configured to transfer data between the user space and the kernel space of the host device.

13. 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 processor coupled to a memory, causes the host device:

to generate a user space block device in a user space of the host device, the user space block device corresponding to a path of a plurality of paths between the host device and at least one storage system;

to generate a kernel space block device in a kernel space of the host device, the kernel space block device corresponding to the user space block device;

to receive an input-output operation at the kernel space block device from an application executing on the host device;

to transfer the input-output operation from the kernel space block device to the corresponding user space block device;

to select a path of the plurality of paths based at least in part on the transferred input-output operation and the user space block device; and

to submit the transferred input-output operation to the at least one storage system based at least in part on the selected path using the user space block device.

14. The computer program product of claim 13 wherein the user space block device comprises information about at least one path from the host device to a given logical volume of the at least one storage system.

15. The computer program product of claim 13 , wherein the host device further comprises communication hardware that is configured to communicate with the at least one storage system, the user space block device being configured to submit the transferred input-output operation directly from the user space to the communication hardware in the hardware space, the communication hardware being configured to provide the transferred input-output operation to the at least one storage system based at least in part on the selected path.

16. The computer program product of claim 13 , wherein:

the host device comprises input-output load balancing and submission functionality residing in the user space; and

submitting the transferred input-output operation to the at least one storage system comprises submitting the transferred input-output operation to the at least one storage system based at least in part on the user space block device and the input-output load balancing and submission functionality residing in the user space.

17. The computer program product of claim 13 , wherein the transferred input-output operation is submitted to the at least one storage system from the user space without utilizing functionality in the kernel space.

18. The computer program product of claim 13 , wherein the host device is configured to transfer the input-output operation from the kernel space block device to the user space block device based at least in part on at least one communication protocol that is configured to transfer data between the user space and the kernel space of the host device.

19. The apparatus of claim 1 wherein:

the application executes on the host device in the user space;

the application is configured to generate the input-output operation in the user space; and

receiving the input-output operation at the kernel space block device from the application comprises obtaining the generated input-output operation from the application in the user space.

20. The method of claim 7 , wherein:

the application executes on the host device in the user space;

the application generates the input-output operation in the user space; and

receiving the input-output operation at the kernel space block device from the application comprises obtaining the generated input-output operation from the application in the user space.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 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 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 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 060438/0680 →
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 AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2020
From: MALLICK, SANJIB; IQBAL, MD HARIS; KUMAR, KUNDAN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051674/0422 →
Continuity (1)
Related Publication 20210240375A1 · Aug 5, 2021