Thick- und Thin-Provisioning: Was ist der Unterschied?

In diesem Artikel werden wir uns eingehend mit dem Aspekt der Speicher-Vorabzuweisung bei den Einstellungen für virtuelle Festplatten befassen und herausfinden, was „Thick Provisioning“ und „Thin Provisioning“ sind, worin sie sich unterscheiden und welche dieser Arten der Speicher-Vorabzuweisung für Ihre Infrastruktur besser geeignet ist.

Probieren Sie NAKIVO Backup & Replication aus

Probieren Sie NAKIVO Backup & Replication aus

Nutzen Sie die kostenlose Testversion, um alle Funktionen der Datensicherheit der Lösung kennenzulernen. 15 Tage kostenlos. Keine Einschränkungen hinsichtlich Funktionen oder Kapazitäten. Keine Kreditkarte erforderlich.

Thick Provisioning

Thick Provisioning ist eine Art der Speicher-Vorabzuweisung. Beim Thick Provisioning wird die gesamte Speicherkapazität der virtuellen Festplatte bereits bei ihrer Erstellung auf dem physischen Speicher vorab zugewiesen. Eine virtuell mit Thick Provisioning bereitgestellte Festplatte belegt von Beginn an den gesamten ihr im Datenspeicher zugewiesenen Speicherplatz, sodass dieser Speicherplatz für andere virtuelle Maschinen nicht mehr zur Verfügung steht.

Es gibt zwei Unterarten von thick-provisioned virtuellen Festplatten:

  • Eine Lazy zeroed disk ist eine Festplatte, die ihren gesamten Speicherplatz bereits zum Zeitpunkt ihrer Erstellung beansprucht; dieser Speicherplatz kann jedoch noch alte Daten auf dem physischen Speichermedium enthalten. Diese alten Daten werden weder gelöscht noch überschrieben, sodass sie „auf Null gesetzt“ werden müssen, bevor neue Daten in die Blöcke geschrieben werden können. Dieser Festplattentyp lässt sich schneller erstellen, weist jedoch bei den ersten Schreibvorgängen aufgrund der erhöhten IOPS (Eingabe-/Ausgabeoperationen pro Sekunde) für neue Blöcke eine geringere Leistung auf;
  • Eine Eager zeroed disk ist eine Festplatte, die bereits zum Zeitpunkt ihrer Erstellung den gesamten benötigten Speicherplatz belegt, wobei der Speicherplatz vollständig von allen früheren Daten auf dem physischen Medium bereinigt wird. Das Erstellen von „Eager Zeroed“-Festplatten dauert länger, da die gesamte Festplatte mit Nullen überschrieben wird, ihre Leistung ist jedoch bei den ersten Schreibvorgängen höher. Dieser Untertyp der thick-provisioned virtuellen Festplatte unterstützt Clustering-Funktionen wie Fehlertoleranz.

Thick provisioning

Aus Gründen der Datensicherheit ist „Eager Zeroing“ bei thick-provisioned virtuellen Festplatten üblicher als „Lazy Zeroing“. Warum? Wenn Sie eine VMDK löschen, werden die Daten auf dem Datenspeicher nicht vollständig gelöscht; die Blöcke werden lediglich als verfügbar markiert, bis das Betriebssystem sie überschreibt. Wenn Sie auf diesem Datenspeicher eine virtuelle Festplatte mit „Eager Zeroing“ erstellen, wird der Festplattenbereich vollständig gelöscht (d. h. mit Nullen überschrieben), wodurch verhindert wird, dass Personen mit böswilligen Absichten die früheren Daten wiederherstellen können – selbst wenn sie spezielle Software von Drittanbietern verwenden.

Thin Provisioning

Thin Provisioning ist eine weitere Art der Speicher-Vorabzuweisung. Eine virtuell mit Thin Provisioning bereitgestellte Festplatte belegt zunächst nur den benötigten Speicherplatz und wächst im Laufe der Zeit entsprechend dem Bedarf.

Wenn Sie beispielsweise eine neue, thin-provisioned virtuelle Festplatte mit 30 GB erstellen und 10 GB an Dateien darauf kopieren, beträgt die Größe der resultierenden VMDK-Datei 10 GB, während Sie bei Verwendung einer thick-provisioned Festplatte eine 30-GB-VMDK-Datei erhalten hätten.

Thin Provisioning

Thin-provisioned virtuelle Festplatten lassen sich schnell erstellen und sind nützlich, um Speicher zu sparen. Die Leistung einer Thin-Provisioned-Festplatte ist nicht höher als die einer Lazy-Zeroed-Thick-Provisioned-Festplatte, da bei beiden Festplattentypen vor dem Schreiben von Daten in einen neuen Block Nullen geschrieben werden müssen. Beachten Sie, dass die Größe der Festplatte nicht automatisch verringert wird, wenn Sie Ihre Daten von einer Thin-Provisioned-Festplatte löschen. Dies liegt daran, dass das Betriebssystem lediglich die Einträge aus der Dateitabelle löscht, die auf den Dateikörper im Dateisystem verweisen; es markiert die Blöcke, die zu „gelöschten“ Dateien gehörten, als frei und zugänglich für das Schreiben neuer Daten. Aus diesem Grund erscheint das Entfernen von Dateien sofort erfolgt. Handelte es sich um eine vollständige Löschung, bei der die Blöcke, die von den gelöschten Dateien belegt waren, mit Nullen überschrieben würden, würde dies etwa genauso lange dauern wie das Kopieren der betreffenden Dateien. Siehe die vereinfachte Abbildung unten.

View from the operating system

Probleme, die bei der Verwendung von Thin-Provisioned-Festplatten auftreten können

Die Verwendung von Thin-Provisioned-Festplatten verläuft nicht immer reibungslos. Es gibt einige Probleme, die Sie kennen und auf deren Bewältigung Sie vorbereitet sein sollten.

Betrachten wir ein Beispiel, das die Virtuellen Maschinen unbrauchbar macht. Nehmen wir beispielsweise einen 20-GB-Datenspeicher, auf dem drei Virtuelle Maschinen laufen. Jede virtuelle Maschine verfügt über einen Thin-Provisioning-Datenträger mit einer maximalen Größe von 10 GB. (Diese Vorgehensweise wird als „Overprovisioning“ bezeichnet – wir weisen virtuellen Datenträgern mehr Speicherplatz zu, als sie physisch belegen können. Dies wird häufig so gehandhabt, da es Ihnen ermöglicht, die Skalierung des Systems durchzuführen, indem Sie bei Bedarf weiteren physischen Speicher hinzufügen.) Die Größe jeder virtuellen Festplatte wächst mit dem Hinzufügen von Daten, bis auf dem Datenspeicher kein freier Speicherplatz mehr vorhanden ist. Die Situation wird kritisch, wenn auf dem Datenspeicher nur noch 1 GB freier Speicherplatz übrig ist, beispielsweise wenn VM1 8 GB, VM2 7 GB und VM3 4 GB belegt.

Herkömmliche Methoden zum Löschen von Dateien innerhalb virtueller Maschinen tragen nicht dazu bei, die Thin-Provisioned-Festplatten zu verkleinern. Wenn mehr als 1 GB neuer Daten in eine dieser virtuellen Maschinen geschrieben wird, fallen alle drei aus, und Sie müssen eine oder mehrere der virtuellen Maschinen auf einen anderen Datenspeicher migrieren, um ihren Betriebszustand wiederherzustellen.

So verringern Sie die Größe einer Thin-Provisioned-Festplatte nach dem Löschen von Dateien

Um die VMDK-Dateigröße Ihrer Thin-Provisioned-Festplatten zu verringern, müssen Sie wissen, wie Sie die Blöcke, die zuvor von den gelöschten Daten belegt waren, mit Nullen überschreiben. Sehen wir uns an, wie das funktioniert. Hinweis: Das Verkleinern von Festplatten ist nur möglich, wenn die Virtuellen Maschinen keine Schnappschüsse enthalten. Seien Sie bitte vorsichtig und führen Sie die Befehle auf eigene Verantwortung aus. Sichern Sie immer alle wichtigen Daten, bevor Sie Festplattenoperationen durchführen.

Verkleinerung von Thin-Provisioned-VMware-Festplatten unter Linux

Betrachten wir ein Beispiel: Wir haben eine VMDK-Datei mit einer Größe von 10.266.496 KB (10 GB) (die Größe haben wir ermittelt, indem wir das Verzeichnis auf dem Datenspeicher aufgerufen haben, in dem sich unsere virtuelle Maschine befindet) und möchten die virtuelle Festplatte verkleinern, auf der das Linux-Gastbetriebssystem installiert ist. Wir können versuchen, nicht benötigte Dateien auf dieser virtuellen Festplatte zu löschen. Allerdings setzt Linux die Blöcke nach dem Löschen von Dateien nicht automatisch auf Null; dies müssen Sie selbst vornehmen. Dazu können Sie das Dienstprogramm „ dd “ (Datenduplikator) zum Kopieren und Konvertieren von Daten verwenden. Dieses Tool ist auf allen Linux-Systemen verfügbar.

Hinweis: Bevor Sie das Dienstprogramm „ dd “ ausführen, müssen Sie sicherstellen, dass der Datenspeicher über genügend Kapazität verfügt (bei einem ESXi-Server können Sie die Speicherkapazität beispielsweise im Abschnitt „Speicher“ des vSphere-Clients überprüfen – gehen Sie dazu auf Configuration > Storage).

Verwenden wir nun das Dienstprogramm „ dd “.

  1. Zunächst überprüfen wir den freien Speicherplatz auf einer virtuellen Linux-Maschine mit dem Befehl „ df -h “:

    root@test-virtual-machine:/# df -h

    In der Konsole erhalten wir folgende Ausgabe:

    Filesystem Size Used Avail Use% Mounted on
    udev 469M 0 469M 0% /dev
    tmpfs 99M 6,3M 92M 7% /run
    /dev/sda7 17G 8,8G 6,4G 58% /
    tmpfs 491M 116K 491M 1% /dev/shm
    tmpfs 5,0M 4,0K 5,0M 1% /run/lock
    tmpfs 491M 0 491M 0% /sys/fs/cgroup
    /dev/sda1 945M 121M 760M 14% /boot
    /dev/sda6 3,7G 13M 3,5G 1% /var/log
    tmpfs 99M 36K 99M 1% /run/user/1000

    Aus dieser Ausgabe geht hervor, dass die Partition „ / “ (Root) 8,8 GB an Dateien enthält.

  2. Löschen wir nun einige Gigabyte an unnötigen Dateien in der Root-Partition. Folgendes sehen wir in der Konsole, wenn wir den Befehl df -h / ausführen:

    Filesystem Size Used Avail Use% Mounted on
    /dev/sda7 17G 4,7G 11G 31% /

    Somit enthält unsere Root-Partition nun 4,7 GB an Dateien. Wenn wir jedoch in das Verzeichnis wechseln, in dem sich unsere VMDK-Datei befindet, sehen wir, dass ihre Größe immer noch 10.266.496 KB (10 GB) beträgt.

  3. Nun werden wir den freien Speicherplatz mit Nullen füllen (in unserem Fall füllen wir 10 GB von den verfügbaren 11 GB). Zunächst geben wir cd ein, gefolgt vom Namen des Verzeichnisses, in dem die Partition, die mit Nullen gefüllt werden soll, eingebunden ist (in unserem Fall ist dies cd /, da wir zur Root-Partition navigieren möchten). Nach dem Ausführen des folgenden Befehls passen wir die Variablen an unsere Bedürfnisse an: `

    dd bs=1M count=10240 if=/dev/zero of=zero

    ` In diesem Befehl: `

    • dd ` kann nur als Superuser ausgeführt werden. `
    • ` `bs ` legt die Größe des Blocks fest (beispielsweise würde ` bs=1M ` eine Größe des Blocks von 1 Megabyte ergeben). `
    • ` `count ` gibt die Anzahl der zu kopierenden Blöcke an (die Standardeinstellung für ` dd ` ist, dass der Vorgang endlos fortgesetzt wird oder bis die Eingabe erschöpft ist). In unserem Fall beträgt der freie Speicherplatz, den wir mit Nullen füllen möchten, 10.240 MB, sodass die Anzahl der 1-Megabyte-Blöcke 10240 beträgt.
    •  if steht für „Eingabedatei“. Hier sollten Sie die Quelle angeben, aus der Sie Daten kopieren möchten. In unserem Fall ist dies /dev/zero – eine spezielle Datei (ein Pseudogerät), die so viele Nullzeichen bereitstellt, wie Sie daraus lesen möchten.
    • of steht für „Ausgabedatei“. Hier legen Sie das Ziel fest, in das Sie Ihre Daten schreiben bzw. einfügen möchten (in unserem Fall lautet der Name der Datei zero).

    Nach Ausführung des obigen Befehls wächst die Größe unserer VMDK-Datei. Dies ist die Ausgabe, die wir nach erfolgreicher Ausführung des Befehls sehen:

    10240+0 records in
    10240+0 records out
    10737418240 bytes (10 GB) copied, 59,4348 s, 181 MB/s
    Command has been completed successfully.

    Die Größe unserer VMDK-Datei beträgt nun also 11.321.856 KB (10,8 GB), was bedeutet, dass sie angewachsen ist. Wenn wir zudem den Befehl df -h / erneut ausführen, sehen wir Folgendes:

    Filesystem Size Used Avail Use% Mounted on
    /dev/sda7 17G 15G 569M 97% /

    Dies bedeutet, dass fast die gesamte Root-Partition (d. h. 97 %) belegt ist. Das liegt daran, dass wir den größten Teil des zuvor „verfügbaren“ Speicherplatzes mit Nullen gefüllt haben. Nun ist unsere dünn bereitgestellte virtuelle Festplatte bereit, verkleinert zu werden.

Hinweis: Um die Verkleinerung durchzuführen, ist die Installation von VMware Tools erforderlich.

  1. Bei virtuellen Maschinen, die auf VMware ESXi oder VMware Arbeitsstation laufen, führen wir die folgenden beiden Befehle im Linux-Gastbetriebssystem aus.a) Um sicherzustellen, dass die Partition der Festplatte verfügbar ist, führen wir den Befehl aus:

    root@test-virtual-machine:/# vmware-toolbox-cmd disk list

    Dies ist die Ausgabe, die wir in unserem Fall sehen (d. h., wir sehen die Liste der verfügbaren Partitionen):

    /
    /boot
    /var/log

    Die Root-Partition ist vorhanden, sodass wir fortfahren können.b) Um die Partition zu verkleinern, führen wir den folgenden Befehl aus:

    root@test-virtual-machine:/# vmware-toolbox-cmd disk shrink /

    Dies ist die Ausgabe, die wir in unserem Fall sehen:

    Please disregard any warnings about disk space for the duration of shrink process.
    Progress: 100 [===========>]
    Disk shrinking complete.

    Nun beträgt die Größe unserer verkleinerten VMDK-Datei 5.323.456 KB (das entspricht 5,08 GB – deutlich weniger als die zuvor vorhandenen 10,8 GB).

Hinweis: Wenn Ihre virtuelle Maschine auf einem ESXi-Server läuft, können Sie nach dem Füllen der Blöcke mit Nullen die folgenden Schritte ausführen:

  1. Schalten Sie die Virtuelle Maschine aus oder trennen Sie die virtuelle Festplatte, die Sie verkleinern möchten.
  2. Verbinden Sie sich mit dem SSH-Client mit dem ESXi-Host.
  3. Navigieren Sie zu „ Virtual Machine Folder“.
  4. Überprüfen Sie die Festplattennutzung mit „ du -h“.
  5. Führen Sie „ vmkfstools -K test-virtual-machine.vmdk“ aus.
  6. Überprüfen Sie die Festplattennutzung erneut mit „ du -h “.

Verkleinern von Thin-Provisioned-VMware-Festplatten unter Windows

Wie unter Linux werden auch unter Windows Blöcke nach dem Löschen von Dateien nicht automatisch auf Null gesetzt. Um den freien Speicherplatz der Zielfestplatten auf Ihrer virtuellen Windows-Maschine auf Null setzen zu können, müssen Sie SDelete – ein kostenloses Dienstprogramm aus der Sysinternals-Suite von Microsoft – herunterladen und die Dateien aus dem heruntergeladenen Archiv in c:program filessdelete

entpacken. Führen Sie anschließend die folgenden Schritte aus:

  1. Führen Sie cmd
  2. aus. Wechseln Sie in das Verzeichnis, in dem sich SDelete befindet. In unserem Fall ist dies: cd c:program filessdelete

  3. Verwenden Sie für jede Partition in der Konsole den Befehl sdelete -z . In unserem Fall sieht das so aus:

    sdelete -z c:
    sdelete -z d:

    Diese Befehle setzen den freien Speicherplatz auf Ihrer Thin-Provisioned-Festplatte auf Null, indem sie den ungenutzten Speicherplatz auf den angegebenen Partitionen auffüllen. Warten Sie einige Minuten, bis der Vorgang fertiggestellt ist. Ihre VMDK-Datei wird während des Vorgangs auf ihre maximale Größe erweitert.

  4. Stellen Sie sicher, dass VMware Tools auf Ihrer virtuellen Windows-Maschine installiert sind. Standardmäßig werden VMware Tools unter c:program filesvmwarevmware tools

    installiert. Navigieren Sie zu diesem Verzeichnis, indem Sie Folgendes eingeben:

    cd c:program filesvmwarevmware tools

  5. Um die verfügbaren Festplattenpartitionen anzusehen, geben Sie Folgendes ein:

    vmwaretoolboxcmd disk list

  6. Verkleinern Sie die gewünschten Festplattenpartitionen. In unserem Fall haben wir folgende Befehle ausgeführt:

    vmwaretoolboxcmd disk shrink c:
    vmwaretoolboxcmd disk shrink d:

    Warten Sie, bis das Programm die Verkleinerung der Festplatte fertiggestellt hat.

Sie können diese Methode für Virtuelle Maschinen verwenden, die auf VMware ESXi oder VMware Workstation laufen.

VMware Storage Distributed Resource Scheduler

Oben haben wir eine Lösung zum manuellen Verkleinern von Thin-Provisioned-Festplatten erwähnt. Es gibt jedoch noch eine weitere Möglichkeit, Ihre virtuellen Festplatten (sowohl Thin-Provisioned- als auch Thick-Provisioned-Festplatten) zu verwalten, wenn Sie einen Datenspeicher-Cluster in VMware vSphere verwenden. VMware bietet eine automatische Migration virtueller Festplatten innerhalb des Datenspeicher-Clusters an, um eine Überlastung des Festplattenspeichers, auf dem thin-provisionierte virtuelle Festplatten liegen, zu vermeiden und die E/A-Ressourcen auszugleichen.

Wenn Sie mehr als einen gemeinsam genutzten Datenspeicher auf dem ESXi-Server eingebunden haben, können Sie den Storage Distributed Resource Scheduler (Storage DRS) einrichten. Storage DRS ist eine intelligente Funktion von vCenter Server zum effizienten Management von VMFS- und NFS-Speicher, die die automatische Platzierung und Migration von Festplatten von Virtuellen Maschinen ermöglicht. Sie können Storage DRS auch in den manuellen Modus versetzen, wenn Sie Migrationsempfehlungen lieber manuell genehmigen möchten.

Führen Sie die folgenden Schritte aus, um Storage DRS zu aktivieren:

  1. Navigieren Sie im vSphere Web Client zum Datenspeicher-Cluster.
  2. Rufen Sie vCenter > Datastore Clustersauf.
  3. Wählen Sie Ihren Datenspeicher-Cluster aus und klicken Sie auf Manage > Settings > Services > Storage DRS.
  4. Klicken Sie auf „ Edit“.
  5. Konfigurieren Sie die Automatisierungseinstellungen, die I/O-bezogenen Funktionen und die erweiterten Optionen nach Bedarf.datastore-cluster
  6. Klicken Sie auf „ OK “, um den Vorgang zum Fertigstellen durchzuführen.

Wenn in Ihrer vSphere-Umgebung keine Datenspeichercluster vorhanden sind, führen Sie die folgenden Schritte aus, um einen neuen Datenspeichercluster zu erstellen und einzurichten:

  1. Navigieren Sie im vSphere Web Client zu „ vCenter > Datacenters “.
  2. Klicken Sie mit der rechten Maustaste auf Ihr Rechenzentrum und wählen Sie „ New Datastore Cluster“.
  3. Geben Sie den Namen Ihres Datenspeicher-Clusters ein und aktivieren Sie das Kontrollkästchen neben „ "Turn On Storage DRS"“.
  4. Wählen Sie die gewünschten Automatisierungseinstellungen, I/O-bezogenen Funktionen und erweiterten Optionen aus.
  5. Klicken Sie auf „ OK “, um den Vorgang zum Fertigstellen durchzuführen.

Fazit

In diesem Blogbeitrag haben wir die verschiedenen Arten virtueller Festplatten betrachtet und deren Vor- und Nachteile abgewogen, um die Unterschiede zwischen Thick- und Thin-Provisioning besser zu verstehen. „Eager zeroed“-Thick-Provisioning-Festplatten bieten die beste Leistung und Sicherheit, erfordern jedoch ausreichend freien Speicher und ihre Erstellung nimmt viel Zeit in Anspruch. „Lazy zeroed“-Thick-Provisioning-Festplatten zeichnen sich durch kurze Erstellungszeiten aus, bieten jedoch nicht die gleiche Geschwindigkeit wie „Eager zeroed“-Festplatten und sind weniger sicher. Thin-Provisioning-Festplatten sind die beste Wahl, um zum Zeitpunkt der Festplattenerstellung Speicher im Datenspeicher zu sparen.

Sie können eine virtuelle Festplatte mit einer größeren maximalen Größe als dem Ihnen zur Verfügung stehenden physischen Speicherplatz erstellen („Overprovisioning“) und später weiteren physischen Speicher hinzufügen. Beachten Sie jedoch: Wenn der physische Speicherplatz voll ist und die „Thin-Provisioned“-Festplatte nicht vergrößert werden kann, um weitere Daten aufzunehmen, werden Ihre Virtuellen Maschinen unbrauchbar – vergessen Sie also nicht, den freien Speicherplatz im Auge zu behalten. Wir haben außerdem Methoden zum Verkleinern von Thin-Provisioned-Festplatten in VMware behandelt, falls Sie lieber keinen zusätzlichen Speicher hinzufügen möchten und den belegten Speicher reduzieren müssen.

NAKIVO für VMware vSphere-Backups

NAKIVO für VMware vSphere-Backups

Umfassende Datensicherheit für VMware vSphere-VMs und Optionen für die sofortige Wiederherstellung. Sichere Backup-Ziele vor Ort, außerhalb des Standorts und in der Cloud. Anti-Ransomware-Funktionen.

Empfohlene Artikel