Supporto per UNMAP SCSI
Oracle Cloud Infrastructure Block Volume ti consente di configurare le tue applicazioni per inviare comandi SCSI UNMAP sia ai volumi di avvio che ai volumi a blocchi per recuperare spazio inutilizzato. Ciò garantisce una riduzione significativa delle dimensioni del backup e ridurrà anche i tempi di ripristino del backup e duplicazione dei volumi. I comandi UNMAP SCSI sono simili ai comandi TRIM che è possibile inviare alle unità SSD per recuperare spazio inutilizzato.
Si invia un comando SCSI UNMAP per indicare al sottosistema di memorizzazione di eliminare e liberare i blocchi eliminati o non più utilizzati da un'applicazione o dal file system. Se non si invia questo comando, il sottosistema di storage non è a conoscenza del fatto che i blocchi non sono più in uso e continua a includere questi blocchi in tutti i backup e le copie nei nuovi volumi. Dopo che il sottosistema di storage riceve il comando UNMAP per i blocchi, i blocchi corrispondenti vengono eliminati e liberati, in modo da essere esclusi dai backup e dalle copie futuri.
La funzionalità UNMAP per volumi a blocchi viene implementata utilizzando i comandi SCSI UNMAP. UNMAP è supportato sia per i tipi di collegamento dei volumi ISCSI che per quelli pseudo-virtualizzati.
UNMAP è un comando non deterministico e non è garantito che tutti i blocchi richiesti vengano scartati immediatamente quando si utilizza il comando. Il tempo necessario per eliminare i blocchi su un dispositivo dipende dai seguenti fattori:
Numero di blocchi non utilizzati nel file system. Il completamento di UNMAP su un dispositivo con più blocchi inutilizzati richiederà più tempo.
Il livello di prestazioni (impostazione VPU/GB) configurato per il volume a blocchi.
Per i file system, dipende dall'implementazione del file system guest, che varia da file system a file system.
Abilitazione di UNMAP per i volumi allegati prima del 14 giugno 2023
UNMAP è abilitato per impostazione predefinita sia per i volumi di avvio che per i volumi a blocchi per tutti i nuovi collegamenti. Per i volumi collegati prima del 14 giugno 2023, utilizzare i comandi riportati di seguito per verificare se UNMAP è già abilitato o meno e, in caso contrario, eseguire le azioni consigliate per abilitarlo.
Controllo per determinare se UNMAP è già abilitato
Linux
Utilizzare il comando lsblk -D
per verificare se UNMAP è abilitato per un volume. Se UNMAP è abilitato, le colonne DISC-GRAN
e DISC-MAX
nell'output avranno valori diversi da zero. Se i valori per le colonne DISC-GRAN
e DISC-MAX
nell'output sono zero, la funzionalità UNMAP non è abilitata. Scopri come abilitare UNMAP.
Lo screenshot riportato di seguito contiene un output di esempio per il comando lsblk -D
sui volumi con UNMAP abilitato.
Finestre
SCSI UNMAP è abilitato per impostazione predefinita.
Abilitazione di UNMAP
Per abilitare la funzionalità UNMAP per un volume, eseguire una delle seguenti azioni, a seconda del tipo di collegamento del volume. Queste azioni si applicano a tutti i sistemi operativi.
-
Collegamenti iSCSI: utilizzare i comandi iSCSI per eseguire il logout e quindi eseguire di nuovo il login.
-
Collegamenti pseudo-virtualizzati: scollegare e quindi ricollegare l'istanza al volume.
Utilizzo di UNMAP con il file system
È possibile configurare il file system in modo che esegua i comandi UNMAP in modo da eliminare i blocchi eliminati o inutilizzati dal file system. Ciò riduce le dimensioni del backup del volume.
Linux
Comandi per emettere UNMAP manualmente
Eseguire il comando fstrim
per eseguire i comandi UNMAP al backend in modo da eliminare e liberare i blocchi eliminati o inutilizzati dal file system.
Comandi per emettere periodicamente UNMAP
È possibile abilitare il timer systemctl per eseguire periodicamente il comando UNMAP del file system fstrim
. Il timer esegue automaticamente il comando fstrim
su tutti i punti di attivazione una volta alla settimana.
Per abilitare il timer:
sudo systemctl enable fstrim.timer
Per controllare lo stato del timer:
sudo systemctl status fstrim.timer
Comandi per abilitare l'eliminazione blocchi online
È possibile specificare le opzioni di attivazione del file system per eseguire immediatamente i comandi scartati quando un blocco viene eliminato o non viene più utilizzato. Ciò invia immediatamente i comandi UNMAP al sistema di storage backend quando un file viene eliminato o la dimensione del file viene ridotta. Prestare attenzione con questa opzione poiché è noto che causa alcuni problemi di prestazioni con il file system anche se non vi è alcun impatto sulle prestazioni sul dispositivo backend abilitando UNMAP.
Comando di attivazione per specificare l'eliminazione dei blocchi in linea:
mount –o discard <device_path> <mount_point>
È possibile aggiornare il file /etc/fstab
in modo da aggiungere discard
alle opzioni di attivazione, ad esempio:
UUID="94c5aade-8bb1-4d55-ad0c-388bb8aa716a" /data1 xfs defaults,noatime,discard 0 2
Finestre
Da una finestra di comando sull'istanza, eseguire il comando seguente per abilitare UNMAP, se non è già abilitato:
fsutil behavior set DisableDeleteNotify 0
Nessun impatto prestazioni
Il comando UNMAP non influisce sulle prestazioni di un volume. Gli IOPS e il throughput garantiti non saranno interessati. Tuttavia, il tempo necessario per elaborare i comandi UNMAP dipende dal livello di prestazioni configurato per un volume.
Ad esempio, il completamento di fstrim
richiede più tempo quando viene eseguito su un volume configurato per il livello di prestazioni Costo inferiore rispetto ai volumi configurati per i livelli Bilanciato, Prestazioni più elevate o Ultra High Performance.