Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Übersicht
Schlanke Speicherzuweisung ist eine Speicherverwaltungsmethode, die die Zuordnung physischer Speicherressourcen optimiert. Administratoren können damit Anwendungen größere Mengen virtuellen Speichers zuweisen, als physisch verfügbar sind, unter der Voraussetzung, dass nicht der gesamte zugewiesene Speicher gleichzeitig verwendet wird.
Schlanke Speicherzuweisung ist eine durchgehende Speicherbereitstellungslösung, die Just-in-Time-Zuweisungen ermöglicht. Sie erfordert die Planung der Speicherbereitstellung und -ausführung auf der Host- und Clientanwendung.
Schlanke Speicherzuweisung mit Windows Server verwendet Server als Schnittstellen zwischen dem für die schlanke Zuweisung geeigneten Speicher und dem Hostserver. Zur schlanken Speicherzuweisung gehören:
- LUN (Logical Unit)-Identifizierung für die schlanke Speicherzuweisung
- Schwellenwertbenachrichtigung
- Handles für die Ressourcenerschöpfung
- Speicherplatzrückgewinnung für die Bereitstellung hoch verfügbarer und skalierbarer Speicherbereitstellungsdienste für Endbenutzer
LUN-Identifikation für die schlanke Speicherzuweisung
Ab Windows Server 2012 gilt die Standardspezifikation T10 SCSI Block Command 3 (SBC3) zur Identifizierung logischer Einheiten (LUNs) für die schlanke Speicherzuweisung (Thin Provisioning Logical Units).
Während der anfänglichen Enumeration der Zielgeräte erfasst Windows Server alle Eigenschaftsparameter vom Zielgerät und identifiziert den Bereitstellungstyp und die UNMAP- und TRIM-Kapazität. Das Speichergerät meldet seinen Bereitstellungstyp und die UNMAP- und TRIM-Kapazität gemäß der SBC3-Spezifikation.
Wenn das Speichergerät seine aktuelle Kapazität nicht korrekt meldet, können Gerätekompatibilitätsprobleme auftreten. Wenn das Speichergerät beispielsweise meldet, dass es den UNMAP-Befehl unterstützt, dies aber nicht der Fall ist, kann ein Problem mit dem Datenträgerformat auftreten. Wenn die Informationen zum Bereitstellungstyp korrekt sind, kann der Speicherstack ein besseres E/A-Handling gemäß dem Speicherbereitstellungstyp bereitstellen.
Laufzeit-Bereitstellungstyp oder LUN-Kapazitätsänderungen
Ein Speicheradministrator kann den Bereitstellungstyp oder die LUN-Kapazität ändern. Wenn der Bereitstellungstyp oder die LUN-Kapazität geändert wird, löst das Speicherarray eine UNIT ATTENTION-Sense-Bedingung aus, die die korrekten Informationen zurückgibt, wenn die Sense-Daten angefordert werden. Windows Server protokolliert ein Systemereignis, um den Systemadministrator über die Änderung des Bereitstellungstyps oder der LUN-Kapazität zu benachrichtigen.
Handles für Schwellenwerte und Ressourcenerschöpfung
Eine LUN für die schlanke Speicherzuweisung wird in der Regel mit weniger physischem Speicherplatz erstellt als die LUN groß ist. Die Schwellenwertbenachrichtigung ist eine erforderliche Funktion, um die Host- und die Clientanwendung über den Status des Speicherplatzverbrauchs zu benachrichtigen.
Die meisten Speicherarrays für die schlanke Speicherzuweisung melden kein Ereignis, wenn der Schwellenwert erreicht wird. Diese Speicherlösungen für die schlanke Speicherzuweisung lösen die Schwellenwertbenachrichtigung über ihr eigenes Hilfsprogramm für das Speichermanagement. Daher ist für die Host- und Clientanwendung das einzige Ereignis, das solche Speicherarrays melden, eine dauerhafte Ressourcenerschöpfung. Das Speichergerät für die schlanke Speicherzuweisung kann einen der folgenden Handles verwenden, um Systemadministratoren oder Clientanwendungen zu benachrichtigen, wenn sich der Speicherplatzverbrauch in der Nähe der Kapazitätsgrenze befindet:
- Handle für Schwellenwertbenachrichtigungen.
- Handle für vorübergehende Ressourcenerschöpfung.
- Handle für dauerhafte Ressourcenerschöpfung
Schwellenwertbenachrichtigung bei der schlanken Speicherzuweisung
Das Hilfsprogramm für das Speichermanagement legt den Schwellenwert für die schlanke Speicherzuweisung fest. Windows Server überschreibt den vom Hilfsprogramm für das Speichermanagement festgelegten Schwellenwert nicht. Für die LUN für die schlanke Speicherzuweisung muss der Speicheradministrator den Schwellenwert gemäß der durchschnittlichen Speichernutzungsrate angeben. Wenn ein Schreibbefehl den vom Speicherzielgerät festgelegten Schwellenwert überschreitet, beendet das Zielgerät den Befehl mithilfe von Sense-Daten und sendet die Meldung „THIN PROVISIONING SOFT THRESHOLD REACHED“. Wenn Windows Server die abgeglichenen Sense-Daten empfängt, geschieht Folgendes:
- Ein Systemereignis wird protokolliert, um den Hostadministrator zu benachrichtigen, dass der Schwellenwert für die Ressourcennutzung oder -verfügbarkeit auf dem LUN-Gerät erreicht wurde.
- Informationen zu den verwendeten und verfügbaren zugeordneten Ressourcen werden im Systemereignisprotokoll von der Protokollseite des Zielgeräts gemeldet. Damit diese Meldung erfolgen kann, muss das Speicherarray die Protokollseitenspezifikation für die Bereitstellung logischer Blocke unterstützen, damit Windows Server das Systemereignis generieren kann.
- Der beendete Befehl wird wiederholt.
Schreibbefehle, die nach der Protokollierung dieses Fehlers gesendet wurden, können möglicherweise verloren gehen, wenn FILE_FLAG_WRITE_THROUGH nicht festgelegt ist, da diese Befehle möglicherweise eine dauerhafte Ressourcenerschöpfungsbedingung auslösen.
Vorübergehende Ressourcenerschöpfung
Wenn das Speicherarray die Funktion zum automatischen Vergrößern für eine LUN ermöglicht, kann der Administrator die Benachrichtigung zur vorübergehenden Ressourcenerschöpfung verwenden, um sicherzustellen, dass das Speichergerät innerhalb von vier Sekunden mehr Speicherplatz für die LUN zuweisen kann. Wenn ein Schreibbefehl eine vorübergehende Ressourcenerschöpfungsbedingung verursacht, beendet das Speichergerät den Befehl, der den Vorgang mithilfe von Sense-Daten anfordert, und gibt die Meldung „SPACE ALLOCATION IN PROGRESS“ zurück. Mit einer vorübergehenden Ressourcenerschöpfung wird wie folgt umgegangen:
- Die ursprüngliche Anforderung wird viermal wiederholt, wobei das Wiederholungsintervall auf eine Sekunde festgelegt ist.
- Wenn alle erneuten Versuche fehlschlagen, wird die Anforderung als fehlegeschlagen an die Anwendung zurückgegeben.
- Wenn das Speichergerät die vorübergehende Ressourcenerschöpfung nicht löst, erwartet Windows Server, dass das Speichergerät die nächste Schreibanforderung fehlschlagen lässt, indem ein dauerhafter Ressourcenerschöpfungsstatus zurückgegeben wird.
Dauerhafte Ressourcenerschöpfung
Die permanente Ressourcenerschöpfung gibt an, dass die LUN für die schlanke Speicherzuweisung die maximale Speicherplatzgrenze erreicht hat. Wenn während eines Schreibbefehls eine dauerhafte Ressourcenerschöpfung auftritt, beendet das Speichergerät den Vorgang mithilfe von Sense-Daten und sendet die Meldung „SPACE ALLOCATION FAILED WRITE PROTECT“. Mit einer dauerhaften Ressourcenerschöpfung wird wie folgt umgegangen:
- Der Schreibbefehl wird als fehlgeschlagen an die Anwendung zurückgegeben, wenn für den Befehl FILE_FLAG_WRITE_THROUGH festgelegt ist.
- Die Anwendung erhält möglicherweise eine Erfolgsantwort, ohne dass die Anforderung abgeschlossen oder auf physische Medien weitergeleitet wurde, wenn für den Schreibbefehl nicht FILE_FLAG_WRITE_THROUGH festgelegt ist.
- Ein Systemereignis wird protokolliert, das die Fehlermeldung „dauerhafte Ressourcenerschöpfung“ enthält.
- Der Fehlercode wird an den Partitionsmanager übergeben, und die LUN wird offline geschaltet.
Speicherplatzrückgewinnung mithilfe des UNMAP-Befehls
Die folgenden Szenarien können eine Speicherplatzrückgewinnung auslösen:
- Das Löschen einer Datei.
- Eine Kürzung auf Dateisystemebene.
- Ein Speicheroptimierungsvorgang.
Die Kürzung auf Dateisystemebene ist für ein Speichergerät aktiviert, das nach einer Kürzung oder einem Unmap-Vorgang „Read Return Zero“ ausführen soll.
Speicherplatzrückgewinnung im Speicherstack
Windows Server konvertiert Benachrichtigungen zum Löschen oder Kürzen von Dateien in eine entsprechende UNMAP-Anforderung:
- Wenn eine große Datei aus dem Dateisystem gelöscht wird.
- Wenn eine Kürzung auf Dateisystemebene ausgelöst wird.
Der Speicherporttreiber-Stack übersetzt die UNMAP-Anforderung in einen SCSI UNMAP-Befehl oder einen ATA TRIM-Befehl gemäß dem Protokolltyp des Speichergeräts. Während der Speichergeräte-Enumeration erfasst der Windows-Speicherstack Informationen darüber, ob das Speichergerät UNMAP- oder TRIM-Befehle unterstützt. Nur die UNMAP-Anforderung wird an das Speichergerät gesendet, wenn das Gerät über die SCSI UNMAP- oder ATA TRIM-Funktion verfügt. Windows Server stellt auch eine API-Implementierung zum Aufheben der Zuordnung von LBAs auf einem Speicherzielgerät bereit. Windows Server übernimmt keine T10 SCSI WRITE SAME-Befehlssätze.
UNMAP-Anforderungen vom Hyper-V-Gastbetriebssystem
Während der Erstellung des virtuellen Computers (VM) sendet ein Hyper-V-Host eine Anfrage dazu, ob das Speichergerät, auf dem sich die virtuelle Festplatte (VHD) befindet, UNMAP- oder TRIM-Befehle unterstützt. Wenn eine große Datei aus dem Dateisystem eines VM-Gastbetriebssystems gelöscht wird, sendet das Gastbetriebssystem eine Dateilöschanforderung an die virtuelle Festplatte (VHD) oder VHD-Datei (oder VHDX-Datei) des virtuellen Computers. Die VHD- oder VHDX-Datei des virtuellen Computers tunnelt die SCSI UNMAP-Anforderung wie folgt an den Klassentreiberstack des Windows Hyper-V-Hosts:
- Wenn der virtuelle Computer über eine VHD-Datei verfügt, konvertiert die VHD SCSI UNMAP- oder ATA TRIM-Befehle in einen Code der E/A-Steueranforderung der Datasetverwaltung und sendet dann die Anforderung an das Hostspeichergerät.
- Wenn der virtuelle Computer über eine VHDX-Datei verfügt, konvertiert das VHD-Dateisystem SCSI UNMAP- oder ATA TRIM-Befehle in Trim-Anforderungen auf Dateisystemebene und sendet dann die Anforderungen an das Hostbetriebssystem.
Windows Hyper-V unterstützt auch IOCTL DSM TRIM-Aufrufe vom Gastbetriebssystem.
Windows Optimize Drives Utility
Endbenutzer oder Systemadministratoren können das Hilfsprogramm „Optimize Drives“ verwenden, um Speicherplatz zurückzugewinnen, indem sie eine manuelle Anforderung erstellen oder die Zeitplankonfiguration optimieren. Wenn das Laufwerk eine LUN für die schlanke Speicherzuweisung ist, wird der Medientyp des Datenträgerlaufwerks als „Thin Provisioning Drive“ angezeigt.
Der Systemadministrator kann eine Speicherplatzkonsolidierung mithilfe des Optimize Drives-Hilfsprogramms planen. Das Hilfsprogramm kann den Systemadministrator auch benachrichtigen, wenn das System drei aufeinander folgende geplante Ausführungsläufe verpasst.
Abrufen des Slab Mapping-Zustands
In einer LUN für die schlanke Speicherzuweisung sind alle logischen Blöcke in Slabs (Clustern) gruppiert. Der Parameter OPTIMAL UNMAP GRANULARITY, den das Speichergerät meldet, legt die Größe der Slabs fest. Alle Platten werden nach den Zuständen „Mapped“, „Deallocated“ oder „Anchored“ klassifiziert. Windows Server behandelt die Zustände „Deallocated“ und „Anchored“ als nicht zugeordnete Zustände. Windows Server stellt eine API-Implementierung oder eine IOCTL DSM-Zuordnung bereit, um den LBA-Bereitstellungsstatus von LUNs für die schlanke Speicherzuweisung für den Speichermanagementvorgang abzurufen. Die Anwendung kann die IOCTL DSM-Zuordnungsroutine aufrufen, um den SCSI-Befehl zu senden und den zugeordneten oder nicht zugeordneten Zustand der einzelnen Slabs in einem bestimmten Bereich abzurufen. Wenn der zurückgegebene LBA-Bereitstellungsstatus nicht den gesamten Zuordnungsbereich beschreibt, sendet die Anwendung einen weiteren SCSI-Befehl, um den Bereitstellungsstatus des verbleibenden LBA-Bereichs abzurufen.
Das Speichergerät muss nicht den gesamten LBA-Bereich in einer Rückgabe verarbeiten. Wenn der partielle LBA-Bereich der ursprünglichen Anforderung zurückgegeben wurde, wird ein weiterer Befehl gesendet, um die Zuordnungszustände des verbleibenden LBA-Bereichs abzurufen.