VMware: ESXi lokalen Datastore vergrößern
Heute bin ich über die Herausforderung gestolpert das lokale VMFS auf einem ESXi 5.0 vergrößern zu müssen. Darauf kann man stoßen wenn man vom SAN bootet und aus irgendwelchen Gründen muss eben die Partition mit dem VMFS vergrößert werden (upgrade oder ähnliches steht an) oder eventuell läuft ja in einer Testumgebung ein ESXi virtualisiert um etwas zu demonstrieren etc.
In meiner Umgebung mit vSphere 5 bin ich folgendermaßen vorgegangen. In dem unten angehängen VMware KB Artikel wird auch das Vorgehen für vSphere 4.1 erklärt.
1. LUN bzw. lokale Disk vergrößern. Mit den Mitteln des Storages.
2. SSH bzw. Techsupport Mode auf dem ESXi aktivieren
3. per SSH oder auf dem Terminal des ESXi anmelden als root User
4. Herausfinden des Datastore Namens in der Konsole oder im vSphere Client:
# vmkfstools -G /vmfs/volumes/DatastorenameBeispiel:
# vmkfstools -G /vmfs/volumes/Local0 VMFS-5.54 file system spanning 1 partitions. File system label (if any): Local02 Mode: public Capacity 42949672960 (40960 file blocks * 1048576), 18315476992 (17467 blocks) avail UUID: 4ffd5a7f-ae42085f-4680-005056ad0512 Partitions spanned (on "lvm"): mpx.vmhba1:C0:T0:L0:3
Nun hat man den eindeutigen Device Namen, bei mir mpx.vmhba1:C0:T0:L0:3
5. Mit dem Devicenamen rufen wir die bisherige Partitionierung auf
# partedUtil get "/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0"
Beispielausgabe:
7179 255 63 115343360 <-- Geometrie der Festplatte, Diskgröße: 115343360 Sektoren 1 64 8191 0 128 5 8224 520191 0 0 6 520224 1032191 0 0 7 1032224 1257471 0 0 8 1257504 1843199 0 0 2 1843200 10229759 0 0 3 10229760 94371806 0 0
Jede Zeile (außer der ersten) hat fünf Spalten:
Partitionsnummer , Sektorstart , Sektorende , Type , Attribute
6. Partition zum Vergrößern Identifizieren. Bei mir ist es die Partition Nummer 3. Die letzte Partition auf der Festplatte, siehe Punkt 4!
7. Nun wird der letzte benutzbare Sektor der (zwischenzeitlich) vergrößerten Festplatte ausgelesen. Bei vSphere 5 geht das mit:
# partedUtil getUsableSectors "/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0"Beispielausgabe:
34 115343326
8. Vergrößern der Partitionsgrenze
# partedUtil resize "/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0" 3 10229760 115343326
Befehl aufgeschlüsselt:
# Programm ; Argument ; Argument ; Partitionsnummer ; Startsektor ; NeuerEndSektor
Eventuell benötigt der ESXi Host anschließend einen Reboot. Siehe VMware KB 1003530 Artikel.
Im vSphere Client wird unter dem Device bereits die größere LUNgröße angezeigt und auch das nur ein Teil der LUN formatiert ist.
9. Abschließender Schritt nach dem Vergrößern der Partitionsgrenze ist noch das vergrößern (growing) des VMFS Filesystems bis zur neuen Partitionsgrenze.
# vmkfstools --growfs "/vmfs/devices/disks/device:partition" "/vmfs/devices/disks/device:partition"
Beispiel:
# vmkfstools --growfs "/dev/disks/mpx.vmhba1:C0:T0:L0:3" "/dev/disks/mpx.vmhba1:C0:T0:L0:3"
Wichtig hierbei ist die Angabe der betreffenden Partition nach dem Devicenamen getrennt mit einem „:“!
10. Im vSphere Client benötigt es anschließend noch einen Rescan bzw. Refresh um die neue Datastore Größe an zu zeigen.
Nach dem erfolgten Rescan wird die komplette LUN als benutzbarer Speicherplatz angezeigt.
Bei VMware gibt es einen dementsprechenden VMware KB Artikel dafür: 2002461
3 Comments
Hallo Thorsten,
Deine Anleitung hat soweit funktioniert. Ich musste nur zwei Punkte bei Punkt 9 beachten:
– Die von Dir angegebenen Pfadangaben können einen verwirren
– Das Vergrößern des VMFS Dateisystems war bei mir erst möglich nachdem ich eine neue Signatur (mit allen Nebenwirkungen 🙁 ) vergeben hatte. Vorher gab es Fehlermeldungen wie
Not found
Error: No such file or directory
Stefan
Besten Dank, nach stundenlangem Suchen hat deine Anleitung bei mir funktioniert:
Vmware 6.5, RAID 6 rebuild durch, im Esxi wurde bereits free space nach rescan angezeigt, letztlich durch deine Anleitung und 8457 mal durchlesen endlich begriffen was wie gemeint ist und Augen zu und durch! Es klappte. 21 TB wurden erweitert, lief prima. Reboot war nötig.
Wow, bin ehrlich gesagt überrascht das die Anleitung immernoch funktioniert 😀 Sind ja zwischenzeitlich ein paar Versionssprünge dazwischen und ich habe diese nicht noch einmal getestet.
An welchen Punkten in der Anleitung hattest du Probleme, da du schreibst das du mehrfach durchlesen musstest?!