Tous les appareils de stockage Flash, y compris les lecteurs SSD, sont uniques dans la façon dont ils traitent les données préalablement supprimées. Lorsqu’un fichier est supprimé dans Windows ou dans tout autre système, le fichier est toujours présent sur l’appareil de stockage, qu’il s’agisse d’un disque dur classique (HDD) ou d’un SSD.
Pour les besoins de cet article, les données effacées par le système mais demeurant encore sur l’appareil de stockage seront appelées « données inutiles ». Dans le cas d’une suppression de fichier, le système considère que l’adresse où se trouvait ce fichier est à présent vide et qu’il est possible d’y inscrire de nouveau des données si nécessaire. Lorsque le système émet une commande pour inscrire des données à un emplacement qui contenait préalablement des données, le disque dur écrasera les données inutiles sans problème. Avec un système de stockage NAND (clés USB, cartes SD, lecteurs SSD, etc.) ceci n’est pas possible. Le SSD devra supprimer le contenu de la cellule mémoire avant d’y inscrire les données. Ce processus de recyclage des données préalablement supprimées est appelé garbage collection.
Les processus et stratégies de la fonction garbage collection sont programmés dans le firmware du contrôleur SSD et diffèrent d’un fabricant de lecteurs à un autre. Les lecteurs dotés d’un processus garbage collection efficace affichent une bonne performance au moment de leur achat, mais également plusieurs mois après, tandis que les autres lecteurs ont tendance à être plus lents au fil du temps. Ce ralentissement provient du fait que le contrôleur SSD doit recycler tous les blocs contenant des données inutiles.
Lorsque Windows 7 est sorti, il a été présenté comme le premier « système sensibilisé au SSD », et à la détection d’un lecteur SSD installé, le système désactive certaines fonctionnalités destinées à améliorer la performance du disque dur inutiles au SSD. Il active également un processus d’optimisation spécifique aux SSD que l’on appelle TRIM.
Pour faire simple, la commande TRIM permet au système et au lecteur SSD de communiquer où se trouvent les données inutiles et de les marquer afin de les supprimer. Avec la commande TRIM activée dans le système, lorsqu’un fichier est supprimé, le système indique alors que l’adresse où se trouvait le fichier peut être nettoyée lorsque le lecteur trouve un moment adéquat pour le faire. Pour activer cette fonctionnalité, le lecteur SSD doit prendre en charge la commande TRIM. À noter que tous les SSD Kingston prennent en charge cette commande.
La commande TRIM est une fonctionnalité efficace permettant une performance constante des lecteurs SSD au fil du temps, mais qui a également certaines limites, en fonction de sa capacité à communiquer avec le lecteur par le biais de l’interface SATA. Si les lecteurs SSD sont configurés dans une matrice RAID, connectés à un contrôleur HBA ou s’ils se trouvent dans une configuration NAS/SAN à l’extérieur du PC hôte, la commande TRIM n’atteindra pas les lecteurs.
À ce propos, des données récentes collectées auprès de nos entreprises clientes montrent que Windows XP est encore le système le plus utilisé dans leurs environnements. En gardant ceci à l’esprit, nous avons entreprit de tester l’efficacité des fonctions garbage collection et TRIM ainsi que leur impact sur la performance du SSD.
Pour analyser ce scénario, nous avons créé un utilitaire qui remplit entièrement de données le lecteur, puis l’efface, puis le remplit de nouveau, tout en mesurant l’écart de temps entre le premier et le second remplissage. En remplissant entièrement le lecteur, puis en le vidant et en le remplissant de nouveau, nous forçons le contrôleur du SSD à lancer la fonction « garbage collect » sur l’ensemble du lecteur tout en inscrivant simultanément les nouvelles données sur le disque.
Nous avons configuré le SSD en tant que lecteur D: connecté à un port SATA 2 dans un système Windows 7 puis nous avons effectué ce test « remplissage – suppression – remplissage » avec la commande TRIM activée puis désactivée, afin de simuler tous les systèmes ne prenant pas en charge la fonction TRIM, tels que XP, Vista, et Mac OS X. Par ailleurs, nous avons effectué un autre test avec les lecteurs SSD configurés de façon à ce que la commande TRIM ne puisse atteindre les lecteurs (RAID, SAN). Pour finir, nous avons exécuté le benchmark PCMark Storage afin d’évaluer la performance globale des lecteurs au cours de ce test. En effectuant ces tests, nous avons ajouté un disque dur HDD afin d’avoir un point de comparaison. Voir ci-dessous les résultats des tests.
À noter que les premières séquences sur chaque lecteur étaient les plus rapides en temps de remplissage, sachant que nous avons d’abord effacé les lecteurs de façon sécurisée afin de simuler la nouvelle performance à la sortie de l’emballage. Le lecteur KC100 de même que le lecteur V+100 affichaient une performance soutenue et constante lors des séquences 1 à 3 avec la commande TRIM activée ; la commande TRIM était désactivée pour les séquences 4 à 6, avec la même performance tout au long du test. Les lecteurs SSD1, SSD2 et SSD3 affichent tous une performance constante lorsque TRIM est activée, à noter toutefois qu’au début de la séquence 4, les lecteurs SSD 1 et 2 mettent plus de temps à compléter nos tests « remplissage – suppression – remplissage » et que le lecteur SSD3, pour des raisons inconnues, affiche une performance très inconstante.
Gardons à l’esprit que nous avons désactivé le TRIM à la fin de la séquence 3, ce qui signifie que les lecteurs n’avaient plus la commande TRIM pour leur indiquer où se trouvaient les données inutiles. L’exécution de la fonction garbage collection des lecteurs est rigoureusement testée au cours des séquences 4 à 6 (R4-R6). Les séquences de test R4 à R6 représentent les performances des lecteurs dans un système ne prenant pas en charge la commande TRIM, tels que Windows XP, Vista et MAC OS X.
La suite PCMark Storage était exécutée immédiatement après l’effacement sécurisé afin d’obtenir le meilleur score possible, après la séquence 3 et le TRIM encore activé, puis après la séquence 6 avec le TRIM désactivé. Comme vous pouvez le constater sur le graphique, les performances des deux lecteurs Kingston sont bonnes avec ou sans la commande TRIM activée. Il y a une légère chute du score global comparé au score de la séquence 1, mais encore une fois, ceci après un effacement sécurisé lorsque le lecteur était complètement vide et sans aucunes données inutiles. Les SSD1, 2 et 3 affichent tous une chute importante du score entre les séquences 3 et 6. Un commentaire qui revient souvent à propos des SSD ne concerne pas le fait que leur performance soit rapide au moment de l’achat, mais le ralentissement de la performance après un usage régulier.
Ce test illustre que, à un certain degré, lorsque des données ont été inscrites une fois sur l’ensemble du NAND d’un SSD, le contrôleur est obligé de recycler les données inutiles afin d’inscrire de nouvelles données, ainsi les lecteurs disposant de cette fonction maintiennent une performance constante, tandis que ceux qui n’en disposent pas voient leur performance baisser. Une chose importante à noter est que tous ces scores à la séquence 6 avec le TRIM désactivé sont toujours bien au-dessus du score d’un HDD traditionnel à environ 2600 dans ce Storage Benchmark.
En conclusion...
Tous les appareils NAND Flash doivent gérer les données préalablement supprimées en effaçant les contenus d’une cellule mémoire avant d’inscrire de nouvelles données. La fonction garbage collection ainsi que la commande TRIM sont des moyens efficaces de recycler les « données inutiles » pour un SSD.
La commande TRIM montre certaines limites que nous venons d’évoquer, en particulier l’incapacité à communiquer avec les SSD dans une matrice RAID, et l’absence de prise en charge dans les systèmes d’exploitation plus anciens. Tandis qu’un SSD avec un processus garbage collection efficace recyclera les données inutiles sans sacrifier la performance, quel que soit l’environnement d’exécution. Les lecteurs Kingston KC100 et V+100 emploient l’un comme l’autre des stratégies garbage collection très efficace, ce qui n’est pas le cas de tous les SSD. Au cours de nos tests, nous avons constaté que certains SSD ralentissaient une fois la commande TRIM désactivée. Au moment d’envisager de passer à la technologie SSD, les spécialistes en informatique et les responsables des achats doivent penser à prendre en compte le système utilisé ainsi que la configuration dans laquelle les lecteurs seront.
À noter que les SSD Kingston utilisés dans ce test, SSDnow KC100 et SSDnow V+100, sont d’anciens produits qui ne sont plus disponibles à la vente. Cependant, les résultats de ce test de 2011 montrent de façon globale les effets de la fonction garbage collection et du TRIM sur la performance des lecteurs SSD.