Esperienza nella creazione di uno storage Ceph con una larghezza di banda di tebibyte al secondo

Un ingegnere della Clyso ha riassunto l'esperienza nella creazione di un cluster di storage basato su un sistema distribuito fault-tolerant Ceph, con una capacità superiore a un tebibyte al secondo. Si nota che questo è il primo cluster basato su Ceph in grado di raggiungere un simile risultato, ma per ottenere questa performance, gli ingegneri hanno dovuto superare diverse insidie non evidenti.

Ad esempio, per aumentare le prestazioni del 10-20%, è stato sufficiente attivare nel BIOS dei server la modalità di massima performance e disattivare il c-state (il c-state modifica i parametri di risparmio energetico in base al carico, influenzando Ceph). Si è anche scoperto che, utilizzando le unità NVMe, il kernel Linux spende molto tempo a gestire i blocchi di spin durante l'aggiornamento della mappatura IOMMU. Disattivare l'IOMMU nel kernel ha portato a un notevole incremento delle prestazioni nei test di lettura e scrittura dei blocchi di dimensione 4MB.

Tuttavia, disattivare l'IOMMU non ha risolto il problema della flessione delle prestazioni durante la scrittura casuale di blocchi di dimensioni 4KB. Investigando la questione, gli ingegneri si sono imbattuti in correzioni negli script di compilazione di Ceph provenienti dai progetti Gentoo e Ubuntu, che includevano la compilazione con l'opzione RelWithDebInfo, poiché con questa opzione il GCC applicava la modalità di ottimizzazione "-O2", migliorando notevolmente la performance di Ceph. La compilazione con la libreria TCMalloc ha anche contribuito alla diminuzione delle prestazioni. Modificare i flag di compilazione e interrompere l'uso di TCMalloc ha portato a una riduzione del tempo di compattazione di tre volte e a un raddoppio delle prestazioni delle operazioni di scrittura casuali con blocchi di 4K. Infine, sono state ottimizzate ulteriormente le impostazioni di Reef RocksDB e i gruppi di posizionamento (PG).

Il cluster è stato formato da 68 nodi basati su server Dell PowerEdge R6615 con CPU AMD EPYC 9454P 48C/96T. Ogni nodo contiene 10 unità NVMe Dell da 15.36TB, due adattatori Ethernet 100GbE Mellanox ConnectX-6 e 192 GB di RAM. Il software è basato su Ubuntu 20.04.6 e Ceph 17.2.7. Nel cluster, su 63 nodi, sono stati attivati 630 OSD (Object Storage Daemon, processo in background che gestisce lo storage dei dati nel locale, uno OSD per ogni unità NVMe), tre processi MON (monitor, che tiene traccia dello stato del cluster) e un processo MGR (Manager, servizio di gestione). La capacità di storage è di 8.2 PB.

La capacità durante le operazioni sequenziali di lettura di blocchi da 4M è stata di 1025 GiB/s, per la scrittura di 270 GiB/s. Durante la lettura casuale di blocchi da 4KB, le prestazioni sono state di 25.5 milioni di operazioni di lettura al secondo e 4.9 milioni per la scrittura. L'attivazione della crittografia ha ridotto la capacità di lettura a circa 750 GiB/s. Utilizzando i codici di correzione degli errori EC62, la capacità è stata di 547 GiB/s in lettura e 387 GiB/s in scrittura (la velocità di scrittura è risultata superiore rispetto a quella senza codici di correzione), mentre nell'accesso casuale si sono ottenuti 3.4M IOPS in lettura e 936K IOPS in scrittura.

Esperienza nella creazione di uno storage Ceph con una larghezza di banda di tebibyte al secondo
Esperienza nella creazione di uno storage Ceph con una larghezza di banda di tebibyte al secondo

In aggiunta, si può notare che nel settembre precedente è stato raggiunto un traguardo simile in termini di capacità nel cluster di storage exabyte del CERN, realizzato con un sistema di storage distribuito open source EOS, basato sul protocollo XRootD.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster