Für die Entwicklung von Webprojekten bietet sich der Einsatz von VMware Images an, da Sie nur einmal (von einer Person) aufgesetzt werden müssen und von allen anderen Mit-Entwicklern auch genutzt werden können. Dies ist also besonders für größere Entwicklungsteams sehr vorteilhaft. Das VMware Image wird dann normalerweise im Netzwerk bereitgestellt, damit jeder Entwickler sich die Datei herunterladen kann. Das Problem ist nur, dass ein Image sehr groß sein kann, was viel Netzwerktraffic und lange Downloadzeiten mit sich bringt. Es muss also versucht werden, ein VMware Image immer so klein wie möglich bekommen. Im folgenden zeige ich auf, wie man vorgeht, um dies ohne Schwierigkeiten zu meistern.
Überflüssige Dateien entfernen
Im Gastsystem müssen zu allererst alle Dateien und Verzeichnisse gelöscht werden, die nicht unbedingt benötigt werden. Hier ist vor allem auch an die temporären Dateien und Caches zu denken. Die meisten Paketmanager (wie apt, rpm oder emerge) speichern lokal eine riesen Datenmenge der schon installierten Pakete. Diese sollte man mit dem entsprechenden Programm leeren. Alles, was zu einem späteren Zeitpunkt wieder automatisch erzeugt werden kann, sollte gelöscht werden. Bei Gentoo benötigen die Metainformationen des Portage-Systems alleine schon über 500MB! (diese kann man übrigens komplett löschen, da sie beim nächsten sync automatisch wieder angelegt werden).
Gastsystem schrumpfen
Im Gastsystem wird nun mit Hilfe der VMware Tools versucht die Belegung der Festplatte auf ein Minimum zu reduzieren. Für diesen Vorgang müssen die VMware Tools im Gastsystem installiert sein. Einige Linux Distributionen wie Ubuntu oder Gentoo bieten über das Paketverwaltungssystem eigene Pakete dafür an, welche immer einer manuellen Installation bevorzugt werden sollte (da sie optimal auf die Distribution abgestimmt sind - und auch ohne Probleme funktionieren werden). Dazu führt man folgenden Befehl aus:
vmware-toolbox-cmd disk shrink /
In dem Beispiel wir der Einhängepunkt (Mount point) “/” verwendet. Die Ausgabe sieht dann in etwas so aus:
Dateisystem wird nicht unterstützt?
Verwendet man vmware-toolbox-cmd disk mit einem Dateisystem, was nicht unterstützt wird, erhält man folgende Meldung:
Partition / is not shrinkable
Dies ist bei Version 8.4.7.12773 mit Ext4 aktuell z.B. der Fall. Um dennoch eine Verkleinerung des Images zu erreichen, kann man folgenden Trick anwenden:
dd if=/dev/zero of=/zero.raw bs=20480
rm -f /zero.raw
Damit befüllt man den verfügbaren Speicherplatz mit Nullen, und gibt den Speicherplatz wieder frei, indem man die erzeugte Datei anschließend wieder löscht. Dieser Trick funktioniert mit jedem Dateisystem.
VMware Dateien Defragmentieren
Als letzten Schritt werden nun über die VMware Defragmentierungsfunktion die .vmdk Dateien verkleinert. Dazu öffnet man die Einstellungen des Images und wählt die Festplatte aus, deren VMDK Dateien verkleinert werden sollen. Auf der Detailseite findet man unter “Utilities” den Punkt “Defragmentieren”, welchen man dann aktiviert.
Der Vorgang dauert je nachdem wie groß die verwendete Festplatte ist entsprechend lange.