Apoyo a SCSI UNMAP
Oracle Cloud Infrastructure Block Volume permite configurar las aplicaciones para que envíen comandos SCSI UNMAP tanto a volúmenes de inicio como a volúmenes en bloque para recuperar espacio no utilizado. De esta forma, se reduce considerablemente el tamaño de las copias de seguridad y, además, se agilizan los tiempos de restauración y clonación de volúmenes de las copias de seguridad. Los comandos SCSI UNMAP son similares a los comandos TRIM que puede enviar a las unidades SSD para recuperar espacio no utilizado.
El comando SCSI UNMAP se envía para indicar al subsistema de almacenamiento que descarte y libere los bloques que una aplicación o el sistema de archivos suprimen o ya no los utilizan. Si no envía este comando, el subsistema de almacenamiento no sabe que los bloques ya no están en uso y continúa incluyendo estos bloques en todas las copias de seguridad y clones a nuevos volúmenes. Una vez que el subsistema de almacenamiento recibe el comando UNMAP para los bloques, los bloques correspondientes se desechan y liberan, por lo que se excluyen de las copias de seguridad y clonaciones futuras.
La funcionalidad UNMAP de volumen en bloque se implementa mediante los comandos UNMAP de SCSI. UNMAP está soportado para los tipos de asociación de volúmenes ISCSI y paravirtualizados.
UNMAP es un comando no determinista y no se garantiza que todos los bloques solicitados se desechan inmediatamente cuando se utiliza el comando. El tiempo que se tarda en desechar los bloques de un dispositivo depende de los siguientes factores:
Número de bloques no utilizados en el sistema de archivos. UNMAP en un dispositivo con más bloques no utilizados tardará más en completarse.
El nivel de rendimiento (configuración de VPU/GB) configurado para el volumen en bloque.
Para los sistemas de archivos, depende de la implementación del sistema de archivos invitado, que varía de un sistema de archivos a otro.
Activación del UNMAP para volúmenes adjuntos antes del 14 de junio de 2023
UNMAP está activado por defecto para volúmenes de inicio y volúmenes en bloque para todas las nuevas asociaciones. Para los volúmenes asociados con anterioridad al 14 de junio de 2023, use los siguientes comandos para comprobar si UNMAP ya está activado o no, y si no lo está, tome las medidas recomendadas para activarlo.
Comprobación de si UNMAP ya está activado
Linux
Utilice el comando lsblk -D
para comprobar si UNMAP está activado para un volumen. Si UNMAP está activado, las columnas DISC-GRAN
y DISC-MAX
de la salida tendrán valores distintos de cero. Si los valores de las columnas DISC-GRAN
y DISC-MAX
de la salida son ceros, la funcionalidad UNMAP no está activada. Consulte cómo habilitar el UNMAP.
La siguiente captura de pantalla contiene una salida de ejemplo para el comando lsblk -D
en volúmenes que tienen UNMAP activado.
Windows
SCSI UNMAP está activado por defecto.
Activación del UNMAP
Para activar la funcionalidad UNMAP para un volumen, realice una de las siguientes acciones, según el tipo de asociación del volumen. Estas acciones se aplican a todos los sistemas operativos.
-
Asociaciones iSCSI: utilice los comandos de iSCSI para cerrar sesión y, a continuación, volver a iniciarla.
-
Asociaciones paravirtualizadas: desasocie y vuelva a asociar la instancia al volumen.
Uso de UNMAP con el sistema de archivos
Puede configurar el sistema de archivos para que ejecute comandos UNMAP a fin de desechar los bloques suprimidos o no utilizados por el sistema de archivos. De esta forma, se reducen los tamaños de copia de seguridad de los volúmenes.
Linux
Comandos para ejecutar UNMAP manualmente
Ejecute el comando fstrim
para emitir comandos UNMAP en el backend para desechar y liberar los bloques suprimidos o no utilizados por el sistema de archivos.
Comandos para emitir periódicamente UNMAP
Puede activar el temporizador systemctl para ejecutar periódicamente el comando UNMAP del sistema de archivos fstrim
. El temporizador ejecuta automáticamente el comando fstrim
en todos los puntos de montaje una vez por semana.
Para activar el temporizador:
sudo systemctl enable fstrim.timer
Para comprobar el estado del temporizador:
sudo systemctl status fstrim.timer
Comandos para activar el desecho de bloques en línea
Puede especificar opciones de montaje del sistema de archivos para ejecutar los comandos de desecho inmediatamente cuando se suprime un bloque o ya no se utiliza. De esta forma, se envían inmediatamente los comandos UNMAP al sistema de almacenamiento de backend cuando se suprime un archivo o se reduce el tamaño del archivo. Tenga cuidado con esta opción, ya que se sabe que provoca algunos problemas de rendimiento en el sistema de archivos aunque no haya ningún impacto en el rendimiento en el dispositivo backend activando UNMAP.
Comando Mount para especificar un descarte de bloque en línea:
mount –o discard <device_path> <mount_point>
Puede actualizar el archivo /etc/fstab
para agregar discard
a las opciones de montaje, por ejemplo:
UUID="94c5aade-8bb1-4d55-ad0c-388bb8aa716a" /data1 xfs defaults,noatime,discard 0 2
Windows
En una ventana de comandos de la instancia, ejecute el siguiente comando para activar UNMAP, si aún no está activado:
fsutil behavior set DisableDeleteNotify 0
No afecta al rendimiento
Al utilizar el comando UNMAP, no afecta el rendimiento de un volumen. El rendimiento y las IOPS garantizados no se verán afectados. Sin embargo, el tiempo que se tarda en procesar los comandos de UNMAP depende del nivel de rendimiento configurado para un volumen.
Por ejemplo, fstrim
tarda más en completarse cuando se ejecuta en un volumen configurado para el nivel de rendimiento Costo bajo, en comparación con los volúmenes configurados para los niveles Equilibrado, Alto rendimiento o Rendimiento ultraalto.