Tags: vSphere, Storage, vmdk, NFS
Bekanntlich unterstützt ESXi zwei Arten von Thin Provisioning, nämlich bei virtuellen Festplatten und auf Array-Ebene. Beide bieten den Vorteil, dass man anders als beim Thick Provisioning eine übermäßige Vorabbelegung von Speicher vermeidet. Speicherplatz für die VMs wird dabei flexibel, das heißt nur nach Bedarf zugeteilt.
Dieses Verfahren erlaubt es den Anwendern, mehr virtuellen Speicherplatz zuzuteilen als physische Kapazität vorhanden ist. Dies kann allerdings zu einer Storage-Überbuchung führen, ähnlich wie vom virtuellen Arbeitsspeicher bekannt.
Risiken von Thin Provisioing
Aus Performance-Gründen ist Array-Thin-Provisioning jenem auf VMDK-Ebene vorzuziehen, sofern es das Storage-System unterstützt (VAAI-Support). Beide Varianten bergen die Gefahr, dass der Datastore (VMware) überläuft oder die physische Kapazität (Storage) erschöpft ist. Das kann zu Datenverlusten und Systemausfällen führen. Daher sollte man Thin Provisioning keinesfalls auf beiden Ebenen nutzen.
ESXi überwacht beim Thin Provisioning die tatsächliche Speichernutzung, um solchen Situationen vorzubeugen, in denen kein physischer Speicherplatz mehr vorhanden ist. Thin Provisioning belastet den ESXi-Host somit mehr, weil dieser nicht nur die Daten schreiben, sondern sich auch um das Wachstum kümmern muss.
Letzteres kann beim Einsatz von VMFS auch zu SCSI-Reservierungen führen, ein Phänomen, bei dem unter Umständen die komplette LUN gesperrt wird, wohingegen NFS bei Bedarf nur einzelne Datei sperrt.
Thin Provisioning virtueller Festplatten
Das Thin Provisioning auf Ebene der virtuellen Festplatten erlaubt Nutzern das Erstellen von VMDKs in einem Thin-Format. ESXi teilt einem virtuellen Laufwerk dann den gesamten, für momentane und künftigen Aktionen, benötigten Speicherplatz zwar fest zu.
Aber die virtuelle Thin-Festplatte belegt nur so viel Speicherplatz im Datastore, wie sie für ihre anfänglichen Anforderungen benötigt. Braucht sie später mehr Platz, kann sie bis auf die Größe anwachsen, die bei ihrer Erstellung konfiguriert wurde.
Thin Provisioning und NFS
Egal, was man als Bereitstellungsmethode auf VM-Ebene angibt, arbeiten NFS-Datastores im Gegensatz zu VMFS-Datastores immer im Modus Thin Provisioning. Daher verbrauchen nur die tatsächlich abgespeichert Dateien (NFS arbeitet ja im Gegensatz zu VMFS dateibasiert) auch Festplattenplatz im Storage.
Einzige Ausnahme: Ein NAS-System unterstützt VAAI Reserve Space. Dabei handelt es sich um eine von zahlreichen VAAI-Primitiven. Ohne VAAI-Support könnte man auf einem NAS-Gerät Speicherplatz für VMDKs nie vorab zuweisen oder auf null setzen. Man müsste sich dann mit thin-provisionierten VMDKs begnügen.
Mit der Einführung von Reserve Space können aber auch Thick-VMDKs auf NFS-Datenspeichern erstellt werden (siehe dazu den VMDK-Vergleich: Thick Provision Lazy-Zeroed und Eager-Zeroed, Thin Provision).
Die Methode verhält sich äquivalent zu Lazy Zeroed Thick unter VMFS, weil dabei zunächst nur ein NAS-VAAI-Befehl zur Speicherplatzreservierung an das Array gesendet wird. Der stellt sicher, dass die nötige Kapazität garantiert ist.
Die Blöcke werden danach erst beim ersten Schreiben auf null gesetzt, denn der Befehl veranlasst das Array nicht, die Nullsetzung in seinem Namen durchzuführen. Wählt man Thick Eager Zeroed, dann wird zwar zusätzlich ein Space Reserve an das NAS gesendet, der dann ein ESXi-basiertes Null-Schreiben ausführt.
Dies ist aber nicht äquivalent zu Eager Zeroed Thick unter VMFS, da alle Schreibvorgänge weiterhin über das Speichernetzwerk gesendet und trotz VAAI-Support nicht auf die Speichergeräte ausgelagert werden. NFS-EagerZeroed-Thick bleibt also ein langsamer Vorgang.
VAAI-Support für Synology installieren
Bei einigen Array-Herstellen im Consumer-Bereich kann man den NFS-VAAI-Support nachrüsten, bei Synology etwa durch Installieren eines VIB-Paketes:
esxcli software vib install -v /tmp/ synonfs-vaai-plugin-1.1-1004.vib --no-sig-check
Im Web-Client oder vSphere Client wird der VAAI-Support für einen Synology-basiertes NFS-Datastore dann als "Hardware Acceleration" gemeldet.
Array-Thin-Provisioning
Verwendet man ein Speichersystem, das die T10-basierte vSphere Storage APIs - Array Integration (VAAI) einschließlich Thin Provisioning und Rückforderung von Speicherplatz unterstützt, dann kann der ESXi-Host per Thin Provisioning bereitgestellte LUNs erkennen und deren Speicherplatznutzung überwachen.
Damit wird vermieden, dass den virtuellen Maschinen der physische Speicherplatz ausgeht. Konkret warnt der Host dann bei Verletzungen des physischen LUN-Speicherplatzes und bei Speicherplatzknappheit.
Täglich Know-how für IT-Pros mit unserem Newsletter
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Verwandte Beiträge
- Neu in vSAN 7 (U1): SMB in Native File Services, Support für Laufwerke bis 32TB, Hot-plug für NVMe
- VMware ESXi mit NFS-Freigabe verbinden
- ESXi und NFS 4.1: Features und Einschränkungen
- VAAI: Erzeugen von VMDKs, Snapshots, Storage vMotion beschleunigen
- Storage vMotion: Images von VMs auf andere Speicher verschieben
Weitere Links