PowerEdge: Caratteristiche delle Ready Solutions Dell per HPC BeeGFS Storage
Summary: Caratteristiche delle Ready Solutions Dell per HPC BeeGFS Storage
Instructions
Sommario
- Introduzione
- StorageBench: per confrontare le prestazioni di diverse configurazioni RAID
- StorageBench: per identificare destinazioni di storage difettose o configurate in modo errato
- Conclusioni e lavoro futuro
Introduzione
Questo blog illustra le caratteristiche salienti delle Ready Solutions Dell per lo storage HPC BeeGFS, annunciate di recente. Questo è il terzo blog della serie sulla soluzione di storage a prestazioni elevate BeeGFS. Il primo blog ha annunciato il rilascio della soluzione. Il secondo blog ha parlato della scalabilità delle Ready Solutions Dell per lo storage HPC BeeGFS. Ha fornito dettagli relativi alle configurazioni di base, alle configurazioni scalabili flessibili e alle prestazioni di lettura/scrittura sequenziali misurate delle varie configurazioni, dimostrando che la scalabilità è lineare per quanto riguarda il numero di server nella soluzione. L'attuale blog mette in evidenza l'utilizzo di "StorageBench", il benchmark di riferimento per lo storage integrato di BeeGFS.
BeeGFS è un file system open source che può essere scaricato da www.beegfs.io. Si tratta di un file system parallelo che distribuisce i dati su più destinazioni di storage. Si tratta di un software-defined storage che separa il file system logico dall hardware di storage sottostante, consentendo all'utente di definire come e dove archiviare i dati. Il software del file system include funzionalità aziendali come high availability, applicazione delle quote e ACL. Le caratteristiche principali di BeeGFS sono la facilità d'uso, la scalabilità e la flessibilità. La sua facilità d'uso deriva dal fatto che tutti i componenti lato server sono demoni dello spazio utente, mentre il client è un modulo del kernel che non richiede alcuna patch al kernel stesso. Tutti i componenti di BeeGFS possono essere installati e aggiornati senza riavviare il server. Possiamo quindi aggiungere client e server al sistema esistente senza alcun downtime. Con l'aggiunta di server e unità, le prestazioni e la capacità del file system possono essere ulteriormente scalate nel blog collegato qui. BeeGFS supporta più distribuzioni Linux ed è progettato per funzionare con qualsiasi file system locale conforme a POSIX. BeeGFS supporta inoltre l'esecuzione di più istanze di un determinato servizio sullo stesso server.
Lo storage Dell Ready Solutions for HPC BeeGFS sfrutta tutte le funzionalità principali del file system BeeGFS ed è progettato per prestazioni elevate. La soluzione utilizza server PowerEdge R740xd per l'archiviazione, la distribuzione e/o l'elaborazione di metadati e dati. Ogni server PowerEdge R740xd dispone di 24 unità SSD NVMe Intel P4600 da 1,6 TB, il secondo grande passo avanti nella tecnologia delle unità, dopo le SSD. Negli ambienti HPC, lo spazio di scratch può spesso essere un fattore limitante. Potrebbe essere troppo piccolo o troppo lento. Le Dell EMC Ready Solutions for HPC BeeGFS Storage sono progettate per essere utilizzate come soluzione scratch e servono lo storage scratch utilizzando il file system BeeGFS.
BeeGFS include due strumenti di benchmarking integrati che possono aiutare a caratterizzare o valutare la rete o lo storage, rispettivamente NetBench e StorageBench . Quando la modalità NetBench è abilitata, i server ignorano le richieste di scrittura ricevute anziché scrivere i dati. Analogamente, in caso di richieste di lettura, anziché leggere dal file system sottostante, vengono inviati ai client solo i buffer di memoria. La modalità NetBench ha lo scopo di testare il throughput di streaming di rete indipendentemente dai dischi sottostanti. D'altra parte, StorageBench ha lo scopo di misurare il throughput di streaming del file system sottostante indipendentemente dalle prestazioni di rete. StorageBench è un benchmark di destinazione per lo storage che non utilizza la rete. Il comando storage-bench invia semplicemente la richiesta alle destinazioni di storage per avviare la scrittura/lettura dei dati. In questo modo, eliminiamo l'impatto della rete. L'output che otteniamo dal banco di storage è le migliori prestazioni che il sistema può ottenere se le prestazioni di rete sono ideali. Questo blog illustra come StorageBench può essere utilizzato per confrontare le prestazioni di diverse destinazioni di storage e quindi identificare destinazioni difettose o mal configurate.
StorageBench: per confrontare le prestazioni di diverse configurazioni RAID
StorageBench non utilizza il file system montato. Quando si esegue StorageBench, è presente una sola destinazione per file. Storagebench crea una directory in ogni destinazione di storage del sistema in cui vengono creati file di test pari al numero di thread di test. I dati vengono trasmessi direttamente a questo per mostrare il throughput di basso livello disponibile per ogni destinazione di storage. Senza alcuna comunicazione di rete, non è possibile simulare lo striping dei file. Pertanto, i risultati del benchmark di storage sono piuttosto paragonabili all'I/O del client con striping disabilitato. Quando vengono eseguiti i benchmark, il file viene suddiviso in stripe su quattro destinazioni di storage se viene adottato il modello di striping predefinito.
Al fine di testare le diverse destinazioni di storage, sono state utilizzate le configurazioni di piccole e medie dimensioni descritte nel blog sulla scalabilità della soluzione di storage Dell BeeGFS. Entrambe le configurazioni hanno lo stesso numero di destinazioni di metadati configurate in RAID 1. Differiscono nella configurazione RAID delle destinazioni di storage. Mentre la configurazione piccola prevede lo storage, le destinazioni configurate in RAID 0 di 6 unità, la configurazione media ha le destinazioni di storage configurate in RAID 10 di sei unità. Le destinazioni di storage configurate nella configurazione Small e Medium sono tabulate di seguito:
| Tabella 1 Configurazione del banco di prova | ||
|---|---|---|
| Configuration | Medio - RAID 10 per destinazioni di storage | Small - RAID 0 per destinazioni di storage |
| Numero di destinazioni di metadati | 6 | 6 |
| Numero di istanze del servizio metadati | 6 | 6 |
| Numero di server di storage | 5 | 2 |
| Numero di destinazioni di storage | 22 | 10 |
| Numero di servizi di storage per server | 4 | 4 |
| Numero di servizi di storage per zona NUMA | 2 | 2 |
| Numero di destinazioni per istanza del servizio di storage | 2 | 2 |
Nota: La configurazione media sopra riportata ha il solo scopo di testare il throughput delle destinazioni di storage configurate in diverse configurazioni RAID utilizzando lo strumento StorageBench.
Benchmark di scrittura StorageBench - Sulla configurazione Small con destinazioni di storage configurate in RAID 0
Lo storage benchmark viene avviato e monitorato con lo strumento beegfs-ctl. Il pacchetto beegfs-utils fornisce lo strumento della riga di comando beegfs-ctl che può essere utilizzato per eseguire il benchmark di destinazione dello storage. L'esempio seguente avvia un benchmark di scrittura su tutte le destinazioni di tutti gli storage server BeeGFS con dimensioni del blocco di I/O pari a 512 KB, utilizzando 16 thread per destinazione, ognuno dei quali scriverà 200 Gb di dati nel proprio file.
[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'opzione "Running: L'output da 10" indica che sono presenti in totale 10 destinazioni di storage configurate nel sistema.
Per interrogare lo stato/i risultati del benchmark di tutte le destinazioni, è possibile eseguire il seguente comando:
[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
Se si aggiunge il valore dettagliato al comando precedente, viene visualizzato l'elenco di tutte le destinazioni e il rispettivo throughput.
[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]
Inferenza dall'output:
Il throughput medio per destinazione di storage configurata in RAID 0 è di 5,02 GB/s.
Benchmark di scrittura StorageBench: configurazione media con destinazioni di storage configurate in RAID 10
L'esempio seguente avvia un benchmark di scrittura su tutte le destinazioni di tutti gli storage server BeeGFS con dimensioni del blocco di I/O pari a 512 KB, utilizzando 16 thread per destinazione, ognuno dei quali scrive 200 GB di dati nel proprio file.
[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
Se si aggiunge il valore dettagliato al comando precedente, viene visualizzato l'elenco di tutte le destinazioni e il rispettivo throughput.
[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]
Inferenza dall'output:
Il throughput medio per destinazione di storage è 3,29 GB/s.
Dall'output dei test di benchmark StorageBench eseguiti su due diverse configurazioni BeeGFS, una con destinazioni di storage configurate in RAID 0 e un'altra con destinazioni di storage configurate in RAID 10, è evidente che le prestazioni di scrittura sono migliori con le destinazioni di storage configurate in RAID 0 anziché in RAID 10. Quando è stato utilizzato il comando dd per scrivere un file di 10G con block size di 1 M e "oflag=direct", la media è stata di circa 5,1 GB/s per il sistema di piccole dimensioni configurato in RAID 0, mentre il throughput medio è stato di circa 3,4 GB/s per il sistema di medie dimensioni configurato in RAID 10, un valore paragonabile ai risultati ottenuti utilizzando lo strumento storagebench.
StorageBench: per identificare destinazioni di storage difettose o configurate in modo errato
StorageBench è stato eseguito sulla configurazione media descritta nel blog dell'annuncio per scoprire se nel sistema sono presenti destinazioni di storage configurate in modo errato o difettose.
[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]
Dall'output di cui sopra, è evidente che tutte le destinazioni di storage funzionano in modo uniforme e che non sono presenti destinazioni difettose nel sistema.
Conclusioni e lavoro futuro
Questo blog illustra le caratteristiche principali di BeeGFS e spiega l'utilità del benchmark del banco di storage per valutare o confrontare le prestazioni di diverse configurazioni RAID e anche per identificare se una qualsiasi delle destinazioni di storage è difettosa o non configurata correttamente. Come parte dei prossimi passi, pubblicheremo in seguito un white paper con le prestazioni dei metadati e le prestazioni IOR, oltre a ulteriori dettagli sulle considerazioni di progettazione, l'ottimizzazione e la configurazione.
Riferimenti
1) Dell EMC Ready Solutions per HPC BeeGFS Storage PowerEdge: Ready Solutions Dell per HPC BeeGFS High Performance Storage
2) Scalabilità delle Dell Ready Solutions per HPC BeeGFS Storage PowerEdge: Scalabilità delle Ready Solutions Dell per HPC BeeGFS Storage
3) Documentazione di BeeGFS:
https://www.beegfs.io/wiki/4) Come collegare due interfacce sulla stessa sottorete:
https://access.redhat.com/solutions/305645) Progetto di riferimento per l'accesso diretto alla memoria PCI Express utilizzando la memoria esterna: https://www.intel.com/content/www/us/en/programmable/documentation/nik1412547570040.html#nik1412547565760