Archives par étiquette : ESXi

Compilation d’un pilote additionnel pour ESXi 5.0

Lors du montage de ma white box ESXi 5.0, j’ai voulu essayer d’utiliser un contrôleur SIL 3124 pour ajouter 4 ports SATA en passthrough. Mon idée originelle était de déléguer ce contrôleur (non supporté en natif par ESXi) à une VM OpenIndiana (OpenSolaris). Cependant dès que je rajoute la carte SATA dans le PC, la fonctionnalité direct IO d’ESXi est désactivée…

Je me suis alors demandé si cela venait du fait que le contrôleur n’était pas reconnu par ESXi. J’ai donc voulu rajouter un driver pour voir ce qu’il en était.

Trouver des drivers pour votre white box ESXi

Une bonne source pour trouver les drivers manquants à ESXi est http://www.vm-help.com, et plus particulièrement le forum.
Cependant dans mon cas, le driver pour le SIL 3124 n’existe pour ESXi 4 et n’est pas compatible avec ESXi 5 (à cause de symboles manquants). Voir ce topic

Compiler les drivers d’ESXi 5.0

ESXi n’est pas basé sur le noyau Linux. Il dispose cependant d’un module lui permettant d’utiliser les pilotes de ce dernier.
VMWare a recemment mis à disposition du public les sources de ces pilotes: VMware-esx-public-source-5.0.0-434156.tar.gz.

Pour compiler un module ESXi, j’ai utilisé une VM CentOS 5.8, avec les packages de développement (gcc, binutils, etc.) dont les versions sont compatibles avec ESXi 5.0.

Il suffit alors d’extraire le fichier vmkdrivers-gpl.tgz planqué au fin fond de l’archive téléchargée sur le site VMWare (VMware-esx-public-source-5.0.0-434156.tar.gz\\build\mts\release\bora-460350\publish\VMware-esx-public-source-5.0.0-434156.tar\vmkdrivers-gpl.tgz\\build\mts\release\bora-460350\rm-rd-tools\osspkg\build\workingarea\esx\vmkdrivers-gpl.tgz).

Une fois cette archive décompressée dans un répertoire de travail, il suffit d’éditer le fichier build-vmkdrivers.sh en indiquant les paths vers gcc et LD dans les variables appropriées:

#!/bin/sh
# Use gcc version 4.1.2-9
# Below is the internal VMWare location.  Please change as required for your
# installed location.
CC=/usr/bin/gcc

# Use ld from binutils-2.17.50.0.15-modcall
# Below is the internal VMWare location.  Please change as required for your
# installed location.
LD=/usr/bin/ld
...

Il suffit alors d’exécuter le script qui devrait compiler les modules inclus dans ESXi (avec un certain nombre de warnings de compilation).

Ajouter un driver

Pour compiler le pilote pour le chipset SIL 3124, il faut récupérer son code source depuis les sources du noyau linux (2.6.25 dans mon cas): sata_sil24.c.
Le plus simple est ensuite de créer une copie du script de compilation ne comprenant que notre nouveau pilote:

build-vmkdrivers2.sh 
#!/bin/sh

# Use gcc version 4.1.2-9
# Below is the internal VMWare location.  Please change as required for your
# installed location.
CC=/build/toolchain/lin32/gcc-4.1.2-9/bin/x86_64-linux-gcc
CC=/usr/bin/gcc

# Use ld from binutils-2.17.50.0.15-modcall
# Below is the internal VMWare location.  Please change as required for your
# installed location.
LD=/build/toolchain/lin32/binutils-2.17.50.0.15-modcall/bin/x86_64-linux-ld
LD=/usr/bin/ld

# Use GNU grep 2.5.1
GREP=grep
# Use GNU sed 4.5.1
SED=sed
# Use GNU xargs 4.2.27
XARGS=xargs
# Use mkdir from GNU coreutils 5.97
MKDIR=mkdir

# Create output directories
$GREP -v -e "SED" build-vmkdrivers2.sh \
| $GREP -o -e "-o [^ ]*\."            \
| $SED -e 's?-o \(.*\)/[^/]*\.?\1?'   \
| $GREP -v -e "\*"                    \
| $XARGS $MKDIR -p

# Compiler flags assume being compiled natively on a x86-64 machine
$CC -fwrapv -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -Wall -Werror -Wstrict-prototypes -fPIE -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -mcmodel=small -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib --sysroot=/nowhere -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil24\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_VERSION=\"1.1\" -DMODULE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_9/include -Ivmkdrivers/src_9/include/vmklinux_9 -IBLD/build/HEADERS/CUR-9-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil24 -include bora/vmkernel/distribute/push-hidden.h -include vmkdrivers/src_9/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil24.o vmkdrivers/src_9/drivers/ata/sata_sil24.c
$CC -fwrapv -fno-working-directory -g -ggdb3 -O2 -fno-strict-aliasing -Wall -Werror -Wstrict-prototypes -fPIE -falign-functions=4 -falign-jumps=4 -falign-loops=4 -ffreestanding -fno-common -fno-omit-frame-pointer -fno-strength-reduce -march=x86-64 -mcmodel=small -minline-all-stringops -mno-red-zone -nostartfiles -nostdlib --sysroot=/nowhere -Wall -Wdeclaration-after-statement -Wno-unused-value -Wno-pointer-sign -Wno-strict-prototypes -Wno-declaration-after-statement -Wno-declaration-after-statement -DCONFIG_COMPAT -DCPU=x86-64 -DDEBUG_STUB -DEXPORT_SYMTAB -DGPLED_CODE -DKBUILD_MODNAME=\"sata_sil24\" -DLINUX_MODULE_AUX_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_HEAP_INITIAL=64*1024 -DLINUX_MODULE_HEAP_MAX=8*1024*1024 -DLINUX_MODULE_HEAP_NAME=vmklnx_sata_sil24 -DLINUX_MODULE_VERSION=\"1.1\" -DMODULE -DVMKERNEL_MODULE -DVMK_DEVKIT_HAS_API_VMKAPI_BASE -DVMK_DEVKIT_HAS_API_VMKAPI_DEVICE -DVMK_DEVKIT_HAS_API_VMKAPI_ISCSI -DVMK_DEVKIT_HAS_API_VMKAPI_NET -DVMK_DEVKIT_HAS_API_VMKAPI_SCSI -DVMK_DEVKIT_IS_DDK -DVMK_DEVKIT_USES_BINARY_COMPATIBLE_APIS -DVMK_DEVKIT_USES_PUBLIC_APIS -DVMNIX -DVMX86_RELEASE -DVMX86_SERVER -DVMX86_VPROBES -D_LINUX -D_VMKDRVEI -D__KERNEL__ -D__VMKERNEL_MODULE__ -D__VMKERNEL__ -D__VMKLNX__ -D__VMK_GCC_BUG_ALIGNMENT_PADDING__ -D__VMWARE__ -Ivmkdrivers/src_9/drivers/ata -IBLD/build/version -IBLD/build/HEADERS/vmkdrivers-vmkernel/vmkernel64/release -Ivmkdrivers/src_9/include -Ivmkdrivers/src_9/include/vmklinux_9 -IBLD/build/HEADERS/CUR-9-vmkdrivers-asm-x64/vmkernel64/release -IBLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release -IBLD/build/HEADERS/CUR-9-vmkdrivers-namespace/vmkernel64/release/sata_sil24 -include bora/vmkernel/distribute/push-hidden.h -include vmkdrivers/src_9/include/linux/autoconf.h -c -o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/common/vmklinux_module.o vmkdrivers/src_9/common/vmklinux_module.c
$LD -r -o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/sata_sil24 --whole-archive BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/drivers/ata/sata_sil24.o BLD/build/vmkdriver-sata_sil24-CUR/release/vmkernel64/SUBDIRS/vmkdrivers/src_9/common/vmklinux_module.o

La compilation se déroule sans erreurs, mais comme déjà lu sur le forum de vm-help, le module ne peut etre loadé sur ESXi à cause de symboles manquants (ata_eh_freeze_port, sata_link_debounce, and ata_link_abort)…
En fouillant dans les sources fournies par VMWare, j’ai fini par me rendre compte qu’ils avaient décidé de ne pas exporter l’intégralité des symboles normalement fournis par la libata ! Voir les #ifdef dans vmkdrivers/src_9/drivers/ata/libata-core.c.

La solution propre consisterait à re-délivrer une nouvelle libata avec les symboles exportés. J’ai cependant craint d’impacter les drivers existants, et j’ai donc décidé de faire un patch bien sale pour mes tests, en copiant/collant l’implémentation des fonctions manquantes dans mon sata_sil24.c…

Le module compilé a le mérite de fonctionner : ma carte a été reconnue par ESXi et j’ai pu utiliser les 3 disques durs qui y étaient reliés.

Références

Le topic Sil3132 sur vm-help.com
Utilitaire de packaging des fichiers VIB
Création de fichiers VIB
http://www.kernelcrash.com/blog/using-a-marvell-lan-card-with-esxi-4/2009/08/22/

Mise à jour ESXi 5.0 vers 5.0 update 1

La mise à jour update 1 d’ESXi 5 vient de sortir.
La procédure est légèrement différente des mises à jour habituelles (penser à passer en mode maintenance) :

/vmfs/volumes/4f1f2f1e-c1da1431-02c2-0018f3b637cb # wget http://hostupdate.vmware.com/software/VUM/OFFLINE/release-328-20120312-212851/update-from-esxi5.0-5.0_update01.zip
Connecting to hostupdate.vmware.com (2.18.99.51:80)
update-from-esxi5.0- 100% |*****************************************************************************************************************************|   563M 00:00:00 ETA
/vmfs/volumes/4f1f2f1e-c1da1431-02c2-0018f3b637cb # esxcli software sources profile list -d /vmfs/volumes/datastore1/update-from-esxi5.0-5.0_update01.zip
Name                              Vendor        Acceptance Level
--------------------------------  ------------  ----------------
ESXi-5.0.0-20120302001-standard   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120302001-no-tools   VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120301001s-standard  VMware, Inc.  PartnerSupported
ESXi-5.0.0-20120301001s-no-tools  VMware, Inc.  PartnerSupported


/vmfs/volumes/4f1f2f1e-c1da1431-02c2-0018f3b637cb # esxcli software profile update -d /vmfs/volumes/datastore1/update-from-esxi5.0-5.0_update01.zip -p ESXi-5.0.0-20120302001-standard
Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMware_bootbank_ehci-ehci-hcd_1.0-3vmw.500.1.11.623860, VMware_bootbank_esx-base_5.0.0-1.11.623860, VMware_bootbank_misc-drivers_5.0.0-1.11.623860, VMware_bootbank_net-e1000e_1.1.2-3vmw.500.1.11.623860, VMware_bootbank_net-nx-nic_4.0.557-3vmw.500.1.11.623860, VMware_bootbank_sata-ahci_3.0-6vmw.500.1.11.623860, VMware_bootbank_sata-ata-piix_2.12-4vmw.500.1.11.623860, VMware_bootbank_scsi-aacraid_1.1.5.1-9vmw.500.1.11.623860, VMware_bootbank_scsi-megaraid-sas_5.34-1vmw.500.1.11.623860, VMware_bootbank_scsi-mpt2sas_06.00.00.00-6vmw.500.1.11.623860, VMware_bootbank_scsi-rste_2.0.2.0088-1vmw.500.1.11.623860, VMware_locker_tools-light_5.0.0-1.11.623860
   VIBs Removed: VMware_bootbank_ehci-ehci-hcd_1.0-3vmw.500.0.0.469512, VMware_bootbank_esx-base_5.0.0-0.7.515841, VMware_bootbank_misc-drivers_5.0.0-0.7.515841, VMware_bootbank_net-e1000e_1.1.2-3vmw.500.0.7.515841, VMware_bootbank_net-nx-nic_4.0.557-3vmw.500.0.0.469512, VMware_bootbank_sata-ahci_3.0-6vmw.500.0.0.469512, VMware_bootbank_sata-ata-piix_2.12-4vmw.500.0.0.469512, VMware_bootbank_scsi-aacraid_1.1.5.1-9vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid-sas_4.32-1vmw.500.0.0.469512, VMware_bootbank_scsi-mpt2sas_06.00.00.00-5vmw.500.0.0.469512
   VIBs Skipped: VMware_bootbank_ata-pata-amd_0.3.10-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-atiixp_0.4.6-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-cmd64x_0.2.5-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-hpt3x2n_0.3.4-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-pdc2027x_1.0-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-serverworks_0.4.3-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-sil680_0.4.8-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-via_0.3.3-2vmw.500.0.0.469512, VMware_bootbank_block-cciss_3.6.14-10vmw.500.0.0.469512, VMware_bootbank_esx-tboot_5.0.0-0.0.469512, VMware_bootbank_ima-qla4xxx_2.01.07-1vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-devintf_39.1-4vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-msghandler_39.1-4vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.500.0.0.469512, VMware_bootbank_misc-cnic-register_1.1-1vmw.500.0.0.469512, VMware_bootbank_net-be2net_4.0.88.0-1vmw.500.0.7.515841, VMware_bootbank_net-bnx2_2.0.15g.v50.11-5vmw.500.0.0.469512, VMware_bootbank_net-bnx2x_1.61.15.v50.1-1vmw.500.0.0.469512, VMware_bootbank_net-cnic_1.10.2j.v50.7-2vmw.500.0.0.469512, VMware_bootbank_net-e1000_8.0.3.1-2vmw.500.0.7.515841, VMware_bootbank_net-enic_1.4.2.15a-1vmw.500.0.0.469512, VMware_bootbank_net-forcedeth_0.61-2vmw.500.0.0.469512, VMware_bootbank_net-igb_2.1.11.1-3vmw.500.0.0.469512, VMware_bootbank_net-ixgbe_2.0.84.8.2-10vmw.500.0.0.469512, VMware_bootbank_net-r8168_8.013.00-3vmw.500.0.0.469512, VMware_bootbank_net-r8169_6.011.00-2vmw.500.0.0.469512, VMware_bootbank_net-s2io_2.1.4.13427-3vmw.500.0.0.469512, VMware_bootbank_net-sky2_1.20-2vmw.500.0.0.469512, VMware_bootbank_net-tg3_3.110h.v50.4-4vmw.500.0.0.469512, VMware_bootbank_ohci-usb-ohci_1.0-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-nv_3.5-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-promise_2.12-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-sil_2.3-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-svw_2.3-3vmw.500.0.0.469512, VMware_bootbank_scsi-adp94xx_1.0.8.12-6vmw.500.0.0.469512, VMware_bootbank_scsi-aic79xx_3.1-5vmw.500.0.0.469512, VMware_bootbank_scsi-bnx2i_1.9.1d.v50.1-3vmw.500.0.0.469512, VMware_bootbank_scsi-fnic_1.5.0.3-1vmw.500.0.0.469512, VMware_bootbank_scsi-hpsa_5.0.0-17vmw.500.0.0.469512, VMware_bootbank_scsi-ips_7.12.05-4vmw.500.0.0.469512, VMware_bootbank_scsi-lpfc820_8.2.2.1-18vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid-mbox_2.20.5.1-6vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid2_2.00.4-9vmw.500.0.0.469512, VMware_bootbank_scsi-mptsas_4.23.01.00-5vmw.500.0.0.469512, VMware_bootbank_scsi-mptspi_4.23.01.00-5vmw.500.0.0.469512, VMware_bootbank_scsi-qla2xxx_901.k1.1-14vmw.500.0.0.469512, VMware_bootbank_scsi-qla4xxx_5.01.03.2-3vmw.500.0.0.469512, VMware_bootbank_uhci-usb-uhci_1.0-3vmw.500.0.0.469512

Voir aussi : http://www.kasraeian.com/2012/03/updating-esxi-5-0-to-esxi-5-0-update-1/

Dell OpenManage 6.5 enfin disponible pour ESXI 5.0

Dell vient enfin de sortir une mise à jour d’OpenManage 6.5 compatbile avec ESXI 5.0.

Le package VIB peut-être téléchargé ici.

Une fois téléchargé sur l’hôte, l’installation est simple :

/vmfs/volumes/4e5be3fd-b70bca00-7964-bc305bdf94b9 # esxcli software vib install -d /vmfs/volumes/datastore1/OM-SrvAdmin-Dell-Web-6.5.0-542907.VIB-ESX50i_A02.zip
Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: Dell_bootbank_OpenManage_6.5-0000
   VIBs Removed:
   VIBs Skipped:

Installation de mise à jour ESXi 5.0

La mise à jour d’un hôte ESXi 5.0 est très similaire à celle d’un hôte 4.1 (voir mon article pour ESXi 4.1). Cependant, les commandes à exécuter ont légèrement changé : il faut désormais utilier la commande

esxcli software vib update -d fichier_bundle.zip

au lieu d’esxupdate.

Voici un exemple complet :

~ # cd /vmfs/volumes/datastore1/
/vmfs/volumes/4e5be3fd-b70bca00-7964-bc305bdf94b9 # wget http://hostupdate.vmware.com/software/VUM/OFFLINE/release-313-20110906-767411/ESXi500-201109001.zip
Connecting to hostupdate.vmware.com (2.18.131.51:80)
ESXi500-201109001.zi 100% |*************************************************************************************************|   281M 00:00:00 ETA
/vmfs/volumes/4e5be3fd-b70bca00-7964-bc305bdf94b9 # esxcli software vib update -d /vmfs/volumes/datastore1/ESXi500-201109001.zip
Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMware_bootbank_esx-base_5.0.0-0.3.474610, VMware_locker_tools-light_5.0.0-0.3.474610
   VIBs Removed: VMware_bootbank_esx-base_5.0.0-0.0.469512, VMware_locker_tools-light_5.0.0-0.0.469512
   VIBs Skipped: VMware_bootbank_ata-pata-amd_0.3.10-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-atiixp_0.4.6-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-cmd64x_0.2.5-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-hpt3x2n_0.3.4-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-pdc2027x_1.0-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-serverworks_0.4.3-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-sil680_0.4.8-3vmw.500.0.0.469512, VMware_bootbank_ata-pata-via_0.3.3-2vmw.500.0.0.469512, VMware_bootbank_block-cciss_3.6.14-10vmw.500.0.0.469512, VMware_bootbank_ehci-ehci-hcd_1.0-3vmw.500.0.0.469512, VMware_bootbank_esx-tboot_5.0.0-0.0.469512, VMware_bootbank_ima-qla4xxx_2.01.07-1vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-devintf_39.1-4vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-msghandler_39.1-4vmw.500.0.0.469512, VMware_bootbank_ipmi-ipmi-si-drv_39.1-4vmw.500.0.0.469512, VMware_bootbank_misc-cnic-register_1.1-1vmw.500.0.0.469512, VMware_bootbank_misc-drivers_5.0.0-0.0.469512, VMware_bootbank_net-be2net_4.0.88.0-1vmw.500.0.0.469512, VMware_bootbank_net-bnx2_2.0.15g.v50.11-5vmw.500.0.0.469512, VMware_bootbank_net-bnx2x_1.61.15.v50.1-1vmw.500.0.0.469512, VMware_bootbank_net-cnic_1.10.2j.v50.7-2vmw.500.0.0.469512, VMware_bootbank_net-e1000_8.0.3.1-2vmw.500.0.0.469512, VMware_bootbank_net-e1000e_1.1.2-3vmw.500.0.0.469512, VMware_bootbank_net-enic_1.4.2.15a-1vmw.500.0.0.469512, VMware_bootbank_net-forcedeth_0.61-2vmw.500.0.0.469512, VMware_bootbank_net-igb_2.1.11.1-3vmw.500.0.0.469512, VMware_bootbank_net-ixgbe_2.0.84.8.2-10vmw.500.0.0.469512, VMware_bootbank_net-nx-nic_4.0.557-3vmw.500.0.0.469512, VMware_bootbank_net-r8168_8.013.00-3vmw.500.0.0.469512, VMware_bootbank_net-r8169_6.011.00-2vmw.500.0.0.469512, VMware_bootbank_net-s2io_2.1.4.13427-3vmw.500.0.0.469512, VMware_bootbank_net-sky2_1.20-2vmw.500.0.0.469512, VMware_bootbank_net-tg3_3.110h.v50.4-4vmw.500.0.0.469512, VMware_bootbank_ohci-usb-ohci_1.0-3vmw.500.0.0.469512, VMware_bootbank_sata-ahci_3.0-6vmw.500.0.0.469512, VMware_bootbank_sata-ata-piix_2.12-4vmw.500.0.0.469512, VMware_bootbank_sata-sata-nv_3.5-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-promise_2.12-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-sil_2.3-3vmw.500.0.0.469512, VMware_bootbank_sata-sata-svw_2.3-3vmw.500.0.0.469512, VMware_bootbank_scsi-aacraid_1.1.5.1-9vmw.500.0.0.469512, VMware_bootbank_scsi-adp94xx_1.0.8.12-6vmw.500.0.0.469512, VMware_bootbank_scsi-aic79xx_3.1-5vmw.500.0.0.469512, VMware_bootbank_scsi-bnx2i_1.9.1d.v50.1-3vmw.500.0.0.469512, VMware_bootbank_scsi-fnic_1.5.0.3-1vmw.500.0.0.469512, VMware_bootbank_scsi-hpsa_5.0.0-17vmw.500.0.0.469512, VMware_bootbank_scsi-ips_7.12.05-4vmw.500.0.0.469512, VMware_bootbank_scsi-lpfc820_8.2.2.1-18vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid-mbox_2.20.5.1-6vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid-sas_4.32-1vmw.500.0.0.469512, VMware_bootbank_scsi-megaraid2_2.00.4-9vmw.500.0.0.469512, VMware_bootbank_scsi-mpt2sas_06.00.00.00-5vmw.500.0.0.469512, VMware_bootbank_scsi-mptsas_4.23.01.00-5vmw.500.0.0.469512, VMware_bootbank_scsi-mptspi_4.23.01.00-5vmw.500.0.0.469512, VMware_bootbank_scsi-qla2xxx_901.k1.1-14vmw.500.0.0.469512, VMware_bootbank_scsi-qla4xxx_5.01.03.2-3vmw.500.0.0.469512, VMware_bootbank_uhci-usb-uhci_1.0-3vmw.500.0.0.469512

Il est possible d’utiliser l’option ‘–dry-run’ pour simuler l’installation.

Installation de mise à jour ESXi 4.1

La version gratuite d’ESXi ne propose malheureusement pas de mise à jour automatique (ce qui est assez regrettable lorsque toutes les distributions linux le proposent…). Il est donc nécessaire de les récupérer et installer à la main.
L’offre dedibox sur laquelle je viens de passer propose ESXi 4.1 U1 en installation automatique. Cependant des mises à jours sont déjà disponibles.

Récupération des mises à jour

La liste des patchs disponibles peut être consultée (par produit) sur le site de VMWare : http://www.vmware.com/patch/download/

Une fois l’URL récupérée, il faut utiliser la console de maintenance pour l’installer. Vu la bande passante disponible sur le serveur, il est plus rapide de la télécharger directement depuis celui-ci plutôt que de l’uploader via le vSphere client.

cd /vmfs/volumes/datastore1/
wget http://hostupdate.vmware.com/software/VUM/OFFLINE/release-276-20110420-682352/ESXi410-201104001.zip

Une fois le téléchargement terminé, il est possible de contrôler le contenu du patch :

/vmfs/volumes/4dd56b07-e972f1d9-f727-bc305bd712f3 # esxupdate info --bundle=ESXi410-201104001.zip
   ID           - ESXi410-201104401-SG
   Release Date - 2011-04-28T08:00:00
   Vendor       - VMware, Inc.
   Summary      - Updates Firmware
   Severity     - security
   Urgency      - critical
   Category     - securityfix
   Install Date -
   Description  - For more information, see http://kb.vmware.com/kb/1035108.
   KB URL       - http://kb.vmware.com/kb/1035108
   Contact      - http://www.vmware.com/support/contacts/
   Compliant    - False
   RebootRequired          - True
   HostdRestart            - False
   RequiresMaintenanceMode - True
   List of constituent VIBs:
      deb_vmware-esx-firmware_4.1.0-1.6.381591

   ID           - ESXi410-201104402-BG
   Release Date - 2011-04-28T08:00:00
   Vendor       - VMware, Inc.
   Summary      - Updates VMware Tools
   Severity     - critical
   Urgency      - important
   Category     - bugfix
   Install Date -
   Description  - For more information, see http://kb.vmware.com/kb/1035109.
   KB URL       - http://kb.vmware.com/kb/1035109
   Contact      - http://www.vmware.com/support/contacts/
   Compliant    - False
   RebootRequired          - False
   HostdRestart            - False
   RequiresMaintenanceMode - False
   List of constituent VIBs:
      deb_vmware-esx-tools-light_4.1.0-1.6.381591

Répertoires manquants

J’ai rencontré des erreurs lors de l’exécution de certaines commandes. Il semblerait que certains répertoires ne soient pas créés correctement :

/vmfs/volumes/4dd56b07-e972f1d9-f727-bc305bd712f3 # esxupdate info -m ESXi410-201104001.zip
Encountered error FileIOError:
The error data is:
   Filename    - /var/tmp/cache/metadata1592750352
   Message     - Cannot create dir /var/tmp/cache/metadata1592750352: [Errno 17]
                 File exists: '/var/tmp'
   Errno       - 10
   Description - Unable to create, write or read a file as expected.

Certains liens symboliques sont invalides. Ceci se corrige simplement :

mkdir -p  /tmp/scratch/var/tmp/cache

Mise à jour

Pour installer le patch, il est nécessaire de passer l’hôte en mode maintenance :

/vmfs/volumes/4dd2fb9a-6501f76c-4f41-000c29e4a056 # esxupdate update --bundle=ESXi410-201104001.zip
Encountered error MaintenanceModeError:
The error data is:
   Message     - The following VIBs require this host to be in maintenance mode:
                 deb_vmware-esx-firmware_4.1.0-1.6.381591. Please put the host
                 in maintenance mode to proceed.
   Errno       - 18
   Description - Maintenance mode is not enabled or could not be determined.

Ceci nécessite l’arrêt ou la suspension des machines virtuelles. Lors de mon premier essai, je les ai suspendues. Cependant, j’ai eu des problèmes de connectivité réseau au réveil. Je recommanderais donc des les stopper.
Le passage en mode maintenance s’effectue aisément avec le client vSphere, en choisissant l’option « entrer en mode maintenance » dans le menu contextuel de l’hôte.

On peut alors lancer la mise à jour dans la console de maintenance :

/vmfs/volumes/4dd2fb9a-6501f76c-4f41-000c29e4a056 # esxupdate update --bundle=ESXi410-201104001.zip
Unpacking deb_vmware-esx-tools-light_4.1.0-1.6.381591 ######################################################################### [100%]

Unpacking deb_vmware-esx-firmware_4.1.0-1.6.381591    ######################################################################### [100%]

Removing packages :vmware-esx-tools-light             ######################################################################### [100%]

Installing packages :deb_vmware-esx-firmware_4.1.0-.. ######################################################################### [100%]

Installing packages :deb_vmware-esx-tools-light_4.1.. ######################################################################### [100%]

The update completed successfully, but the system needs to be rebooted for the
changes to be effective.

Il ne reste alors plus qu’à redémarrer l’hôte, désactiver le mode maintenance et relancer les machines virtuelles.

Abonnement à la mailing list

Afin d’être prévenu de la sortie de nouvelles mises à jour, il est possible de s’inscrire à la mailing list de VMWare :
https://www.vmware.com/mysupport/subscription.portal

Références

http://blog.stephane-grillot.fr/?p=5