In un post precedente (ESXi – Layout delle partizioni) avevo descritto le partizioni usate da ESXi e quali venivano create in fase di installazione. Le partizioni sono formattate con un filesystem FAT16, ma in realtà i file di ESXi non memorizzati in particolari file di archivio compressi all’interno dei cosidetti “banchi” (le due partizioni da 250 MB) . Questo particolare tipo di pseudo-filesystem è stato accennato nel precedente post (realativo a come resettare la password di root) ed è descritto in dettaglio nel primo numero del VMware Technical Journal, nel paper: VisorFS: A Special-purpose File System for Efficient Handling of System Images.
Quando però si installa ESXi su un disco molto piccolo o su una chiavetta USB (o in una flash card) bisogna considerare che alcune partizioni non vengono create, come ad esempio la scratch partition.
In fase di avvio, ESXi cerca di individuare una scratch location usando questo ordine preferenziale:
- The location configured in the
/etc/vmware/locker.conf
configuration file, set by theScratchConfig.ConfiguredScratchLocation
configuration option - A Fat16 filesystem of at least 4 GB on the Local Boot device.
- A Fat16 filesystem of at least 4 GB on a Local device.
- A VMFS Datastore on a Local device, in a
.locker/
directory. - A ramdisk at
/tmp/scratch/
Ma in alcuni casi il sistema potrebbe partire senza scratch causando vari problemi, come ad esempio l’impossibilità di eseguire aggiornamenti (tra l’altro VUM si limita a segnalare errori abbastanza criptici in fase di remediatio o staging). Questo perché alcune directory in realtà sono dei link simbolici a directory presenti nella scratch partition. Ad esempio: :
- /var/tmp -> /scratch/var/tmp/
- /var/core -> /scratch/core
Per maggiori dettagli vedere anche questo blog (in inglese): ESXi Scratch Partition. Per creare manualmente una scratch location persistente vedere l’articolo KB 1033696. Da vSphere Client la procedura è abbastanza semplice:
- Selezionare l’host ESXi dall’inventario.
- Andare sul tab Configuration.
- Cliccare su Storage.
- Tramite right-click su un datastore selezionare Browse.
- Creare una directory univoca per l’host ESXi (ad esempio:
.locker-ESXHostname
) - Chiudere il Datastore Browser.
- Andare su Advanced Settings, sotto la sezione Software.
- Selezionare la sezione ScratchConfig.
- Cambiare l’opzione
ScratchConfig.ConfiguredScrathLocation specificando il percorso della directory (che deve essere univoco per ogni host ESXi). Ad esempio:
/vmfs/volumes/DatastoreName/.locker-ESXHostname
- Abilitare l’opzion ScratchConfig.ConfiguredSwapState (recommended as this is a requirement for HA: see KB 1004177)
- Mettere l’host ESXi in maintenance mode e riavviarlo per attivare la nuova configurazione.