Unterstützung für SCSI UNMAP

Mit Oracle Cloud Infrastructure Block Volume können Sie Ihre Anwendungen so konfigurieren, dass SCSI UNMAP-Befehle an Boot-Volumes und Block-Volumes gesendet werden, um nicht verwendeten Speicherplatz freizugeben. Dadurch wird die Backupgröße deutlich verringert. Außerdem werden die Backupwiederherstellungs- und Volume-Klonzeiten verkürzt. Die SCSI UNMAP-Befehle ähneln den TRIM-Befehlen, die Sie an SSD-Laufwerke senden können, um ungenutzten Speicherplatz freizugeben.

Sie senden einen SCSI-UNMAP-Befehl, um dem Speichersubsystem anzuweisen, die gelöschten oder nicht mehr von einer Anwendung oder dem Dateisystem verwendeten Blöcke zu verwerfen und freizugeben. Wenn Sie diesen Befehl nicht senden, weiß das Speichersubsystem nicht, dass die Blöcke nicht mehr verwendet werden und nimmt diese Blöcke weiterhin in alle Backups und Klone auf neuen Volumes auf. Nachdem das Speichersubsystem den UNMAP-Befehl für die Blöcke empfängt, werden die entsprechenden Blöcke verworfen und freigegeben, sodass sie von zukünftigen Backups und Klonen ausgeschlossen werden.

Die UNMAP-Funktionalität Block Volume wird mit den SCSI-UNMAP-Befehlen implementiert. UNMAP wird sowohl für ISCSI- als auch für paravirtualisierte Volume-Anhangstypen unterstützt.

UNMAP ist ein nicht deterministischer Befehl. Es ist nicht garantiert, dass alle angeforderten Blöcke sofort verworfen werden, wenn Sie den Befehl verwenden. Die Zeit für das Verwerfen der Blöcke auf einem Gerät hängt von den folgenden Faktoren ab:

  • Die Anzahl der nicht verwendeten Blöcke im Dateisystem. UNMAP auf einem Gerät mit mehr nicht verwendeten Blöcken dauert länger.

  • Die für das Block-Volume konfigurierte Performancestufe (VPU/GB-Einstellung).

  • Bei Dateisystemen hängt die Implementierung des Gastdateisystems von Dateisystem zu Dateisystem ab.

UNMAP für angehängte Volumes vor dem 14. Juni 2023 aktivieren

UNMAP ist für alle neuen Anhänge standardmäßig sowohl für Boot-Volumes als auch für Block-Volumes aktiviert. Bei Volumes, die vor dem 14. Juni 2023 angehängt wurden, prüfen Sie mit den folgenden Befehlen, ob UNMAP bereits aktiviert ist. Falls nicht, führen Sie die empfohlenen Aktionen aus, um es zu aktivieren.

Prüfen, ob UNMAP bereits aktiviert ist

Linux

Prüfen Sie mit dem Befehl lsblk -D, ob UNMAP für ein Volume aktiviert ist. Wenn UNMAP aktiviert ist, haben die Spalten DISC-GRAN und DISC-MAX in der Ausgabe Werte ungleich Null. Wenn die Werte für die Spalten DISC-GRAN und DISC-MAX in der Ausgabe Nullen sind, ist die UNMAP-Funktionalität nicht aktiviert. Erfahren Sie, wie Sie UNMAP aktivieren.

Der folgende Screenshot enthält eine Beispielausgabe für den Befehl lsblk -D auf Volumes, bei denen UNMAP aktiviert ist.

lsblk-Ausgabe bestätigt, dass TRIM aktiviert ist

Windows

SCSI UNMAP ist standardmäßig aktiviert.

UNMAP aktivieren

Um die UNMAP-Funktionalität für ein Volume zu aktivieren, führen Sie je nach Anhangstyp des Volumes eine der folgenden Aktionen aus. Diese Aktionen gelten für alle Betriebssysteme.

  • iSCSI-Anhänge: Verwenden Sie die iSCSI-Befehle, um sich abzumelden und sich dann erneut anzumelden.

  • Paravirtualisierte Anhänge: Trennen Sie die Instanz, und hängen Sie sie dann erneut an das Volume an.

UNMAP mit dem Dateisystem verwenden

Sie können das Dateisystem so konfigurieren, dass UNMAP-Befehle ausgegeben werden, um gelöschte oder nicht verwendete Blöcke vom Dateisystem zu verwerfen. Dadurch werden Ihre Volume-Backupgrößen reduziert.

Linux

Befehle zur manuellen Ausgabe von UNMAP

Führen Sie den Befehl fstrim aus, um UNMAP-Befehle an das Backend abzusetzen und die gelöschten oder nicht verwendeten Blöcke vom Dateisystem zu verwerfen und freizugeben.

Befehle, die UNMAP regelmäßig ausgeben

Sie können den systemctl-Timer aktivieren, um den UNMAP-Befehl fstrim des Dateisystems regelmäßig auszuführen. Der Timer führt den Befehl fstrim automatisch einmal pro Woche auf allen Einhängepunkten aus.

So aktivieren Sie den Timer:

sudo systemctl enable fstrim.timer

So prüfen Sie den Status des Timers:

sudo systemctl status fstrim.timer

Befehle zum Aktivieren von "Onlineblock verwerfen"

Sie können Mount-Optionen für das Dateisystem angeben, um die Discard-Befehle sofort auszugeben, wenn ein Block gelöscht oder nicht mehr verwendet wird. Dadurch werden die UNMAP-Befehle sofort an das Backend-Speichersystem gesendet, wenn eine Datei gelöscht oder die Dateigröße reduziert wird. Gehen Sie bei dieser Option vorsichtig vor, da Sie bekannte Performanceprobleme mit dem Dateisystem verursachen, obwohl die Performance des Backend-Geräts durch Aktivierung von UNMAP nicht beeinträchtigt wird.

Mount-Befehl zum Angeben von Onlineblock-Verwerfen:

mount –o discard <device_path> <mount_point>

Sie können die Datei /etc/fstab aktualisieren, um discard an die Mountoptionen anzuhängen. Beispiel:

UUID="94c5aade-8bb1-4d55-ad0c-388bb8aa716a" /data1 xfs defaults,noatime,discard 0 2

Windows

Führen Sie in einem Befehlsfenster auf der Instanz den folgenden Befehl aus, um UNMAP zu aktivieren, sofern dieser noch nicht aktiviert ist:

fsutil behavior set DisableDeleteNotify  0

Keine Performanceauswirkungen

Wenn Sie den UNMAP-Befehl verwenden, wirkt sich dies nicht auf die Performance eines Volumes aus. IOPS und Durchsatz werden garantiert nicht beeinträchtigt. Die Dauer der Verarbeitung der UNMAP-Befehle hängt jedoch von der für ein Volume konfigurierten Performanceebene ab.

Beispiel: fstrim dauert länger, wenn die Ausführung auf einem für die Performanceebene Niedrigere Kosten konfigurierten Volume ausgeführt wird, im Vergleich zu Volumes, die für die Ebenen Ausgeglichen, Höhere Performance oder Ultra High Performance konfiguriert sind.