ESXi 5 und die tmp-Ramdisk

Wer zu Hause einen ESXi mit dem Backupscript ghettoVCB verwendet, kennt vielleicht das Phänomen: Das Backup läuft mehrere Tage zuverlässig durch, aber aus irgendeinem unerfindlichen Grund funktioniert die Sicherung nach einiger Zeit nicht mehr.
Bei einem Test direkt auf der Konsole, gibt das Skript nur einen allgemeinen Fehler aus – nicht mehr und auch nicht weniger. Auch in den Logs ist nichts zu finden.

So erging es auch mir. Nur ein Neustart half hier. Zuerst tippte ich auf einen Hardwarefehler. Den konnte ich aber ziemlich schnell ausschließen. Dann konnte es eigentlich nur ein Softwareproblem sein. Hier war aber auf das erste auch nichts zu finden.

Erst als ich auf die Ramdisks kam, von denen der ESX nach dem Systemstart läuft, konnte ich das Problem eingrenzen und beheben. Schließlich speicherten ghettoVCB nach jedem Backup und die RAID-Controller Software ein Logfile in den tmp-Ordner. Vorallem das Logfile des Controllers erreicht nach relativ kurzer Zeit einige Megabyte.

Das simple Problem: Die Ramdisk für den tmp-Ordner mit ca. 250 MB lief schlicht voll.

Die Lösung hierfür ist im Prinziep ganz einfach. Wir müssen das temporäre Verzeichnis auf eine Datastore verlegen.

Dabei müssen die einzelnen Schritte aber zügig hintereinander ausgeführt werden, damit uns der ESX nicht zuvor kommt.

  1. Als erstes müssen wir das Verzeichnis /tmp umbenennen und einen weiteren Ordner auf dem Datastore anlegen, der der neue temporäre Ordner werden soll.
  2. Danach müssen wir einen Symlink dorthin erstellen
  3. Und zu guter Letzt den bisherigen Inhalt von dem umbenannten tmp in das neue kopieren.

Das ganze sähe dann in etwa so aus (natürlich entsprechen deiner Konfiguration anpassen):

mkdir /vmfs/volumes/<DataStore>/SystemTemp #Nur 1x ausführen und nicht in ein Skript übernehmen!!!
mv /tmp /tmp1
ln -s /vmfs/volumes/<DataStore>/SystemTemp /tmp
cp -a /tmp1/* /tmp

Um diese Konfiguration auch nach einem Neustart des ESXi wiederherzustellen, schreiben wir diese drei Zeilen in die Datei „/etc/rc.local.d/local.sh„.

Von jetzt an kann so viel in tmp geschrieben werden, bis unsere Datastore voll ist.
Und das Beste: ghettoVCB sollte nun auch länger als ein paar Tage funktionieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert