samedi 6 mars 2010

Alors disques SSD fiables ou pas fiables ?

Comme vous le savez, j'ai la chance d'utiliser en production depuis plus de 6 mois des disques SSD au sein de mes SANs Pillar Data. Les gains de performances pour les applicatifs s'appuyant sur cette technologie sont proprement ahurissants comme par exemple le temps de réponse ressenti par l'utilisateur 20 fois plus rapide pour des applications intégrant de la bases de données ou une recherche d'images vidéos basée sur des métadatas quasi instantanées ....

Cependant, on me pose souvent la question de savoir si j'ai des craintes concernant la fiabilité de ces disques. A présent que tout les acteurs du stockage déploie cette technologie, il est donc opportun de faire tomber cette légende urbaine. Pour mémoire, un disque SSD est composé de cellules aptes à recevoir les bits de données. Ces cellules sont de deux types : un bit par cellule pour le SSD de type SLC ou plusieurs bits par cellule, on parle alors de MLC. De part le fait qu'une cellule SLC manipulera moins de donnée, elle sera plus performante qu'une MLC. Les fondeurs admettent une vie de 100 000 I/O pour les cellules SLC et environ 10 fois moins pour les MLC, normal puisque les SLC sont moins sollicités :)

Lorsque l'on écrit une information, on va réinitialiser la cellule en lisant son contenu puis écrire le ou les bits de données sachant que l'on manipule les cellules non pas unitairement mais par blocs entiers. Le paradoxe est que pour écrire quelques kilo-octets, il faudra souvent en effacer donc en lire plusieurs centaines ce qui influera sur la durée de vie des cellule. Ce phénomène s'appelle l'amplification d'écriture. A l'instar d'un formatage rapide, les firmware des SSD de qualité ne font que marquer les blocs effacés sans réellement les réinitialiser ce qui augmentera d'autant la durée de vie des cellules.

Bien entendu, le firmware du disque est suffisament malin pour ne pas solliciter toujours les mêmes et répartit équitablement les cycles d'I/O sur l'ensemble tout en en laissant suffisamment d'espace vierge entre celles qui sont manipulées, on appelle celà le wear leveling.

A l'instar des blocs de données des disques durs tradtionnels, certaines cellules peuvent être ou devenir deffectueuses, le disque SSD comporte donc une gestion de blocs deffectueux et une réserve dans laquelle piocher.

A l'inverse, une cellule ne conservera pas indéfiniment une information qui pourra s'altérer dans le temps du fait de l'usure des oxydes utilisés pour manipuler les cellules. Le firmware provoquera donc de temps à autre des maniuplations pour rafraîchir les données ce qui n'empêchera pas le RBER ou Raw Bit Errors Rate global, calculé périodiquement, de partir immanquablement à la hausse ...

Outre le sacro-saint MTBF, Mean time between failures des disques traidtionnels, il nous faut à présent prendre en compte l'UBER ou uncorrectable bit error rate, qui traduit le taux de cellules donc de volumétrie qui sera irrémédiablement perdue suites aux I/Os qu'elles auront subies durant leur vie.

Alors en conclusion, qu'en-est-il de la durée de vie du disque SSD dans tout ça ? Et bien pour les versions pessimistes au moins 5 ans en les utilisant hyper-intensivement 24/24h, ça laisse de la marge et c'est pas pire que nos bons vieux disques FC d'autant que l'architecture de la quasi-majorité des stockages du marché est bien incapable d'alimenter en données de manière nominale les SSD pour en tirer les meilleurs performances, exception faite de quelques uns dont mes machines Axiom Pillar Data ...

Aucun commentaire: