¿Qué es TRIM?
Para entender el propósito del comando, es necesario comparar primero las formas en que operan los discos duros mecánicas y las unidades de estado sólido durante la eliminación de archivos. Entonces, cuando se elimina un archivo, ya sea de una unidad SSD o de un disco HDD, el sistema de archivos particular empleado en este dispositivo marca el espacio de almacenamiento correspondiente como que ya no está en uso y elimina la referencia a ese archivo. Así se puede volver a utilizar el espacio liberado para guardar otros archivos. Un disco duro tradicional puede sobrescribir dichas áreas de inmediato cada vez que se ingresan nuevos datos. No obstante, esto no funciona así en el caso de la memoria flash de estado sólido.
Una unidad de estado sólido consta de celdas de memoria flash en las que se puede escribir algo sólo cuando están físicamente vacías. Por lo tanto, una unidad debe usar celdas nuevas o, si faltan, borrar los datos que contienen las ocupadas antes de iniciar una operación de escritura. Las celdas en sí están agrupadas en páginas de 4-16 KB, mientras que 128 páginas juntas constituyen un bloque. Se puede realizar una operación de escritura en una página individual, pero el borrado siempre afecta a todo el bloque debido a las especificaciones de la memoria flash. Por lo tanto, una unidad SSD debe copiar en caché el contenido del bloque, borrarlo del medio, reemplazar los datos en las páginas con esos de caché que están destinados a ser eliminados y luego restaurar el bloque actualizado en una nueva ubicación. Con tantos pasos para realizar, la escritura se vuelve significativamente más lenta que cuando se trata de páginas inicialmente desocupadas. Entonces, desde esta perspectiva, sería razonable preparar de antemano esas celdas de memoria para la escritura. Pero el problema es que, por definición, una unidad no es consciente de que ellas contienen información irrelevante hasta que el sistema de archivos decida utilizarlas. Y ahí es donde entra en juego TRIM.
TRIM es un comando especial que el sistema operativo ejecuta en una SSD después de la eliminación de archivo o del formateo de partición. El comando hace que el controlador de la unidad limpie físicamente los bloques que aún almacenan los archivos eliminados y los prepare para recibir nuevos datos. Esto se lleva a cabo durante el tiempo de inactividad mediante un proceso separado llamado la Recolección de basura activa: todos los datos válidos del bloque se copian y se escriben en páginas vacías de otro bloque, para que el bloque en cuestión pueda limpiarse. Esto permite acelerar las escrituras futuras y ayuda a la unidad a funcionar de manera óptima. Asimismo, de esta manera, se reduce la cantidad de procedimientos de escritura innecesarios, extendiendo así la longevidad de la unidad.
Cabe resaltar que los datos no se borran de inmediato en el momento del envío de dicho comando. No obstante, esto puede suceder en cualquier momento, dependiendo de varios factores, por ejemplo, cuando la unidad no se usa o al realizar la próxima escritura. Además, los controladores de SSD tienden a marcar los bloques pendientes como vacíos una vez que reciben TRIM, incluso a pesar de que aún no se han limpiado.
TRIM es, de hecho, un comando ATA para las unidades SSD Serial ATA (SATA), pero también hay unos análogos del mismo para otras interfaces de SSD, como UNMAP en las unidades SCSI y SAS, o DEALLOCATE en las PCI Express NVMe.
¿Cómo se activa en un dispositivo?
Como regla general, el sistema operativo lanza TRIM de manera automática y no se requiere ningún tipo de interacción de usuario. Aún así, de verdad, este comando no es obligatorio a realizar. Para que funcione como se espera, se deben cumplir todas las condiciones siguientes:
-
El firmware de la unidad de estado sólido soporta TRIM
La mayoría de las unidades SSD modernas fabricadas desde 2010 están diseñadas para soportar esta operación. Sin embargo, es posible que algunas unidades de generación anterior requieran actualizaciones de firmware para poder soportar ella o que aun no permitan usarla en absoluto. El fabricante debe proporcionar esta información en las especificaciones técnicas del medio digital respectivo.
-
El sistema operativo de la computadora es compatible con TRIM
Los principales sistemas operativos empezaron a soportar TRIM alrededor del año 2010. En las PC, TRIM se soporta en Windows 7 y en sus versiones posteriores. En macOS, a partir de la versión 10.6 Snow Leopard, TRIM está disponible exclusivamente para las SSD de marca propia de Apple. Con el lanzamiento de la versión 10.10.4 Yosemite de macOS, el comando pasó a ser compatible con las unidades de estado sólido de terceros, pero, en este caso, aun se debe activar a mano. Linux también soporta TRIM, pero el comando puede estar deshabilitado de forma predeterminada en algunas distribuciones.
A pesar de esto, no todos los sistemas de archivos parecen soportar TRIM. Por ejemplo, Windows ofrece TRIM para NTFS y ReFS, pero no lo proporciona para FAT32 y exFAT. En Linux, TRIM funciona con ext4, Btrfs, F2FS, XFS, JFS, así como con algunos otros sistemas de archivos.
-
La interfaz entre la computadora y la unidad SSD soporta TRIM
Incluso cuando tanto la SSD como el sistema operativo son compatibles con TRIM, todavía es posible que el bus físico entre los dos no soporta el envío de dicho comando. Si bien es totalmente compatible con la interfaz SATA (incluida la eSATA), TRIM generalmente no se realiza cuando dicha unidad esté conectada externamente a través de USB, FireWire, Thunderbolt, etc. Al mismo tiempo, hay unas cajas externas para discos de gama alta y adaptadores USB a SATA compatibles con los comandos similares a TRIM a través del protocolo USB Attached SCSI Protocol (UASP).
-
La configuración a la que pertenece la unidad es compatible con TRIM
Con raras excepciones, TRIM no se puede realizar en las unidades que forman parte de la mayoría de los niveles de RAID y ciertos tipos de volúmenes compuestos, como Windows Dynamic Disks y Apple Software RAID. Lo mismo se aplica a algunos dispositivos NAS.
TRIM en el contexto de la recuperación de datos
Aunque TRIM es beneficioso para el rendimiento de SSD, no se puede decir lo mismo cuando se trata de la recuperación de datos eliminados o formateados. El contenido de los archivos sujetos a TRIM se destruye permanentemente y, por lo tanto, ya no existe en el almacenamiento. Esto los hace irrecuperables por ninguna técnica automatizada o manual. Incluso si los bloques respectivos se colocaron en la lista de espera para limpiarse más tarde, es probable que el controlador de SSD presente ceros o "basura" aleatoria, cuando cualquier software los solicite. La única posibilidad de recuperar datos de una unidad SSD con TRIM habilitado es en el caso cuando el comando no se haya ejecutado realmente. Estos casos son muy raros, pero ocurren de vez en cuando por las siguientes razones:
-
TRIM no es compatible con uno de los "niveles"
Como se ha señalado ya, TRIM es una función que debe ser soportada por el medio de almacenamiento, el sistema operativo que lo controla, el sistema de archivos empleado y la interfaz utilizada para conectar dicho medio. Cuando falta algún eslabón de esta cadena, TRIM no se puede ejecutar y, en consecuencia, los datos siguen siendo recuperables. Un ejemplo típico es cuando se elimina un archivo de una unidad SSD conectada mediante un puerto USB.
-
Datos corrompidos
Cuando los elementos clave de la estructura lógica de la unidad se dañan (el sistema de archivos, la tabla de particiones, etc.), los datos pueden volverse inaccesibles tanto para el usuario como para el sistema operativo. Aunque se pierden de facto, es posible que el sistema operativo no los considere eliminados en ausencia de una operación de eliminación adecuada y, como resultado, no lance el comando TRIM.
-
Desconexión o pérdida de energía repentina
Cuando una unidad pierde energía o se desconecta inmediatamente después de la eliminación de ficheros, es posible que el sistema operativo no tenga tiempo suficiente para realizar TRIM, por lo que los datos pueden permanecer intactos.
-
Firmware defectuoso de SSD
El firmware utilizado en las unidades de estado sólido no siempre es perfecto, especialmente en los modelos de gama baja. Los errores que contiene a veces pueden impedir ciertos procesos, incluidos TRIM y Recolección de basura. En este caso, los datos originales pueden estar disponibles incluso después de su eliminación.