PowerEdge: Functies van Dell Ready Solutions voor HPC BeeGFS Storage
Summary: Functies van Dell Ready Solutions voor HPC BeeGFS Storage
Instructions
Inhoudsopgave
- Inleiding
- StorageBench - Om de prestaties van verschillende RAID-configuraties te vergelijken
- StorageBench: om defecte of verkeerd geconfigureerde storagedoelen te identificeren
- Conclusie en toekomstig werk
Inleiding
In deze blog bespreken we de belangrijkste kenmerken van Dell 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. In de eerste blog werd de release van de oplossing aangekondigd. In de tweede blog bespreken we de schaalbaarheid van Dell Ready Solutions voor HPC BeeGFS Storage. Het bevatte details over de basisconfiguraties, de flexibele schaalbare configuraties en de gemeten sequentiële lees-/schrijfprestaties van de verschillende configuraties, wat aantoont dat schaalbaarheid lineair is met betrekking tot het aantal servers in de oplossing. De huidige blog belicht het gebruik van 'StorageBench', de benchmark voor geïntegreerde storagedoelen 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 loskoppelt van de onderliggende storagehardware, zodat de gebruiker kan bepalen hoe en waar de data worden opgeslagen. De bestandssysteemsoftware bevat functies voor grote bedrijven, zoals hoge beschikbaarheid, het afdwingen van quota en toegangscontrolelijsten. De belangrijkste kenmerken van BeeGFS zijn het gebruiksgemak, de schaalbaarheid en de flexibiliteit. Het gebruiksgemak komt voort uit het feit dat alle server-side componenten user-space daemons zijn, terwijl de client een kernelmodule is die geen patches voor de kernel zelf nodig heeft. Alle BeeGFS-componenten kunnen worden geïnstalleerd en bijgewerkt zonder de server opnieuw op te starten. Zo kunnen we clients en servers toevoegen aan het bestaande systeem zonder downtime. Door servers en schijven toe te voegen, kunnen de prestaties en capaciteit van het bestandssysteem verder worden opgeschaald in de blog die hier is gelinkt. BeeGFS ondersteunt meerdere Linux-distributies en is ontworpen om te werken met elk POSIX-compatibel lokaal bestandssysteem. BeeGFS ondersteunt ook het uitvoeren van meerdere exemplaren van een bepaalde service op dezelfde server.
De Dell Ready Solutions voor HPC BeeGFS Storage maakt gebruik van alle belangrijke functies van het BeeGFS-bestandssysteem en is ontworpen voor hoge prestaties. De oplossing maakt gebruik van PowerEdge R740xd servers voor het opslaan en serveren en/of 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 sprong voorwaarts in schijftechnologie, waarbij de SSD's de eerste zijn. In HPC-omgevingen kan de krasruimte vaak een beperkende factor zijn. Het kan te klein of te traag zijn. De Dell EMC Ready oplossingen voor HPC BeeGFS Storage zijn ontworpen om te worden gebruikt als een krasoplossing en dienen voor de krasopslag met behulp van het BeeGFS-bestandssysteem.
BeeGFS bevat twee geïntegreerde benchmarkingtools die kunnen helpen bij het karakteriseren of evalueren van respectievelijk netwerk of storage : NetBench en StorageBench . Wanneer de NetBench-modus is ingeschakeld, negeren de servers ontvangen schrijfverzoeken in plaats van de gegevens te schrijven. Evenzo, in het geval van leesverzoeken, worden in plaats van te lezen van 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 streaming doorvoer van het onderliggende bestandssysteem te meten, onafhankelijk van de netwerkprestaties. StorageBench is een benchmark voor storagedoelen die geen gebruik maakt van het netwerk. De opdracht storage-bench stuurt het verzoek naar de storagedoelen om te beginnen met het schrijven/lezen van data. Zo elimineren we de impact van het netwerk. De output die we van de storagebank krijgen, is de beste prestatie die het systeem kan bereiken als de netwerkprestaties ideaal zijn. In deze blog wordt geïllustreerd hoe StorageBench kan worden gebruikt om de prestaties van verschillende storagedoelen te vergelijken en zo defecte of verkeerd geconfigureerde doelen te identificeren.
StorageBench - Om de prestaties van verschillende RAID-configuraties te vergelijken
StorageBench maakt geen gebruik van het gekoppelde bestandssysteem. Wanneer we StorageBench uitvoeren, is er slechts één doel per bestand. Storagebench maakt een directory op elk storagedoel op het systeem waar testbestanden worden gemaakt die gelijk is aan het aantal testthreads. Data worden hier rechtstreeks naartoe gestreamd om de doorvoer op laag niveau weer te geven die beschikbaar is voor elk storagedoel. Zonder netwerkcommunicatie kan bestandsstriping niet worden gesimuleerd. De resultaten van de storagebenchmark zijn dus vergelijkbaar met client-IO met striping uitgeschakeld. Wanneer benchmarks worden uitgevoerd, wordt het bestand gestript over vier storagedoelen als het standaard stripingpatroon wordt aangenomen.
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 BeeGFS-storageoplossing. Beide configuraties hebben hetzelfde aantal metadatadoelen dat is geconfigureerd in RAID 1. Ze verschillen in de RAID-configuratie van de storagedoelen. Terwijl de kleine configuratie de storagedoelen heeft geconfigureerd in RAID 0 van 6 schijven, heeft de gemiddelde configuratie de storagedoelen geconfigureerd in RAID 10 van zes schijven. De storagedoelen die zijn geconfigureerd voor de kleine en middelgrote installatie, worden hieronder weergegeven:
| Tabel 1 Testbedconfiguratie | ||
|---|---|---|
| Configuratie | Gemiddeld - RAID 10 voor storagedoelen | Klein - RAID 0 voor storagedoelen |
| Aantal metadatadoelen | 6 | 6 |
| Aantal instanties van de metadataservice | 6 | 6 |
| Aantal storageservers | 5 | 2 |
| Aantal storagedoelen | 22 | 10 |
| Aantal storageservices per server | 4 | 4 |
| Aantal storageservices per NUMA-zone | 2 | 2 |
| Aantal doelen per exemplaar van de storageservice | 2 | 2 |
Opmerking: De bovenstaande configuratie van de medium-installatie is alleen bedoeld voor het testen van de doorvoer van storagedoelen die zijn geconfigureerd in verschillende RAID-configuraties met behulp van de StorageBench-tool.
StorageBench Write Benchmark - op de kleine configuratie met storagedoelen geconfigureerd in RAID 0
De storagebenchmark wordt gestart en bewaakt met de beegfs-ctl-tool. Het pakket beegfs-utils bevat het opdrachtregelhulpprogramma beegfs-ctl dat kan worden gebruikt om de benchmark voor storagedoelen uit te voeren. In het volgende voorbeeld wordt een schrijfbenchmark gestart voor 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 hun eigen bestand schrijven.
[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
De "Running: De uitvoer van 10 inch geeft aan dat er in totaal 10 storagedoelen in het systeem zijn geconfigureerd.
Als u een query wilt uitvoeren op de benchmarkstatus/resultaten van alle doelen, kunt u de volgende opdracht uitvoeren:
[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
Door uitgebreide functionaliteit toe te voegen aan de bovenstaande opdracht, wordt de lijst met alle doelen en hun respectieve doorvoer weergegeven.
[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]
Gevolgtrekking uit de output:
De gemiddelde doorvoersnelheid per storagedoel geconfigureerd in RAID 0 is 5,02 GB/s.
StorageBench Write Benchmark - op een gemiddelde configuratie met storagedoelen geconfigureerd in RAID 10
In het volgende voorbeeld wordt een schrijfbenchmark gestart voor 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 hun eigen bestand schrijven.
[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
Door uitgebreide functionaliteit toe te voegen aan de bovenstaande opdracht, wordt de lijst met alle doelen en hun respectieve doorvoer weergegeven.
[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]
Gevolgtrekking uit de output:
De gemiddelde doorvoer per storagedoel is 3,29 GB/s.
Uit de uitvoer van de StorageBench-benchmarktests die zijn uitgevoerd op twee verschillende BeeGFS-opstellingen, één met storagedoelen geconfigureerd in RAID 0 en één met storagedoelen geconfigureerd in RAID 10, blijkt duidelijk dat de schrijfprestaties beter zijn met de storagedoelen die zijn geconfigureerd in RAID 0 in plaats van in RAID 10. Wanneer de dd-opdracht werd gebruikt om een 10G-bestand te schrijven met een blokgrootte van 1M en "oflag=direct", was het gemiddelde ongeveer 5,1 GB/s voor het kleine systeem geconfigureerd in RAID 0, terwijl de gemiddelde doorvoer ongeveer 3,4 GB/s was voor het middelgrote systeem geconfigureerd in RAID 10, wat vergelijkbaar is met de resultaten die zijn verkregen met de storagebench-tool.
StorageBench: om defecte of verkeerd geconfigureerde storagedoelen te identificeren
StorageBench is uitgevoerd op de mediumconfiguratie die wordt beschreven in de aankondigingsblog om erachter te komen of er verkeerd geconfigureerde of defecte storagedoelen in het systeem aanwezig zijn.
[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]
Uit de bovenstaande uitvoer blijkt duidelijk dat alle opslagdoelen uniform presteren en dat er geen defecte doelen in het systeem zijn.
Conclusie en toekomstig werk
In deze blog bespreken we de belangrijkste functies van BeeGFS en leggen we het nut uit van de benchmark van de storagebench om de prestaties van verschillende RAID-configuraties te evalueren of te vergelijken en om vast te stellen of een van de storagedoelen defect of verkeerd geconfigureerd is. Als onderdeel van de volgende stappen zullen we later een whitepaper publiceren met de metadataprestaties en de IOR-prestaties en met aanvullende details over ontwerpoverwegingen, afstemming en configuratie.
Verwijzingen
1) Dell EMC Ready oplossingen voor HPC BeeGFS Storage PowerEdge: Dell Ready oplossingen voor HPC BeeGFS High-Performance Storage
2) Schaalbaarheid van Dell Ready oplossingen voor HPC BeeGFS Storage PowerEdge: Schaalbaarheid van Dell Ready oplossingen voor HPC BeeGFS-storage
3) BeeGFS-documentatie:
https://www.beegfs.io/wiki/4) Hoe sluit ik twee interfaces aan op hetzelfde subnet:
https://access.redhat.com/solutions/305645) PCI Express Direct Memory Access Reference Design met extern geheugen: https://www.intel.com/content/www/us/en/programmable/documentation/nik1412547570040.html#nik1412547565760