ESXi 6.7 et VXRail : optimisez votre bootbank

A l’occasion de la mise en oeuvre d’un nouveau cluster VXRail contenant des cartes accélératrices vGPU, nous avons été confronté à la fameuse limite de place sur le bootbank d’ESXi pré-7.0. Voici les optimisations proposées par Dell EMC qui nous ont permis de rajouter tous les VIB dont nous avions besoin.

Je ne vais pas vous faire un cours sur la gestion des drivers ESXi, d’autant que je suis loin d’être expert dans ce domaine, mais vous savez sans doute que ESXi 6.x charge ses drivers au démarrage depuis un espace disque contraint, le fameux « bootbank », limité à 250 Mo. Autant dire que quand vous avez de nombreux drivers hardware, les vib de base, VSAN, NSX-T/V et que vous devez en rajouter pour d’autres fonctions (comme, au hasard, l’accélération vGPU nVidia), la place vient vite à manquer.

C’est donc exactement ce qui nous est arrivé récemment sur un tout nouvel environnement VXRail, fraîchement installé. Nous avions besoin d’ajouter un vib spécifique nVidia pour disposer de l’accélération vGPU sur ce cluster (les noeuds étant équipés de cartes Tesla V100). En plus des drivers intégrés fournis dans les images VXRail, nous avions déjà rajouté la couche NSX-T. Tout cela ne pouvait pas rentrer dans les anémiques 250 Mo disponibles.

Nous avons donc contacté Dell EMC pour avoir des pistes d’économie en matière de driver VXRail, sans casser ni le fonctionnement ni la gestion automatisée du cycle de vie intégré à la solution. La réponse du support a été rapide et efficace. On nous a très vite fourni la liste des drivers inutiles sur VXrail mais pré-installé (à partir de l’image standard VMware sans doute). Voici la listes des vib que vous pouvez envisager de supprimer sans risque :

bnxtnet - Broadcom NetXtreme-E VMKAPI network driver, removable if no Broadcom NICs
bnxtroce - Broadcom NetXtreme-E ROCE Driver, removable if no Broadcom NICs
lpfc -  Emulex FC Driver, removable if no Emulex LPe31002 FC HBA
i40en - Network driver for Intel(R) X710/XL710/XXV710/X722 Adapters, removable if no Intel X710 NICs
igbn -  Network driver for Intel(R) 1 Gigabit Server NIC, removable if no Intel I350 NICs
ixgben - Network driver for Intel(R) 10 Gigabit NIC, removable if no Intel X520/X540/X550 NICs
nmlx5-core - Mellanox Technologies ConnectX4 Native Core Driver, removable if no Mellanox NICs
nmlx5-rdma - Mellanox Technologies ConnectX-4 Native RDMA Driver, removable if no Mellanox NICs
qedentv - QLogic QL45xxx network driver, removal able if no QLogic NICs
qedi - QLogic FastLinQ QL45xxx/QL41xxxx Series 10/25/40/50/100 GbE Controller (iSCSI), removable if no QLogic NICs
qedrntv - QLogic QL45xxx RoCE driver, removable if no QLogic NICs
qlnativefc - Qlogic Native FC driver, removable if no QLogic QLE2692 FC HBA

scsi-aacraid - aacraid: scsi driver for VMware ESX
scsi-adp94xx - adp94xx: scsi driver for VMware ESX
scsi-aic79xx - aic79xx: scsi driver for VMware ESX
scsi-fnic - fnic: scsi driver for VMware ESX
scsi-hpsa - hpsa: scsi driver for VMware ESX
scsi-ips - ips: scsi driver for VMware ESX
nfnic - Cisco UCS VIC Native fNIC driver

Pour le SCSI, sauf exception exceptionnelle, vous pouvez sans problème supprimer tous ces vib (VSAN ne les utilise pas). Pour les cartes réseau, faites d’abord un tour via la commande esxfg suivante pour voir quel driver vous utilisez effectivement :

[root@mongroserveur-esx16:~] esxcfg-nics -l
Name    PCI          Driver      Link Speed      Duplex MAC Address       MTU    Description
vmnic0  0000:1a:00.0 ixgben      Up   10000Mbps  Full   24:6e:96:9b:6f:00 1500   Intel(R) Ethernet Controller X550
vmnic1  0000:1a:00.1 ixgben      Up   10000Mbps  Full   24:6e:96:9b:6f:01 1500   Intel(R) Ethernet Controller X550
vmnic2  0000:1b:00.0 ixgben      Up   10000Mbps  Full   24:6e:96:9b:6f:02 9000   Intel(R) Ethernet Controller X550
vmnic3  0000:1b:00.1 ixgben      Up   10000Mbps  Full   24:6e:96:9b:6f:03 9000   Intel(R) Ethernet Controller X550
vusb0   Pseudo       cdce        Up   100Mbps    Full   58:8a:5a:ed:b9:71 1500   DellTM iDRAC Virtual NIC USB Device
[root@mongroserveur-esx16:~]

Ensuite, supprimez sans état d’âme tout le reste. Ici nous utilisons de l’Intel piloté via le driver ixgben. Cela nous a permis de retrouver la place nécessaire pour installer NSX-T et le VIB NVidia. Vivement ESXi 7.0 et l’extension de cet espace qui devient de plus en plus critique ;)

Pour rappel, voici les deux commandes pour retrouver la liste des drivers installé sur vos ESXi et les supprimer (n’oubliez pas de rebooter ensuite ^^)

[root@mongroserveur-esx16:~] esxcli software vib list
Name                           Version                               Vendor  Acceptance Level  Install Date
-----------------------------  ------------------------------------  ------  ----------------  ------------
bnxtnet                        216.0.42.4-1OEM.670.0.0.8169922       BCM     VMwareCertified   2020-06-25
bnxtroce                       216.0.52.2-1OEM.670.0.0.8169922       BCM     VMwareCertified   2020-06-25
dellptagent                    1.9.6-37                              DEL     VMwareAccepted    2020-06-25
dcism                          3.5.1.ESXi6-1949                      Dell    VMwareAccepted    2020-06-25
i40en                          1.9.5-1OEM.670.0.0.8169922            INT     VMwareCertified   2020-06-25
igbn                           1.4.10-1OEM.670.0.0.8169922           INT     VMwareCertified   2020-06-25
ixgben                         1.7.20-1OEM.670.0.0.8169922           INT     VMwareCertified   2020-06-25
(...)
vsan                           6.7.0-3.104.15985001                  VMware  VMwareCertified   2020-06-25
vsanhealth                     6.7.0-3.104.15984994                  VMware  VMwareCertified   2020-06-25
vsipfwlib                      2.5.1.0.0-6.7.15314343                VMware  VMwareCertified   2020-02-12
tools-light                    11.0.5.15389592-15999342              VMware  VMwareCertified   2020-06-25
platform-service               4.7.510-16222977                      VxRail  VMwareCertified   2020-06-25
[root@mongroserveur-esx16:~] esxcli software vib remove -n lpfc
Removal Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed:
   VIBs Removed: VMW_bootbank_lpfc_11.4.33.26-14vmw.670.3.104.16075168
   VIBs Skipped:
[root@mongroserveur-esx16:~]

Enfin, je ne peux que trop vous conseiller de lire ce billet VMware qui rentre en détail sur le partitionnement comparé de ESXi 6.x et ESXi 7.0.