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.
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.