Partition korrupt – ESXi Server kann nicht standardisiert werden

23. Oktober 2019 at 16:23

Im Rahmen eines routinemäßigen Updatezyklus ist aufgefallen das einer von rund 30 ESXi Servern nicht mit den Baselines des Updatemanagers übereinstimmt.

Versuchte man Updates zu „stagen“, so wurde der Prozess zwar zu Ende geführt, allerdings wurde kein Patch auf den Host übertragen. Der Versuch der Standardisierung endete mit einem Fehler:
Die Standardisierung schlägt fehl

Eine Analyse der Logfiles gab keine nennenswerten Anhaltspunkte. Eine Überprüfung der Diskauslastung mittels df -h brachte aber einen ersten Hinweis:
eine Partition ist voll
Zu sehen ist das die Partition /vmfs/volumes/59a9709f-9871d880-637d-48df3710bd40 voll ist. Eine weitere Überprüfung ergab das dies der Ablageort von /store ist:
die gesuchte Partition ist /store

Nun musste überprüft werden warum diese Partition voll ist und dort wartete die nächste Überraschung. Die Partition ist korrupt, was sich sehr gut an den Dateien sehen lässt:
das Dateisystem ist korrupt

Die Lösung ist nun einfach. Da noch andere Hosts mit der gleichen Buildversion vorhanden sind, ist keine Neuinstallation notwendig, sondern die Daten können von einem anderen Host kopiert werden. Dazu muss aber zuerst die korrupte Partition formatiert und das darauf befindliche Dateisystem neu angelegt werden. Um herauszufinden welche Disk und welche Partition dies betrifft, kann man den Command esxcfg-scsidevs nutzen.
[root@esx-e11:/vmfs] esxcfg-scsidevs -f
mpx.vmhba32:C0:T0:L0:8 /vmfs/devices/disks/mpx.vmhba32:C0:T0:L0:8 59a9709f-9871d880-637d-48df3710bd40
mpx.vmhba32:C0:T0:L0:6 /vmfs/devices/disks/mpx.vmhba32:C0:T0:L0:6 dfb49be8-02368c5f-a7c6-2f731d093806
mpx.vmhba32:C0:T0:L0:5 /vmfs/devices/disks/mpx.vmhba32:C0:T0:L0:5 ad331eeb-9e77009d-c624-4b768948077e
[root@esx-e11:/vmfs]

Nun kann die Partiton neu angelegt werden. Dies geschieht mit dem Befehl vmkfstools -C vfat -S vfatPrt1 /dev/disks/mpx.vmhba32:C0:T0:L0:8
Die nun angelegte Parition erhält eine neue ID, in diesem Fall ist dies 5db05684-99efdad8-cf18-48df3710bd40.

Als nächstes muss der Inhalt von /store von einem anderen ESXi Server (dieser muss dieselbe Buildnummer aufweisen) in das neue Volume des zu reparierenden Server kopiert werden.

Zum Schluss muss noch der Pointer von /store neu angelegt werden. Dafür reichen zwei Befehle aus:
[root@esx-e11:~] rm store
[root@esx-e11:~] ln -s /vmfs/volumes/5db05684-99efdad8-cf18-48df3710bd40 store
[root@esx-e11:~]

Ein Neustart des Hosts ist nicht notwendig. Die Standardisierung kann nun problemlos fortgesetzt werden.

Fazit: Hat man mehrere ESXi Server der gleichen Version im Einsatz ist es deutlich einfacher die korrupte Partition wiederherzustellen, als den Server neuzuinstallieren.