Ouvrir le menu principal

MacGeneration

Recherche

Commande TRIM : le meilleur ami du SSD

Antoine Collin

Wednesday 14 August 2013 à 13:09 • 44

Matériel

Un SSD Samsung dans un iMac - photo Aaron und Ruth Meder CC


Depuis l'avènement des SSD, la durée de vie et la tenue dans le temps au niveau des performances sont deux choses très importantes à prendre en compte. À un moment où Apple équipe de plus en plus ses ordinateurs avec des SSD — ou ce qu'Apple appelle stockage flash dans certains cas —, il n'est pas inutile de revenir sur la commande TRIM, le sésame qui permet de limiter l'usure et — surtout — la perte de performances dans le temps.

Les SSD et le TRIM



Un peu de technique, pour commencer, sur l'intérêt de la commande TRIM et la raison de son existence. Avec un disque dur classique, quand un fichier est supprimé, on efface simplement le premier maillon d'une chaîne, qui indique où se trouve le début du fichier ainsi que le secteur suivant, secteur suivant qui indique un autre secteur, etc.. L'intérêt est évident : l'effacement est rapide et réécrire les données sur un secteur contenant des données sur un disque dur n'est pas un problème.

Avec un SSD, c'est différent : la gestion de l'usure a besoin de secteurs vides du point de vue du SSD. En simplifiant, le contrôleur du SSD essaie d'uniformiser l'usure de la mémoire flash en déplaçant les données sur des secteurs peu usés, pour éviter qu'une cellule ne tombe en panne parce qu'elle a été trop écrite. Comme le contrôleur ne peut pas deviner qu'un secteur a été effacé au niveau du système de fichiers (seule la première partie du fichier a été effacée, rappelons-le), il est obligé dans certains cas de lire la cellule, la réécrire à un autre endroit et ensuite écrire la nouvelle donnée. C'est évidemment assez fastidieux, ça augmente l'usure (on écrit deux fois) et ça ralentit l'opération, étant donné qu'on va effectuer une lecture et deux écritures.

C'est là que la commande TRIM intervient : au lieu d'effacer le premier maillon de la chaîne, on va indiquer au contrôleur du SSD que chaque secteur qui était utilisé par le fichier est vide. Techniquement, on n'efface pas directement les données, on indique à la table LBA du SSD — qui référence chaque secteur — qu'un secteur est vide. On va donc gagner en performances : quand le contrôleur cherchera un secteur peu usé, il ira en priorité vérifier dans ceux qui sont vides. Et donc au lieu d'une lecture et de deux écritures, on aura simplement une seule écriture. Le seul inconvénient, c'est que l'effacement d'un gros fichier peut prendre quelques secondes de plus, le temps d'envoyer la commande pour chaque secteur. De même, l'effacement de la corbeille est un peu plus lent quand le TRIM est actif.

La commande TRIM n'empêche pas l'usure du SSD, mais elle permet de la limiter, et elle évite surtout les pertes de performances. Attention, elle a un impact sur quelque chose de précis, la récupération des données effacées. En effet, le SSD utilisé avec la commande TRIM va réécrire en priorité sur les données effacées, ce qui n'est pas le cas avec un disque dur classique où les réécritures sont plus aléatoires. Il est donc plus compliqué de récupérer des données sur un SSD que sur un disque dur.

Un peu d'histoire



Le TRIM et OS X, ça n'a jamais été un couple tranquille. Alors que Linux prend en charge la commande depuis 2008 et que Microsoft a intégré son support dans Windows NT 6.1 (Windows 7 et Windows Server 2008 R2) dès octobre 2009, le « système d'exploitation le plus avancé au monde » n'a pris en charge la commande qu'en juin 2011, avec la dernière mise à jour mineure de Snow Leopard, la 10.6.8. Les versions suivantes du système d'exploitation, Lion, Mountain Lion et le futur Mavericks, prennent bien évidemment en charge cette commande qui fait partie de la norme ATA.

Pour les SSD Apple uniquement



La prise en charge chez Apple est comme souvent un peu particulière : la commande n'est supportée (et activée) par défaut que sur les SSD Apple. Bien évidemment, il est possible d'activer la commande manuellement sur d'autres SSD, nous allons le voir dans la suite. Avant d'activer le TRIM, il faut prendre en compte quelques points. Premièrement, il faut un système d'exploitation qui prend en charge le TRIM, soit Snow Leopard en version 10.6.8, Lion ou Mountain Lion — voire Mavericks pour les plus hâtifs. Deuxièmement, il faut un SSD compatible avec la commande TRIM. La majorité des SSD sortis après 2009 sont compatibles, certains modèles plus anciens le sont aussi avec une mise à jour de firmware qu'il faudra donc effectuer le cas échéant. Attention, il y a d'anciens modèles de SSD, comme les premiers Intel X25-M, qui ne sont pas compatibles.

La barrette SSD du MacBook Pro Retina 13" a la commande TRIM activée par défaut - photo iFixit



Enfin, la façon de connecter le SSD au Mac a une influence : la commande ne fonctionne qu'avec une interface SATA. La majorité des Mac utilisent des SSD SATA, que ce soit des modèles 2,5 pouces ou des barrettes propriétaires comme dans certains portables. Les exceptions notables en interne sont le SSD du premier MacBook Air, interfacé en PATA, et les baies optiques de certains vieux modèles. Les MacBook blancs et certains MacBook Pro (avant les Unibody) utilisent en effet un lecteur optique PATA et les OptiBay SATA pour ces modèles intègrent généralement un adaptateur PATA vers SATA qui ne permet pas d'utiliser la commande.

En externe, la commande TRIM est rarement supportée. L'USB 2.0, l'USB 3.0 (même en UASP) et le FireWire ne prennent pas en charge la commande, alors que les boîtiers eSATA sont compatibles, tout comme la majorité des boîtiers Thunderbolt. La raison est simple : les boîtiers Thunderbolt intègrent un contrôleur SATA classique qui utilise les pilotes standards d'OS X et ils supportent donc la commande.

Pour les amateurs de RAID, la commande fonctionne en RAID1 (mirroring) et en RAID0 (stripping) quand on utilise la gestion logicielle de Mac OS X, alors que les cartes intégrant un contrôleur RAID matériel ne prennent généralement pas en compte la commande.

Activer le TRIM



Comment activer le TRIM ? Si vous avez un SSD Apple, pas de soucis, la commande est activée. Dans les autres cas, la solution classique est le logiciel TRIM Enabler. Ce logiciel va modifier le pilote d'OS X qui gère la commande TRIM. Il faut lancer le programme, activer le bouton et redémarrer. Attention, il faut penser à modifier les paramètres Gatekeeper pour accepter n'importe quel logiciel sous Mountain Lion.



Une fois que c'est fait, il faut se rendre dans le menu , A propos de ce Mac, cliquer sur Plus d'infos... puis sur Rapport Système.... Ensuite, il faut aller vérifier dans l'onglet SATA/SATA Express (ou ATA série, en fonction du système) si le TRIM est bien activé.



Si ce n'est pas le cas, il existe une solution manuelle, avec les commandes suivantes à entrer dans le Terminal :

sudo perl -pi -e 's|(x52x6Fx74x61x74x69x6Fx6Ex61x6Cx00{1,20})[^x00]{9}(x00{1,20}x4D)|$1x00x00x00x00x00x00x00x00x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage


sudo kextcache -system-prelinked-kernel


sudo kextcache -system-caches


Une fois les commandes exécutées, il faut redémarrer l'ordinateur.

Normalement, une fois le TRIM activé, il l'est pour tous les SSD présents dans la machine. Attention à un point : étant donné que l'activation consiste à modifier un fichier système, chaque mise à jour mineure (les 10.x.x) risque de supprimer la modification. Dans les faits, Apple modifie assez rarement le fichier en question et il n'est donc pas toujours nécessaire de relancer la modification, mais il est toujours plus prudent d'aller vérifier, surtout si vous avez appliqué une mise à jour combo.

Nettoyer un SSD usé



Prenons maintenant un cas assez classique : vous avez un SSD qui n'a pas toujours été utilisé sous OS X et qui est usé. Le système d'Apple dispose heureusement de quelques outils qui permettent d'appliquer la commande TRIM sur l'espace libre — nous l'avons vu auparavant, le principe du TRIM consiste à indiquer au contrôleur du SSD qu'une donnée a été effacée logiquement — et donc de rendre une seconde jeunesse à un SSD. Il s'agit en simplifiant d'une synchronisation entre le système de fichiers et le contrôleur du SSD.

Le premier cas est le plus simple : le SSD ne contient pas le système d'exploitation et il est connecté avec une interface compatible avec le TRIM (SATA en interne, eSATA, Thunderbolt). Dans ce cas précis, c'est assez simple : il suffit de lancer Utilitaire de disque (il se trouve dans /Applications/Utilitaires), de choisir la partition que vous voulez « TRIMer » et de cliquer sur le bouton Réparer le disque dans l'onglet S.O.S.. Dans la liste des actions, vous devriez remarquer « Élagage des blocs inutilisés. », une traduction malheureuse de « Trimming unused blocks. » qui indique que la commande a été envoyée au SSD.



Le second cas, c'est si votre SSD contient le système d'exploitation. Il faut d'abord redémarrer en mode Single User ( + s au démarrage) et ensuite taper la commande suivante au prompt : fsck -fy. Normalement, vous devriez voir — si le TRIM est activé — une ligne « Trimming unused blocks » à la fin, dans la liste des actions. Il suffit ensuite de redémarrer.

Le dernier cas, c'est si vous avez un SSD en USB (2.0 ou 3.0), en FireWire ou en PATA ou si votre machine utilise un système d'exploitation qui ne prend pas en charge le TRIM, par exemple OS X Leopard. Dans ces cas-là, point de salut : la perte de performances en écriture est inéluctable. Dans la pratique, la perte de performances varie fortement en fonction du modèle de SSD — les contrôleurs SandForce sont plus sensibles que les autres — et en fonction de l'usage. Si vous utilisez un SSD pour du stockage de gros fichiers, la fragmentation interne sera faible et les écritures rares et la perte de performance dans le temps peu importante. A contrario, si vous utilisez le SSD de façon intensive, les performances en écriture peuvent s'effondrer. La seule solution consiste à envoyer la commande TRIM depuis une machine compatible, quand c'est possible.

Sous Windows, il existe une solution parfois proposée par les concepteurs des contrôleurs : un logiciel qui va analyser le SSD et indiquer au contrôleur quelles sont les zones inutilisées. De même, certains SSD intègrent un Garbage Collector (un processus interne au SSD) capable de détecter les données effacées. Mais le problème, c'est que ces solutions impliquent l'utilisation d'un système de fichiers NTFS, alors qu'OS X utilise le HFS+. Avec un Mac, la première solution ne fonctionne évidemment pas alors que la seconde est moins efficace, même si elle est fonctionnelle.

Au final ?



Si vous avez un SSD, la commande TRIM est importante : elle permet d'éviter de perdre en performances et de limiter en partie l'usure de la mémoire. Le fait qu'Apple limite la commande TRIM à ses propres SSD reste évidemment un problème, même si actuellement il est possible d'activer cette commande avec n'importe quel SSD compatible et d'effectuer un nettoyage avant cette activation. Espérons simplement qu'Apple ne modifiera pas la gestion de cette dernière dans les prochaines versions d'OS X, où alors dans le bon sens, en permettant à n'importe quel SSD de recevoir la commande...

Sur le même sujet :
- Installer un SSD dans un MacBook Pro : première partie

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

Apple casse les prix en Inde et dégringole en Chine

11:00

• 14


Proton n’en finit plus de se diversifier et lance un portefeuille à Bitcoin

26/07/2024 à 18:00

• 12


Aux États-Unis, Apple accepte des directives gouvernementales sur la sécurité de l'IA

26/07/2024 à 16:00

• 24


Elgato : après le Stream Deck, voici le Stream Dock

26/07/2024 à 14:00

• 3


Xcode 16 : la saisie prédictive du code devient compatible avec les Mac à 8 Go de RAM

26/07/2024 à 13:00

• 71


Comment regarder les Jeux olympiques de Paris en 4K avec HDR ?

26/07/2024 à 11:00

• 14


Des problèmes de connexion en ce moment ? Désactivez le relais privé iCloud

26/07/2024 à 10:12

• 25


SearchGPT : OpenAI expérimente un moteur de recherche intégré à terme dans ChatGPT

26/07/2024 à 09:40

• 16


Adobe nie être accro à l’héroïne

26/07/2024 à 09:00

• 32


Fortnite sera disponible sur AltStore PAL et d’autres boutiques tierces sur mobile

26/07/2024 à 07:53


CrowdStrike : pourquoi les Mac ont été épargnés par la panne mondiale

25/07/2024 à 20:30

• 26


Chine : Apple s’apprête à ouvrir un laboratoire pour tester ses produits dans des conditions extrêmes

25/07/2024 à 18:30

• 15


L'antenne Starlink Mini est disponible en France, pour 339 €

25/07/2024 à 17:00

• 7


Google explique comment Chrome anticipe le téléchargement de malwares

25/07/2024 à 15:30

• 5


Quand un iMac G4 devient un M2 Tournesol

25/07/2024 à 14:30

• 20


Dans Microsoft Bing, l’“intelligence” artificielle repousse le web humain

25/07/2024 à 11:45

• 18