ESXi Installationen benötigen recht wenig Speicherplatz auf dem Bootmedium. Daher wird anstelle einer Festplatte (und SCSI Controller) gerne ein kleines und kostengünstiges Flash Medium zum Booten verwendet. Des kann eine SD-Karte sein, oder ein USB-Flashmedium.
Die Qualität dieser Flashmedien variiert stark. Teilweise sogar von Charge zu Charge des gleichen Herstellers. Starkes Schreibverhalten, aber auch Lesezugriffe können die Lebenszeit dieser Medien deutlich verkürzen. In jüngster Zeit musste ich immer wieder feststellen, daß Bootmedien schon nach weniger als einem Jahr beschädigt waren. So lange der Server läuft ist dies kein größeres Problem, da alle für den Betrieb wichtigen Komponenten ins RAM geladen werden. Nicht jedoch die VMtools-Images. Diese werden von der VM angefragt und vom Flashmedium gelesen. Besonders in VDI Umgebungen kann die hohe Leserate das Medium verbrennen.
VMware hat das Problem erkannt und dafür eine Lösung programmiert. Diese ist seit Version ESXi 6.0 U3 verfügbar, muss aber manuell aktiviert werden. Die Umgehung des Problems liegt darin, daß beim Bootvorgang die Tools-Images auf die RAMDisk gelegt werden. Lesevorgänge schädigen somit nicht mehr das Medium und die Lebenszeit der Medien werden verlängert.
Ich zeige hier, wie man die Option über Web-Client, PowerCLI oder ESXi Shell einstellen kann.
PowerCLI
Connect-VIServer <myVC>
Werte abfragen
Get-VMHost | Get-AdvancedSetting -Name UserVars.ToolsRamdisk | Select Entity, Name, Value
Wert setzen
Wert auf einem bestimmten Host setzen:
Get-VMHost esx1.mydomain.local | Get-AdvancedSetting -Name UserVars.ToolsRamdisk | Set-AdvancedSetting -Value 1 -Confirm:$false
Wert auf allen Hosts setzen (Vorsicht!)
Get-VMHost | Get-AdvancedSetting -Name UserVars.ToolsRamdisk | Set-AdvancedSetting -Value 1 -Confirm:$false
Damit die Einstellung greift, muss der Host neu gestartet werden.
ESXCLI
Alternativ kann man die Option auch auf der Shell setzen. Dazu verbindet man sich per SSH auf den Host.
esxcli system settings advanced set -o /UserVars/ToolsRamdisk -i 1
Auch nach dieser Methode ist ein Reboot fällig.
Der Nachteil im Vergleich zur PowerCLI Methode ist der, dass man eine Verbindung zu jedem ESXi Host einzeln aufbauen muss und auf diesem ggf. zuvor auch den SSH-Server muss.
Web-Client
Dies ist die Methode für alle, die nicht gerne auf Command-Shells arbeiten.
In der Ansicht Hosts und Cluster den Host wählen -> Manage -> Settings -> Advanced System Settings.
Filter setzen auf “ramdisk”.
Ein Wert von 0 bedeutet, dass die Option nicht aktiviert ist. Den Wert auf 1 setzen.
Links
KB 2149257 – High frequency of read operations on VMware Tools image may cause SD card corruption