Accueil🇫🇷Chercher

trim (informatique)

trim (mot anglais pouvant signifier : réduire, tailler, bien arranger…) est, en informatique, une commande qui permet à un système d’exploitation d'indiquer à un contrôleur de stockage de type mémoire flash (SSD) quels blocs de données ne sont plus utilisés et peuvent donc être effacés. Cette commande améliore les performances d'accès aux SSD.

Principe

Le but de cette instruction est de maintenir la vitesse du SSD tout au long de sa durée d'utilisation, évitant le ralentissement que les premiers modèles manifestaient une fois que toutes les cellules avaient été écrites au moins une fois.

Des outils permettant la remise à l'état initial étaient certes disponibles pour certaines unités, mais ceux-ci en effaçaient l'intégralité des données, ce qui rendait leur utilisation difficilement praticable en tant qu'optimisation régulière.

Les unités SSD ne savent pas quels blocs sont réellement utilisés et quels blocs sont libres, car elles ne sont pas informées des structures du système de fichier utilisé. Les clusters inutilisés sont donc inconnus du support (les données sont présentes sur le support, mais ne sont plus utilisées par le système d'exploitation, par exemple une corbeille vidée). Voici pourquoi :

  1. Les SSD peuvent Ă©crire des blocs de 4 ko, mais pour des raisons matĂ©rielles, ils doivent effacer des blocs plus larges (par exemple 128 ou 512 ko)[1]. Le système de fichiers de l'ordinateur connaĂ®t les blocs utilisĂ©s, et peut en dĂ©duire les blocs inutilisĂ©s, mais l'unitĂ© de contrĂ´le du SSD - qui ne sait pas Ă  priori quelle organisation utilise ce système (ext4, exFAT, NTFS ou une dizaine d'autres) ignore de ce fait quels sont les blocs de ko toujours en cours d’utilisation s’ils ont Ă©tĂ© Ă©crits prĂ©cĂ©demment, oĂą sont les tables d'allocation et comment elles sont organisĂ©es. Chaque Ă©criture demandera un cycle lecture-effacement-modification-Ă©criture portant sur une zone plus vaste, dans le cas oĂą il n'y a plus d’autres blocs libres sur le SSD (c'est-Ă -dire après que tous les blocs ont Ă©tĂ© partiellement remplis). Ce phĂ©nomène est appelĂ© amplification d’écriture (« write amplification »).
  2. La répartition de l’usure (« wear levelling ») permet à une unité de réarranger ses données pour que les écritures ne soient pas concentrées de façon hétérogène sur la carte flash. Les cellules flash tolèrent quelques dizaines de milliers d’écritures avant de devenir inopérantes, d'où l'intérêt de répartir l'usure afin d'optimiser la longévité globale du support. Certains contrôleurs SSD déplacent donc les données sur toute l’unité pour exercer l'usure de façon égale sur tous les blocs. Si l’unité ne sait pas quels blocs sont réellement utilisés par le système de fichiers, chaque bloc de données écrit sur l’unité demande une écriture additionnelle due au déplacement du bloc.

La commande trim a été introduite pour permettre de purger complètement les données officiellement effacées. La récupération de données devient donc impossible (ce qui sera un avantage ou un inconvénient suivant le contexte).

La spécification de la commande trim est standardisée en tant que partie du standard d’interface AT Attachment (ATA), mené par le Comité Technique T13 de l’International Commitee for Information Technology Standards.

Prise en charge par le matériel

Premier passage de trimcheck : des données sont mises en place, puis (du point de vue du système d'exploitation) effacées.
Second passage de trimcheck : on voit que l'information ne se trouve plus dans les clusters : le disque a donc bien été informé de l'effacement par le système d'exploitation.

Le SSD doit supporter le trim. Les anciens modèles devront recevoir une mise à jour de leur firmware, faute de quoi cette commande sera ignorée.

Il faut aussi un contrôleur ATA gérant le 48-bit LBA addressing et dont le pilote supporte le trim. En général c'est le cas des contrôleurs Serial ATA supportant la norme AHCI.

Dans le cas d'une connexion en SSD externe par USB (USB3 en général), on peut tester si le TRIM est correctement géré ou non par l'utilitaire gratuit trimcheck[2], qui doit cependant être installé sur le SSD lui-même.

Prise en charge par le système d’exploitation

  • Microsoft Windows : trim a Ă©tĂ© implĂ©mentĂ© dans Windows 7 et Windows Server 2008 R2, et livrĂ© avec la version finale de ces systèmes d’exploitation en octobre 2009.
  • Linux :
    • S'agissant du système de fichiers ext4 : la fonction trim (mĂ©thode dite on-the-fly trim, online discard ou encore realtime discard) a Ă©tĂ© intĂ©grĂ©e dans la version 2.6.33 du noyau (Ă  noter, d'une part, que la fonction doit ĂŞtre activĂ©e manuellement en ajoutant l'option « discard » dans le fichier fstab, et, d'autre part, que certaines distributions ont rĂ©troportĂ© la fonction dans un noyau plus ancien)
    • la version 6 « Squeeze » de Debian dispose d'une version du noyau 2.6.32 gĂ©rant le trim dans les dĂ©pĂ´ts officiels Backports) ;
    • La version 2.6.37 du noyau ajoute la fonction fitrip (mĂ©thode dite batch discard) pour ext4 qui permet de diffĂ©rer l'exĂ©cution de commandes trim en vue de les traiter d'un coup (cette fonction est rĂ©alisĂ©e par le programme fstrim qui dĂ©pend de la suite util-linux version 2.19 ou supĂ©rieure)[3].

Note : S'agissant du système de fichiers Btrfs : le online discard est géré depuis la version 2.6.32 du noyau, et le batch discard est géré depuis la version 2.6.39.

  • macOS : la commande trim a Ă©tĂ© implĂ©mentĂ©e Ă  partir de la version 10.6.6 d'OS X (Snow Leopard) en , mais le système est par dĂ©faut limitĂ© aux seuls SSD installĂ©s par Apple[4]. Il est possible d'activer le trim sur d'autres marques de SSD Ă  l'aide d'utilitaires forçant la commande sur tout type de SSD. Une commande officielle sudo trimforce enable a Ă©tĂ© ajoutĂ©e depuis OS X 10.10.4 pour activer le trim sur un SSD non Apple.

Là où trim n’est pas automatiquement supporté par le système d’exploitation, il existe des utilitaires envoyant des commandes trim manuellement. Typiquement, ils listent tous les blocs libres spécifiés comme tel par le système d’exploitation et passent ensuite cette liste sous la forme d’une série de commandes trim à l’unité. Ces utilitaires sont disponibles chez différents fabricants (Intel, XtremeSystems) mais il existe également des outils génériques comme hdparm (depuis sa version 9.17).

Références

  1. (en) « What is SSD TRIM, why is it useful, and how to check whether it is turned on », sur Digital Citizen, (consulté le )
  2. (en) « Du TRIM en USB sous Windows 10 (mais pas sous macOS) », sur Le journal du lapin, (consulté le ).
  3. (en) Jonathan Corbet, The best way to throw blocks away, lwn.net, , consulté le .
  4. Mac OS X et le trim : « The » bidouille, presence-pc.com, .

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.