A computer system comprising at least one processor, a non-transitory computer readable medium, and a network interface card (NIC) connected to a bus of the computer system, wherein the at least one processor is configured to execute a program stored in the non-transitory computer readable medium to provide a virtual machine (VM), that is executing a workload and instantiated on a virtualization layer of the computer system, access to an external storage through the NIC, the program comprising sets of instructions for:
- assigning, by the virtualization layer having a first network fabric storage driver, a physical function (PF) of the NIC to the VM, wherein the physical function is exposed to the VM as a network interface through which packets relating to storage access operations initiated by the VM in connection with executing the workload, are to be transmitted and received;
- and
- configuring a second network fabric storage driver on the VM to use the PF to bypass the first network fabric storage driver and exchange the packets relating to the storage access operations with the external storage through the NIC.