白丝美女被狂躁免费视频网站,500av导航大全精品,yw.193.cnc爆乳尤物未满,97se亚洲综合色区,аⅴ天堂中文在线网官网

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

專利號
US11175840B2
公開日期
2021-11-16
申請人
EMC IP Holding Company LLC(US MA Hopkinton)
發(fā)明人
Sanjib Mallick; Md Haris Iqbal; Kundan Kumar
IPC分類
G06F9/54; G06F3/06; G06F9/50
技術(shù)領(lǐng)域
io,storage,mpio,submission,kernel,balancing,space,host,array,in
地域: MA MA Hopkinton

摘要

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.

說明書

FIELD

The field relates generally to information processing systems, and more particularly to storage in information processing systems.

BACKGROUND

Storage arrays and other types of storage systems are often shared by multiple host devices over a network. A host device may comprise a multipath input-output (MPIO) driver that is configured to process input-output (IO) operations for delivery from the host device to the storage system. In a typical information processing system, the MPIO driver generates a multipath device in the kernel space of the host device which comprises a set of paths to a logical volume of the storage system. The MPIO driver then relies on the kernel space multipath device for load balancing and delivery of the IO operations along the paths to the storage system.

SUMMARY

Illustrative embodiments provide techniques for interfacing applications using kernel space block devices with IO load balancing and submission functionality in the user space.

權(quán)利要求

1
What is claimed is: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; andto 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; andsubmitting 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; andsubmitting 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; andsubmitting 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; andto 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; andsubmitting 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; andreceiving 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; andreceiving 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.
微信群二維碼
意見反饋