solutions cloud

NVMesh: l’architecture de stockage cloud pour l’entreprise

Mis à jours 29 avril 2021

Le stockage réduit défini par le logiciel d’Excelero exploite NVMe flash pour fournir un stockage de bloc avec une latence extrêmement faible sur les serveurs standard. Voici comment faire ?

Des géants de la technologie tels qu’Amazon, Facebook et Google ont redéfini les technologies de l’information pour des applications Web, en s’appuyant sur des serveurs standard et des architectures sans partage pour garantir une efficacité opérationnelle, une flexibilité et une fiabilité maximales. Comme les nouvelles charges applicatives – cloud, mobile, IoT, apprentissage automatique et analyse en temps réel – nécessitent un stockage plus rapide et plus évolutif, les entreprises cherchent à optimiser leurs infrastructures de la même manière que ces géants de la technologie.

La NVMesh d’Excelero, une solution de stockage par blocs unifiée, évolutive et définie par un logiciel, qui fonctionne sur des serveurs standard de l’industrie, a été conçue pour répondre à ces besoins. NVMesh exploite le flash haute performance NVMe, une architecture hautement distribuée, des clients intelligents qui minimisent les communications de cluster et un protocole d’accès au stockage propriétaire qui contourne le processeur sur les cibles de stockage.

Le résultat est un système de stockage de blocs hautes performances, avec un temps de latence extrêmement faible. En un mot, l’accès du serveur aux périphériques de stockage à distance est de 5 microsecondes (μs) plus lent que l’accès aux périphériques locaux et cette surcharge est principalement dans le réseau. En outre, NVMesh peut être déployé de manière flexible en tant qu’infrastructure convergente (combinant calcul et stockage) ou « désagrégée » (serveur de stockage ou JBOD), et évolue simplement et de manière granulaire en ajoutant des lecteurs ou des nœuds au cluster.

Alors que le stockage est passé du monde mécanique des disques durs au monde des disques SSD, son utilisateur va connaître des améliorations rapides en termes de performances, de capacités et de fiabilité. Aujourd’hui, NVMe est la référence absolue dans le domaine des interfaces de stockage flash, grâce à un protocole beaucoup plus rapide qui élimine le goulot d’étranglement de l’ATA et de l’interface SCSI.

NVMe vous donne essentiellement un meilleur moyen d’accéder aux performances du flash – les SSD actuels et les innovations futures. Étant placé sur le bus PCIe, NVMe ouvre une toute nouvelle gamme d’opportunité. Il peut fournir les performances, la latence et l’efficacité énergétique requises par les applications Web et le calcul intensif d’aujourd’hui, ainsi que les puissants environnements d’analyse de données tels que l’IoT industriel.

Dans cet article, nous allons approfondir la technologie développée par les ingénieurs d’Excelero pour tirer parti de NVMe et du changement de paradigme vers un stockage basé sur un serveur et défini par le logiciel.

louer synology
Synology Haute Disponibilité

Infomaniak offre tous les types de serveur de stockage Synology en location pour stocker toutes vos données

Installez les applications de votre choix, gérez vos utilisateurs et fixez vos propres règles de sécurité. Infomaniak s’occupe uniquement de la mise en place et de l’infrastructure de votre NAS.

Présentation de NVMesh

Présentation de NVMesh

Excelero a conçu NVMesh pour répondre aux besoins de stockage en mode bloc des applications évolutives modernes, en tirant parti de l’état de l’art sur les serveurs standard. Les exigences clés pour de tels environnements sont :

  • Une performance qui s’apparente au flash haute performance attaché localement
  • Rapport coût / performance optimal
  • Prise en charge des charges d’application très variables et de l’accès omniprésent
  • Prise en charge des environnements convergents tout en évitant les problèmes de voisinage bruyants
  • Gestion de tous les scénarios de défaillance au niveau du logiciel, y compris le basculement de baies et les mises à niveau en ligne
  • Prise en charge des environnements hébergeant plusieurs applications avec des performances, une cohérence et des exigences de disponibilité disparates

NVMesh permet aux clients de concevoir des infrastructures SAN basées sur un serveur pour les applications les plus exigeantes des entreprises et du cloud, en exploitant les serveurs standard et les multiples niveaux de mémoire Flash. Le principal avantage de NVMesh est qu’il permet une infrastructure convergente en désagrégeant logiquement le stockage du calcul.

NVMesh dispose d’une couche de blocs distribués qui permet aux applications non modifiées d’utiliser des périphériques de stockage NVMe groupés sur un réseau à des vitesses et des latences locales. Les ressources de stockage NVMe distribuées sont regroupées avec la possibilité de créer dynamiquement des volumes virtuels arbitraires pouvant être répartis en bandes, en miroir ou les deux.

Les volumes peuvent être répartis sur plusieurs hôtes et utilisés par n’importe quel hôte exécutant le client de bloc NVMesh. En bref, les applications peuvent profiter de la latence, du débit et des IOP d’un périphérique NVMe local tout en bénéficiant des avantages d’un stockage centralisé, redondant et géré de manière centralisée.

Un composant clé de NVMesh d’Excelero est la fonctionnalité RDDA (Remote Direct Drive Access) brevetée, qui contourne le processeur et, par conséquent, évite l’effet de voisinage bruyant sur les performances de l’application. Le passage des services de données du CPU centralisé vers la distribution côté client permet une évolutivité linéaire, fournit des performances déterministes pour les applications et permet aux clients de maximiser l’utilisation de leurs clés USB.

NVMesh est déployé en tant que matrice virtuelle, distribuée et non volatile. Il prend en charge à la fois les architectures convergées et désagrégées, donnant aux clients la liberté dans leur conception architecturale.

Les composants de NVMesh

Les composants de NVMesh

NVMesh se compose de quatre composants logiciels principaux : le module cible NVMesh, le gestionnaire de topologie (TOMA), le pilote de bloc client intelligent et le système de gestion centralisée.

Le module cible NVMesh identifie le matériel de stockage, tel que les lecteurs NVMe et les cartes réseau compatibles, et configure les chemins RDDA dans les lecteurs NVMe pour le compte des clients de stockage. Le module s’exécute sur des nœuds cibles, qui sont des nœuds physiques contenant des éléments de stockage non volatils à partager. Une fois que le module cible a configuré les connexions des clients aux lecteurs NVMe, il “recule” et ne se trouve donc pas dans le chemin de données. Le module cible est également impliqué dans la détection et la gestion des erreurs.

Structure de NVMesh

Le gestionnaire de topologies, fourni avec le module cible et exécuté sur les mêmes éléments matériels, s’exécute dans l’espace utilisateur et fournit des fonctionnalités de plan de contrôle du volume. TOMA suit l’activité des disques et des modules cibles de stockage pour maintenir une activité de volume transparente lors de la défaillance d’un élément. Lors de la reconnaissance d’un échec, le gestionnaire de topologie effectue les actions requises pour assurer la cohérence des données. Il gère également et effectue des opérations de récupération lors de la reprise ou du remplacement des éléments.

Le pilote de bloc client intelligent implémente la fonctionnalité de périphérique de bloc pour les consommateurs de stockage. Ce logiciel s’exécute sur les postes clients. Un hôte ou un nœud qui a un ou plusieurs périphériques NVMe à partager et qui participe également en tant que client s’appelle un nœud convergé. Les nœuds convergents exécutent à la fois le client de stockage de blocs et le module cible de stockage. Si vous le souhaitez, le module de gestion du stockage peut également s’exécuter sur un client, une cible ou un nœud convergé.

Le système de gestion centralisée fournit, oui, des fonctionnalités de configuration et de surveillance. En plus d’une interface graphique Web, il fournit une interface de gestion d’API RESTful pour l’intégration avec les systèmes de gestion de centre de données et les mécanismes d’orchestration.

Séparer les chemins de contrôle et de données

Séparer les chemins de contrôle et de données

En tant que véritable solution de stockage définie par logiciel, NVMesh sépare le chemin de contrôle et le chemin de données. La plupart des fonctionnalités du chemin de contrôle de NVMesh sont exécutées par les modules de gestion du stockage, ce qui évite les communications de gestion de diffusion pour assurer l’évolutivité. La fonctionnalité de chemin de contrôle inclut :

  • Maintenir l’inventaire des périphériques de stockage non volatiles
  • Définition de volumes, via une interface graphique ou par programmation (API RESTful)
  • Attachement et détachement de volumes pour bloquer les clients de stockage, en les présentant comme des périphériques de bloc locaux
  • Reporting et statistiques

Le chemin de données sert aux opérations d’E/S de stockage réelles, qui sont envoyées du client de stockage de blocs aux périphériques de stockage en utilisant plusieurs mécanismes. Les périphériques NVMe sont accessibles à des vitesses locales à l’aide du protocole RDDA breveté d’Excelero.

D’autres périphériques de blocs cibles, tels que les disques SSD SATA, sont accédés en utilisant des paires de files d’attente RDMA standard pour interagir avec le module cible de stockage qui effectuera ensuite l’opération d’E/S. Les périphériques NVMf sont directement accessibles à l’aide du protocole NVMf.

RDDA vs. NVMf

RDDA vs. NVMf

Outre le protocole RDDA d’Excelero, NVMesh prend en charge le protocole ouvert NVMf en tant que transport filaire. NVMf peut être préférable du point de vue des normes, mais est moins souhaitable en termes de performances, car son utilisation nécessitera l’invocation du logiciel côté cible (et CPU). RDDA fournit généralement une meilleure latence d’accès sans besoin d’utiliser le CPU côté cible.

L’utilisation de RDDA fournit un avantage de latence immédiate de 10 microsecondes (ou plus) par rapport aux NVMe-over-Fabrics à base de noyau (plus de détails sur les performances ci-dessous). RDDA réduit considérablement la charge sur le côté cible en évitant d’exécuter la pile logicielle du noyau, y compris la gestion des interruptions potentiellement coûteuse en calcul.

Enfin, NVMf est un protocole à faible latence pour NVMe sur un réseau – ce n’est pas une solution de stockage. Le client et la cible NVMf vous permettent d’accéder à distance aux lecteurs, mais ne font rien pour ajouter de la redondance, des volumes logiques, un basculement ou une surveillance et une gestion centralisées.

Un avantage clé de RDDA est qu’il contourne le processeur sur les cibles. Par conséquent, la planification de l’allocation des ressources pour les applications est plus simple et plus cohérente. Un deuxième avantage est la possibilité de répartir les données entre les zones de défaillance pour une haute disponibilité, ce qui nécessite une mise en page distribuée des données. L’implémentation du service de stockage côté client permet l’accès aux données à un seul saut également lorsque les données sont réparties sur des entités physiques disparates.

Architecture scale-out

Architecture scale-out

Excelero NVMesh a été conçu pour évoluer naturellement. NVMesh a été conçu pour éviter toute capacité centralisée dans le chemin de données qui pourrait devenir un goulot d’étranglement. Cela signifie qu’il n’y a pas de gestion centralisée des métadonnées ou des verrous. Les fonctionnalités client, cible et de gestion sont également développées en tant que technologies d’extension.

Parce qu’il est essentiel de s’assurer que le modèle de réseau prend en charge les déploiements à l’échelle du Web, les clients sont complètement indépendants. Le partage des connaissances entre les clients est rare et s’effectue de manière indirecte et anonyme via des cibles. L’indépendance du client garantit sa mise à l’échelle facile.

Les cibles de stockage communiquent uniquement avec d’autres cibles qui protègent les mêmes données. Les volumes sont répartis de manière à minimiser la quantité de communication. En revanche, d’autres produits répartissent les volumes de sorte que chaque nœud reflète quelque chose de tous les autres nœuds. Généralement, une cible devra communiquer avec seulement une poignée d’autres nœuds, même dans un environnement à grande échelle, en raison de cette stratégie d’allocation de volume.

En outre, la communication entre les cibles est limitée aux échanges, à la communication de quorum et aux reconstructions. La protection des données est assurée par les clients eux-mêmes, le nombre d’éléments participant à la protection des données de tout élément de données stocké spécifique étant limité pour réduire les bavardages du système et permettre une mise à l’échelle étendue.

La gestion centralisée est composée d’un framework de service Web sans état (Node.js) et d’un magasin de données scaling-out transactionnel (MongoDB) sur le back-end. Cela garantit que le cadre de gestion dispose des caractéristiques de mise à l’échelle et de basculement requises pour prendre en charge les plus grands centres de données.

Le modèle de communication client-cible repose sur l’intelligence du pilote du bloc client intelligent. Les clients savent approcher le bon groupe de cibles, ce qui réduit à la fois le nombre de sauts de réseau et le nombre de lignes de communication. Le résultat est que le nombre de connexions est un petit multiple de taille de domaine.

Preuve dans la performance

Preuve dans la performance

Les performances des systèmes de stockage sont influencées par de nombreux éléments, notamment les composants matériels de stockage, les serveurs, le réseau et l’efficacité du logiciel. NVMesh a été conçu pour permettre aux applications de profiter pleinement des performances, de la capacité et de la puissance de traitement des serveurs et du stockage sous-jacents.

Le logiciel a été conçu pour ajouter pratiquement aucune latence et n’a pas d’impact sur le processeur cible. Comme NVMesh est une solution de stockage purement définie par logiciel, les performances varient en fonction des choix effectués par le client. Pour donner une idée de ce que NVMesh est capable de faire, voici un bref résumé des tests effectués lors d’une démonstration en direct pour un public d’analystes techniques :

Les tests ont été effectués sur environ 13 000 $ de matériel, comprenant :

  • Un serveur double socket Supermicro 2028U-TN24RT + 2U avec jusqu’à 24 emplacements de lecteur NVMe 2,5 pouces
  • Deux cartes réseau Mellanox ConnectX-5 de 2x100Gb ethernet / RDMA
  • 24 SSD NVMe de 2,5 pouces Intel de 400 Go
  • Un commutateur Dell Z9100-ON prenant en charge les ports QSFP28 32x100Gb

Le système a généré des IOps de 2,5 Mo pour des écritures aléatoires de 4 Ko et des IOps de 4,5 Mo pour des lectures aléatoires de 4 Ko. Le temps de réponse moyen en écriture aléatoire était inférieur à 350 microsecondes et le temps de réponse moyen en lecture aléatoire était de 227 microsecondes. Lors du test de lecture aléatoire de 4,5 Mo d’IOps, l’unité centrale cible de stockage affichait une utilisation de 0,3% (la plupart du temps, les services Linux exécutaient l’état du processus d’affichage).

Une nouvelle génération de stockage

Une nouvelle génération de stockage

Excelero NVMesh est une solution de stockage définie par logiciel conçue pour répondre aux exigences des applications Web. Il tire parti des serveurs NVMe Flash et des standards de l’industrie pour fournir un stockage en bloc cohérent, à faible latence et hautes performances qui répond également aux exigences de coût, d’évolutivité, de flexibilité et de fiabilité du data center moderne.

NVMesh facilite les déploiements convergents performants et rentables en évitant les perturbations bruyantes des voisins et en désagrégeant logiquement le calcul et le stockage sans avoir à le faire physiquement. La clé est une nouvelle architecture qui combine l’accès direct aux périphériques de stockage à distance par les clients, une implémentation de service de stockage côté client et un modèle de communication évolutif.

L’évolutivité est obtenue par des choix de conception soignés pour les modèles de communication et les composants de mise à l’échelle pour les plans de gestion, de contrôle et de données. En fournissant une API de stockage en bloc et une flexibilité de définition de volume, NVMesh permet aux administrateurs de décider comment équilibrer les performances, la disposition des données et la disponibilité de manière à répondre à leurs besoins.

Aina Strauss

À lire aussi

52pi min tour nas raspberry kit

Raspberry Pi 4 NAS 52Pi Mini tour pour moins de 60 Euros

Table de matièrePrésentation de NVMeshLes composants de NVMeshSéparer les chemins de contrôle et de donnéesRDDA …