Hi there, with vmworld2014 coming to an end, it’s time
to go back at vSphere Native Drivers, we already covered the basics on our
previous post, so it’s now time to check some operational information about it.
Since a device can have a Native and a Linux Driver,
which one will be loaded ?
By default, if ESXi identify a Native Driver for a
device it will be loaded instead of Linux driver.
Next inevitable question is: What Native drivers are
available on ESXi ?
There are map files pointing to supported devices.
/etc/vmware/default.map.d (for Native drivers)
/etc/vmware/driver.map.d (for Linux driver)
just list the content of the files for the supported
device.
While some of them are easy to identify by it’s name
others are not.
just as an example:
qlnativefc.map is for Qlogic devices.
lpfc.map is for Emulex devices.
Good, but what specific device model is supported ?
Now you need to check the specific map file.
Lets take an example: cat qlnativefc.map
Wow, this is hard to read, right ?
Let me help you out with it
Regtype is the type of driver and as you could imagine can be native or linux
Id is where
you will identify the vendor and the device model, being the first 4 digits the
vendor and the last 4 digits de device model.
In the example10772432, 1077 is the vendor and 2432 is
the device model.
Ok, but what vendor 1077 is ?
You can look at the /etc/vmware/pci.ids for the
details
Grep –I 1077
/etc/vmware/pci.ids
Or what I prefer to use is access the PCI ID Repository web site:
To list the devices using native drivers, run the
following command:
esxcli storage core adapter list
That’s all nice to know about, but, What if for some
crazy idea I want the old behavior, I mean loading the Linux drivers instead of
Native Drivers ?
*************************************************************************************************************************
CAUTION: It’s not recommended. Should only be used
during troubleshooting and when asked by VMware’s support personnel, use it at
your own risk.
*************************************************************************************************************************
You can change it’s behavior during boot process,
press shift + O and you will be presented with the boot options menu, add “preferVmklinux=TRUE” to the end of
the command
If your system is already UP you can change it running
the following command, remember to reboot the box after running it.
esxcli system
settings kernel set -s=preferVmklinux -v=TRUE
This change is persisted to the /etc/vmware/esx.conf
file and the ESXi host will continue to load the vmklinux driver preferentially
until this action is reversed.
Ok, I understand it’s not recommended but could be
situations where a specific device does not work well with Native driver and I
want just only one specific device to use a Linux driver, how do I manage that
?
I’m glad you ask it.
You can change the behavior on a device basis, running
the following command, don’t forget to reboot the box after running it.
esxcli system module set --enabled=false
--module=
esxcli system module set --enabled=true
--module=
The first command will disable the Native driver and
the second one will enable the Linux driver.
I hope these information’s help you to better manage
your environment.
See you .....