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

34

Las unidades SSD deben "borrarse / restablecerse" después de que la unidad se llene para mantener el rendimiento. Esto se realiza 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?

ssanj
fuente
Buena pregunta, aunque tenga en cuenta que el grado en que TRIM mejora el rendimiento varía entre los SSD, para algunos no hace tanta diferencia como podría pensar (aunque de todos modos parecen ser los más lentos).
Nicholas Knight el
1
Creo que el rendimiento se restablecería a los mismos (si no cerca) los valores predeterminados de fábrica. Eche un vistazo aquí para obtener una explicación -> anandtech.com/show/2738/10
ssanj

Respuestas:

24

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.

Jeremy Kerr
fuente
Pensé que aún tenía que usar herramientas que "enviaran" el comando TRIM al SDD. Es bueno si funciona como usted especifica. :) Este artículo de Anandtech -> ( anandtech.com/show/2738/10 ) especifica que para que TRIM funcione, tanto el sistema operativo como el SSD necesitan soporte de TRIM. Supongo que mi pregunta es sobre el soporte de OS / Linux para TRIM cuando se usa con unidades SSD con reconocimiento TRIM.
ssanj
3
El comando TRIM necesita saber qué bloque (s) liberar, por lo que sería peligroso emitir esto sin saber exactamente qué bloques en el disco no se usan. Sí, tanto el sistema operativo como el disco deben tener soporte de recorte. En Linux, esto se agregó en la versión del kernel 2.6.33, por lo que se incluirá en Maverick. Tanto el controlador de disco como el sistema de archivos que está utilizando deben admitir el ajuste para que esto funcione correctamente. Si está utilizando ext4 como su sistema de archivos en Maverick, debería estar bien.
Jeremy Kerr
Entonces, me pregunto si será posible que los SSD existentes se sometan a un "TRIM adaptado" para limpiar el cruft existente acumulado antes de que el sistema operativo admita TRIM. ¿O se requeriría una reinstalación?
Kent Boogaart
20

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 el 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.shque realiza un análisis rápido de una unidad y luego recorta todo el espacio vacío. En lugar de perder funciones, me resulta mucho más fácil wiper.shejecutar cron 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 un ajuste 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 se pueden ejecutar en Lucid (y más atrás) sin necesidad de kernels 2.6.33+.

Oli
fuente
¿Puedes vincular a esos PPA por favor?
Jorge Castro
Entonces, ¿habilitar la discardopción de montaje para ext4 deshabilita el diario? Acabo de buscar referencias, pero no puedo encontrar una aparte de esta respuesta: ¿puede proporcionar una fuente?
Hamish Downer
2
en Ubuntu 12.04, wiper.sh ha sido reemplazado por fstrim
tomodachi
1
@Oli: He leído un poco más y ahora estoy bastante seguro de que la opción de descarte no deshabilita el diario. Afaict originalmente la opción de descarte solo funcionaba con el diario (encontré este parche que permite descartar sin el diario). La página del kernel ext4 documenta la opción de descarte pero no menciona que el diario es incompatible.
Hamish Downer
8

Linux tiene soporte para TRIM automático con el 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í ).

Uli
fuente
4

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-maverickes el respaldo de Maverick a Lucid .

Daniel T Chen
fuente
2

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

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

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

Ejecuto wiper.sh, obtengo

/sbin/wiper.sh --verbose --commit / dev / sda1
wiper.sh: utilidad Linux SATA SSD TRIM, versión 3.3, de Mark Lord.
rootdev = / dev / sda1
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 /).

Esta operación podría destruir silenciosamente sus datos. ¿Estás seguro (s / N)? y
Creando archivo temporal (13647400 KB) ..
Sincronizando discos ...
Inicio de operaciones TRIM.
get_trimlist = / sbin / hdparm --fibmap WIPER_TMPFILE.9689

/ dev / sda:
Recorte 27294800 sectores de 462 gamas
triunfado
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.


fuente
Si agregó la opción de descarte a fstab y todavía no funciona, probablemente sea un error en la alfa. Debe presentar un informe de error.
Uli
Acabo de probar esto en natty (siguiendo estas instrucciones: askubuntu.com/questions/18903/how-to-enable-trim ) y funciona aún mejor en natty, TRIM es casi instantáneo.
Uli
Es posible que tenga un SSD que no sea compatible con TRIM; bastantes de los SSD anteriores no eran compatibles con TRIM.
Hamish Downer