En un ambiente Windows, si elimina y vuelve a crear conjuntos de datos grandes con frecuencia (por ejemplo: Respaldo en disco), una acción de eliminación anterior puede dar lugar a una gran cantidad de comandos UNMAP en el arreglo. Si vuelve a escribir el mismo espacio en disco, el rendimiento de escritura puede verse afectado, ya que las escrituras entrantes esperan a que se procesen las UNMAP, las UNMAP devuelven elementos de espacio de disco al pool de discos en el lado del arreglo.
El mecanismo del sistema operativo que impulsa esta lógica de eficiencia del almacenamiento se denomina "TRIM". Si TRIM está activo y elimina un bloque en el sistema de archivos, el sistema de archivos (NTFS) genera metadatos sobre el espacio liberado y lo transfiere por la pila de I/O. En el nivel de disco en la pila de I/O, se toma la decisión de si el disco de destino está conectado a ATA. En ese caso, se envía un comando TRIM de ATA al objeto del disco físico. Si el disco es un disco SCSI, el TRIM se convierte en un DESASIGNACIÓN DE SCSI.
Si vuelve a eliminar y reescribir la misma sección de datos, el aspecto de eficiencia del almacenamiento de este mecanismo de devolución al pool es limitado. En estas circunstancias, puede haber optado por deshabilitar TRIM en el nivel NTFS durante el trabajo de producción correspondiente o deshabilitar TRIM por completo.
La pregunta resultante es ¿cómo puede asegurarse de que los discos sigan siendo eficientes en el uso del espacio a largo plazo?
Para activar el reintento en un dispositivo, por lo general, ejecute el comando de desfragmentación con la opción /L. Cuando deshabilitó TRIM mediante "fsutil behavior set disabledeletenotify 1", es posible que tenga la impresión de que el recorte o el desasignación solo están deshabilitados durante la eliminación y que el reintentado funciona según lo esperado. Este no es el caso. La acción de reintención en la desfragmentación es un mecanismo que asigna un archivo disperso vacío y, a continuación, llama a FSCTL_MOVE_FILE para transferir los datos. Consulte "Internos de Windows 7", "Parte II", p. 644 ff para obtener más detalles. El comportamiento resultante implica una acción de eliminación en la capucha. Lamentablemente, si disabledeletenotify es "1", el comando retrim sigue funcionando correctamente. No da como resultado desasignación.
Como resultado, la secuencia para recuperar el almacenamiento debe incluir un paso para activar TRIM antes de que se ejecute la desfragmentación.
Además, si deshabilitó TRIM en el sistema globalmente, actívelo, desfragmente y, a continuación, vuelva a desactivarlo, el proceso de desactivación puede tener como resultado la ejecución incompleta del comando de reintenm, aunque el comando haya vuelto al símbolo del sistema. Cuando se realizaron pruebas de laboratorio en Windows 2019, descubrimos que teníamos que esperar un par de segundos antes de configurar disabledeletenotify nuevamente en "1". Creemos que esto es el resultado de una interacción entre el comando de desfragmentación y el servicio de optimización en segundo plano.
Si programa el TRIM mediante Drive Optimizer, el menú predeterminado del explorador requiere una tarea programada denominada "ScheduledDef decodificador" (/Microsoft/Windows/Defrag) en el programador de tareas. Si modifica la tarea, Drive Optimizer detecta este hecho y solicita restaurar los valores predeterminados antes de poder continuar. Si deshabilita la tarea, aún puede ejecutar los comandos de desfragmentación manualmente, pero no puede programarlos.
Esta tarea "ScheduledDef lcd" también se denomina Mantenimiento del sistema (Panel de control\Todos los elementos del panel de control\Seguridad y mantenimiento\Mantenimiento automático).
Como resultado, se recomienda dejar estos ajustes predeterminados del sistema como están y, en su lugar, considerar la creación de una nueva tarea en el programador de tareas, que:
El valor de tiempo de espera agotado en el paso 3 es una hibernación de pruebas de laboratorio. Nunca necesitábamos más de 10 segundos para que la desfragmentación tenga éxito y creemos que los 60 segundos son un punto de partida razonable. Si encuentra discrepancias entre los valores de capacidad asignados del lado del arreglo y el sistema de archivos informó que los valores de capacidad utilizados se acumulan, intente utilizar un valor mayor, como 300 segundos (5 minutos).
En lo siguiente, proporcionamos una plantilla para importar en un programador de tareas que se usará como base. Copie y pegue el siguiente código xml en un archivo, coloque el archivo a su alcance del sistema del servidor que desea configurar y utilice la acción de importación de tareas para importar la tarea. La siguiente plantilla de tareas se denomina DellSanDiskMaintenance. Ejecuta los cuatro pasos anteriores semanalmente, un sábado a las 20:00 h (8 p. m.), y se coloca en la raíz del programador, por ejemplo:
Dell Technologies 2023-07-07T09:21:50.4883878 Dell Technologies This task is an example of how to optimize thin SAN drives, if TRIM is globally disabled on the system. \DellSanDiskMaintenance D:AI(A;;FA;;;BA)(A;;FA;;;SY)(A;;FRFX;;;LS)(A;;FR;;;AU) 2023-07-01T20:00:00 PT2H true 1 S-1-5-18 HighestAvailable IgnoreNew true true true false false false false true true false false false true P1D P4D false false PT4H 7 %windir%\system32\fsutil.exe behavior set disabledeletenotify 0 %windir%\system32\defrag.exe /C /L /U timeout /t 60 %windir%\system32\fsutil.exe behavior set disabledeletenotify 1