Glede na naraščajočo priljubljenost Rook bi radi spregovorili o njegovih skritih težavah in izzivih, s katerimi se boste srečali na svoji poti.
O sebi: Izkušnje z upravljanjem ceph od različice hammer, ustanovitelj skupnosti v telegramu.
Da ne bi bil nedosleden, se bom skliceval na sprejete objave na Habr (sodna po oceni) o težavah s ceph. S številnimi težavami, omenjenimi v teh objavah, sem se tudi sam srečal. Povezave na uporabljene materiale na koncu objave.
V objavi o Rooku omenjamo ceph ne brez razloga — Rook je v bistvu ceph zavit v kubernetes, kar pomeni, da podeduje vse njegove težave. Začnimo s težavami ceph.
Poenostavitev upravljanja s klasterjem
Ena od prednosti Rooka je enostavno upravljanje ceph preko kubernetes.
Vendar ceph vsebuje več kot 1000 nastavitev, medtem ko jih preko rooka lahko spremenimo le manjši del.
Primer na Luminous
> ceph daemon mon.a config show | wc -l
1401
Rook se predstavlja kot enostaven način za namestitev in posodobitev ceph.
Pri namestitvi ceph brez Rooka ni težav — ansible playbook napišete v 30 minutah, a pri posodobitvi je težav na pretek.
Citat iz objave Krok
Primer: nepravilno delovanje crush tunables po posodobitvi s hummer na jewel
> ceph osd crush show-tunables
{
…
«straw_calc_version»: 1,
«allowed_bucket_algs»: 22,
«profile»: «unknown»,
«optimal_tunables»: 0,
…
}
Toda tudi znotraj manjših različic se pojavljajo težave.
Primer: Posodobitev 12.2.6 privede klaster v stanje health err in pogojno poškodovan PG
Ne posodabljati, čakati in testirati? Toda Rook uporabljamo tudi zaradi enostavnosti posodobitev.
Težavnost disaster recovery klasterja v Rooku
Primer: OSD se sesuje in proizvaja napake. Sumite, da je težava v eni od nastavitev v konfiguraciji, želite spremeniti konfiguracijo za določen daemon, vendar ne morete, ker imate kubernetes in DaemonSet.
Alternativa ni. ceph tell osd.Num injectargs ne deluje — OSD je že sesut.
Težavnost debugiranja
Za nekatere nastavitve in teste zmogljivosti je treba neposredno dostopati do vtičnice osd daemona. V primeru Rooka je najprej treba najti pravi container, nato se vanj vstopiti, odkriti manjkajoče orodje za debugiranje in postati zelo razočaran.
Težavnost postopnega vzpostavljanja OSD
Primer: OSD se sesuje zaradi OOM, začne se rebalance, nato pa padejo naslednji.
Rešitev: Aktivirajte OSD eno za drugim, počakajte, da se popolnoma priključi na klaster, in nato aktivirajte naslednje. (Več v poročilu Ceph. Anatomija katastrofe).
Pri baremetal namestitvi se to preprosto izvede ročno, pri Rook in eni OSD na vozlišču ni posebnih težav, težave s zaporednim aktiviranjem pa se pojavijo, če je OSD > 1 na vozlišče.
Seveda so rešljive, vendar pa prinašamo Rook za poenostavitev, a prejemamo zaplete.
Zahtevnost določanja omejitev za ceph demone
Za baremetal namestitev ceph je dovolj enostavno izračunati potrebne vire za klaster — formule so na voljo in raziskave so opravljene. Pri uporabi šibkih CPU-jev boste kljub temu morali izvesti vrsto testov zmogljivosti, spoznati, kaj je Numa, a to je vseeno bolj preprosto kot pri Rook.
Pri Rook se poleg omejitev pomnilnika, ki jih lahko izračunate, pojavi vprašanje postavitve omejitve CPU.
In tu boste morali delati na testih zmogljivosti. Pri znižanju omejitev boste dobili počasen klaster, pri nastavitvi unlim pa bo pri prebalansiranju prišlo do aktivnega uživanja CPU, kar bo slabo vplivalo na vaše aplikacije v kubernetes.
Težave z omrežnim delovanjem v1
Za ceph se priporoča uporaba 2x10gb omrežja. Enega za odjemalski promet, drugega za službene potrebe ceph (prebalans). Če uporabljate ceph na baremetal, je ta ločitev enostavna za nastavitev, če pa delate z Rook, boste imeli težave z ločenjem omrežij, ker ne vsak konfiguracija klasterja omogoča predložitev dveh različnih omrežij v pod.
Težave z omrežnim delovanjem v2
Če se odločite, da ne boste ločevali omrežij, bo prebalansiran promet ceph zapolnil celoten kanal in vaše aplikacije v kubernetes bodo upočasnjene ali pa bodo padle. Hitrost prebalansiranja ceph lahko zmanjšate, toda s tem tvegate dolgotrajno prebalansiranje, kar povečuje tveganje, da druga vozlišča izpadejo iz klasterja zaradi diskov ali OOM, kjer je že zagotovljen read-only dostop do klasterja.
Dolgotrajno prebalansiranje — dolge upočasnitve aplikacij
Citat iz objave Ceph. Anatomija katastrofe.
Zmogljivost testnega klasterja:
Operacija zapisa velikosti 4 Kb traja 1 ms, zmogljivost 1000 operacij/sekundo v 1 končni točki.
Operacija velikosti 4 Mb (velikost objekta) traja 22 ms, zmogljivost 45 operacij/sekundo.
Zato, ko eden od treh domenov odpove, se je klaster nekaj časa v degradiranem stanju, in polovica vročih objektov se razporedi po različnih različicah, kar pomeni, da se polovica zapisovalnih operacij začne s prisilnim obnovitvijo.
Čas prisilne obnovitve ocenjujemo približno — zapisovalne operacije v degradiranem objektu.
Najprej preberemo 4 MB v 22 ms, zapišemo 22 ms, in nato 1 ms pišemo 4 kB dejanskih podatkov. Skupaj 45 ms za eno zapisovalno operacijo v degradiranem objektu na SSD-ju, ko je bila naša običajna zmogljivost 1 ms — padec zmogljivosti za 45-krat.
Več kot imamo delež degradiranih objektov, slabše postaja.
Izkazalo se je, da je hitrost rebalance kritično pomembna za pravilno delovanje klustra.
Specifične nastavitve strežnikov za ceph
Ceph potrebuje specifično tuning gostitelja.
Primer: nastavitve sysctl in JumboFrame, nekatere od teh nastavitev lahko negativno vplivajo na vaš payload.
Pravi razlog za Rook ostaja vprašljiv
Če ste v oblaku, imate skladišče od vašega oblačnega ponudnika, kar je precej bolj priročno.
Če ste na svojih strežnikih, bo upravljanje ceph lažje brez kubernetes.
Ali najemate strežnike pri kakšnem low cost hostingu? Potem vas čaka veliko zabave z omrežjem, njegovimi zakasnitvami in propustnostjo, kar zagotovo negativno vpliva na ceph.
Skupaj: Vpeljava kuberentes in vpeljava shranjevanja sta različni nalogi z različnimi predpostavkami in različnimi možnostmi rešitev — mešanje le-teh pomeni morebiten nevaren trade-off v prid enega ali drugega. Združevanje teh rešitev bo zelo težko, celo v fazi načrtovanja, poleg tega pa je tu še obdobje delovanja.
Seznam uporabljene literature:
Vi pa govorite Ceph… ali je res tako dober?
Ceph. Anatomija katastrofe
Izvor: habr.com
