Deze blog bespreekt de belangrijkste functies van Dell EMC Ready Solutions voor HPC BeeGFS Storage die onlangs zijn aangekondigd. Dit is de derde blog in de serie over de BeeGFS High Performance Storage Solution. De eerste blog heeft de release van de oplossing aangekondigd. In de tweede blog werd de schaalbaarheid van Dell EMC Ready oplossingen voor HPC BeeGFS Storage besproken. Het heeft informatie verstrekt over de basisconfiguraties, de flexibele schaalbare configuraties en de werkelijke gemeten sequentiële lees-/schrijfprestaties van de verschillende configuraties waaruit blijkt dat schaalbaarheid lineair is met betrekking tot het aantal servers in de oplossing. De huidige blog belicht het gebruik van 'StorageBench', de ingebouwde storagedoelenbenchmark van BeeGFS.
BeeGFS is een open-source bestandssysteem dat kan worden gedownload van www.beegfs.io. Het is een parallel bestandssysteem dat data distribueert over meerdere storagedoelen. Het is een softwaregedefinieerde storage die het logische bestandssysteem ontkoppelt van de onderliggende storagehardware, zodat de gebruiker kan bepalen hoe en waar de data worden opgeslagen. De bestandssysteemsoftware bevat enterprise-functies zoals High Availability, Quota Enforcement en Access Control Lists. De belangrijkste kenmerken van BeeGFS zijn het gebruiksgemak, de schaalbaarheid en de flexibiliteit. Het gebruiksgemak is het gevolg van het feit dat alle onderdelen aan de serverzijde daemons zijn van de gebruikersruimte, terwijl de client een kernelmodule is die geen patches voor de kernel zelf vereist. Alle BeeGFS-componenten kunnen worden geïnstalleerd en bijgewerkt zonder de server opnieuw op te starten. Zo kunnen we zonder downtime clients en servers aan het bestaande systeem toevoegen. Door servers toe te voegen en de prestaties en capaciteit van het bestandssysteem te verhogen, kunnen de prestaties en capaciteit van het bestandssysteem meer worden opgeschaald in de blog die hier wordt gekoppeld. BeeGFS ondersteunt meerdere Linux-distributies en is ontworpen om te werken met elk POSIX-compatibel lokaal bestandssysteem. BeeGFS ondersteunt ook het uitvoeren van meerdere instanties van een bepaalde service op dezelfde server.
De Dell EMC Ready oplossingen voor HPC BeeGFS Storage maken gebruik van alle belangrijke functies van het BeeGFS bestandssysteem en zijn ontworpen voor hoge prestaties. De oplossing maakt gebruik van PowerEdge R740xd servers voor het opslaan en bedienen/verwerken van metadata en data. Elke PowerEdge R740xd server heeft 24 x 1,6 TB Intel P4600 NVMe SSD's die worden beschouwd als de tweede grote stap in de schijftechnologie. De SSD's zijn de eerste. In HPC-omgevingen kan de scratchruimte vaak een beperkende factor zijn. Het kan te klein of te langzaam zijn. De Dell EMC Ready oplossingen voor HPC BeeGFS Storage zijn ontworpen om te worden gebruikt als een scratchoplossing en dienen de scratch-storage met behulp van het BeeGFS bestandssysteem.
BeeGFS bevat twee ingebouwde benchmarktools die kunnen helpen bij het kenmerken of evalueren van netwerk- of storage-NetBench en StorageBench respectievelijk. Wanneer de NetBench-modus is ingeschakeld, zullen de servers ontvangen schrijfaanvragen negeren in plaats van de data te schrijven. Op dezelfde manier worden in het geval van leesaanvragen in plaats van lezen vanuit het onderliggende bestandssysteem alleen de geheugenbuffers naar de clients verzonden. De NetBench-modus is bedoeld voor het testen van de netwerkstreamingdoorvoer onafhankelijk van de onderliggende schijven. Aan de andere kant is de StorageBench bedoeld om de streamingdoorvoer van het onderliggende bestandssysteem te meten, onafhankelijk van de netwerkprestaties. StorageBench is een benchmark voor storagedoelen die het netwerk niet gebruikt. De storage-bench-opdracht stuurt de aanvraag eenvoudig naar de storagedoelen om te beginnen met het schrijven/lezen van data. Hierdoor nemen we de impact van het netwerk weg. De uitvoer die we krijgen uit de storagebank is de beste prestaties die het systeem kan bereiken als de netwerkprestaties ideaal zijn. In deze blog wordt uitgelegd hoe StorageBench kan worden gebruikt om de prestaties van verschillende storagedoelen te vergelijken en zo defecte of verkeerd geconfigureerde doelen te identificeren.
StorageBench maakt geen gebruik van het gekoppelde bestandssysteem. Wanneer we StorageBench uitvoeren, is er slechts één doel per bestand. Storagebench maakt een map op elk storagedoel op het systeem waar testbestanden worden gemaakt die gelijk zijn aan het aantal testthreads. Data worden hier rechtstreeks naar gestreamd om een lage doorvoersnelheid weer te geven die beschikbaar is voor elk storagedoel. Zonder netwerkcommunicatie kan bestandsstriping niet worden gesimuleerd. De resultaten van de storagebenchmark zijn dus eerder vergelijkbaar met client-IO met striping uitgeschakeld. Wanneer werkelijke benchmarks worden uitgevoerd, wordt het bestand verdeeld over 4 storagedoelen als het standaard stripingpatroon wordt toegepast.
Voor het testen van verschillende storagedoelen zijn de kleine en middelgrote configuraties gebruikt die worden beschreven in de blog over de schaalbaarheid van De Dell EMC BeeGFS Storage Solution. Beide configuraties hebben hetzelfde aantal metadatadoelen geconfigureerd in RAID 1. Ze verschillen in de RAID-configuratie van de storagedoelen. Hoewel de kleine installatie de storage heeft, doelen geconfigureerd in RAID 0 van 6 schijven, heeft de middelgrote configuratie de storagedoelen geconfigureerd in RAID 10 van 6 schijven. De storagedoelen die zijn geconfigureerd in de small and medium setup worden hieronder weergegeven:
Tabel 1 Testbedconfiguratie | ||
---|---|---|
Configuratie | Gemiddeld - RAID 10 voor storagedoelen | Klein - RAID 0 voor storagedoelen |
Aantal metadatadoelen | 6 | 6 |
Aantal instanties van metadataservice | 6 | 6 |
Aantal storageservers | 5 | 2 |
Aantal storagedoelen | 22 | 10 |
Aantal storageservice per server | 4 | 4 |
Aantal storageservice per NUMA-zone | 2 | 2 |
Aantal doelen per exemplaar storageservice | 2 | 2 |
Opmerking: De bovenstaande configuratie van de medium-installatie is alleen bedoeld om de doorvoer van storagedoelen te testen die zijn geconfigureerd in verschillende RAID-configuraties met behulp van de StorageBench-tool.
De storagebenchmark wordt gestart en bewaakt met de beegfs-ctl tool. Het beegfs-utils-pakket biedt de opdrachtregeltool beegfs-ctl die kan worden gebruikt om de benchmark voor storagedoelen uit te voeren. Het volgende voorbeeld start een schrijfbenchmark op alle doelen van alle BeeGFS storageservers met een IO-blokgrootte van 512 KB, met behulp van 16 threads per doel, die elk 200 Gb aan data naar het eigen bestand schrijven.
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16
Write storage benchmark is gestart.
U kunt de status opvragen met het argument --status van beegfs-ctl.
Serverbenchmarkstatus:
Actief: 10
"Actief: 10" uitvoer geeft aan dat er in totaal 10 storagedoelen zijn geconfigureerd in het systeem.
Om de benchmarkstatus/resultaten van alle doelen op te vragen, kan de volgende opdracht worden uitgevoerd:
[root@stor1 ~]# beegfs-ctl --storagebench --alltargets --status
Server benchmarkstatus:
Klaar: 10
Schrijfbenchmarkresultaten:
Min. doorvoer: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], doel-ID: 50
maximale doorvoersnelheid: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], doel-ID: 48
Gemiddelde doorvoersnelheid: 4907091 Totale doorvoersnelheid van KiB/s
: 49070915 KiB/s
Als u uitgebreide items toevoegt aan de bovenstaande opdracht, ziet u de lijst met alle doelen en hun respectievelijke doorvoer.
[root@meta-stor ~]# beegfs-ctl --storagebench --alltargets --status --verbose
serverbenchmarkstatus:
Gereed: 10
Schrijfbenchmarkresultaten:
Min. doorvoer: 4692435 KiB/s nodeID: stor1-numa0-2 [ID: 6], doel-ID: 6
Max. doorvoer: 5368537 KiB/s nodeID: meta-stor-numa1-2 [ID: 2], doel-ID: 2
Gemiddelde doorvoersnelheid: 4907091 Totale doorvoersnelheid van KiB/s
: 49070915 KiB/s
Lijst met alle doelen:
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]
De gemiddelde doorvoer per storagedoel dat is geconfigureerd in RAID 0 is 5,02 GB/s.
Het volgende voorbeeld start een schrijfbenchmark op alle doelen van alle BeeGFS storageservers met een IO-blokgrootte van 512 KB, met behulp van 16 threads per doel, die elk 200 Gb aan data naar het eigen bestand schrijven.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --write --blocksize=512K --size=200G --threads=16
Write Storage benchmark is gestart.
U kunt de status opvragen met het argument --status van beegfs-ctl.
Serverbenchmarkstatus:
Actief: 22
Als u uitgebreide items toevoegt aan de bovenstaande opdracht, ziet u de lijst met alle doelen en hun respectievelijke doorvoer.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose
serverbenchmarkstatus:
Klaar: 22
Schrijfbenchmarkresultaten:
Min. doorvoer: 2705987 KiB/s nodeID: node006-numa0-1 [ID: 19], doel-ID: 1
maximale doorvoersnelheid: 3364311 KiB/s nodeID: node001-numa1-1 [ID: 1], doel-ID: 1
Gemiddelde doorvoersnelheid: 3212845 Totale doorvoersnelheid van KiB/s
: 70682603 KiB/sLijst met alle doelen:
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 knooppuntID: 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]
De gemiddelde doorvoersnelheid per storagedoel is 3,29 GB/s.
Uit de uitvoer van de StorageBench-benchmarktests die zijn uitgevoerd op twee verschillende BeeGFS-instellingen, één met Storage Targets geconfigureerd in RAID 0 en een met Storage Targets geconfigureerd in RAID 10, is het duidelijk dat de schrijfprestaties beter zijn met de storagedoelen geconfigureerd in RAID 0 in plaats van in RAID 10. Toen de dd-opdracht werd gebruikt om een 10G-bestand te schrijven met een blokgrootte van 1 M en "oflag=direct" was het gemiddelde ongeveer 5,1 GB/s voor het kleine systeem dat in RAID 0 is geconfigureerd, terwijl de gemiddelde doorvoersnelheid ongeveer 3,4 GB/s was voor het middelgrote systeem dat in RAID 10 is geconfigureerd, wat vergelijkbaar is met de resultaten die werden verkregen met behulp van de storagebench-tool.
[root@node001 ~]# beegfs-ctl --storagebench --alltargets --status --verbose
serverbenchmarkstatus:
Klaar: 33
Lees benchmarkresultaten:
Min. doorvoer: 2830479 KiB/s nodeID: node003-numa1-2 [ID: 14], doel-ID: 14
max. doorvoer: 3025500 KiB/s nodeID: node005-numa0-1 [ID: 22], doel-ID: 22
Gemiddelde doorvoersnelheid: 2917836 totale doorvoersnelheid van KiB/s
: 96288596 KiB/s
Lijst met alle doelen:
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]
Uit de bovenstaande uitvoer blijkt dat alle storagedoelen uniform presteren en dat er geen defecte doelen in het systeem aanwezig zijn.