Les algorithmes RAID ont été présentés au public en 1987. À ce jour, ils restent la technologie la plus populaire pour protéger et accélérer l'accès aux données dans le domaine du stockage de l'information. Mais l'âge de la technologie informatique, qui a franchi une étape de 30 ans, n'est pas la maturité, mais la vieillesse. La raison en est le progrès, porteur inexorablement de nouvelles opportunités. À une époque où il n'y avait pratiquement pas d'autres disques en plus du disque dur, les algorithmes RAID ont permis d'utiliser les ressources de stockage disponibles de la manière la plus efficace. Cependant, avec l'avènement du SSD, la situation a fondamentalement changé. Désormais, le RAID lorsque vous travaillez avec des SSD est déjà un "noeud coulant" sur leurs performances. Par conséquent, pour libérer tout le potentiel des caractéristiques de vitesse des SSD, une approche complètement différente de leur utilisation est simplement nécessaire.

En plus des différences évidentes entre le disque dur et le SSD dans les principes de fonctionnement, ces types de supports ont une caractéristique plus importante: tout disque dur peut écraser toutes les données avec granularité dans un bloc (maintenant c'est le plus souvent 4K). Pour les SSD, le processus de réécriture est une procédure beaucoup plus compliquée:
- Les données modifiées sont copiées vers un nouvel emplacement. En même temps, la granularité est le même bloc, mais composé de plusieurs pages et ayant une taille de 256 Ko - 4 Mo. C'est-à-dire lors de la modification du même 4KB, il est nécessaire de copier en incluant toutes les pages voisines, formant un seul bloc.
- Marquez les "anciens" blocs comme inutilisés, puis essuyez-les avec le garbage collector.
Écriture / Écrasement séquentiel sur SSD
Dans le cas d'un enregistrement / doublage séquentiel, cette fonctionnalité du SSD ne joue pas un grand rôle en termes de performances, car les blocs sont situés à proximité et le ramasse-miettes fait son travail en arrière-plan. Mais dans la vie réelle, et plus encore dans le segment Entreprise pour SSD, l'accès aléatoire aux données est le plus souvent utilisé. Et ces données sont écrites à des endroits arbitraires sur les disques.
Plus les données sont écrites sur le SSD, plus il est difficile pour le garbage collector de fonctionner, car la fragmentation augmente rapidement. En conséquence, le moment vient où le processus de nettoyage du lecteur cesse d'être «en arrière-plan»: les performances du SSD chutent considérablement, car une partie importante est prise par le garbage collector.
Disposition réelle des données sur SSD pour une utilisation quotidienne
Pour illustrer l'effet de l'impact du ramasse-miettes, en fonction du mode d'enregistrement sur le lecteur, on peut effectuer des tests simples: enregistrement séquentiel et aléatoire en blocs de 4K sur un lecteur de 100 Go. (Source - Micron )
Performances d'écriture séquentielle
Performances d'écriture aléatoire
Comme vous pouvez le voir sur les tests, la baisse des performances peut atteindre plus de deux fois. Et ce n'est qu'un seul lecteur. Dans le cas de l'utilisation de SSD dans le cadre d'un groupe RAID, le nombre d'opérations de réécriture augmente considérablement, grâce au travail avec parité.
En général, grâce à ces caractéristiques du SSD, il existe pour eux un paramètre tel qu'un coefficient d'écriture (amplification d'écriture). Il s'agit du rapport entre la quantité de données écrites sur le lecteur et la quantité de données réellement envoyées par l'hôte. Et pour le RAID5 le plus populaire, ce rapport est de ~ 3,5.
En conséquence, les systèmes avec RAID classique n'utilisent essentiellement que des SSD ~ 10% de leur vitesse réelle et évoluent mal en termes de performances avec une augmentation du nombre de disques de plus d'une douzaine.
Nous notons également que des opérations d'écriture excessives non seulement réduisent les performances des SSD, mais réduisent également leur ressource loin d'être sans fin, réduisant ainsi la durée de vie du lecteur.
La technologie FlexiRemap® , qui est au cœur de tous les produits AccelStor, a été développée comme une alternative aux algorithmes RAID classiques pour travailler avec des SSD. L'innovation de la technologie a été notée à la fois par divers brevets et récompenses (y compris au Flash Memory Summit 2016), et par les résultats de tests indépendants (par exemple, SPC1).
L'essence de FlexiRemap® est de convertir toutes les demandes d'écriture entrantes, et principalement de type aléatoire, en un ensemble de blocs qui est aussi similaire que possible à l'enregistrement séquentiel du point de vue du lecteur. En conséquence, l'enregistrement sur le SSD a lieu dans le mode le plus confortable pour eux, et les performances finales dépassent tout système doté d'un RAID classique.
Tous les SSD des systèmes AccelStor sont divisés en deux groupes FlexiRemap® symétriques. La taille du groupe dépend du modèle et est de 5 à 11 disques. Pour la résilience au sein d'un groupe, la parité est utilisée comme RAID5. Les deux groupes sont utilisés ensemble pour former un espace de stockage commun. Par conséquent, la tolérance aux pannes qui en résultera sera similaire à une matrice RAID50 composée de deux groupes: le système est capable de résister à une défaillance de jusqu'à deux SSD, mais pas plus d'un dans chaque groupe FlexiRemap®.

Toutes les demandes d'écriture entrantes sont divisées en blocs 4K, qui en mode round robin sont écrits dans les deux groupes FlexiRemap®. De plus, le système suit en permanence la demande de blocs enregistrés, en essayant d'enregistrer ces blocs aussi près que possible les uns des autres. Il se révèle un analogue virtuel de déchirure, s'il est exprimé en termes de stockage. Dans ce cas, le travail du ramasse-miettes est grandement facilité: après tout, les blocs inutilisés seront toujours à proximité.
Il convient de noter que les systèmes AccelStor , contrairement aux produits concurrents, n'utilisent pas la fonctionnalité de mise en cache des demandes entrantes dans la RAM du contrôleur. Tous les blocs de données entrants sont immédiatement écrits sur le SSD. L'hôte ne reçoit la confirmation de l'enregistrement réussi qu'après le placement physique des données sur les disques. Seules les tables d'allocation de blocs sur le SSD sont stockées dans la RAM pour accélérer l'accès et déterminer où écrire le prochain bloc de données. Bien entendu, pour des raisons de fiabilité, des copies de ces tableaux se trouvent également sur les supports eux-mêmes. En conséquence, les systèmes AccelStor ne nécessitent aucune protection de cache sous la forme d'une batterie / d'un condensateur (cependant, il est possible d'établir une connexion avec l'onduleur pour un arrêt «en douceur» en cas de problème d'alimentation).
Grâce à cette approche de l'organisation des enregistrements, le garbage collector est vraiment capable de travailler en arrière-plan sans affecter de manière significative la vitesse des disques, ce qui permet finalement d'utiliser jusqu'à 90% des performances SSD dans le système. C'est exactement ce qu'est l'IOPS dans les systèmes AccelStor contre All Flash, basé sur des algorithmes RAID.
Une autre caractéristique importante de la technologie FlexiRemap® est la réduction significative des opérations d'écriture redondantes sur les SSD. Ainsi, le coefficient d'amplification d'écriture pour les systèmes AccelStor n'est que de 1,3, ce qui, traduit dans le langage commun, signifie une augmentation de la durée de vie des disques de plus de 2,5 fois par rapport au RAID5!
Grâce à la surveillance constante par le système de la politique de placement des données sur le SSD, tous les disques s'usent de la même manière. Cette approche nous permet de prédire leur durée de vie et de signaler à l'avance à l'administrateur l'épuisement de la ressource d'enregistrement.
Il est clair que les SSD peuvent échouer. Dans ce cas, le système commencera immédiatement la reconstruction sur l'un des disques de secours. Dans ce cas, le groupe FlexiRemap®, qui est dans un état dégradé, passe en mode lecture seule et toutes les demandes d'écriture sont envoyées au deuxième groupe. Un tel mécanisme de protection est prévu pour accélérer l'opération de reconstruction et réduire la probabilité de défaillance d'un autre disque au sein du même groupe. Ce n'est un secret pour personne que pendant la reconstruction, tous les disques du groupe subissent une charge accrue en raison des interférences des opérations de lecture, d'écriture et de restauration sur disque de secours. Cela augmente la probabilité de défaillance d'un autre lecteur. Et plus il y a d'opérations d'enregistrement, plus la reconstruction prendra du temps.

Une fois le processus de récupération terminé et le groupe FlexiRemap® revenu à son état normal, il y aura un léger biais dans la ressource d'enregistrement entre les deux groupes. Par conséquent, pour l'aligner, les opérations d'enregistrement suivantes tomberont souvent sur le groupe restauré (bien sûr, de telle sorte que les performances finales du système ne souffrent pas beaucoup).
Il est impossible d'augmenter les performances de tous les systèmes Flash basés sur des algorithmes RAID au-dessus de certaines valeurs (~ 280K IOPS @ écriture aléatoire 4K) même lors de l'utilisation de systèmes de mise en cache complexes. La technologie FlexiRemap®, grâce à une approche complètement différente de l'organisation de l'espace de stockage, permet non seulement de surmonter facilement cet obstacle, mais augmente également simultanément la durée de vie des SSD. Les systèmes AccelStor présentent donc de nombreux avantages parmi les baies All Flash sur de nombreux fronts (IOPS / $, GB / $, TCO, ROI), ce qui en fait des candidats idéaux pour des postes clés dans les centres de données clients pour résoudre des tâches exigeantes en ressources.