¿Cómo habilitar TRIM?

184

Sé que el kernel de Linux admite TRIM a partir de la versión 2.6.33, por lo que debe haber soporte TRIM en ubuntu.

¿TRIM está habilitado de manera predeterminada o necesito cambiar algunas configuraciones o instalar software adicional para que funcione? Si es así, ¿cómo?

    
pregunta Uli 26.12.2010 - 13:44

2 respuestas

195

Ubuntu 14.10 en adelante

En Ubuntu 14.10 y 15.04, TRIMming se produce automáticamente todas las semanas en todos los discos SSD compatibles con fstrim .

$ tail -n1 /etc/cron.weekly/fstrim 
/sbin/fstrim --all || true

Ubuntu 14.04

A partir de Ubuntu 14.04, TRIM programado está habilitado por defecto para Intel, SAMSUNG, OCZ, Patriot y Sandisk SSD. Si tiene otra marca, puede desactivar la verificación del proveedor ejecutando el siguiente comando :

sed -i 's/exec fstrim-all/exec fstrim-all --no-model-check/g' /etc/cron.weekly/fstrim

(o simplemente edite el archivo /etc/cron.weekly/fstrim y agregue --no-model-check )

Ubuntu 13.10 y anteriores

Hay tres formas de realizar TRIM, manual, programado y automático:

TRIM manual

En Ubuntu esto se puede realizar con fstrim :

sudo fstrim /

sin embargo, no es necesario cuando las TRIM programadas o automáticas están habilitadas, como se detalla en las secciones a continuación.

Nota: para Ubuntu 11.04 y sistemas anteriores, fstrim no está disponible, por lo que debe usar wiper.sh proporcionado con hdparm en /usr/share/doc/hdparm/contrib/wiper.sh.gz

TRIM programado (recomendado)

Este es el método actualmente recomendado, y está planeado para ser activado por defecto para Ubuntu 14.04 Aquí se explica cómo activarlo manualmente en versiones anteriores de ubuntu (11.10 a 13.10):

Cree un archivo de script de trabajo CRON semanal:

gksudo gedit /etc/cron.weekly/fstrim

Pegue el siguiente código en el archivo, luego guarde y cierre el archivo:

#! /bin/sh  

# By default we assume only / is on an SSD. 
# You can add more SSD mount points, separated by spaces.
# Make sure all mount points are within the quotes. For example:
# SSD_MOUNT_POINTS='/ /boot /home /media/my_other_ssd'  

SSD_MOUNT_POINTS='/'  

for mount_point in $SSD_MOUNT_POINTS
do  
    fstrim $mount_point  
done

Tenga en cuenta que lo anterior supone que solo su sistema de archivos raíz / está ubicado en una SSD. Si tiene más puntos de montaje que residen en uno o más SSD, agréguelos a SSD_MOUNT_POINTS como se explica en el código.

Hacer el script ejecutable:

sudo chmod +x /etc/cron.weekly/fstrim

Y finalmente probarlo:

sudo /etc/cron.weekly/fstrim

Si no ve errores, su trabajo cron debería estar funcionando bien.

Ajuste automático (en desuso, lento)

TRIM automática ha sido compatible desde Ubuntu 10.10 (kernel 2.6.33) con el sistema de archivos EXT4. Sin embargo, el envío de comandos TRIM al SSD en tiempo real, después de cada eliminación, se ha reconocido para hacer que la eliminación sea mucho más lenta de lo habitual en algunas unidades. Por lo tanto, se recomienda una TRIM programada semanalmente a través de un trabajo cron (descrito anteriormente).

Para habilitar el TRIM automático en una unidad o partición, deben montarse con la opción discard en fstab . Primero haga una copia de seguridad de su fstab y luego ábralo para editarlo:

sudo cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

Agregue discard a la entrada de las opciones fstab (separadas por comas) para la unidad SSD o cada partición.

UUID=00000000-0000-0000-0000-000000000000  /  ext4  discard,errors=remount-ro  0  1

Cierre y guarde fstab, luego reinicie y el TRIM automático ahora debería estar funcionando.

Prueba de TRIM automática

Para probar si TRIM está funcionando, emita los siguientes comandos ( fuente ):

cd  / # Replace with SSD file system
sudo dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
sudo hdparm --fibmap tempfile

Desde la salida copie el número debajo de begin_LBA y verifique el nombre del dispositivo de su SSD: System->Administration->Disk Utility v.g. sda, sdb, sdc ...

Ejecute lo siguiente pero reemplace [ADDRESS] (begin_LBA) y sdX (nombre de dispositivo SSD) con los detalles obtenidos anteriormente.

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

la salida debe ser una larga cadena de caracteres para esos sectores

sudo rm tempfile
sync

Repite el comando hdparm desde arriba:

sudo hdparm --read-sector [ADDRESS] /dev/sdX 

Si solo obtiene ceros, la función TRIM automática está funcionando. Sin embargo, si después de eliminar el archivo, los sectores aún no están vacíos, espere un momento y vuelva a ejecutar el comando.

    
respondido por el Uli 30.09.2015 - 23:58
26

Tenga en cuenta que si usa encriptación, las soluciones publicadas aquí hasta ahora no lo ayudarán, porque también necesita habilitar el soporte TRIM en la capa de encriptación. Esto se puede hacer con las versiones kernel 3.1+ y cryptsetup versiones 1.4+, ambas incluidas en Ubuntu 12.04.

Encuentra mi guía sobre cómo configurar el TRIM para las particiones cifradas LUKS aquí

Cómo activar TRIM en LUKS particiones cifradas en Ubuntu & amp; Debian

Este tutorial paso a paso le permitirá aprovechar la tecnología TRIM para sus particiones SSD encriptadas para cryptsetup 1.4 o superior y kernel 3.1 o superior. Esto lleva a una experiencia SSD libre de problemas porque

  

"TRIM permite que el SSD maneje la sobrecarga de recolección de basura, eso   de lo contrario, retrasaría significativamente las futuras operaciones de escritura al   bloques involucrados, de antemano ".

Configuración de ejemplo

Notebook con SSD como unidad única, Linux instalado en una sola partición raíz LVM ext4 con una partición LVM swap, ambas sobre una partición lógica cifrada LUKS.

SSD: / dev / sda

sudo fdisk -l /dev/sda
/dev/sda1               # boot partition (83) (unencrypted, ext4)
/dev/sda2               # extended partition
/dev/sda5               # logical partition (83) with LUKS encryption

ls /dev/mapper
/dev/mapper/sda5_crypt         # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root   # rootpartition sda5_crypt
/dev/mapper/volumegroup-swap   # swap partition sda5_crypt

Cómo

  1. Haz una copia de seguridad de todos tus datos. Estás jugando con tu sistema de archivos entonces tener una copia de seguridad es simplemente una buena idea.
  2. Asegúrese de tener las versiones necesarias kernel y cryptsetup (3.1 &erio; 1.4, p. en Ubuntu 12.04, ten cuidado, al momento de escribir 12.04 sigue siendo beta).
  3. Añadir un parámetro de descarte a las opciones del sistema de archivos del cifrado Volumen LVM en su archivo / etc / fstab. Esto hace que el sistema de archivos de su partición LVM consciente de que quiere usar TRIM.

    /dev/mapper/volumegroup-root    /   ext4 discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. Sin embargo, el último paso no es suficiente. Mientras LUKS no sepa que quiera usar TRIM, bloqueará de manera efectiva todo el TRIM operaciones provenientes del sistema de archivos de la partición LVM, para seguridad razones. Agregue un parámetro de descarte a las opciones de cryptdevice en / etc / crypttab para hacer que LUKS acepte el comportamiento de descarte de la LVM partición.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. Reconstruye tu initramfs. Las opciones de crypttab se almacenan allí y utilizado en el arranque.

    sudo update-initramfs -c -k all
    
  6. Reiniciar.

  7. Compruebe si TRIM ahora está activo.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. Si el último comando muestra un resultado como este (1 allow_discards al final) ya está todo listo.

    0  77656056  crypt  aes-cbc-essiv:sha256  abc[...]c7a0c  0  8:5  2056  1  allow_discards
    

Resultado

TRIM está activado. ¡Disfruta de tu SSD sin problemas!

    
respondido por el nem75 14.04.2012 - 17:00

Lea otras preguntas en las etiquetas