Questo articolo è stato scritto da Nirmala Paolo, HPC e AI-Innovation Lab, 2020 aprile
Le soluzioni Dell EMC Ready per HPC BeeGFS High Capacity storage sono una soluzione di storage di file System parallela completamente supportata e con throughput elevato. Questo Blog discute l'architettura della soluzione, in che modo è ottimizzata per le prestazioni di HPC e presenta le prestazioni di I/O utilizzando sia IOZone Sequential che Random benchmark. Una soluzione di storage BeeGFS a prestazioni elevate basata su Device NVMe è stata descritta in questo Blog pubblicato nel novembre 2019. Questa architettura ha enfatizzato le prestazioni e la soluzione descritta è una soluzione di storage ad alta capacità. Queste due soluzioni per BeeGFS sono diverse in termini di obiettivi di progettazione e use case. La soluzione con prestazioni elevate è progettata come una soluzione di Scratch storage, un punto di sosta per i DataSet transienti che generalmente non vengono conservati oltre la durata del processo. La soluzione con capacità elevata utilizza 4x Dell EMC PowerVault array ME4084 completamente popolati con un totale di 336 unità e fornisce una capacità raw di 4PB se dotata di 12 unità SAS TB.
La soluzione Dell EMC Ready per lo storage con capacità elevata HPC BeeGFS è costituita da un Management Server, una coppia di server di metadati, una coppia di storage server e gli storage array associati. La soluzione fornisce lo storage che utilizza un singolo namespace a cui è possibile accedere facilmente dai nodi di elaborazione del cluster. La figura seguente mostra l'architettura di riferimento della soluzione con questi componenti principali:
La figura 1 Mostra l'architettura di riferimento della soluzione.
Figura 1. Soluzione Dell EMC pronta per lo Storage
HPC BeeGFS Nella figura 1, il Management Server in cui è in corso il daemon di monitoraggio BeeGFS è un PowerEdge r640. I due server di metadati (MDS) sono PowerEdge Server R740 in una configurazione High Availability Active-Active. La coppia di MDS è collegata all'array 2U, PowerVault ME4024 di 12 GB/s SAS link. Lo storage array ME4024 ospita le destinazioni di metadati (MDTs). Un altro paio di PowerEdge Server R740, anche in configurazione High Availability Active-Active, vengono utilizzati come Storage Server (SS). Questa coppia di SS è collegata a quattro storage array ME4084 completamente popolati con PowerVault con 12 GB/s SAS link. Gli array ME4084 supportano una scelta di unità disco rigido da 4 TB, 8 TB, 10 TB o 12 TB NL SAS 7,2 K RPM (HDD e ospitano le destinazioni di storage (STs) per il file System BeeGFS. Questa soluzione utilizza Mellanox InfiniBand HDR100 per la rete di dati. I client e i server sono connessi a 1U Mellanox Quantum HDR Edge Switch QM8790, che supporta fino a 80 porte di HDR100 utilizzando cavi Splitter HDR.
Le tabelle seguenti descrivono l'hardware speficiations e le versioni software Validate per la soluzione.
Management Server | 1 Dell EMC PowerEdge R640 |
---|---|
Server di metadati (MDS) | 2 Dell EMC PowerEdge R740 |
Storage Server (SS) | 2 Dell EMC PowerEdge R740 |
Processore | Management Server: 2 x Intel Xeon Gold 5218 @ 2,3 GHz, 16 core MDS e SS: 2 Intel Xeon Gold 6230 a 2,10 GHz, 20 core per processore |
Memoria | Management Server: 12 x 8GB DDR4 2666MT/s DIMM-96GB MDS e SS: DIMM DDR4 2933MT/s da 12 GB/s-384GB |
HCA InfiniBand (slot 8) | 1x Mellanox ConnectX-6 Single Port HDR100 Adapter per MDS e SS |
Controller di storage esterno | 2x Dell 12Gbps SAS HBA (su ogni MDS) 4x dell 12Gbps SAS HBA (su ogni SS) |
Enclosure di data storage | 4x Dell EMC PowerVault enclosure ME4084 completamente popolati con un totale di 336 unità 2,69 PB di capacità di storage raw se dotati di 8 tb SAS Drive in 4x ME4084 |
Enclosure di storage di metadati | 1x Dell EMC PowerVault enclosure ME4024 completamente popolato con 24 unità |
Controller RAID | Controller RAID duplex nelle enclosure ME4084 e ME4024 |
Unità disco rigido | 84-8 TB 7200 RPM unità NL SAS3 per ME4084 enclosure 24-960 GB SAS3 SSD per enclosure ME4024 |
Sistema operativo | CentOS di release di Linux 8.1.1911 (Core) |
Versione del kernel | 4.18.0-147.5.1. EL8 _1. x86_64 |
Versione di Mellanox OFED | 4.7-3.2.9.0 |
Grafana | 6.6.2-1 |
InfluxDB | 1.7.10-1 |
BeeGFS FILE SYSTEM (FILE SYSTEM NTFS) | 7,2 beta2 |
Tabella 1. Configurazione del banco di prova
Nota: Per la caratterizzazione delle prestazioni, è stata utilizzata la versione 7,2 beta2 di BeeGFS.
L' architettura BeeGFS è costituita da quattro servizi principali:
È disponibile anche un servizio di monitoraggio BeeGFS opzionale.
Fatta eccezione per il servizio client che è un modulo del kernel, i servizi di gestione, metadati e storage sono processi di spazio utente. È possibile eseguire una qualsiasi combinazione di servizi BeeGFS (componenti client e server) insieme negli stessi computer. È anche possibile eseguire più istanze di qualsiasi servizio BeeGFS sulla stessa macchina. Nella Dell EMC configurazione ad alta capacità di BeeGFS, il servizio di monitoraggio viene eseguito sul server di gestione, più istanze del servizio metadati vengono eseguite sui server di metadati e una singola istanza di servizio di storage viene eseguita sugli storage server. Il servizio di gestione è installato sui server di metadati.
Il servizio di monitoraggio di BeeGFS (BeeGFS-Mon. Service) raccoglie le statistiche di BeeGFS e le fornisce all'utente, utilizzando il database della serie temporale InfluxDB. Per la visualizzazione dei dati, beegfs-lun-grafana fornisce dashboard grafana predefiniti che possono essere utilizzati fuori dal campo. La figura 2 fornisce una panoramica generale del cluster BeeGFS che mostra il numero di servizi di storage e i servizi di metadati nella configurazione (chiamati nodi nel dashboard). Elenca inoltre le altre visualizzazioni dashboard disponibili e fornisce una panoramica delle destinazioni di storage.
Figura 2 dashboard Grafana-Panoramica di BeeGFS
Lo storage array ME4024 utilizzato per lo storage dei metadati è completamente popolato con SSD 960 GB 24x. Queste unità sono configurate in gruppi di dischi RAID1 lineari 12x di due unità, come mostrato nella figura 3. Ogni gruppo RAID1 è una destinazione di metadati.
Figura 3 Array ME4024 completamente popolato con 12 MDTs
In BeeGFS, ciascun servizio di metadati gestisce solo un singolo MDT. Poiché esistono 12 MDTs, devono essere presenti 12 istanze del servizio metadati. Ciascuno dei due server di metadati esegue sei istanze del servizio metadati. Le destinazioni di metadati vengono formattate con un file system ext4 (i file system ext4 vengono eseguiti bene con file di piccole dimensioni e operazioni di file di piccole dimensioni). Inoltre, BeeGFS archivia le informazioni in attributi estesi e direttamente sugli inode del file System per ottimizzare le prestazioni, che funzionano bene con il file system ext4.
Torna in alto
Il servizio beegfs-mgmtd è configurato su entrambi i server di metadati. L'beegfs mgmtd Store viene inizializzato nella directory mgmtd sulla destinazione dei metadati 1, come mostrato di seguito:
/opt/beegfs/sbin/beegfs-Setup-mgmtd-p/beegfs/metaA-numa0-1/mgmtd-S beegfs-Mgmt
Il servizio di gestione viene avviato sul server MetaA.
In questa soluzione BeeGFS ad alta capacità, lo storage dei dati si trova su quattro storage array di ME4084 PowerVault. Su ogni array vengono creati gruppi di dischi RAID-6 lineari di 10 unità (8 + 2). Per ogni gruppo di dischi viene creato un singolo volume che utilizza tutto lo spazio. Ciò comporterà 8 gruppi di dischi/volumi per array. Ogni array ha 84 unità e la creazione di 8 dischi RAID-6 è costituita da 4 unità, che possono essere configurate come Hot Spare globali tra i volumi degli array.
Con il layout descritto in precedenza, vi sono un totale di 32 x RAID-6 volumi su 4 x ME4084 in una configurazione di base mostrata nella figura 1. Ciascuno di questi volumi RAID-6 è configurato come destinazione di storage (ST) per il file System BeeGFS, con un risultato di un totale di 32 m/s sul file System.
Ogni array ME4084 ha 84 unità, con unità numerate 0-41 nel cassetto superiore e quelle numerate 42-84 nel cassetto inferiore. Nella figura 5, ogni set di 10 unità contrassegnate da 1 a 8 rappresenta il gruppo 8xRAID6. Un volume viene creato per ogni gruppo di RAID6. Le unità contrassegnate con "S" rappresentano le parti di ricambio globali. La figura 5 Mostra la vista anteriore dell'array dopo la configurazione di 8 volumi e 4 Ricambi globali.
Figura 4 layout del gruppo di dischi RAID 6 (8 + 2) su un ME4084
Il modulo client BeeGFS viene caricato su tutti gli host che richiedono l'accesso al file System BeeGFS. Quando il modulo BeeGFS viene caricato e il servizio BeeGFS client viene avviato, il servizio esegue il Mount dei file System definiti nel file/etc/BeeGFS/beegfs-Mounts. conf invece dell'approccio consueto basato su /etc/fstab. Con questo approccio, il client beegfs si avvia come qualsiasi altro servizio di Linux tramite lo script di avvio del servizio e consente la ricompilazione automatica del modulo client beegfs dopo gli aggiornamenti del sistema.
Questa sezione presenta le caratteristiche delle prestazioni delle soluzioni Dell EMC Ready per HPC soluzione di storage ad alta capacità BeeGFS utilizzando i benchmark sequenziali e casuali IOzone. Per una maggiore caratterizzazione delle prestazioni con IOR e MDtest e dettagli sulla configurazione della High Availability, consultare il white paper che verrà pubblicato in seguito.
Le prestazioni di storage sono state valutate utilizzando il benchmark IOzone (v 3.487). La velocità di lettura e scrittura sequenziali e il IOPS di lettura e scrittura casuali sono stati misurati. La tabella 2 descrive la configurazione dei PowerEdge Server R840 utilizzati come client BeeGFS per questi studi sulle prestazioni.
Clienti | 8 Dell EMC PowerEdge R840 |
---|---|
Processore | 4 x Intel (R) Xeon (R) Platinum 8260 CPU @ 2.40 GHz, 24 core |
Memoria | 24 x 16GB DDR4 2933MT/s DIMM-384GB |
Sistema operativo | Red Hat Enterprise Linux Server versione 7,6 (Maipo) |
Versione del kernel | 3.10.0-957.el7.x86_64 |
Interconnessione | 1x Mellanox ConnectX-6 Single Port HDR100 adapter |
Versione di OFED | 4.7-3.2.9.0 |
Configurazione del client della tabella 2
I server e i client sono connessi tramite una rete HDR100 e i dettagli di rete riportati nella tabella 3 riportata di seguito:
Switch InfiniBand | QM8790 Mellanox Quantum HDR Edge Switch-IU con porte 80x HDR 100 100 GB/s (con cavi Splitter) |
---|---|
Switch di gestione | Dell Networking Switch S3048-ON ToR-1U con porte 48x 1GbE, 4x SFP + 10 GbE |
Tabella 3. Rete
Le letture e le Scritture sequenziali vengono misurate utilizzando la modalità di lettura e scrittura sequenziale di IOzone. Questi test sono stati condotti su un numero di thread a partire da 1 in potenza di 2, fino a 512 thread. In ciascun thread è stato generato un numero uguale di file, poiché questo test funziona su un file per thread o su un caso N-N. I processi sono stati distribuiti su 8 nodi client fisici in modo Round Robin, in modo che le richieste siano equamente distribuite con il bilanciamento del carico.
Per i conteggi dei thread 16 e sopra una dimensione di file aggregata di 8 TB è stato scelto per ridurre al minimo gli effetti della memorizzazione nella cache dai server e dai client BeeGFS. Per i conteggi dei thread inferiori a 16, la dimensione del file è 768 GB per thread (cioè 1,5 TB per 2 thread, 3TB per 4 thread e 6 TB per 8 thread). All'interno di un determinato test, le dimensioni dei file aggregate utilizzate erano equamente suddivise tra il numero di thread. Una dimensione record di 1MiB è stata utilizzata per tutte le esecuzioni. Il comando utilizzato per i test sequenziali N-N è riportato di seguito:
Scritture e letture sequenziali: IOzone-i $test-c-e-w-r 1m-s $Size-t $Thread-+ n-+ m/Path/to/threadlist
Anche le cache del sistema operativo sono state eliminate sui server tra le iterazioni, nonché tra i test di scrittura e lettura eseguendo il comando:
# Sync & & Echo 3 >/proc/sys/VM/drop_caches
Il file System è stato smontato e rimontato sui client tra le iterazioni e tra i test di scrittura e lettura per cancellare la cache.
Figura 5: prestazioni di lettura sequenziale N-N
Nella figura 5, il throughput di picco di 23,70 GB/s è raggiunto in 256 thread e la scrittura di picco di 22,07 GB/s raggiunto in 512 thread. Le prestazioni di scrittura a singolo thread sono 623 MB/s e la lettura è di 717 MB/s. Le prestazioni scalano quasi linearmente fino a 32 thread. Dopo di ciò, vediamo che le letture e le Scritture si saturano Man Rescale. Questo ci porta a comprendere che le prestazioni complessive sostenute di questa configurazione per le letture sono ≈ 23GB/s e che per le Scritture è ≈ 22GB/s con i picchi come menzionato in precedenza. Le letture sono molto vicine o leggermente superiori rispetto a quelle di scrittura, indipendentemente dal numero di thread utilizzati.
IOzone è stato utilizzato in modalità Random per valutare le prestazioni di i/o casuali. I test sono stati condotti sui conteggi dei thread da 16 a 512 thread. L'opzione di i/o diretta (-I) è stata utilizzata per eseguire IOzone in modo che tutte le operazioni ignorino la cache buffer e vadano direttamente sul disco. È stato utilizzato il numero di stripe BeeGFS di 1 e dimensione del chunk di 1MB. Le dimensioni della richiesta sono state impostate su 4KiB. Le prestazioni sono state misurate in operazioni di I/O al secondo (IOPS). Le cache del sistema operativo sono state eliminate tra le esecuzioni sui server BeeGFS. Il file System è stato smontato e rimontato sui client tra le iterazioni del test. Il comando utilizzato per i test di lettura e scrittura casuali è il seguente:
IOzone-i 2-w-c-O-I-r 4K-s $Size-t $Thread-+ n-+ m/Path/to/threadlist
Figura 6n-n performance casuale
La figura 6 Mostra che le prestazioni di scrittura raggiungono 31K IOPS e rimangono stabili da 32 thread a 512 thread. Al contrario, le prestazioni di lettura aumentano con l'aumento del numero di richieste di i/o con una performance massima di circa 47K IOPS a 512 thread, che è il numero massimo di thread testati per la soluzione. ME4 richiede una profondità di coda più elevata per raggiungere le massime prestazioni di lettura e il grafico indica che è possibile ottenere prestazioni più elevate se si eseguono i thread simultanei 1024. Tuttavia, poiché le prove sono state eseguite solo con 8 client, non abbiamo i core sufficienti per eseguire il numero di thread 1024.
Torna in alto
I seguenti parametri di ottimizzazione sono stati effettuati durante l'esecuzione della caratterizzazione delle prestazioni della soluzione.
Il numero di stripe predefinito per BeeGFS è 4. Tuttavia, le dimensioni del chunk e il numero di destinazioni per file (numero di Stipe) possono essere configurate in base a una o più file. Per tutti questi test, BeeGFS Stripe Size è stato impostato su 1MB e lo stripe count è stato impostato su 1 come mostrato di seguito:
$beegfs-CTL--getentryinfo--mount =/mnt/beegfs//mnt/beegfs/benchmark/--verbose
Tipo di voce: directory
EntryID: 1-5E72FAD3-1
parentID:
nodo metadati root: MetaA-numa0-1 [ID: 1]
pattern Stripe Dettagli:
+ tipo: RAID0
+ ChunkSize: 1m
+ Numero di destinazioni di storage: desiderato: 1
+ Storage pool: 1 (impostazione predefinita)
percorso hash inode: 61/4C/1-5E72FAD3-1
Le pagine trasparenti enormi sono state disattivate e le seguenti impostazioni di memoria virtuale configurate nei server di metadati e storage:
Sono state utilizzate le seguenti opzioni di ottimizzazione per i device Block di storage sui server di storage.
In aggiunta al precedente, sono state utilizzate le seguenti opzioni di ottimizzazione BeeGFS:
beegfs-meta. conf
connMaxInternodeNum = 64
tuneNumWorkers = 12
tuneUsePerUserMsgQueues = True # facoltativo
tuneTargetChooser = RoundRobin (benchmarking)
beegfs-storage. conf
connMaxInternodeNum = 64
tuneNumWorkers = 12
tuneUsePerTargetWorkers = true
tuneUsePerUserMsgQueues = True # facoltativo
tuneBindToNumaZone = 0
tuneFileReadAheadSize = 2m
beegfs-client. conf
connMaxInternodeNum = 24
connBufSize = 720896
Questo Blog annuncia la release di Dell EMC soluzione di storage ad alta capacità BeeGFS e ne evidenzia le caratteristiche di prestazioni. Questa soluzione offre una performance di picco di 23,7 GB/s per le letture e 22,1 GB/s per le Scritture utilizzando benchmark sequenziali IOzone. Vediamo anche il picco delle scritture casuali a 31.3 K IOPS e letture casuali su 47,5 K IOPS.
Come parte dei passaggi successivi, valuteremo le prestazioni dei metadati e i thread N a un singolo file (N-1) per le prestazioni IOR di questa soluzione. Un libro bianco che descrive i metadati e le prestazioni IOR della soluzione con dettagli aggiuntivi riguardanti le considerazioni di progettazione per questa soluzione ad alta capacità con High Availability dovrebbe essere pubblicato dopo il completamento del processo di convalida e valutazione.