La course à la performance est un processus sans fin depuis que l’informatique est née. Les usages et l’expérience utilisateur nécessitent des applications de plus en plus gourmandes en ressources et de plus en plus exigeantes en performances. Les évolutions technologiques qui ont accompagné ces évolutions ne se sont pas faites au même rythme. Les capacités de stockage traditionnel ont par exemple augmenté plus vite que les performances des disques durs créant ainsi un gap important avec les capacités de traitements des processeurs.
Ce décalage entre technologies explique l’engouement pour les technologies flash qui se reflète dans les stratégies des constructeurs informatiques qui ont été nombreux à faire l’acquisition de société spécialisées dans le stockage flash afin de répondre aux besoins d’accélération de certaines applications. C’est ainsi que Cisco a fait l’acquisition de la société Whiptail le 29 octobre 2013 avec la gamme dénommée aujourd’hui UCS Invita.
Avec ces technologies de mémoires flash appelées aussi NAND (de l’opérateur logique de l’algèbre de Boole NON-ET qui donne NAND en anglais) on doit également prendre en compte de nouvelles contraintes. Il existe différentes manières d’utiliser ces mémoires flash qui impactent la performance, l’endurance, la correction d’erreurs, et le coût.
Ne prendre en compte qu’un de ces facteurs peut avoir des conséquences importantes sur une production informatique.
Les types de mémoire flash actuels
La densité cellulaire (nombre de bits dans une cellule) est un des facteurs critiques pour la performance, l’endurance, la correction d’erreurs, et le coût. Pour ceux qui regardent ces technologies pour la première fois il est sans doute utile revenir sur quelques notions de base.
– Cellule à niveau unique (SLC) : une cellule consacre un transistor à un bit. Il n’existe qu’un seul seuil de tension, qui représente la présence ou l’absence de données.
- performance.
- correction d’erreurs simple.
- taux d’endurance élevé, d’environ 30 000 cycles.
- technologie la plus coûteuse en termes de coût par bit.
– Cellule multiniveau (MLC) : deux bits de données sont représentés dans le même transistor. La détermination de la donnée s’effectue par détection d’une différence de seuil de tension dans le transistor.
- augmentation des taux d’erreurs possible due à la complexité
- taux d’endurance d’environ 3000 cycles d’écriture.
- faible endurance résultant de la représentation de plusieurs états en utilisant le même nombre d’électrons.
– Cellule entreprise multiniveaux (eMLC) : compromis entre la conservation des données et de l’endurance.
- plus robuste que la MLC traditionnelle
- plus chère que la MLC traditionnelle.
- endurance augmentée à un maximum de 10 000 cycles.
– Cellule de niveau Triple-(TLC) : trois bits dans une seule cellule coût par bit est minimal.
- Problèmes de correction d’erreurs et d’endurance amplifiés en TLC.
- débits de 500 à 1500 cycles.
Influence de la taille des cellules sur l’endurance.
Plus la taille des cellules est réduite, moins il y a d’électrons dans la cellule. La différence entre les états distincts devient de plus en plus difficile à détecter, induisant plus de risques d’erreurs. En outre, la proximité des cellules augmente encore le problème de lecture, nécessitant une plus forte capacité de correction d’erreurs.
Les solutions Cisco UCS Invicta sont basées sur la technologie MLC.
Cisco évalue les dernières technologies NAND comme la 3D NAND et la vNAND qui permettront de surmonter les limites des NAND actuelles. Ces technologies promettent une plus grande endurance que l’eMLC et devraient atteindre finalement le même coût par bit. Elles offrent également une densité plus élevée qui se traduit par des SSD de plus grande capacité, de 4 à 8 téraoctets (To) avec un facteur de forme de 2,5 pouces.
D’autres considérations à prendre en compte dans le choix d’un stockage flash
J’ai insisté dans ce billet sur les différences de mise en œuvre des technologies NAND dans un système de stockage flash mais lors d’un choix d’architectures d’autres considérations sont à prendre en compte et je tacherai de les détailler dans un prochain billet mais rappelons quand même :
- les facteurs d’amplification
- la Déduplication des données à haute vitesse :
- La qualité de la Détection d’erreur et de correction :
- L’intégrité des données en cas de coupure de courant
Le système d’opération du système Flash a donc son importance car c’est lui qui va gérer la manière d’écrire les données, de gérer le Garbage Collector (gestion des espaces invalidées) et de corriger les erreurs. En fonction de l’efficacité du système d’exploitation la gestion de l’usure, la fiabilité et les performances en seront affectées.