TRIM, GC et SSD : le point

Actu suivante
Mardi 20 octobre 2009 à 17:41 par Pierre Dandumont

Après avoir passé en revue les différents contrôleurs disponibles sur le marché, intéressons-nous à un autre problème des SSD, la perte de performance.

Après avoir passé en revue les différents contrôleurs disponibles sur le marché, intéressons-nous à un autre problème des SSD, la perte de performances, et aux moyens qui existent pour régler ce problème.

Un problème de gestion de l'usure

Avant de voir comment régler le problème, voyons d'où il vient. Typiquement, les SSD travaillent avec une table d'allocation qui n'est pas synchronisée avec le système de fichier : écrire un fichier au début du système de fichier n'écrit pas nécessairement le fichier à cet endroit sur le SSD (il n'y a même pas à proprement parler de début et de fin). De plus, les algorithmes de Wear Leveling font que connaître l'endroit exact où un fichier est écrit est impossible de façon simple. Dans les faits, le système est donc incapable de connaître la structure exacte du SSD. Nous allons voir que c'est important. La perte de performances, qui survient sur les modèles récents utilisés de façon intensive, est due aux algorithmes : le SSD, quand on va écrire un fichier, va cherche la puce de mémoire la plus apte à recevoir une écriture (les différents algorithmes sont expliqués en détail dans cet article), et c'est là que le bât blesse. Comme nous l'avons vu, le SSD et le système de fichier sont indépendants, et le SSD ne peut connaître qu'une chose sur une donnée : si elle a été écrite au moins une fois ou si elle est vide. Petit problème, l'effacement utilisé habituellement dans un système de fichier (comme NTFS, HFS+, etc.) n'efface pas les données, l'emplacement est simplement marqué comme disponible pour le système, mais le SSD ne peut pas le deviner. Et comme à partir d'un certain moment, toutes les cellules d'un SSD ont été utilisées au moins une fois, le SSD va donc devoir interroger le système pour vérifier si une cellule est vide. Ce qui peut, en cas de SSD très utilisé, poser des problèmes de performances : le SSD va choisir une cellule X, il va interroger le système d'exploitation, qui va lui dire si elle est utilisée ou pas, dans le premier cas, le SSD va utiliser une cellule Y et demander au système, etc. Si le SSD a été rempli puis que les données ont été supprimées par le système, le SSD va donc chercher au hasard, alors qu'il pourrait simplement écrire directement dans un endroit « supprimé », mais il ne peut pas deviner où se trouvent les données supprimées.

Le TRIM

La solution la plus évidente, elle vient de la norme ATA8, et elle est intégrée à Windows 7. Si le SSD perd du temps à chercher au hasard des fichiers supprimés, donnons-lui la possibilité de trouver les fichiers en question facilement. Sitôt dit, sitôt fait, tout du moins dans le système de Microsoft et uniquement avec un firmware compatible (uniquement pour les SSD à base d'Indilinx Barefoot). Concrètement, le TRIM consiste à effacer physiquement les données au moment de la suppression, contrairement à la technique habituelle qui consiste à marquer les données supprimées sans les effacer réellement. Avec le TRIM, le SSD est capable de voir où sont les données effacées et donc évite de chercher à les trouver. Petit défaut de la technologie, les effacements sont physiques, ce qui ralentit un peu la suppression de fichiers, mais les performances dans le temps devraient rester stables. Actuellement, le TRIM est rare, mais Intel devrait proposer un firmware compatible rapidement, tout comme Samsung (même si la politique de ce dernier pose des problèmes, les mises à jour étant réservées aux OEM). Reste le plus gros problème : il faut que le système d'exploitation (ou tout du moins le pilote qui gère le système de fichier) soit compatible, et seul Windows 7 l'est actuellement, en NTFS.

Le Wiper, solution intermédiaire

Avant le TRIM, Indilinx proposait une solution intermédiaire, qui avait l'avantage d'être utilisable avec la majorité des Windows, le Wiper. Le Wiper est un petit programme, utilisable sur certains SSD (en fonction du firmware) qui sert en fait à synchroniser le SSD et le système d'exploitation. Cas simple : vous avez un SSD de 32 Go, que vous avez rempli avec votre système d'exploitation et un fichier provenant d'un DVD que vous avez compressé. Sans le TRIM, supprimer le fichier est une action que le SSD ne verra pas, pour lui, il est toujours là. Le Wiper sert à faire correspondre la base du système de fichier avec la base du SSD, pour lui faire comprendre que le fichier a été supprimé. Défaut de la technique (outre des bugs sur les Windows 64 bits), il faut lancer le programme périodiquement, ce n'est pas automatique. De plus, le Wiper n'est utilisable qu'en NTFS (une version Linux, en bêta, existe malgré tout). Dans la pratique, c'est plus une solution pour revenir à la normale qu'une façon pérenne de corriger le problème.

Le Garbage Collector, façon Samsung

La dernière solution, c'est le Garbage Collector. Concrètement, on est ici entre le TRIM et le Wiper : c'est le SSD qui va réorganiser ses données, seul, pour optimiser le fonctionnement. Deux solutions sont a priori utilisée, et celle de Samsung est la plus intéressante : installée sur les PB22-J et ses clones, elle permet d'effectuer le même travail que le TRIM, mais en arrière-plan. En fait, Samsung a intégré un Wiper automatique dans ses SSD, avec un réarrangement des données quand le SSD n'est pas utilisé. Deux écueils subsistent : l'ensemble est lié au système de fichier NTFS (ce qui limite son efficacité à Windows) et surtout, Samsung ne propose pas de mises à jour pour ses SSD en dehors des partenaires OEM. Dans les faits, la solution est efficace sous Windows, tout en étant moins intéressante que le TRIM : le SSD travaille en arrière-plan, ce qui a le défaut d'augmenter la consommation de façon invisible, et si le SSD est très utilisé, la fonction ne s'active a priori pas.

Le Garbage Collector, façon Indilinx

Dans les derniers firmwares Vertex, OCZ propose une version alternative qui intègre, à la place du TRIM, un Garbage Collector. Concrètement, le système est différent de celui de Samsung, l'ensemble étant conseillé aux utilisateurs de systèmes qui n'utilisent pas le NTFS comme système de fichier (Linux, Mac OS X, etc.). Le fonctionnement exact n'est pas connu, mais il semble que la technologie utilisée permette de réorganiser les données sur le SSD pour optimiser les performances. Dans la pratique, et pour peu qu'il reste suffisamment d'espace libre, les pertes de performances devraient se faire rare, même si une véritable gestion du TRIM serait un plus. Reste que cette technique est plus, comme le Wiper, une solution intermédiaire, en attendant une véritable gestion du problème au niveau du système d'exploitation. C'est mieux que ne rien faire, mais moins bien que le TRIM, avec aussi le même problème que la solution de Samsung, le travail en arrière-plan du SSD peut avoir un impact sur la consommation, un problème gênant dans un PC portable.

Terminons par rappeler que tous les SSD ne sont pas touchés par le problème (ou, tout du moins, dans une moindre mesure) et que la solution la plus efficace actuellement est le TRIM, même si elle impose un temps d'effacement plus élevé (sans que ce soit, a priori, dramatique).

Source : Tom's Hardware FR

Commentaires
Ajouter un commentaire
delphi_jb 20/10/2009 18:34
Masquer
-0+

très bon explicatif, tout est dit, tout est clair.

Bravo

doublec69 20/10/2009 18:38
Masquer
-3+

Le TRIM (et le SSD dans une moindre mesure) est intéressant.
Mais ce système impose un problème à tout administrateur de parc.

Si je suis bien l'article, le TRIM efface physiquement les donnés, et de ce fait rend toutes récupération de fichiers supprimé accidentellement impossible, si c'est le cas (et que mon interprétation est la bonne), la gestion de l'utilisateur distrait risque de poser un sérieux problème.

delphi_jb 20/10/2009 18:59
Masquer
-0+

la solution serai peut etre un page file externe au SSD et natif a l'OS qui contiendrai les informations de suppression.

Si on ecrit un donnée, windows ferai instantanément sa requete au SSD en lui soumettant une liste d'endroit disponible.

la solution au problem SSD sera peut etre une conception logiciel mélant un subltil melange entre le SSD et l'OS. Qui sait...

Anonyme 20/10/2009 21:27
Masquer
-0+

Linux supporte le TRIM dans son systeme de fichier ext4 comme le montre cette inteview de Theodore Ts'o datant de mars dernier http://www.linux-mag.com/id/7272

Des travaux à ce sujet remontent même a mi-2008 comme le montre cet article de Jonhatan Corbet http://lwn.net/Articles/293658/

Anonyme 21/10/2009 09:52
Masquer
-1+

Le TRIM est donc un effacement "physique" sur le SSD, quid de l'impact sur la longévité des cellules (qui sont loin d'etre éternelles) ?
Les SSD apportant un réel gain lorsqu'ils sont utilisé pour le système d'exploitations et les programmes, cela implique de fréquentes modification des données. Un peu paradoxal que d'expliquer à un acheteur qu'il va payer 4 à 8 fois plus cher un SSD qui fonctionner 2 fois plus vite mais 2 fois moins longtemps qu'un HDD.

lapine 21/10/2009 10:22
Masquer
--1+

en fait il faudrait une implémentation hardware, d'une liste exhaustive de mon de fichier effacer et de leurs emplacement dans le SSD, et là le SSD effacerais de façon progressive les données supprimer de la table d'allocation des fichiers.

si non personnellement pour des besoins professionnel, lorsque je souhaite effacer des fichiers, j'utilise sous windows un soft qui s'appel: eraser

http://www.clubic.com/telecharger- [...] raser.html

Eraser me permet d'écrire 35 fois(certainement 35 passe de 1 et 35 passe de Zéro) dans les zone libres du disque dur, ou tout autre support utilisant des partition, ou aussi choisir un fichier et l'effacer du support via le mode cité plus haut, et en suite je peux choisir d'autre mode comme l'écriture pseudo aléatoire des données sur des Zone vide du support.


ou si non pour effacer des données y a active killdisk, qui bien lui aussi:

http://www.killdisk.com/downloadfree.htm mais la on efface toute les données

Dandu 21/10/2009 10:35
Masquer
-0+

Non, mais aucun rapport :o

Et ton soft, sur un SSD, il efface pas les données, ilm efface 35 cellules au hasard :D

lapine 21/10/2009 10:51
Masquer
-0+

Dandu a écrit :

Non, mais aucun rapport :o

Et ton soft, sur un SSD, il efface pas les données, ilm efface 35 cellules au hasard :D





n'importe quoi si je me réfère à la description fait sur clubic:


Citation :blabla



celui de l'éditeur: http://eraser.heidi.ie/


Citation :blabla


en quoi il efface aléatoirement 35 cellule!?

moi je men sert pour qu'eraser écrive dans les zone vide du disque c'est à dire non allouer à un fichier présent dans la MFT, et c'est que fait le TRIM non, d'autant qu'Eraser à un planificateur de tache, on peux automatiser l'effacement des donner par exemple une fois par semaine faire faire à eraser une écriture dans les zone vide de la partition.

edit: voila ça s'appel Erase Unused Space ; soit efface l'espace non-utiliser, ça à le mérite d'etre claire non!!!?

Fuli10 21/10/2009 10:54
Masquer
-1+

Ce que je ne comprend pas, c'est pourquoi ne pas faire voir un SSD comme un disque dur normal, c'est a dire une zone de mémoire physique contiguë avec des secteurs numérotés, et que ça soit le firmware qui fasse la translation d'adresse de secteur en une adresse physique sur la flash, en implémentant un système de wear leveling ?
Du coup quel que soit l'OS utilisé et/ou son système de fichier, l'écriture à un même secteur contenant un fichier effacé se traduira physiquement par l'écriture dans des secteur NAND physique différents, et la liste des secteur NAND libres/occupé ne sera connu que par le firmmware seul.

Dandu 21/10/2009 11:00
Masquer
-0+

lapine a écrit :

n'importe quoi si je me réfère à la description fait sur clubic:


Citation :blabla



celui de l'éditeur: http://eraser.heidi.ie/


Citation :blabla


en quoi il efface aléatoirement 35 cellule!?

moi je men sert pour qu'eraser écrive dans les zone vide du disque c'est à dire non allouer à un fichier présent dans la MFT, et c'est que fait le TRIM non, d'autant qu'Eraser à un planificateur de tache, on peux automatiser l'effacement des donner par exemple une fois par semaine faire faire à eraser une écriture dans les zone vide de la partition.

edit: voila ça s'appel Erase Unused Space ; soit efface l'espace non-utiliser, ça à le mérite d'etre claire non!!!?




T'es lourdingue et tu connais pas le sujet. Avec un SSD, les données sont pas synchronisée entre la position physique et la position dans le FS. Donc si t'écris 35 fois au même endroit sur le système de fichier, ça n'écrit pas 35 fois au même endroit sur le SSD (contrairement à un disque dur). Donc en gros, ça efface aléatoirement 35 cellules, en vrai, à cause des algos de wear-leveling.

Dandu 21/10/2009 11:01
Masquer
-0+

Fuli10 a écrit :

Ce que je ne comprend pas, c'est pourquoi ne pas faire voir un SSD comme un disque dur normal, c'est a dire une zone de mémoire physique contiguë avec des secteurs numérotés, et que ça soit le firmware qui fasse la translation d'adresse de secteur en une adresse physique sur la flash, en implémentant un système de wear leveling ?
Du coup quel que soit l'OS utilisé et/ou son système de fichier, l'écriture à un même secteur contenant un fichier effacé se traduira physiquement par l'écriture dans des secteur NAND physique différents, et la liste des secteur NAND libres/occupé ne sera connu que par le firmmware seul.




Ben c'est ça, et le problème, c'est que le firmware ne connait PAS les fichiers supprimés ou pas, d'ou le trim...

Dark-sorrow 21/10/2009 12:38
Masquer
-0+

Seb-de :
Le TRIM est donc un effacement "physique" sur le SSD, quid de l'impact sur la longévité des cellules (qui sont loin d'etre éternelles) ?



Il n'y a strictement aucun impact sur la durée de vie des cellules car avec le TRIM tu vides physiquement la cellule et puis le SSD réécrira dessus à un moment ou à un autre et sans le TRIM, lorsque le SSD voudra réécrire sur la cellule, il faudra bien qu'il l'efface au préalable donc ça revient au même au final ;) Mais c'est juste que la réécriture est plus rapide mais en contre partie l'effacement est à peine plus long !

Fuli10 21/10/2009 12:39
Masquer
-0+

Effectivement, je viens de me rendre compte de mon erreur...
Et sinon, en dimensionnant la NAND pour avoir 10% de mémoire physique de plus que d'espace logique, servant expressément au wear leveling et remplacement de secteurs défectueux, cela permettrait de temporiser l'effacement non ?
Surtout si le contrôleur possèdes un bus par chip NAND, il serait possible de lancer l'effacement en parallèle de l'écriture (si l'écriture ne se fait pas sur le même chip). Aussi, quel que soit l'algo de wear leveling, on aurait au minimum 10% d'espace libre.
Quoi qu'il en soit sur l'implémentation de la TRIM dans l'OS et le firmware, il ne serait pas plus simple que le firmware ne fasse d'abord que marquer les secteurs libre (dans sa BBT par exemple) et n'efface pas immediatement physiquement les données, mais que cela soit fait qu'en dernier recours (plus de blocs libres), ou plus généralement quand le chip NAND a un peu de temps (garbage collector) ?


Anonyme 21/10/2009 20:33
Masquer
-0+

Il y a quelques erreurs dans l'article.
Les pertes de performances ne sont pas dues au fait que le SSD doive demander à l'OS s'il peut effacer une donnée. C'est l'OS qui contrôle le disque, pas l'inverse.
La perte de performances est due au fait que dans une mémoire flash on ne peut pas effacer une simple page, mais uniquement un bloc entier. Donc si le contrôleur doit remplacer une page, il doit commencer par lire toutes les pages du bloc, effacer le bloc, puis réécrire toutes les pages, en incluant sa modification. L'avantage du trim c'est que l'OS dit au disque que le contenu de telles et telles pages n'est pas important (parce qu'elle correspond à un fichier effacé) et dans ce cas le contrôleur ne va pas lire ni réécrire la page correspondante. D'où le gain de temps quand il doit effacer et réécrire un bloc.
Deuxièmement le trim n'efface pas physiquement les données, il signale quelles pages peuvent être effacées c'est tout. Il n'y a pas de perte de temps (sauf celui d'envoyer les commandes ATA, soit presque rien).

Liens commerciaux
Publicité

Les offres du moment

Tout sur les Supports de stockage
 Derniers articles sur les Supports de stockage
Kingston SSD Now V+ : un nouveau challenger

Kingston SSD Now V+ : un nouveau challenger
Après son convaincant SSD de 40 Go proposé à 100 €, Kingston revient avec des ambitions plus élevées. La nouvelle génération V+ revendique en effet des performances équivalentes aux meilleurs SSD actuels, et monte jusqu'à 512 Go. Une bonne affaire ? Lire la suite

  • Quelle interface pour un disque externe ?
    Les disques externes équipés de plusieurs interfaces sont plus chers que leurs équivalents USB 2.0. La différence de prix entre ces appareils se justifie-t-elle ? Que gagne-t-on réellement à opter pour du Firewire ou du eSATA ? Lire la suite
  • Quel logiciel de backup choisir ?
    Les disques durs portables sont parfaits pour les sauvegardes, mais quid du logiciel ? Windows Backup (intégré à Windows 7) suffit-il ou faut-il opter pour un logiciel plus complet comme Acronis True Image 2010 Home ou Rebit Backup ? Lire la suite
Tous les articles Supports de stockage
 Comparatif Supports de stockage
Tous les comparatifs
 Dernières actualités Supports de stockage
Toutes les actualités Supports de stockage
Liens commerciaux

Newsletters


  • Besoin d'aide ? Publiez votre question
  • Publier
Shopping