Comment la Flash bouleverse le stockage de données
L'irruption des technologies de stockage à base de mémoire Flash est en passe de révolutionner le stockage de données, avec, à la clé, un bond significatif des performances applicatives.
Les technologies de stockage à base de silicium comme la mémoire Flash sont en train de bouleverser en profondeur le monde du stockage et se traduisent par une refonte en profondeur des architectures de stockage. Ce travail, largement entamé par les constructeurs en 2011 commence à avoir un impact profond sur l’ensemble de la chaîne informatique, des serveurs aux baies de stockage. Les caractéristiques et les performances de la mémoire Flash sont en effet de nature à bouleverser la façon dont les serveurs accèdent aux données et les performances des infrastructures de datacenter.
Le principal attrait de la mémoire Flash tant pour les entreprises que pour les constructeurs s’explique par ses performances. Depuis de nombreuses années, l’évolution des performances des processeurs et de la mémoire s’est faite à un rythme très supérieure à celle des disques durs, qui historiquement ont été les composants essentiels des systèmes de stockage. La Flash du fait de ses caractéristiques vient combler le trou qui s’est creusé entre les performances de la mémoire et celle des disques durs.
La Flash, chaînon manquant entre la mémoire et les disques durs
Pour faire simple, la performance des processeurs a progressé bien plus rapidement que celle des mémoires et surtout que celle du stockage au cours des 30 dernières années. Selon des estimations du professeur David A. Paterson de l’Université de Berkeley, la performance moyenne des processeurs a progressé à un rythme moyen de 50 % par an, tandis que la bande passante mémoire progressait de 27 % par an et que celle des disques durs progressait de 28 % par an.
Plus grave, la performance en nombre d’opérations par seconde des disques durs n’a guère évolué au cours des 10 dernières années. Ainsi un disque d’entreprise à 10 000 tr/mn reste péniblement sous la barre des 150 IOPS (opérations d’entrées/sorties par seconde) en accès aléatoires, et un disque SATA peine à franchir la barre des 70 à 80 IOPS. Or, pendant que la performance des disques stagnait, celle des processeurs a été multipliée par 100 au cours des dix dernières années.
Autre point d’achoppement, les gains en latence des disques durs ont été ridicules au cours des 25 dernières années. Seagate note ainsi qu’un disque d’entreprise avait un temps d’accès de 60 ms en 1987. Depuis, on est passé à 5 ms pour les disques d’entreprise à 15 000 tr/mn, mais toujours à environ 9 ms pour un disque SATA 7 200 tr/mn. Cette amélioration d’un facteur de 6 à 12 fois peut paraître impressionnante. Sauf que dans le même temps, la latence d’accès à la mémoire a été divisée par plus de 100 000 (pour passer sous la barre de la nanoseconde) et la performance unitaire des processeurs (mesurée en Flops) a été multipliée par plusieurs dizaines de millions de fois.
Le résultat est un déséquilibre croissant : d’un côté, des processeurs capables de performances théoriques croissantes et de l’autre, des goulets d’étranglement terribles en matière d’accès aux données du fait des faibles performances des disques durs.
Lors d’une discussion avec leMagIT fin 2012, Sébastien Verger, le CTO d’EMC France, avait tenté de mettre en perspective ces notions de nano, micro ou millisecondes, qui parlent peu à l’utilisateur moyen. Selon lui, il faut les ramener à des échelles plus courantes pour mieux comprendre le problème. Si l’on ramène ainsi le temps d’accès de la mémoire vive DDR3 (environ 2 nanosecondes) à une seconde, alors celui d’une mémoire Flash est proche de 30 secondes tandis que celui d’un disque dur SAS est de 28 jours et 23 heures. Cela veut dire qu’au lieu d’attendre une seconde pour atteindre une donnée en mémoire vive, le processeur doit attendre 30 secondes, s’il doit la chercher dans une carte flash locale et près d’un mois s’il lui faut aller la lire sur un disque dur… Or pendant qu’il attend des données, le processeur ne travaille pas. Conclusion : en ajoutant de la Flash dans les architectures de stockage, on dope certes la performance du stockage, mais surtout, on dope de façon encore plus intéressante celle d’une architecture informatique complète. En fait, il est parfois plus rentable et moins cher de repenser son architecture de stockage en y insérant un étage de Flash que de remplacer ses serveurs par des modèles plus récents.
La Flash transforme les baies de stockage
Les caractéristiques uniques de la mémoire Flash ont jusqu’à présent contraint les constructeurs de systèmes de stockage à un exercice bien périlleux d’intégration dans leurs architectures existantes. Sans surprise, tous les constructeurs ont commencé par supporter l’insertion de disques à mémoire Flash (ou SSD) dans leurs baies de stockage. Une intégration facile mais qui se fait parfois dans des systèmes dont les architectures internes ne sont pas adaptées à la performance des SSD. La première réponse de la plupart des constructeurs a été d’intégrer l’étage de Flash dans leurs baies à leur architecture de cache dopant ainsi l’espace de cache des baies de stockage et donc leurs performances. La plupart des constructeurs ont aussi ajouté des fonctions de tiering à leurs baies de stockage – les données les moins utilisées sont automatiquement migrées vers des disques durs tandis que les plus utilisées et les plus sensibles sont migrées sur des SSD.
La combinaison de ces techniques permet de réduire les coûts d’achat et d’exploitation des baies en réduisant le nombre de disques durs, tout en dopant les performances. Par exemple, l’usage d’une dose faible de Flash dans des baies de stockage (2,5 à 10% de la capacité, selon la nature des transactions) permet de réduire de façon significative le nombre de disques durs rapides et donc de proposer des baies plus compactes et plus économiques tout en accroissant les performances. Une large majorité des baies de stockage modernes intègrent ainsi un étage de flash pour le cache ou le tiering.
Mais ces adaptations des architectures de baies existantes ont des limites, du fait des capacités des algorithmes de cache mais aussi des limites inhérentes au tiering. Ainsi si une donnée qui aurait besoin de performance n’est pas dans l’étage Flash mais dans l’étage de disque durs SATA de la baie, les performances deviennent immédiatement calamiteuses, et il faudra quelques minutes ou quelques heures pour que ces données migrent dans l’étage rapide, ce qui peut avoir des conséquences pour certaines applications. Les constructeurs de baies de stockage ont donc commencé à réfléchir à de nouvelles générations de baies 100% Flash aux architectures spécifiquement adaptées à ce support.
2013 année des baies 100% Flash
Chez les grands constructeurs, EMC a ainsi lancé au premier semestre 2013 sa baie XtremIO, née du rachat de la start-up éponyme. NetApp a entamé le développement de sa baie FlashRay, désormais attendue pour la fin 2014. HP a quant à lui adapté son architecture 3Par pour produire une baie 3Par StorServ 100% Flash (la 7450). Et des start-ups comme Pure Storage, SolidFire, Kaminario ou Violin se sont aussi lancées à l’assaut des géants du marché avec de nouvelles architectures adaptées à la Flash.
La plupart de ces baies combinent l’usage de la mémoire Flash comme support de stockage avec un usage systématique de technique d’optimisation de données (compression et déduplication) afin de minimiser l’usure de la Flash mais aussi d’optimiser l’usage de la capacité, donc le coût par Go – avec la baisse des prix de la Flash, certaines de ces baies affichent d’ailleurs des coûts au gigaoctet assez proches de ceux des baies traditionnelles des grands constructeurs. Toutes proposent des services avancés de données basés sur une gestion fine et intelligente des métadonnées (notamment pour optimiser les snapshots, la réplication, la gestion de la qualité de service…). Selon les fournisseurs, les performances vont de plusieurs centaines de milliers d’IOPS à plusieurs millions d’IOPS avec des temps de latence fréquemment sous la barre de la milliseconde.
La Flash de bout en bout
La mémoire Flash n’affecte toutefois pas que les baies de stockage. Elle s’insère dans l’ensemble de la chaîne reliant les serveurs au stockage. C’est Fusion-IO (depuis racheté par SanDisk, l’un des géants de la Flash) qui a notamment initié cette tendance avec ses cartes PCI-e avant d’attirer l’attention d’EMC qui a introduit à l’été 2012 les cartes VFCache. Depuis, la plupart des constructeurs ont suivi avec des offres plus ou moins similaires. Récemment la consolidation s’est accélérée sur le marché avec le rachat récent des activités Flash de LSI (et notamment sa ligne de cartes PCI-e et de disques SSD à interface PCI-e par Seagate), celui de l’activité carte Flash PCIe de Violin par Hynix et un peu plus tôt celui de Virident (fournisseur OEM des cartes VF Cache d’EMC) par Western Digital, et celui d’OCZ par Toshiba.
Les cartes PCI-express Flash s’installent directement dans les serveurs qui accèdent aux données, et offrent des performances optimales car le bus sur lequel elles sont installées (PCI-express) a une latence bien inférieure aux connexions SAN. Elles peuvent être utilisées à la fois comme un étage de stockage local à très hautes performances ou comme un cache vers les données stockées sur les baies de stockage (dans ce cas un pilote logiciel adapté gère le cache à l’échelle du serveur ou d’un cluster de serveurs équipés de cartes Flash). La proximité de la Flash du processeur permet notamment de minimiser la latence d’accès et de répondre aux besoins des applications les plus sensibles à la latence comme les applications transactionnelles, les bases de données…
Pour tirer parti de ces cartes, plusieurs éditeurs ont aussi développé des solutions de gestion de cache distribuées qui permettent à un cluster Hyper-V ou VMware de s’appuyer sur plusieurs cartes PCI-e installées dans certains serveurs, pour optimiser les temps d’accès en lecture et en écriture vers les baies de stockage. Ces logiciels ont l’avantage de permettre aux serveurs de tirer parti de la faible latence des cartes PCI-e et donc de bénéficier de performances optimales, tout en continuant à permettre de s’appuyer sur les fonctions et services des baies pour le stockage en « back-end ». L’une des solutions les plus remarquables en la matière est celle de Pernix Data, une société fondée par des anciens de l’équipe de stockage VMware et qui fonctionne comme un pilote intégré au noyau de VMware pour doper les performances d’accès au SAN des cluster vSphere. L’une des moins coûteuses est celle d’Infinio, limitée toutefois au cache en lecture et aux baies NAS.
Notons pour terminer que la Flash n’est pas la dernière étape dans la course aux performances. De nouvelles technologies de stockage non volatiles à base de mémoire sont en effet en cours de développement telles que la mémoire à changement de phase (ou PCM) par des constructeurs comme IBM, Micron et Samsung ou le Memristor (HP et Hynix), qui promettent des performances encore meilleures et une consommation d’énergie réduite. Pas de quoi sonner le glas des disques durs, qui resteront durablement le moyen de stockage en masse des données, mais de quoi accélérer encore un peu plus le développement d’un étage de stockage ultra rapide, dans des baies ou dans des serveurs, pour faire face aux besoins des nouvelles applications gourmandes en performances dans le domaine du cloud, du HPC, du Big Data et de l’analytique.