PowerEdge : Fonctionnalités de Dell Ready Solutions for HPC BeeGFS Storage
Summary: Fonctionnalités de Dell Ready Solutions for HPC BeeGFS Storage
Instructions
Sommaire
- Introduction
- StorageBench : pour comparer les performances de différentes configurations RAID
- StorageBench : pour identifier les cibles de stockage défectueuses ou mal configurées
- Conclusion et travaux futurs
Introduction
Ce blog présente les principales fonctionnalités de l’offre Dell Ready Solutions pour stockage HPC BeeGFS, annoncée récemment. Cet article est le troisième de la série consacré à la solution de stockage hautes performances BeeGFS. Le premier blog annonçait la sortie de la solution. Le deuxième blog traite de l’évolutivité des solutions Dell Ready pour le stockage HPC BeeGFS. Il fournit des détails sur les configurations de base, les configurations évolutives flexibles et les performances de lecture/écriture séquentielles mesurées des différentes configurations, démontrant que l’évolutivité est linéaire en fonction du nombre de serveurs dans la solution. Ce blog met en évidence l’utilisation de « StorageBench », le point de référence des cibles de stockage intégré de BeeGFS.
BeeGFS est un système de fichiers Open Source qui peut être téléchargé à partir de www.beegfs.io. Il s’agit d’un système de fichiers parallèle qui distribue les données sur plusieurs cibles de stockage. Il s’agit d’un stockage software-defined qui dissocie le système de fichiers logique du matériel de stockage sous-jacent, ce qui permet à l’utilisateur de définir comment et où les données sont stockées. Le logiciel de système de fichiers inclut des fonctionnalités d’entreprise telles que la haute disponibilité, l’application de quotas et les listes de contrôle d’accès. BeeGFS offre une facilité d’utilisation, une évolutivité et une flexibilité optimales. Sa facilité d’utilisation provient du fait que tous les composants côté serveur sont des processus de l’espace utilisateur, tandis que le client est un module de noyau qui ne nécessite aucun correctif sur le noyau lui-même. Tous les composants BeeGFS peuvent être installés et mis à jour sans redémarrer le serveur. Nous pouvons ainsi ajouter des clients et des serveurs au système existant sans aucune interruption de service. En ajoutant des serveurs et des disques, les performances et la capacité du système de fichiers peuvent être augmentées dans le blog dont le lien est ici. BeeGFS prend en charge plusieurs distributions Linux et est conçu pour fonctionner avec n’importe quel système de fichiers local compatible POSIX. BeeGFS prend également en charge l’exécution de plusieurs instances d’un service donné sur le même serveur.
Les solutions Dell Ready Solutions for HPC BeeGFS Storage tirent parti de toutes les fonctionnalités clés du système de fichiers BeeGFS et sont conçues pour offrir de hautes performances. La solution utilise des serveurs PowerEdge R740xd pour le stockage, la diffusion et le traitement des métadonnées et des données. Chaque serveur PowerEdge R740xd dispose de 24 disques SSD Intel P4600 NVMe de 1,6 To, considérés comme le deuxième bond en avant majeur en matière de technologie de disque, les disques SSD étant les premiers. Dans les environnements HPC, l’espace de travail peut souvent être un facteur limitant. Il est peut-être trop petit ou trop lent. La solution Dell EMC Ready Solutions for HPC BeeGFS Storage est conçue pour être utilisée en tant que solution temporaire et sert le stockage temporaire à l’aide du système de fichiers BeeGFS.
BeeGFS inclut deux outils d’analyse comparative intégrés qui peuvent vous aider à caractériser ou évaluer le réseau ou le stockage : NetBench et StorageBench , respectivement. Lorsque le mode NetBench est activé, les serveurs ignorent les demandes d’écriture reçues au lieu d’écrire les données. De même, en cas de demandes de lecture, au lieu de lire à partir du système de fichiers sous-jacent, seules les mémoires tampons sont envoyées aux clients. Le mode NetBench est conçu pour tester le débit de streaming réseau indépendamment des disques sous-jacents. D’autre part, StorageBench est conçu pour mesurer le débit de streaming du système de fichiers sous-jacent indépendamment des performances réseau. StorageBench est un point de référence pour les cibles de stockage qui n’utilise pas le réseau. La commande storage-bench envoie simplement la demande aux cibles de stockage pour commencer à écrire/lire les données. Ce faisant, nous éliminons l’impact du réseau. Le résultat obtenu à partir du banc de stockage correspond aux meilleures performances que le système peut atteindre si les performances réseau sont idéales. Ce blog illustre comment StorageBench peut être utilisé pour comparer les performances de différentes cibles de stockage et ainsi identifier les cibles défectueuses ou mal configurées.
StorageBench : pour comparer les performances de différentes configurations RAID
StorageBench n’utilise pas le système de fichiers monté. Lorsque vous exécutez StorageBench, il n’y a qu’une seule cible par fichier. Storagebench crée un répertoire sur chaque cible de stockage du système dans lequel les fichiers de test sont créés, égal au nombre de threads de test. Les données y sont directement diffusées pour afficher le débit de bas niveau disponible pour chaque cible de stockage. Sans communication réseau, l’agrégation par bandes des fichiers ne peut pas être simulée. Les résultats de l’analyse comparative du stockage sont plutôt comparables à ceux des E/S clientes, sans l’agrégation par bandes. Lorsque les points de référence sont exécutés, le fichier est agrégé par bandes sur quatre cibles de stockage si le modèle de répartition par défaut est adopté.
Dans le but de tester différentes cibles de stockage, les configurations petites et moyennes décrites dans le blog sur l’évolutivité de la solution de stockage Dell BeeGFS ont été utilisées. Les deux configurations ont le même nombre de cibles de métadonnées configurées dans RAID 1. Elles diffèrent par la configuration RAID des cibles de stockage. Alors que la configuration petite comprend le stockage, les cibles configurées dans le RAID 0 de 6 disques, la configuration moyenne a les cibles de stockage configurées dans le RAID 10 de six disques. Les cibles de stockage configurées sur les configurations de petite et moyenne taille sont présentées dans le tableau ci-dessous :
| Tableau 1 Configuration du banc d’essai | ||
|---|---|---|
| Configuration | Moyen : RAID 10 pour les cibles de stockage | Petit - RAID 0 pour les cibles de stockage |
| Nombre de cibles de métadonnées | 6 | 6 |
| Nombre d’instances du service de métadonnées | 6 | 6 |
| Nombre de serveurs de stockage | 5 | 2 |
| Nombre de cibles de stockage | 22 | 10 |
| Nombre de services de stockage par serveur | 4 | 4 |
| Nombre de services de stockage par zone NUMA | 2 | 2 |
| Nombre de cibles par instance du service de stockage | 2 | 2 |
Remarque : La configuration de support ci-dessus sert uniquement à tester le débit des cibles de stockage configurées dans différentes configurations RAID à l’aide de l’outil StorageBench.
StorageBench Write Benchmark : sur la petite configuration avec des cibles de stockage configurées en RAID 0
L’analyse comparative du stockage est démarrée et surveillée à l’aide de l’outil beegfs-ctl. Le package beegfs-utils fournit l’outil de ligne de commande beegfs-ctl qui peut être utilisé pour exécuter l’analyse comparative des cibles de stockage. L’exemple suivant démarre un point de référence d’écriture sur toutes les cibles de tous les serveurs de stockage BeeGFS avec une taille de bloc d’E/S de 512 Ko, en utilisant 16 threads par cible, chacune écrivant 200 Go de données dans son propre fichier.
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16 Write storage benchmark was started. You can query the status with the --status argument of beegfs-ctl. Server benchmark status: Running: 10
L’option « En cours d’exécution : La sortie de 10 pouces indique qu’il existe au total 10 cibles de stockage configurées dans le système.
Pour interroger l’état/les résultats des analyses comparatives de toutes les cibles, vous pouvez exécuter la commande suivante :
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --status Server benchmark status: Finished: 10 Write benchmark results: Min throughput: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], targetID: 50 Max throughput: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], targetID: 48 Avg throughput: 4907091 KiB/s Aggregate throughput: 49070915 KiB/s
L’ajout de verbose à la commande ci-dessus affiche la liste de toutes les cibles et leur débit respectif.
[root@meta-stor ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 10 Write benchmark results: Min throughput: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], targetID: 6 Max throughput: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], targetID: 2 Avg throughput: 4907091 KiB/s Aggregate throughput: 49070915 KiB/s List of all targets: 1 5368477 KiB/s nodeID: meta-stor-numa1-1 [ID: 1] 2 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2] 3 4706368 KiB/s nodeID: stor1-numa0-1 [ID: 3] 4 4896077 KiB/s nodeID: stor1-numa1-1 [ID: 4] 5 4872876 KiB/s nodeID: stor1-numa1-2 [ID: 5] 6 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6] 7 4879054 KiB/s nodeID: stor2-numa1-2 [ID: 7] 8 4864737 KiB/s nodeID: stor2-numa1-1 [ID: 8] 9 4696152 KiB/s nodeID: stor2-numa0-1 [ID: 9] 10 4726202 KiB/s nodeID: stor2-numa0-2 [ID: 10]
Inférence à partir de la sortie :
Le débit moyen par cible de stockage configuré dans RAID 0 est de 5,02 Go/s.
StorageBench Write Benchmark : configuration moyenne avec des cibles de stockage configurées dans RAID 10
L’exemple suivant démarre un point de référence d’écriture sur toutes les cibles de tous les serveurs de stockage BeeGFS avec une taille de bloc d’E/S de 512 Ko, en utilisant 16 threads par cible, chacune écrivant 200 Go de données dans son propre fichier.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16 Write storage benchmark was started. You can query the status with the --status argument of beegfs-ctl. Server benchmark status: Running: 22
L’ajout de verbose à la commande ci-dessus affiche la liste de toutes les cibles et leur débit respectif.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 22 Write benchmark results: Min throughput: 2705987 KiB/s nodeID: node006-numa0-1 [ID: 19], targetID: 1 Max throughput: 3364311 KiB/s nodeID: node001-numa1-1 [ID: 1], targetID: 1 Avg throughput: 3212845 KiB/s Aggregate throughput: 70682603 KiB/s List of all targets: 1 3364311 KiB/s nodeID: node001-numa1-1 [ID: 1] 2 3361591 KiB/s nodeID: node001-numa1-2 [ID: 2] 3 3309530 KiB/s nodeID: node002-numa0-1 [ID: 3] 4 3312840 KiB/s nodeID: node002-numa0-2 [ID: 4] 5 3332095 KiB/s nodeID: node002-numa1-1 [ID: 5] 6 3323319 KiB/s nodeID: node002-numa1-2 [ID: 6] 7 3313000 KiB/s nodeID: node003-numa0-1 [ID: 7] 8 3321214 KiB/s nodeID: node003-numa0-2 [ID: 8] 9 3335072 KiB/s nodeID: node003-numa1-1 [ID: 9] 10 3339743 KiB/s nodeID: node003-numa1-2 [ID: 10] 11 3302175 KiB/s nodeID: node004-numa0-1 [ID: 11] 12 3309474 KiB/s nodeID: node004-numa0-2 [ID: 12] 13 3329879 KiB/s nodeID: node004-numa1-1 [ID: 13] 14 3328291 KiB/s nodeID: node004-numa1-2 [ID: 14] 15 3306132 KiB/s nodeID: node005-numa0-1 [ID: 15] 16 3307096 KiB/s nodeID: node005-numa0-2 [ID: 16] 17 3318436 KiB/s nodeID: node005-numa1-1 [ID: 17] 18 3329684 KiB/s nodeID: node005-numa1-2 [ID: 18] 19 2705987 KiB/s nodeID: node006-numa0-1 [ID: 19] 20 2716438 KiB/s nodeID: node006-numa0-2 [ID: 20] 21 2707970 KiB/s nodeID: node006-numa1-1 [ID: 21] 22 2708326 KiB/s nodeID: node006-numa1-2 [ID: 22]
Inférence à partir de la sortie :
Le débit moyen par cible de stockage est de 3,29 Go/s.
D’après les résultats des tests de point de référence StorageBench effectués sur deux configurations BeeGFS différentes, l’une avec des cibles de stockage configurées en RAID 0 et l’autre avec des cibles de stockage configurées en RAID 10, il est évident que les performances d’écriture sont meilleures avec les cibles de stockage configurées en RAID 0 plutôt qu’en RAID 10. Lorsque la commande dd a été utilisée pour écrire un fichier 10G avec une taille de bloc de 1M et « oflag=direct », la moyenne était d’environ 5,1 Go/s pour le petit système configuré en RAID 0, tandis que le débit moyen était d’environ 3,4 Go/s pour le système moyen configuré en RAID 10, ce qui est comparable aux résultats obtenus à l’aide de l’outil storagebench.
StorageBench : pour identifier les cibles de stockage défectueuses ou mal configurées
StorageBench a été exécuté sur la configuration de support décrite dans le blog d’annonce afin de déterminer s’il existe des cibles de stockage mal configurées ou défectueuses dans le système.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose Server benchmark status: Finished: 33 Read benchmark results: Min throughput: 2830479 KiB/s nodeID: node003-numa1-2 [ID: 14], targetID: 14 Max throughput: 3025500 KiB/s nodeID: node005-numa0-1 [ID: 22], targetID: 22 Avg throughput: 2917836 KiB/s Aggregate throughput: 96288596 KiB/s List of all targets: 1 2950039 KiB/s nodeID: node001-numa1-1 [ID: 1] 2 2956121 KiB/s nodeID: node001-numa1-2 [ID: 2] 3 2954473 KiB/s nodeID: node001-numa1-3 [ID: 3] 4 2957658 KiB/s nodeID: node002-numa0-1 [ID: 4] 5 2947109 KiB/s nodeID: node002-numa0-2 [ID: 5] 6 2969886 KiB/s nodeID: node002-numa0-3 [ID: 6] 7 2892578 KiB/s nodeID: node002-numa1-1 [ID: 7] 8 2886899 KiB/s nodeID: node002-numa1-2 [ID: 8] 9 2888972 KiB/s nodeID: node002-numa1-3 [ID: 9] 10 2861995 KiB/s nodeID: node003-numa0-1 [ID: 10] 11 2874314 KiB/s nodeID: node003-numa0-2 [ID: 11] 12 2879096 KiB/s nodeID: node003-numa0-3 [ID: 12] 13 2832635 KiB/s nodeID: node003-numa1-1 [ID: 13] 14 2830479 KiB/s nodeID: node003-numa1-2 [ID: 14] 15 2830971 KiB/s nodeID: node003-numa1-3 [ID: 15] 16 2986890 KiB/s nodeID: node004-numa0-1 [ID: 16] 17 2979197 KiB/s nodeID: node004-numa0-2 [ID: 17] 18 2983958 KiB/s nodeID: node004-numa0-3 [ID: 18] 19 2897974 KiB/s nodeID: node004-numa1-1 [ID: 19] 20 2900880 KiB/s nodeID: node004-numa1-2 [ID: 20] 21 2904036 KiB/s nodeID: node004-numa1-3 [ID: 21] 22 3025500 KiB/s nodeID: node005-numa0-1 [ID: 22] 23 3021558 KiB/s nodeID: node005-numa0-2 [ID: 23] 24 3017387 KiB/s nodeID: node005-numa0-3 [ID: 24] 25 2921480 KiB/s nodeID: node005-numa1-1 [ID: 25] 26 2930226 KiB/s nodeID: node005-numa1-2 [ID: 26] 27 2930548 KiB/s nodeID: node005-numa1-3 [ID: 27] 28 2900018 KiB/s nodeID: node006-numa0-1 [ID: 28] 29 2898520 KiB/s nodeID: node006-numa0-2 [ID: 29] 30 2907113 KiB/s nodeID: node006-numa0-3 [ID: 30] 31 2855079 KiB/s nodeID: node006-numa1-1 [ID: 31] 32 2853527 KiB/s nodeID: node006-numa1-2 [ID: 32] 33 2861480 KiB/s nodeID: node006-numa1-3 [ID: 33]
La sortie ci-dessus montre clairement que toutes les cibles de stockage fonctionnent uniformément et qu’il n’y a aucune cible défectueuse dans le système.
Conclusion et travaux futurs
Ce blog aborde les principales fonctionnalités de BeeGFS et explique l’utilité du point de référence de banc de stockage pour évaluer ou comparer les performances des différentes configurations RAID, mais également pour déterminer si l’une des cibles de stockage est défectueuse ou mal configurée. Dans le cadre des étapes suivantes, nous publierons ultérieurement un livre blanc présentant les performances des métadonnées et les performances IOR, ainsi que des détails supplémentaires sur les considérations relatives à la conception, au réglage et à la configuration.
Références
1) Dell EMC Ready Solutions for HPC BeeGFS Storage PowerEdge : Dell Ready Solutions for HPC BeeGFS High-Performance
Storage2) Évolutivité des Dell Ready Solutions pour le stockage HPC BeeGFS PowerEdge : Évolutivité des Dell Ready Solutions pour le stockage
HPC BeeGFS3) Documentation BeeGFS :
https://www.beegfs.io/wiki/4) Comment connecter deux interfaces sur le même sous-réseau :
https://access.redhat.com/solutions/305645) Conception de référence de l’accès direct à la mémoire PCI Express à l’aide de la mémoire externe : https://www.intel.com/content/www/us/en/programmable/documentation/nik1412547570040.html#nik1412547565760