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. Using DirectPath I/O lowered the round trip time by 10 microseconds as per VMWARE Tests results. For more information please visit following VMWARE KB “1010789”
The Configuration Steps for VMDirectPath is mentioned on above KB is the same when you use vSphere Desktop Client. But in case of Web client, some settings are changed. I will show you both client settings.
- 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
Configuring Pass-through devices
I will show you. How to configure direct path on a PCI device. At this example I will take “Network Adapter” for direct path configuration Instead of HBAs. But you should know direct path method is the same for any PCI Device.
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.