Erfaring med at oprette et Ceph-lager med tebibyte båndbredde pr. sekund

En ingeniør fra virksomheden Clyso har sammenfattet erfaringer med at oprette et lagringskluster baseret på det fejltolerante distribuerede system Ceph, med en båndbredde der overstiger tebibyte per sekund. Det bemærkes, at dette er det første kluster baseret på Ceph, der har formået at nå et sådant niveau, men før de kunne opnå det præsenterede resultat, måtte ingeniørerne overvinde en række uventede udfordringer.

For eksempel var det tilstrækkeligt at aktivere maksimal ydeevne i BIOS-indstillingerne for energieffektivitet på serverne for at øge ydeevnen med 10-20% og deaktivere c-state (c-state ændrer energibesparende indstillinger baseret på belastningen, hvilket påvirker Ceph). Det viser sig også, at når der anvendes NVMe-lagring, bruger Linux-kernen en betydelig tid på at håndtere spin-låse under opdatering af IOMMU-mapping. Deaktivering af IOMMU i kernen førte til en mærkbar stigning i ydeevnen i tests for læsning og skrivning af blokke på 4MB.

Deaktiveringen af IOMMU løste dog ikke problemet med faldende ydeevne ved tilfældig skrivning af blokke på 4KB. I processen med at finde årsagen stødte ingeniørerne på rettelser i bygge-scripts for Ceph fra Gentoo- og Ubuntu-projekterne, som inkluderede bygning med indstillingen RelWithDebInfo, da denne i GCC anvendte optimeringsmetoden "-O2", som betydeligt forbedrede ydeevnen for Ceph. Kompilering med biblioteket TCMalloc førte også til en reduktion i ydeevne. Ændring af kompilationsflags og opgivelse af TCMalloc resulterede i en tredobbelt reduktion i komprimeringstid (compaction) og en fordobling af ydeevnen for tilfældige skriveoperationer med 4K blokke. Endelig blev der også udført optimering af indstillingerne for Reef RocksDB og placeringsgrupper (PG).

Klusteret er dannet af 68 noder baseret på servere Dell PowerEdge R6615 med CPU AMD EPYC 9454P 48C/96T. Hver node indeholder 10 NVMe-lagringsenheder fra Dell på 15,36TB, to Ethernet-adaptere 100GbE Mellanox ConnectX-6 og 192 GB RAM. Softwaren er baseret på Ubuntu 20.04.6 og Ceph 17.2.7. I klusteret med 63 noder er der oprettet 630 OSD (Object Storage Daemon, baggrundsprocessen der styrer dataopbevaring i det lokale lagersystem, én OSD per NVMe-lagringsenhed), tre MON-processer (monitor, der overvåger klustrets tilstand) og én MGR-proces (Manager, der styrer tjenesten). Lagringskapaciteten er 8,2 PB.

Båndbredden ved sekventielle bloklæsning på 4M var 1025 GiB/s og skrivning 270 GiB/s. Ved tilfældig læsning af blokke på 4KB var ydeevnen 25,5 millioner læseoperationer pr. sekund og 4,9 millioner ved skrivning. Aktiveringen af kryptering reducerede båndbredden ved læsning til cirka 750 GiB/s. Ved brug af fejlkorrektion codec EC62 var båndbredden 547 GiB/s ved læsning og 387 GiB/s ved skrivning (skrivningshastigheden var højere end uden fejlkorrektion), mens tilfældig adgang gav 3,4M IOPS ved læsning og 936K IOPS ved skrivning.

Erfaring med at oprette et Ceph-lager med tebibyte båndbredde pr. sekund
Erfaring med at oprette et Ceph-lager med tebibyte båndbredde pr. sekund

Yderligere kan det nævnes, at i september blev en lignende milepæl i båndbredde i tebibyte pr. sekund nået i CERN's eksabyt-lagringskluster, der er implementeret på en åben distribueret lagringsløsning EOS, bygget på XRootD-protokollen.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster