De plus en plus de solutions émergent qui s'éloignent de l'approche traditionnelle du stockage unifié. Ce sont des stockages spécialisés qui sont adaptés aux tâches d'un certain domaine d'activité. Plus tôt, j'ai parlé du système Infinidat InfiniBox F2230. Aujourd'hui au centre de ma revue SolidFire.
"Who f * cking hate storage" @ Dave Heats, fondateur de NetAppFin 2015, NetApp a annoncé le rachat de la startup SolidFire, fondée en 2010. L'intérêt pour ces systèmes est dû à leur approche différente de la gestion des entrepôts de données et à des performances prévisibles.
Les solutions SolidFire complètent la gamme de produits NetApp, qui comprend les séries All Flash FAS (AFF), EF et E. Elle a également permis un an et demi plus tard de lancer sur le marché un nouveau produit - NetApp HCI (Hyper Converged Infrastructure), qui utilise SolidFire comme sous-système de stockage.
«Nous développons un nouveau système de stockage conçu pour les très grands centres de données de cloud computing. Fondamentalement, l'idée est que de nombreuses entreprises transfèrent l'informatique de leurs bureaux ou de leurs propres centres de données vers ces grands centres de données de cloud computing, où ils ont des dizaines de milliers de clients avec toutes leurs informations en un seul endroit. Par conséquent, nous créons un nouveau système de stockage conçu pour desservir ces grands centres de données. »
Dave Wright, PDG de SolidFire, 2012
Récemment, de plus en plus de solutions s'éloignent de l'approche traditionnelle des stockages unifiés qui peuvent résoudre tous les problèmes, vers des stockages spécialisés conçus pour résoudre les problèmes d'un certain domaine d'activité.
Il n'y a pas si longtemps,
j'ai déjà parlé du système Infinidat InfiniBox F2230 , qui est parfait pour les tâches des fournisseurs de services. Le participant d'aujourd'hui à notre revue SolidFire peut également être attribué à cette classe d'appareils. Le fondateur de SolidFire Dave Wright et son équipe viennent de RackSpace, où ils développaient un système de stockage efficace qui fournirait des performances linéaires dans un environnement avec de nombreux utilisateurs, alors qu'il était simple, facilement évolutif et doté de capacités d'automatisation flexibles. Pour tenter de résoudre ce problème, SolidFire est né.
À ce jour, la gamme SolidFire se compose de quatre modèles avec différents ratios IOPS / TB.
10 disques SSD (MLC) sont utilisés pour le stockage des données et Radian RMS-200 comme NVRAM. Certes, il est déjà prévu de passer aux modules
NVDIMM .

Il est intéressant de savoir comment SolidFire récupère et stocke les données. Nous connaissons tous les ressources limitées des disques SSD, il est donc logique que pour leur meilleure conservation, la compression et la déduplication se produisent à la volée, avant l'enregistrement sur SSD. Lorsque SolidFire reçoit des données de l'hôte, il les décompose en blocs 4K, après quoi ce bloc est compressé et stocké dans NVRAM. La réplication synchrone de ce bloc en NVRAM vers le nœud «voisin» du cluster se produit ensuite. Après cela, SolidFire reçoit le hachage de ce bloc compressé et recherche cette valeur de hachage dans son index de données stockées dans l'ensemble du cluster. Si un bloc avec un tel hachage existe déjà, SolidFire ne met à jour que ses métadonnées avec un lien vers ce bloc, si le bloc contient des données uniques, il est écrit sur le SSD et les métadonnées sont également écrites pour lui. Ce mécanisme de stockage des données et des métadonnées est très similaire au mécanisme de fonctionnement du stockage d'objets.

Notre cluster de test de quatre nœudsDes rumeurs sont déjà apparues selon lesquelles cette ligne sera bientôt mise à jour. Il convient de noter une chose très importante - le cluster SolidFire est capable de travailler avec des nœuds avec différentes «densités IOP / TB» et de combiner des nœuds de différentes générations au sein d'un cluster. Premièrement, il rend l'utilisation de ce système plus prévisible en termes de prise en charge matérielle et facilite également la transition des anciens nœuds aux nouveaux, lorsque vous ajoutez simplement de nouveaux nœuds et supprimez les anciens du cluster en temps réel (en attendant que le cluster soit reconstruit) sans temps d'arrêt, parce que Il y a un support pour Scale Out et Scale Back.
SolidFire peut être livré en trois solutions:
- SolidFire en tant que produit autonome basé sur des serveurs Dell / EMC,
- dans le cadre de FlexPod SF sur les serveurs Cisco,
- dans le cadre de NetApp HCI sur sa plateforme.
Comme vous pouvez le voir dans le tableau des caractéristiques, les nœuds prennent uniquement en charge la connexion iSCSI, et pour la connexion FC, il existe un type de nœud distinct - Fabric Interconnect, qui à son tour contient quatre ports pour les données FC et quatre ports iSCSI pour la connexion aux nœuds, ainsi que 64 Go de mémoire système native / cache de lecture.
Le tableau des caractéristiques montre également les performances de chacun des nœuds. C'est l'un de ces cas où vous connaissez les performances de votre système de stockage au stade de l'achat. Cette performance est garantie (avec un profil de charge de 4Kb, 80/20) pour chaque nœud.
En conséquence, en achetant un cluster de nœuds X ou en développant une solution existante, vous comprenez le volume et le type de performances que vous obtiendrez au final. Bien sûr, vous pouvez extraire plus de performances de chaque nœud dans certaines conditions, mais ce n'est pas pour cela que cette solution a été conçue. Si vous souhaitez obtenir des millions d'IOPS en 2U sur un seul volume, vous feriez mieux de tourner votre attention vers d'autres produits, tels que l'AFF. Les meilleures performances sur SolidFire peuvent être obtenues avec un grand nombre de volumes et de sessions.
Accueil de l'interfaceLa gestion du stockage est assez simple. En fait, nous avons deux pools de ressources: le volume et les IOPS. En identifiant l'un des types de ressources et en connaissant leur nombre final, nous comprenons clairement les autres capacités de notre système. Cela rend à nouveau l'extension du système une tâche extrêmement facile. Besoin de plus de performances? Considérez SF4805 ou SF19210 avec un rapport IOPS / TB «moins dense». Besoin de volume? Nous regardons vers SF9605 et SF38410, qui fournissent moins d'IOPS sur Gb.
Du point de vue de l'administrateur du stockage, le système semble assez ennuyeux. Des choses comme la déduplication et la compression fonctionnent par défaut.
La réplication et les instantanés sont également disponibles et la réplication peut être organisée pour toute la gamme de produits NetApp (à l'exception de la série E). C'est cette simplicité, à mon avis, qui se révèle derrière la citation de Dave Heats du titre de l'article. Étant donné que ce système implique l'intégration avec divers systèmes d'allocation dynamique des ressources, sans la participation d'un administrateur et sans coûts de main-d'œuvre supplémentaires, vous oublierez généralement à quoi ressemble l'interface SolidFire. Mais nous parlerons davantage d'intégration.
À
Onlanta, nous
avons effectué des tests de résistance pour nous assurer que les 20000 IOPS promis. Non pas que nous ne croyions pas le vendeur, mais que nous ayons l'habitude de tout essayer par nous-mêmes. Nous ne nous sommes pas fixé pour objectif de sortir du système plus que ce qui avait été déclaré. Nous avons également pu vérifier par notre propre expérience que le système donne un bon résultat précisément avec un grand nombre de flux. Pour ce faire, nous avons organisé 10 volumes de 1 To sur SolidFire, sur lesquels nous avons placé une machine virtuelle de test. Déjà au stade de la préparation de l'environnement de test, nous avons été agréablement surpris par le travail de déduplication. Malgré le fait que le schéma de son travail soit assez standard, la qualité du travail au sein du cluster s'est avérée extrêmement efficace. Les disques avant les tests étaient remplis de données aléatoires.
Pour le rendre plus rapide, nous avons généré un bloc de 10 Mo, puis ils l'ont rempli. De plus, sur chaque machine virtuelle, ce bloc a été généré séparément, c'est-à-dire dans toutes les voitures, le modèle est différent. Sur 10 To remplis de données - l'espace réellement occupé sur la baie était de 4 To. L'efficacité de la déduplication est de 1: 2,5, sur FAS avec cette approche, l'efficacité de la déduplication en ligne avait tendance à 0. Nous avons pu obtenir 190k IOPS avec une réponse de ~ 1 ms sur notre banc de test.


Je voudrais noter que les caractéristiques architecturales de la solution ne permettent pas d'obtenir un haut niveau de performances sur un petit nombre de threads. Une petite lune ou une seule machine virtuelle de test ne pourra pas afficher de résultats élevés. Nous avons pu obtenir ce nombre d'IOPS en utilisant toute la capacité du système et avec une augmentation progressive du nombre de machines virtuelles qui créent une charge à l'aide de fio. Nous avons augmenté leur nombre jusqu'à ce que les retards ne dépassent pas 1,5 ms, après quoi nous nous sommes arrêtés et avons retiré les indicateurs de performance.
La plénitude du sous-système de disque affecte également les performances. Comme je l'ai dit plus tôt, avant d'exécuter les tests, nous avons rempli les disques avec des données aléatoires. Si vous exécutez le test sans avoir d'abord rempli les disques, les performances seront beaucoup plus élevées avec le même niveau de retard.
Nous avons également effectué notre test de tolérance aux pannes préféré en désactivant l'un des nœuds. Pour obtenir le meilleur effet, un nœud maître a été sélectionné à désactiver. Étant donné que chaque serveur client établit sa propre session avec le nœud de cluster, et non via un point unique, lors de la déconnexion de l'un des nœuds, toutes les machines virtuelles ne se dégradent pas, mais uniquement celles qui ont travaillé avec ce nœud. En conséquence, du côté du stockage, nous ne constatons qu'une baisse partielle des performances.
Bien sûr, de la part des hôtes de virtualisation, sur certains magasins de données, la baisse des performances atteignait 0. Mais en 30 secondes, les performances ont été restaurées sans perte de performances (il convient de garder à l'esprit que la charge au moment de la baisse était de 120 000 iops, dont trois pourraient potentiellement produire sur quatre nœuds, respectivement, nous n'aurions pas dû voir une perte de performances).
Côté SolidFire, la reconstruction de la baie a commencé. La minuterie est un peu allongée et le processus a pris environ 55 minutes, ce qui correspond à l'heure promise par le vendeur. Dans le même temps, personne n'a retiré la charge du système de stockage et elle est restée au même niveau de 120 000 IOPS.La tolérance aux pannes est fournie non seulement au niveau du disque, mais également au niveau du nœud. Le cluster prend en charge la défaillance simultanée d'un nœud, après quoi le processus de reconstruction du cluster est démarré. Compte tenu de l'utilisation de SSD et du fait que tous les nœuds sont impliqués dans la reconstruction, la récupération du cluster prend environ une heure (la reconstruction en cas de défaillance d'un disque prend environ 10 minutes). Il convient de garder à l'esprit que lorsqu'un nœud tombe en panne, vous perdez à la fois en performances et en quantité d'espace utilisable. Par conséquent, vous devez toujours disposer d'un espace libre de la quantité d'un nœud. La taille minimale d'un cluster est de quatre nœuds. Cette configuration vous permettra d'éviter les problèmes si l'un des nœuds tombe en panne avant d'attendre l'arrivée du remplacement.
Comme avec la plupart des systèmes de stockage, la surveillance des performances n'est affichée ici qu'en temps réel. Pour avoir accès aux données historiques, vous devez déployer le soi-disant nœud de gestion, qui s'engage à prendre les données API de SolidFire et à les télécharger sur Active IQ. Si vous avez déjà travaillé avec des systèmes NetApp, vous avez peut-être déjà rencontré ce portail. Vous avez la possibilité de travailler avec des données sur la productivité, l'efficacité, y compris les prévisions de croissance. À quoi vous pouvez accéder à ces données même depuis votre appareil mobile, où que vous soyez dans le monde.
Comme j'ai mentionné le travail de déduplication en ligne, je vais également parler de l'efficacité du stockage en général. Comme pour la série AFF, NetApp offre un rapport d'efficacité de stockage garanti en fonction du type de données stockées.
Comme vous pouvez le voir, les types de données et les coefficients garantis sont légèrement différents. Par exemple, SolidFire a exactement notre cas - Infrastructure virtuelle avec un coefficient 4: 1. Et cela ne tient pas compte de l'utilisation des instantanés.
L'architecture de la solution est basée sur la qualité de service (QoS), qui garantit en fait des performances garanties pour chaque volume.
La QoS est l'une des fonctions essentielles pour les fournisseurs de services et autres entreprises qui doivent fournir un niveau garanti de performances de stockage. Quelqu'un dira que la QoS n'est pas quelque chose de nouveau et qu'elle est implémentée par de nombreux autres fournisseurs. Une autre question est de savoir comment cela fonctionne. Si dans le stockage traditionnel, il est plus probable de prioriser et de limiter la vitesse, SolidFire, à son tour, utilise une approche intégrée pour obtenir des performances garanties.
- L'utilisation d'un All-SSD vous permet d'obtenir une faible latence pour les E / S.
- La mise à l'échelle prédit facilement les mesures de performances.
- Absence de RAID classique - performances prévisibles avec
- pannes matérielles
- Une répartition équilibrée de la charge élimine les goulots d'étranglement dans le système.
- La QoS permet d'éviter les «voisins bruyants».
En plus de la possibilité de spécifier des performances maximales et minimales, il est possible de fournir ces performances au-delà de la limite maximale (Rafale). Chaque volume a un certain système conditionnel de prêts. Lorsque sa productivité est inférieure à la note maximale, il est crédité de ces prêts, grâce auxquels, pendant un certain temps, il peut dépasser la note maximale de productivité. Cette approche vous permet de placer un grand nombre d'applications qui nécessitent de hautes performances dans le stockage, tout en les protégeant des effets négatifs les uns sur les autres. La chose la plus intéressante est que la QoS est prise en charge non seulement au niveau du volume de la baie, mais également au niveau des VMware VV, ce qui permet une allocation granulaire des ressources pour chaque machine virtuelle. La prise en charge complète de VAAI et de l'API VASA permet une intégration étroite de la baie avec le virtualiseur.
En parlant d'intégration, la solution de VMware est loin d'être terminée.
Peut-être que SolidFire peut être appelé le système de stockage le plus automatisé pouvant s'intégrer à tous les systèmes modernes, les systèmes de virtualisation / conteneurisation, prend en charge les systèmes de gestion de configuration, le SDK est disponible pour différentes langues.
Comme toujours, je regarde la première chose avec laquelle le SDK pour Python est d'automatiser mes propres workflows. Nous devons donc créer 15 volumes de 1 To et obtenir l'iqn à la sortie, que nous transmettrons aux administrateurs VMware pour ajouter des banques de données. Nous avons déjà des groupes d'accès pré-créés dans lesquels nos hôtes VMware et nos politiques QoS pré-créées sont enregistrés.
Ou voici une vidéo de démonstration du SDK Python plus détaillée de SolidFire lui-même:
Cette approche de l'automatisation rend SolidFire pratique non seulement pour les fournisseurs de cloud et les tâches similaires, mais conformément au concept d'intégration et de livraison continues (CI / CD) vous permet d'optimiser le processus de développement.
Comme je l'ai mentionné - WebUI fonctionne via l'API, et vous pouvez voir toutes les demandes et réponses via le journal de l'API.Si vous souhaitez en savoir plus sur SolidFire, sur sa comparaison avec ses concurrents, sur l'utilisation du système, etc., je veux recommander leur
chaîne YouTube , qui contient un assez grand nombre de vidéos utiles, d'utile. Par exemple, le cycle «Comparaison des architectures modernes 100% Flash».
Parmi les fonctionnalités intéressantes du système se trouve le mécanisme intégré de sauvegarde des instantanés sur un stockage compatible S3 externe. Cela vous permet d'utiliser des instantanés comme sauvegardes et de les stocker sur des référentiels externes à la fois sur votre site et sur des ressources externes, par exemple, sur Amazon. Bien sûr, cette approche peut difficilement être qualifiée de flexible, du point de vue de la récupération de données, mais dans certains cas, cette solution peut être utile et tout à fait applicable. Il y a un autre point intéressant - vous pouvez télécharger des données vers le stockage S3 de deux manières:
- Native - dans ce cas, les données déjà dédupliquées seront versées, mais en même temps, ce volume ne peut être restauré que sur le même système avec lequel il est versé.
- Non compressé - un ensemble complet de blocs est déjà versé ici, ce qui vous permet de restaurer cette lune sur n'importe quel autre cluster SolidFire.


En général, nous avons été plus que satisfaits de notre communication avec SolidFire. Nous avons obtenu les performances promises, le travail de déduplication en ligne est au-delà des louanges, les capacités d'intégration et d'automatisation ont également laissé une impression extrêmement positive. L'influence de la défaillance des nœuds, ou plutôt son effet minimal sur les performances du système dans son ensemble, la répartition de la charge et l'absence d'un point de défaillance unique pouvant affecter fortement les performances rendent ce système extrêmement attractif. Malgré le fait que le cluster ne peut fonctionner que sur iSCSI, la présence du nœud de transport FC rend ce système plus universel.
Je voudrais exprimer une gratitude particulière dans les tests à Yevgeny Krasikov de NetApp et Arthur Alikulov de Merlion. Soit dit en passant, Arthur a une merveilleuse
chaîne Telegram pour tous ceux qui veulent se tenir au courant des nouvelles de la direction du stockage et de NetApp en particulier. Vous pouvez y trouver une énorme quantité de documents utiles, et quiconque a juste besoin de lire, mais veut également parler, il y a aussi une
discussion de stockage .
Si vous avez encore des questions ou si de nouvelles apparaissent soudainement, je vous invite à visiter NetApp Directions 2018, qui se tiendra le 17 juillet 2018 au Hyatt Regency Petrovsky Park, où Arthur et moi parlerons de SolidFire lors d'une des sessions.
Inscription à l'événement et tous les détails.
Et dans notre entreprise, il y a un poste vacant.