Recortar (comando de conducción)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 10 de mayo de 2020; las comprobaciones requieren 19 ediciones .

Recortar ( ing.  para recortar  - recortar) - un comando de interfaz ATA que permite que el sistema operativo notifique a la unidad de estado sólido sobre qué bloques de datos ( páginas ) no llevan una carga útil y no se pueden almacenar físicamente.

Trim es parte de la especificación de interfaz ATA , que está siendo estandarizada por el grupo T13 de INCITS [1] .

Razones para

El comando se introdujo poco después de la llegada de las unidades de estado sólido (SSD) para convertirlas en una alternativa competitiva a las HDD tradicionales en las computadoras personales.

Porque internamente, la implementación de operaciones en un SSD es muy diferente a la implementación de las mismas operaciones en discos duros mecánicos tradicionales, los métodos habituales de los sistemas operativos para operaciones como borrar archivos y formatear un disco (sin acceder directamente a los sectores afectados/ páginas en el disco) conducen a un deterioro progresivo en el rendimiento de las operaciones de escritura en el SSD [2] .

El uso de Trim permite que la SSD reduzca el impacto de la recolección de elementos no utilizados , que de lo contrario provocaría una caída en el rendimiento de las operaciones de escritura en los sectores afectados [3] .

Otras Soluciones

Aunque las utilidades para "restablecer" algunas unidades a su estado inicial ya estaban disponibles antes de la llegada de Trim, estas, entre otras cosas, eliminaban todos los datos de la unidad, lo que las hacía prácticamente inutilizables para la optimización [4] .

Características de las unidades de estado sólido

A nivel del sistema de archivos

Debido a las peculiaridades de los métodos de eliminación comúnmente utilizados en los sistemas de archivos , las unidades no saben qué sectores/páginas están realmente en uso y cuáles pueden considerarse inactivos.

Las operaciones de eliminación generalmente se limitan a marcar bloques de datos como "no utilizados" en el sistema de archivos [5] [6] . A diferencia, por ejemplo, de una operación de sobrescritura, la eliminación no dará como resultado una escritura física en los sectores afectados que contienen datos. Dado que la unidad no tiene acceso a las estructuras del sistema de archivos, como la lista de clústeres no utilizados, la unidad no sabe cómo liberar bloques.

Si bien esto a menudo hizo posible recuperar datos eliminados en HDD tradicionales , a pesar de que el sistema operativo los marcó como "eliminados", también significó que cuando el sistema operativo más tarde realizó una operación de escritura en uno de los sectores considerados espacio libre, esta operación se consideraría una operación de sobrescritura desde el punto de vista de la unidad. Para los discos duros tradicionales, esta operación no es diferente de escribir en un sector inactivo, para SSD, debido al nivel de desgaste, la sobrescritura de datos es significativamente diferente de escribir en un sector inactivo (cada escritura en el mismo sector lógico se realizará en diferentes unidades físicas). sectores), lo que podría degradar el rendimiento más operaciones de escritura [6] .

En el nivel físico de la memoria

Los SSD almacenan datos en celdas de memoria flash agrupadas (en un SSD MLC ) en "páginas" (normalmente de 4 KB cada una), que a su vez se agrupan en bloques (normalmente de 128 páginas o 512 KB en total) [5] [7 ] .

Las celdas flash NAND solo se pueden escribir directamente si están en blanco. En el caso de que almacenen datos, el contenido de las celdas debe borrarse antes de que se escriban nuevos datos en ellas. En las unidades SSD, la operación de escritura solo se puede realizar para páginas, sin embargo, debido a limitaciones de hardware, el comando de eliminación siempre se realiza en todo el bloque [7] . Como resultado, la escritura en medios SSD es muy rápida siempre que haya páginas en blanco, pero se ralentiza significativamente si es necesario borrar las páginas preescritas.

Dado que las celdas de una página deben borrarse antes de que se puedan volver a escribir, pero solo se puede borrar un bloque completo, el proceso de reescritura inicia un ciclo de lectura-borrado-modificación-escritura [5] [8] : el contenido de la el bloque completo debe conservarse en la memoria caché antes de que pueda eliminarse de la unidad, los datos sobrescritos se modifican en la memoria caché y solo entonces el bloque completo (con la página actualizada) se escribe en la unidad. Este fenómeno se conoce como amplificación de escritura[9] [10] .

En el nivel del controlador SSD

En sus controladores SSD, los fabricantes utilizan varias técnicas para distribuir de manera óptima las operaciones de escritura en la unidad flash [5] [11] . Esto se hace no solo para optimizar la velocidad al minimizar la amplificación de escritura, sino también para aumentar la vida útil de las celdas flash ( ) , que las celdas flash MLC convencionales pueden soportar 3000-5000 ciclos de escritura [11] . Otro enfoque es usar memoria de repuesto (respaldo), no declarada al sistema operativo o incluso al BIOS , para proporcionar páginas limpias para operaciones de escritura durante el mayor tiempo posible antes de comenzar a sobrescribir otras páginas [3] .

La eficacia de estos métodos depende en gran medida del intercambio de información entre el sistema operativo y el controlador SSD sobre qué páginas se pueden considerar ocupadas y qué páginas se pueden considerar libres. Tradicionalmente, la mayoría de los sistemas operativos no informan a las unidades sobre los sectores/páginas eliminados, lo que no permite que los controladores SSD asignen el espacio libre de manera óptima. El comando Trim se introdujo para remediar esto borrando las celdas no utilizadas antes de que se escriban, reduciendo así el tiempo de acceso [3] .

Dado que el comando borra por completo los datos de las celdas, normalmente no es posible recuperarlos [12] .

Trim no siempre es compatible con las matrices RAID [13] .

Equipo de soporte para sistemas operativos y unidades

Los SSD más antiguos fabricados antes de la adición del comando Trim al estándar ATA requieren una actualización de firmware  o se ignorará el comando. El comando Recortar tampoco es compatible con todos los sistemas operativos .

Compatibilidad con Trim en sistemas operativos
Sistema operativo Apoyo
Windows 8 y superior Compatible desde el lanzamiento final (octubre de 2012)
Servidor Windows 2012 Compatible desde el lanzamiento final (octubre de 2012)
ventanas 7 Compatible desde el lanzamiento final (octubre de 2009) [14]
Windows Server 2008 R2 Compatible desde el lanzamiento final (octubre de 2009) [15] [16]
Linux 2.6.33 Compatible desde febrero de 2010 [17] , ioctl BLKDISCARD
OpenSolaris Compatible desde julio de 2010 [18]
FreeBSD 8.3, 9.2, 10.0 Compatible con UFS [19] , compatible con ZFS [20] [21] .
Mac OS X Compatible (desde la versión 10.10.4 para cualquier SSD, antes solo SSD suministrados por Apple [22] )
Androide A partir de la versión 4.3, se agregó soporte para la función fstrim al sistema, que es un análogo de Trim [23] [24]
ubuntu Compatible desde Ubuntu 14.04.

Otros métodos y casos

En algunos casos, cuando el sistema operativo no admite Trim, existen utilidades que le permiten enviar este comando "manualmente". Por lo general, dichos programas, utilizando las herramientas del sistema operativo, compilan una lista de bloques libres y la transfieren a la unidad en forma de una secuencia de comandos Trim. Dichos productos existen tanto en forma de utilidades universales ( HDPARM versión 9.17 y superior) como en forma de software para tipos individuales de unidades (Intel [25] , G.Skill [26] ).

El análogo SCSI del comando Trim son los mismos comandos Unmap y Write [27] .

Notas

  1. Documentos T13 que hacen referencia a  Trim . INCITS T13 . INCITS. Consultado el 8 de julio de 2009. Archivado desde el original el 30 de junio de 2012.
  2. Shimpi, Anand Lal. The SSD Anthology  4. AnandTech.com (18 de marzo de 2009) . Consultado el 19 de junio de 2010. Archivado desde el original el 30 de junio de 2012.
  3. 1 2 3 Shimpi, Anand Lal. (2009-03-18). pags. diez.
  4. Shimpi, Anand Lal. (2009-03-18). pags. once.
  5. 1 2 3 4 Savill, John. Escuché que los discos de estado sólido (SSD) sufren una disminución en el rendimiento de escritura a medida que se usan. ¿Por qué?  (Inglés) . WindowsITPro (21 de abril de 2009). Consultado el 19 de junio de 2010. Archivado desde el original el 30 de junio de 2012.
  6. 1 2 Shimpi, Anand Lal. (2009-03-18). pags. 7.
  7. 1 2 Shimpi, Anand Lal. (2009-03-18). pags. 5.
  8. Shimpi, Anand Lal. (2009-03-18). pags. ocho.
  9. Amplificación de escritura: la salsa secreta de Intel . Consultado el 20 de septiembre de 2010. Archivado desde el original el 15 de noviembre de 2010.
  10. Dentro del controlador X25-M: nivelación de desgaste, control de amplificación de escritura
  11. 1 2 Shimpi, Anand Lal. (2009-03-18). pags. 6.
  12. ¿Demasiado recortado? Cuando la recuperación de datos SSD es  imposible . TechGage . TechGage (5 de marzo de 2010). Consultado el 16 de abril de 2010. Archivado desde el original el 30 de junio de 2012.
  13. Gareth Halfacree. Intel lanza Trim para  RAID . bit-tech.net (23 de marzo de 2010). Consultado el 2 de noviembre de 2010. Archivado desde el original el 30 de junio de 2012.
  14. Soporte y preguntas y respuestas para unidades de estado  sólido . MSDN (9 de mayo de 2009). Recuperado: 2010-08-12]. Archivado desde el original el 30 de junio de 2012.
  15. Mejoras de Windows 7 para unidades de estado  sólido . Descargas de Microsoft . Microsoft Corporation (12 de noviembre de 2008). Consultado el 8 de julio de 2009. Archivado desde el original el 30 de junio de 2012.
  16. P. ¿Qué es la función Trim para discos de estado sólido (SSD) y por qué es importante?  (Inglés)  (enlace inaccesible) . Profesional de TI de Windows. Consultado el 1 de septiembre de 2010. Archivado desde el original el 2 de enero de 2010.
  17. Trim en Linux  (inglés)  (enlace descendente) . Novatos del kernel. Consultado el 1 de septiembre de 2010. Archivado desde el original el 30 de junio de 2012.
  18. Compatibilidad con SATA Trim en OpenSolaris (29 de julio de 2010). Archivado desde el original el 30 de junio de 2012.
  19. SVN revisión 216796 (29 de diciembre de 2010). Archivado desde el original el 30 de junio de 2012.
  20. SVN revisión 240868 (23 de septiembre de 2012). Archivado desde el original el 25 de octubre de 2012.
  21. Clustering TRIM (enlace descendente) (5 de mayo de 2011). Archivado desde el original el 30 de junio de 2012. 
  22. Daniel Eran Dilger. Los MacBook Pro de Apple se envían con soporte SSD TRIM activo en Snow Leopard  . appleinsider.com (4 de marzo de 2011). Consultado el 7 de marzo de 2011. Archivado desde el original el 30 de junio de 2012.
  23. Cómo funciona: TRIM . https://guides.ru/ . Consultado el 7 de enero de 2021. Archivado desde el original el 9 de enero de 2021.
  24. ¿La tecnología TRIM en Android 4.3 mantendrá un funcionamiento fluido  (ruso)  ? . fullhub.ru . Consultado el 7 de enero de 2021. Archivado desde el original el 10 de enero de 2021.
  25. Documento técnico de Intel SSD Optimizer  (ing.) (pdf). Corporación Intel Fecha de acceso: 23 de enero de 2010. Archivado desde el original el 30 de junio de 2012.
  26. Wiper.exe para la  serie Falcon . XtremeSystems. Fecha de acceso: 23 de enero de 2010. Archivado desde el original el 30 de junio de 2012.
  27. Nota para la compatibilidad con SCSI UNMAP en la lista de correo de FreeBSD . Archivado desde el original el 30 de junio de 2012.

Enlaces