Inxhinieri nga kompania Clyso përmbledh përvojën e krijimit të një grupi ruajtjeje mbi një sistem të shpërndarë të besueshëm Ceph me kapacitet që kalon tebibyte në sekondë. Vëren se kjo është klusteri i parë mbi Ceph që arriti një tregues të tillë, por për të arritur rezultatin e paraqitur, inxhinierët duhej të kalonin një seri pengesash të natyrshme.
Për shembull, për të rritur performancën me 10-20%, mjaftonte të aktivizohej në serverët me cilësimet e energjisë në BIOS mënyra e maksimumit të performancës dhe të çaktivizohej c-state (c-state ndryshon parametrat e kursimit të energjisë në varësi të ngarkesës, e cila ndikon në Ceph). Po ashtu, doli se gjatë përdorimit të disqeve NVMe, bërthama e Linux-it kalonte një kohë të konsiderueshme në përpunimin e spin-locks gjatë rinovimit të mapimit IOMMU. Çaktivizimi i IOMMU në bërthamë çoi në një rritje të dukshme të performancës në testet e shkruarjes dhe leximeve të blloqeve me përmasë 4MB.
Megjithatë, çaktivizimi i IOMMU nuk zgjidhi problemin me rënien e performancës gjatë shkruarjes rastësore të blloqeve me përmasë 4KB. Me qëllim të zbardhjes së çështjes, inxhinierët u ndeshën me rregullime në skenarët e ndërtimit të Ceph nga projektet Gentoo dhe Ubuntu, të cilat përfshinin ndërtim me opsionin RelWithDebInfo, pasi me këtë në GCC aplikohej një mod Qëllimi optimizimi "-O2", në të cilën performanca e Ceph rritej ndjeshëm. Një tjetër faktor që çoi në rënien e performancës ishte kompilimi me bibliotekën TCMalloc. Ndryshimi i flagjeve të kompilimit dhe ndalimi i përdorimit të TCMalloc çoi në një ulje të kohës së paketimit (compaction) në tre herë dhe në dyfishimin e performancës së operacioneve rastësore të shkruarjes me blloqe 4K. Në fund, u kryen optimizime të mëtejshme të cilësimeve të Reef RocksDB dhe grupeve të vendosjes (PG).
Grupi është formuar nga 68 nyje mbi servera Dell PowerEdge R6615 me CPU AMD EPYC 9454P 48C/96T. Çdo nyje përmban 10 disqe NVMe Dell 15.36TB, dy adaptues Ethernet 100GbE Mellanox ConnectX-6 dhe 192 GB RAM. Programi bazë është i ndërtuar mbi Ubuntu 20.04.6 dhe Ceph 17.2.7. Në grupin me 63 nyje janë ngritur 630 OSD (Oobje Kumbimi, procesi i prapamshtësisë që menaxhon ruajtjen e të dhënave në ruajtjen lokale, një OSD për çdo NVMe), tre procese MON (monitorojnë statusin e grupit) dhe një proces MGR (Menaxher, shërbimi menaxhues). Madhësia e ruajtjes është 8.2 PB.
Kapaciteti gjatë operacioneve sekuenciale të leximit të blloqeve 4M ishte 1025 GiB/s, shkruajti — 270 GiB/s. Gjatë leximit rastësor të blloqeve 4KB, performanca ishte 25.5 milion operacione leximi në sekondë dhe 4.9 milion gjatë shkruarjes. Aktivizimi i enkriptimit ul kapacitetin gjatë leximit në rreth 750 GiB/s. Me aktivizimin e kodit të korrigjimit të gabimeve EC62, kapaciteti ishte 547 GiB/s gjatë leximit dhe 387 GiB/s gjatë shkruarjes (shkalla e shkruarjes rezultoi më e lartë se pa kodet e korrigjimit), ndërsa me qasje rastësore 3.4M IOPS gjatë leximit dhe 936K IOPS gjatë shkruarjes.


Mund të vërehet gjithashtu se në shtator, një arritje e ngjashme e kapacitetit në tebibyte në sekondë u arrit në grupin e ruajtjes së CERN të exabytes, i realizuar mbi hapësirën e shpërndarë të hapur EOS, të ndërtuar mbi protokollin XRootD.
Burimi: opennet.ru
