VMWARE Direct path I/O is used to reduce the CPU impact by bypassing the underlying hypervisor. It allows VM to directly access the device on Physical server without the intervention of hypervisor or virtualization layer.
Direct Path I/O, which is often referred to as passthrough, allows the VM to have direct access to the NIC, which in turn allows the VM rather than the vmkernel to own and drive the NIC. Direct Path I/O can also be used for other types of adapters, such as graphic cards.
- To use VMDirectPath .you must have enabled Virtualization Technology for Directed I/O in BIOS.
- For Intel (VT-d)
- For AMD (IOMMU)
- VM Hardware Version should be 7 or later.
- Devices must be connected to the host and marked available for pass through
- Make sure you have the PCI device driver, if you’re OS does not support it. Because there is no virtual layer involved between it. Commonly most device drivers are bundled with the hypervisor and installed at the time of the installation of hypervisor later will be available to VM when it uses hypervisor layer.
NOTE: Use of the VMDirectPath disables many advanced VMware functions for the virtual machine such as VMotion, HA,Suspend and resume, Record and replay, FT, Memory overcommitment and page sharing, Hot add/remove of virtual devices, No Snapshot backup, so be careful before you start using VMDirect Path.
- A legacy application that may be bound to the physical device
- Can improve CPU performance for applications with a high packet rate
- The main use case for implementing VMware Direct Path I/O for a NIC is to sup-port extremely heavy network activity within a VM
Configuring Pass-through devices
From Web Client:
From Home-> Host and Clusters -> Select ESXi Server-> Manage->Settings->PCI Devices -> Click on Pensile sign to “Add or edit” Pass though PCI device.
From vSphere Classic Client:
Select the host -> Configuration -> Advance Settings -> Configure Pass-through
NOTE: The step to enable Direct path I/O on the above VM KB article is based on classic vSphere Client
Next Dialog box shows you the PCI devices which will be available for direct path configuration as highlighted. Select your desired PCI device.
As you can see. When you check the a device then its status will change from “Unavailable” to “available (Pending)” -> Click “OK”
NOTE: Make sure the device which you are selected in not in use.
If your selected devices is already in use then you will prompted below dialog box. Select your option accordingly.
Now your PCI devices have been added in Direct path as shown below. Next step is to reboot the host.
vSphere Desktop client View:
When ESXi server is rebooted then this directPath I/O devices are available for use.
To configure a PCI device on a virtual machine:
From the Inventory in vSphere Client, right-click the virtual machine and click Edit Settings.
Click the “Virtual Hardware-> New Device -> Choose PCI Device -> Click “Add”.
A Little Tip: While adding if you got following message then its mean your device is not available yet. You may check the pass though configuration or make sure you rebooted the ESXi Server before adding it.
From: Web Client
From: Classic Desktop Client
PCI device is “unavailable”. Read the highlighted reason why it’s unavailable,