web-dev-qa-db-fra.com

Ubuntu prend-il en charge la commande TRIM pour une utilisation avec SSD?

Les disques SSD doivent être "effacés/réinitialisés" une fois le disque plein pour maintenir les performances. Cela se fait via la commande TRIM pour les nouveaux lecteurs SSD. Ubuntu prend-il en charge la commande TRIM (via hdparm, etc.) pour effacer/réinitialiser ces lecteurs?

34
ssanj

On dirait que la fonctionnalité TRIM est prise en charge dans les versions 10.10 et suivantes:

En outre, les opérations TRIM se déroulent automatiquement: des blocs vides sont automatiquement libérés lorsqu'ils ne sont plus nécessaires (par exemple, vous supprimez un fichier), si le disque indique qu'il prend en charge TRIM. Vous n'avez pas besoin d'émettre manuellement une commande hdparm pour que cela fonctionne.

24
Jeremy Kerr

La réponse de Jeremy n'est pas tout à fait juste, autant que je sache. Cela fait quelque temps que je fais tourner les derniers noyaux stables sur Lucid et je suis très attentif au statut de TRIM car j'ai un disque principal OCZ Agility.

Voici ce que je sais:

  • Le noyau prend en charge TRIM à partir de la version 2.6.33 (Maverick est 2.6.35).

  • EXT4 prend en charge TRIM mais uniquement lorsque journalisation est désactivé.

  • Le fonctionnement de TRIM dans le noyau est très basique et assez lent. Les disques conformes aux spécifications peuvent accepter plusieurs plages, mais le noyau ne peut actuellement en faire qu’une plage à la fois. Cela vient de quelque chose que j'ai lu il y a peut-être un mois. J'aimerais avoir la source, car cela pourrait ne pas être vrai ou ne plus être valable.

La journalisation est ce qui le tue pour moi. La corruption de données est un PITA.

Cependant, les versions les plus récentes de hdparm (v9.25 - Maverick est à la v9.27) sont fournies avec un script appelé wiper.sh qui analyse rapidement un lecteur, puis élimine tout l’espace vide. Plutôt que de perdre des fonctionnalités, je trouve qu'il est beaucoup plus facile de créer wiper.sh une fois par semaine (ou une fois par jour/mois/peu importe). La dégradation de SSD pour un lecteur de système d'exploitation ne se produit pas aussi rapidement, à moins que vous ne démontiez constamment les choses. Vous n'avez pas besoin de TRIMming en temps réel.

Il existe également une interface graphique appelée DiskTRIM qui ne semble pas figurer dans le dépôt. Les utilisateurs moins expérimentés pourraient trouver cela plus facile à utiliser que la configuration de tâches cron.

Il y a des PPA pour hdparm et disktrim et tous peuvent être exécutés sur Lucid (et un peu plus en arrière) sans avoir besoin de noyaux 2.6.33 ou supérieurs.

20
Oli

Linux prend en charge le système de fichiers TRIM automatique avec le système de fichiers ETX4 depuis le noyau 2.6.33.

La première version Ubuntu avec prise en charge automatique de TRIM est la version 10.10 (Maveric), mais elle doit être activée dans fstab (comme décrit ici ).

8
Uli

En général, oui, car il existe une foule de moyens pour obtenir de nouveaux noyaux. Si nous clarifions votre question, veuillez lire "10.04 LTS a-t-il un support immédiat pour la commande?" alors la réponse est non. Cependant, les noyaux de Maverick et de Natty (-generic, -generic-pae, -server et -virtual) ont été rapportés à la version 10.04 LTS et sont disponibles à partir de $ release-updates dans les dépôts Ubuntu, par exemple, linux-image-generic-lts-backport-maverick est Backport de Maverick à Lucid .

4
Daniel T Chen

Je suis sous la version 11.04 et il ne semble pas que TRIM fonctionne correctement.

J'ai testé en utilisant les instructions ici pour créer un fichier, le supprimer et voir si les secteurs sont mis à zéro/supprimés .

J'ai essayé d'activer TRIM en utilisant les instructions ici mais pas de dés

Je lance wiper.sh, je reçois

/sbin/wiper.sh --verbose --commit /dev/sda1
wiper.sh: Utilitaire Linux SATA SSD TRIM, version 3.3, de Mark Lord. 
 rootdev = /dev/sda1
fsmode2: fsmode = lecture-écriture 
 /: fstype = ext4 
 freesize = 13785252 KB, réservé = 137852 KB 
 Préparation de la TRIM en ligne de espace libre sur/dev/sda1 (ext4 monté en lecture-écriture sur /).

.Cette opération pourrait détruire vos données en mode silencieux. Êtes-vous sûr (o/n)? y 
 Création d'un fichier temporaire (13647400 KB) .. 
 Synchronisation des disques .. 
 Début des opérations TRIM .. 
 get_trimlist =/sbin/hdparm --fibmap WIPER_TMPFILE. 9689 
 
/Dev/sda: 
 Rognage de 27294800 secteurs de 462 plages 
 Réussi 
 Suppression du fichier temporaire ... 
 Synchronisation des disques ..
Terminé.

Cependant, si je l'exécute à nouveau, il indique que le même nombre de secteurs/plages doit être ajusté et signale à nouveau le succès. Je reçois exactement la même chose à chaque fois. Il ne semble pas que les secteurs soient supprimés/libérés. Leur lecture montre toujours les mêmes données.

Curieux si quelqu'un d'autre le fait fonctionner.

2
user10292