The use of user space IO load balancing and submission functionality 216 which does not utilize the IO stack, interrupts, lock contentions, or other similar kernel space-based functionality for submitting IO operations to the storage array 105, provides higher throughput and efficiency as compared to the use of the kernel space-based IO load balancing and submission functionality 224. This is because the kernel space-based IO stack, interrupts, lock contentions and other kernel space functionality utilized by the IO load balancing and submission functionality 224 often requires additional resources or time to process and distribute the IO operations as compared to the function calls and libraries residing in the user space 210 which are utilized by the IO load balancing and submission functionality 216. Such IO load balancing and submission functionality 216 may, for example, generate user space block devices 218 for each path to a logical volume, which may be grouped into a multipath device as described above, and may utilize various kinds of underlying communication protocols to communicate with the storage system including, for example, remote direct memory access (RDMA), transmission control protocol (TCP) and internet small computer systems interface (iSCSI) or other communication protocols. These connections may, for example, be made to a storage array 105 that supports non-volatile memory express over fabric (NVMeOF) target functionality.