Clyso insener kokkuvõtlikult jagas kogemusi andmeklusteri loomisel, mis on üles ehitatud tõrkekindlale jagatud süsteemile Ceph, mille läbilaskevõime ületab tebibaiti sekundis. Tõdetakse, et see on esimene Ceph'i baasil töötav klaster, mis suutis sellise tulemuse saavutada, kuid inseneridel tuli enne esitatud tulemuse saavutamist ületada mitmeid mitteilmseid takistusi.
Näiteks piisab jõudluse tõstmiseks 10-20% võrra BIOS-i energiasäästu seadetes seadmete maksimaalses jõudluses töötamiseks lubamisest ja c-state'i väljalülitamisest (c-state muudetakse energiasäästu parameetreid vastavalt koormusele, mis kajastub Ceph'is). Samuti ilmnes, et NVMe-mälu kasutamisel kulutab Linuxi tuum märkimisväärse osa ajast spin-lockide töötlemisega IOMMU kaardistamise värskendamise protsessis. IOMMU väljalülitamine tuumas tõi kaasa märkimisväärse jõudluse kasvu plokkide kirjutamise ja lugemise testides, mille suurus on 4MB.
IOMMU väljalülitamine ei lahendanud probleemi 4KB plokkide juhuslike kirjutamise jõudluse langusega. Süvenedes probleemidesse, leidsid insenerid Ceph'i kokkusobivuse parandusi Gentoo ja Ubuntu projektide koostamisstsenaariumites, mis sisaldasid RelWithDebInfo valikuga koostamist, kuna sellega GCC-s rakendati optimeerimisrežiimi "-O2", mille puhul Ceph'i jõudlus märgatavalt suurenes. Jõudluse vähenemist põhjustas ka TCMalloc raamatukoguga koostamine. Kompileerimislipu muutmine ja TCMalloci kasutamise lõpetamine vähendas pakendamise (compaction) aega kolm korda ja suurendas 4K plokkide juhuslike kirjutamise jõudlust kahekordselt. Lõpuks viidi täiendavad optimeerimised läbi Reef RocksDB seadetes ja asukohagruppides (PG).
Klastri koostamiseks kasutati 68 sõlme. serverite Dell PowerEdge R6615 koos CPU AMD EPYC 9454P 48C/96T. Igas sõlmes on 10 NVMe-mälu Dell 15.36TB, kaks Ethernet-adapterit 100GbE Mellanox ConnectX-6 ja 192 GB RAM-i. Tarkvara põhineb Ubuntu 20.04.6-l ja Ceph 17.2.7-l. Klastris, mis koosneb 63 sõlmest, on üles seatud 630 OSD-d (Object Storage Daemon, taustprotsess, mis haldab andmete salvestamist kohalikus salvestuses, üks OSD igas NVMe-mälus), kolm MON-protsessi (monitor, jälgib klastri seisukorda) ja üks MGR-protsess (Manager, haldussüsteem). Salvestusruum on 8.2 PB.
Jõudlus järjestikuste 4M plokkide lugemistoimingute puhul oli 1025 GiB/s, kirjutamise puhul 270 GiB/s. Juhusliku lugemise puhul 4KB plokkidest oli jõudlus 25.5 miljonit lugemist sekundis ja 4.9 miljonit kirjutamist. Krüpteerimise kaasamine vähendas lugemise läbilaskevõimet umbes 750 GiB/s. Kui kasutada EC62 vigade paranduse koode, oli lugemise läbilaskevõime 547 GiB/s ja kirjutamise puhul 387 GiB/s (kirjutamise kiirus oli kõrgem kui vigade paranduse koode kasutamata), juhusliku juurdepääsu puhul 3.4M IOPS lugemisel ja 936K IOPS kirjutamisel.


Lisaks võib märkida, et septembris saavutati CERNi eksabaiti salvestusklastris sarnane teeäärne läbilaskvus, mis on tebibaiti sekundis, mis on üles ehitatud avatud jaotatud salvestusseadmele EOS, mis põhineb XRootD protokollil.
Allikas: opennet.ru
