Accélerer le boot de vos ESXi 5.x (maj)

MAJ du 14/05/2013 : petite précision sur les locks SCSI associés.

Si vous utilisez beaucoup les Raw Device Mappings, ou RDM dans le jargon VMWare, vous avez sans doute noté un ralentissement notoire de vos ESXi lors de reboot pour maintenance ou mises à jour diverses. En fait, ce ralentissement est dû au polling de toutes les LUNs RDM, notamment pour détecter d’éventuels VMFS, qui peut être ralenti à cause de locks SCSI (notamment les RDM utilisés par des clusters MSCS).

Pour accélérer à nouveau tout cela, deux commandes magiques sont à votre disposition (directement sur les ESXi avec Shell d’administration activé ou via une machine virtuelle VMA) :

vi-admin@vma:~$ esxcfg-scsidevs --server esx******* --username root --password ********* -c
Device UID Device Type Console Device Size Plugin Display Name
mpx.vmhba33:C0:T0:L0 cdrom /vmfs/devices/cdrom/mpx.vmhba33:C0:T0:L0 0MB NMP Local USB CD-ROM (mpx.vmhba33:C0:T0:L0)
mpx.vmhba1:C0:T0:L0 cdrom /vmfs/devices/cdrom/mpx.vmhba1:C0:T0:L0 0MB NMP Local TEAC CD-ROM (mpx.vmhba1:C0:T0:L0)
t10.DP______BACKPLANE000000 enclosure /vmfs/devices/genscsi/t10.DP______BACKPLANE000000 0MB NMP local_bp
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 3145728MB NMP vplex_rdm_diska
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 20480MB NMP vplex_rdm_diskb
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 10240MB NMP vplex_rdm_diskc
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.6842b2b0xxxxxxxxxxxxxxxxxxxxxxxx 69376MB NMP Local DELL Disk
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 1536000MB NMP vplex_vmfs3
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 1536000MB NMP vplex_vmfs2
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 1024MB NMP vplex_rdm_diskd
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 5120MB NMP vplex_rdm_diske
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 819200MB NMP vplex_rdm_diskf
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 1536000MB NMP vplex_vmfs1
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 1536000MB NMP vplex_vmfs5
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 1536000MB NMP vplex_vmfs0
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 4194304MB NMP vplex_rdm_diskg
naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx disk /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxxxxxxx 1536000MB NMP vplex_vmfs4

Cette commande va vous lister l’ensemble des devices détectés sur le serveur ESXi cible. Une fois que vous avez repéré les « naa » correspondant à vos devices RDM, vous pouvez définitivement les exclure du polling de boot via la commande suivante :

vi-admin@vma:~$ esxcli --server esx******* --username root --password ********* storage core device setconfig -d naa.60001440xxxxxxxxxxxxxxxxxxx --perennially-reserved=true

Et enfin, contrôler que la commande est bien passée :

vi-admin@vma:~$ esxcli --server esx******* --username root --password ********* storage core device list -d naa.60001440xxxxxxxxxxxxxxxxxxx
naa.60001440xxxxxxxxxxxxxxxxxxx
 Display Name: vplex_rdm_diska
 Has Settable Display Name: true
 Size: 10240
 Device Type: Direct-Access
 Multipath Plugin: NMP
 Devfs Path: /vmfs/devices/disks/naa.60001440xxxxxxxxxxxxxxxxxxx
 Vendor: EMC
 Model: Invista
 Revision: 5100
 SCSI Level: 4
 Is Pseudo: false
 Status: on
 Is RDM Capable: true
 Is Local: false
 Is Removable: false
 Is SSD: false
 Is Offline: false
 Is Perennially Reserved: true
 Queue Full Sample Size: 0
 Queue Full Threshold: 0
 Thin Provisioning Status: unknown
 Attached Filters:
 VAAI Status: unsupported
 Other UIDs: vml.020016000060001440xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 Is Local SAS Device: false
 Is Boot USB Device: false

Appliqué à tous les RDM de votre serveur, vous verrez le temps de boot redevenir raisonnable (quelques minutes).

Evidemment, un petit peu de script shell pour automatiser toute cela est possible. Je vous laisse plancher :)

Référence : KB1016106 chez VMWare