At step 412, the IO load balancing and submission functionality 216 obtains the transferred IO operation and submits the IO operation to the storage array 105 from the user space along one or more of the paths corresponding to the user space block devices 218 via the HBA 232 in the hardware space 230 without utilizing the kernel space. Likewise, any response or IO operation received by the IO load balancing and submission functionality 216 from the storage array 105 may be transferred from the IO load balancing and submission functionality 216 user space block devices 218 in the user space 210 to the application 212 or kernel space-based filesystem 222 via the corresponding kernel space block devices 228 in the kernel space 220.
In some embodiments, input-output control (IOCTL) calls may also be transferred between applications or kernel space-based filesystems and the IO load balancing and submission functionality 216 in the user space 210 in a similar manner.
Separate instances of the process of