Comment activer TRIM?

184

Je sais que le noyau Linux prend en charge TRIM à partir de la version 2.6.33, il devrait donc y avoir un support TRIM dans ubuntu.

TRIM est-il activé par défaut ou dois-je modifier certains paramètres ou installer des logiciels supplémentaires pour que cela fonctionne? Si oui, comment?

    
posée Uli 26.12.2010 - 13:44
la source

2 réponses

194

Ubuntu 14.10 et ultérieur

Dans Ubuntu 14.10 et 15.04, TRIMming se produit automatiquement chaque semaine sur tous les disques SSD pris en charge par fstrim .

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

Ubuntu 14.04

À partir d’Ubuntu 14.04, TRIM planifié est activé par défaut pour les SSD Intel, SAMSUNG, OCZ, Patriot et Sandisk. Si vous avez une autre marque, vous pouvez désactiver la vérification du fournisseur en exécutant la commande suivante :

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

(ou modifiez simplement le fichier /etc/cron.weekly/fstrim et ajoutez --no-model-check )

Ubuntu 13.10 et versions antérieures

Il existe trois manières d'effectuer TRIM, manuel, planifié et automatique:

TRIM manuel

Dans Ubuntu, cela peut être effectué avec fstrim :

sudo fstrim /

cependant, il n’est pas nécessaire lorsque les TRIM programmés ou automatiques sont activés, comme indiqué dans les sections ci-dessous.

Remarque: Pour Ubuntu 11.04 et les systèmes antérieurs, fstrim n’est pas disponible. Vous devez donc utiliser wiper.sh fourni avec hdparm in /usr/share/doc/hdparm/contrib/wiper.sh.gz

TRIM programmé (recommandé)

Il s’agit de la méthode actuellement recommandée et prévu pour être activé par défaut pour Ubuntu 14.04. . Voici comment l'activer manuellement dans les anciennes versions d'ubuntu (11.10 à 13.10):

Créez un fichier de script de travail CRON hebdomadaire:

gksudo gedit /etc/cron.weekly/fstrim

Collez le code suivant dans le fichier, puis enregistrez et fermez le fichier:

#! /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

Notez que ce qui précède suppose que seul votre système de fichiers racine / se trouve sur un SSD. Si vous avez plus de points de montage qui résident sur un ou plusieurs disques SSD, ajoutez-les à SSD_MOUNT_POINTS comme expliqué dans le code.

Rendre le script exécutable:

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

Et enfin le tester:

sudo /etc/cron.weekly/fstrim

Si vous ne voyez aucune erreur, votre tâche devrait fonctionner correctement.

TRIM automatique (obsolète, lent)

Automatic TRIM est supporté depuis Ubuntu 10.10 (noyau 2.6.33) avec le système de fichiers EXT4. Cependant, l'envoi de commandes TRIM au SSD en temps réel - après chaque suppression - a été reconnu comme rendant la suppression beaucoup plus lente que d'habitude sur certains lecteurs. Par conséquent, un TRIM hebdomadaire programmé via un travail cron (décrit ci-dessus) est recommandé.

Pour activer le TRIM automatique sur un lecteur ou une partition, ils doivent être montés avec l'option discard dans fstab . Sauvegardez d'abord votre fstab puis ouvrez-le pour le modifier:

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

Ajoutez discard à l'entrée des options fstab (séparées par des virgules) pour le lecteur SSD ou chaque partition.

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

Fermez et enregistrez fstab, puis redémarrez et TRIM automatique devrait maintenant fonctionner.

Test du TRIM automatique

Pour tester si TRIM fonctionne, lancez les commandes suivantes ( source ):

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

Dans la sortie, copiez le numéro sous begin_LBA et vérifiez le nom de périphérique de votre SSD: System->Administration->Disk Utility e.g. sda, sdb, sdc ...

Exécutez les opérations suivantes, mais remplacez [ADDRESS] (begin_LBA) et sdX (nom du périphérique SSD) par les détails obtenus ci-dessus.

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

le résultat devrait être une longue chaîne de caractères pour ces secteurs

sudo rm tempfile
sync

Répétez la commande hdparm ci-dessus:

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

Si vous n'obtenez que des zéros, alors TRIM automatique fonctionne. Cependant, si, après avoir supprimé le fichier, les secteurs ne sont toujours pas vides, attendez quelques instants et relancez la commande.

    
réponse donnée Uli 30.09.2015 - 23:58
la source
26

Notez que si vous utilisez le chiffrement, les solutions affichées jusqu'ici ne vous aideront pas, car vous devez également activer la prise en charge TRIM dans la couche de chiffrement. Cela peut être fait avec les versions du noyau 3.1+ et les versions cryptsetup 1.4+, toutes deux incluses dans Ubuntu 12.04.

Trouvez mon guide pour configurer TRIM pour les partitions cryptées LUKS ici

Comment activer TRIM sur les partitions cryptées LUKS dans Ubuntu & amp; Debian

Cette procédure étape par étape vous permettra de tirer parti de la technologie TRIM pour vos partitions SSD cryptées pour cryptsetup 1.4 ou supérieur et pour le noyau 3.1 ou supérieur. Cela conduit à une expérience SSD sans tracas, car

  

"TRIM permet au SSD de gérer la surcharge de la récupération de place,   serait autrement ralentir de manière significative les opérations d'écriture futures à la   blocs impliqués, à l'avance. "

Exemple d'installation

Ordinateur portable avec SSD en tant que lecteur unique, Linux installé sur une seule partition racine LVM ext4 avec une partition de swap LVM, les deux sur une partition logique chiffrée 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

HowTo

  1. Faites une sauvegarde de toutes vos données. Vous êtes en train de jouer avec votre système de fichiers avoir une sauvegarde est donc une bonne idée.
  2. Assurez-vous d’avoir les versions requises du noyau et de Cryptsetup (3.1 & amp; 1.4, par ex. dans Ubuntu 12.04, méfiez-vous cependant, au moment d'écrire 12.04 est encore bêta).
  3. Ajouter un paramètre de suppression aux options du système de fichiers du chiffré Volume (s) LVM dans votre fichier / etc / fstab. Cela rend le système de fichiers de votre partition LVM sachant que vous souhaitez utiliser TRIM.

    /dev/mapper/volumegroup-root    /   ext4 discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. La dernière étape ne suffit cependant pas. Tant que LUKS n'est pas au courant que vous voulez utiliser TRIM, il bloquera efficacement tous les TRIM opérations provenant du système de fichiers de la partition LVM, pour la sécurité les raisons. Ajouter le paramètre Discard aux options de cryptdevice dans / etc / crypttab pour que LUKS accepte le comportement de suppression du LVM partition.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. Reconstruisez vos initramfs. Les options de crypttab y sont stockées et utilisé au démarrage.

    sudo update-initramfs -c -k all
    
  6. Redémarrer.

  7. Vérifiez si TRIM est maintenant actif.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. Si la dernière commande montre un résultat comme celui-ci (1 allow_discards à la fin), vous êtes tous définis.

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

Résultat

TRIM est activé. Profitez de votre SSD sans tracas!

    
réponse donnée nem75 14.04.2012 - 17:00
la source

Lire d'autres questions sur les étiquettes