I’ve decided to write this article, because I get many queries about ESXi does not “see my network interface card, or storage controller.”
How do I add this mass storage controller, network interface card, fibre channel HBA to ESXi?
Usually storage controllers, network interface cards are already supported within VMware vSphere ESXi 4.1 U1, they been tested and verfied by Vendors and VMware, ESXi 4.x can have limited support for hardware, check the HCL to check it it’s supported. But with a few tweaks, you can successfully add the unsupported storage, network interface card to ESXi 4.x.
This is un-supported by VMware, your mileage and stability of your OS could be affected. Unfortunately, this cannot be discussed on some IT Technology websites, due to breach of their policy, possibly it is classified as “hacking” – this is a grey area.
I have some Qlogic QLE-220 4GB Fibre Channel PCI-Express cards, these are not listed on the VMware Hardware Compatibility List. You can quickly deduce if the hardware is not supported because ESXi 4.x, will not load the drivers at Bootup, and the devices will be missing from Network or Storage Adaptors.
From previous experience I know that the Qlogic QLE-220 uses the same driver as the qla2xxx.o (module driver), the reason it is not recognised in ESXi 4.x, is because the PCI ID is not present in the “simple.map” file on ESXi. (you may need to add you module!)
ESXi 4.1 U1 Storage Adaptors listed in vSphere GUI Client before tweak
A. Finding the PCI ID
I need to find the PCI ID for the un-supported network or storage device. The PCI ID can be obtain in two ways, you could check the The PCI ID Repository, and check if the device has been added and available (Qlogic QLE-220 is here http://pci-ids.ucw.cz/read/PC/1077/5432). The PCI ID is in two parts, the first four characters are the Vendor ID, and the second four characters are the Device ID. But as I’ve got to install this in the ESXi server, it can be verfied by using the lspci -v command. With these devices, ESXi is able to recognize the devices and thus includes the device name.
output from lspci -v
from the output of lspci -v
000:002:00.0 Fibre Channel Serial bus controller: QLogic Corp SP232-based 4Gb Fibre Channel to PCI Express HBA
Class 0c04: 1077:5432
Vendor Id: 1077, Device Id: 5432
B. Adding the device to the mapping file
These values needed to be added to files called “simple.map and pci.ids”, which is contained in a file called oem.tgz. This is how we add the vendor and device id
- cd /tmp/
- mkdir -p oem/etc/vmware
- cd oem/etc/vmware
- cp /etc/vmware/simple.map simple.map
- vi simple.map (add PCI IDs as found above)
-
simple.map modified with vendor id and device id
- Exit vi – press ESC and enter :wq
- cp /etc/vmware/pci.ids pci.ids
- vi pci.ids (this file is self-explanotory, it’s the description of the controller)
-
pci.ids already contains a description for my device!
- Exit vi – press ESC and enter :wq
- cd /tmp/oem
- tar -cvzf oem.tgz etc
- cp oem.tgz /bootbank/oem.tgz
- restart ESXi host.
At ESXi bootup, you will see the driver load, Fibre Channel adaptors always take a while to load the modules.
The following vSphere GUI client Storage Adaptors screenshots confirms the drivers have been loaded
ESXi 4.1 U1 Storage Adaptors listed in vSphere GUI Client after tweak
I just need to find some fibre cable, 4GB FC Switches, and spare LUNs for testing!
At the ESXi console you can also use esxcfg-module -l (-q) to check for the module loaded (driver). You can also use this to load the module for testing.
I’ll be investigating ESXi 5.0 later this week.
UPDATE A few hours this afternoon (Tue 20th), tweaking ESXi 5.0, to provide support for the Qlogic QLE-220, and understanding how to add un-supported hardware to ESXi 5.0.
See here