it-swarm.dev

¿Ubuntu tiene soporte para el comando TRIM para usar con SSD?

Las unidades SSD deben "borrarse/restablecerse" después de que la unidad se llene para mantener el rendimiento. Esto se hace a través del comando TRIM para nuevas unidades SSD. ¿Ubuntu admite el comando TRIM (a través de hdparm, etc.) para borrar/restablecer estas unidades?

34
ssanj

Parece que hay soporte para la funcionalidad TRIM en las versiones 10.10 y posteriores:

Además, las cosas de TRIM ocurren automáticamente: los bloques vacíos se liberan automáticamente cuando ya no son necesarios (por ejemplo, elimina un archivo), si el disco informa que es compatible con TRIM. No tiene que emitir manualmente un comando hdparm para que esto funcione.

24
Jeremy Kerr

La respuesta de Jeremy no es del todo precisa AFAIK. He estado ejecutando los últimos núcleos estables en Lucid durante algún tiempo y he seguido el estado de TRIM con bastante atención ya que tengo una OCZ Agility como mi disco principal.

Esto es lo que (creo) que sé:

  • El núcleo tiene soporte TRIM a partir de 2.6.33 (Maverick es 2.6.35).

  • EXT4 tiene soporte TRIM pero solo cuando registro en diario está desactivado.

  • La forma en que TRIM funciona en el núcleo es muy básica y bastante lenta. Los discos que siguen las especificaciones pueden aceptar múltiples rangos, pero el núcleo actualmente solo puede hacer un rango a la vez. Esto viene de algo que leí quizás hace un mes. Desearía tener la fuente ya que esto podría no ser cierto o ya no podría aplicarse.

El diario es lo que me mata. La corrupción de datos es una PITA.

Sin embargo, las versiones más nuevas de hdparm (v9.25 - Maverick está en v9.27) vienen con un script llamado wiper.sh que realiza un análisis rápido de una unidad y luego recorta todo el espacio vacío. En lugar de perder características, me resulta mucho más fácil cron wiper.sh ejecutar una vez a la semana (o una vez al día/mes/lo que sea). La degradación de SSD para una unidad de sistema operativo no ocurre tan rápido a menos que constantemente rompas las cosas. No necesita TRIMming en tiempo real.

También hay una interfaz gráfica de usuario llamada DiskTRIM que no parece estar en los repositorios. Los usuarios menos experimentados pueden encontrar esto más fácil de usar que configurar trabajos cron.

Hay PPA para hdparm y disktrim y todos pueden ejecutarse en Lucid (y más atrás) sin necesidad de kernels 2.6.33+.

20
Oli

Linux tiene soporte para TRIM automático con sistema de archivos ETX4 desde el kernel 2.6.33.

La primera versión de Ubuntu con soporte TRIM automático es 10.10 (Maveric), pero debe activarse en fstab (como se describe aquí ).

8
Uli

En general, sí, porque hay muchas formas de obtener núcleos más nuevos. Si aclaramos su pregunta para leer, "¿10.04 LTS tiene soporte inmediato para el comando?" Entonces la respuesta es no. Sin embargo, tanto los núcleos de Maverick como los de Natty (-generic, -generic-pae, -server y -virtual sabores) han sido respaldados a 10.04 LTS y están disponibles en $ release-updates en los repositorios de Ubuntu, por ejemplo, linux-image-generic-lts-backport-maverick is Backport de Maverick a Lucid .

4
Daniel T Chen

Estoy ejecutando 11.04 y no parece que TRIM esté funcionando de inmediato.

Probé sando las instrucciones aquí para crear un archivo, eliminarlo y ver si los sectores se ponen a cero/eliminados .

Traté de habilitar TRIM sando las instrucciones aquí pero sin dados

Ejecuto wiper.sh, obtengo

/sbin/wiper.sh --verbose --commit /dev/sda1[.____.font>wiper.sh: utilidad SATA SSD TRIM de Linux, versión 3.3, de Mark Lord. 
 rootdev = /dev/sda1[.____.font>fsmode2: fsmode = lectura-escritura 
 /: fstype = ext4 
 freesize = 13785252 KB, reservado = 137852 KB 
 Preparación para TRIM en línea de espacio libre en/dev/sda1 (ext4 montado lectura-escritura en /).[.____.font>[.____.font> Esta operación podría destruir silenciosamente sus datos. ¿Estás seguro (s/N)? y 
 Creando un archivo temporal (13647400 KB) .. 
 Sincronizando discos .. 
 Iniciando operaciones TRIM .. 
 get_trimlist =/sbin/hdparm --fibmap WIPER_TMPFILE. 9689 
 
/Dev/sda: 
 Recortando 27294800 sectores de 462 rangos 
 Tuvo éxito 
 Eliminando el archivo temporal ... 
 Sincronizando discos ..
Hecho.

Sin embargo, si lo vuelvo a ejecutar, muestra que se debe recortar el mismo número de sectores/rangos e informa de nuevo el éxito. Me sale exactamente lo mismo cada vez. No parece que los sectores se hayan eliminado/liberado alguna vez. Leerlos todavía muestra los mismos datos.

Curioso si alguien más lo tiene a trabajar.

2
user10292