Ai nuk ju thotë

Në lidhje me popullaritetin në rritje të Rook, dua të flas për kurthet dhe problemet e tij që ju presin gjatë rrugës.

Rreth meje: përvoja e administrimit të ceph që nga versioni hammer, themeluesi i komunitetit t.me/ceph_ru në telegram.

Për të mos qenë të pabazë, do t'i referohem postimeve të pranuara nga Habr (duke gjykuar nga vlerësimi) për problemet me ceph. Unë gjithashtu kam hasur shumicën e problemeve në këto postime. Lidhje me materialin e përdorur në fund të postimit.

Në postimin për Rook, ne përmendim ceph për një arsye - Rook është në thelb ceph i mbështjellë me kubernetes, që do të thotë se trashëgon të gjitha problemet e tij. Le të fillojmë me problemet ceph.

Thjeshtoni menaxhimin e grupimeve

Një nga avantazhet e Rook është lehtësia e menaxhimit të ceph përmes kuberentes.

Sidoqoftë, ceph përmban më shumë se 1000 parametra për t'u konfiguruar, ndërsa në të njëjtën kohë ne mund të modifikojmë vetëm një pjesë të vogël të tyre përmes rook.

Shembull në Luminous
> ceph daemon mon.a config show | wc -l
1401

Rook pozicionohet si një mënyrë e përshtatshme për të instaluar dhe përditësuar ceph
Nuk ka probleme me instalimin e ceph pa Rook - ansible playbook shkruhet në 30 minuta, por ka shumë probleme me përditësimin.

Citim nga Krok

Shembull: sintonizuesit e shtypjes nuk funksionojnë siç duhet pas përmirësimit nga hummer në xhevahir

> ceph osd crush show-tunables
{
...
"straw_calc_version": 1,
"allowed_bucket_algs": 22,
"profil": "i panjohur",
"optimal_tunables": 0,
...
}

Por edhe brenda versioneve të vogla ka probleme.

Shembull: Përditësimi 12.2.6 duke e sjellë grupin në gjendje të gabuar shëndetësore dhe PG të thyer me kusht
ceph.com/releases/v12-2-8-released

Mos përditësoni, prisni dhe testoni? Por ne e përdorim disi Rook për lehtësinë e përditësimeve gjithashtu.

Kompleksiteti i grupit të rikuperimit nga fatkeqësitë në Rook

Shembull: OSD rrëzohet me gabime nën këmbët e saj. Ju dyshoni se problemi është në një nga parametrat në konfigurim, dëshironi të ndryshoni konfigurimin për një daemon specifik, por nuk mundeni, sepse keni kubernetes dhe DaemonSet.

Nuk ka alternativë. ceph them osd.Num injectargs nuk funksionon - OSD po gënjen.

Kompleksiteti i korrigjimit

Për disa konfigurime dhe teste të performancës është e nevojshme të lidheni drejtpërdrejt me prizën osd të daemonit. Në rastin e Rook, së pari duhet të gjeni kontejnerin e duhur, pastaj të futeni në të, të gjeni veglat që mungon për korrigjimin dhe të mërziteni shumë.

Vështirësi për të rritur vazhdimisht OSD

Shembull: OSD bie në OOM, fillon ribalancimi, pas kësaj bien të tjerat.

Zgjidhja: Ngrini OSD-në një nga një, prisni që ajo të përfshihet plotësisht në grup dhe ngrini të tjerat. (Më shumë detaje në raportin Ceph. Anatomia e një fatkeqësie).

Në rastin e një instalimi baremetal, kjo bëhet thjesht me dorë, në rastin e Rook dhe një OSD për nyje, nuk ka probleme të veçanta, problemet me ngritjen sekuenciale do të lindin nëse OSD > 1 për nyje.

Sigurisht, ato janë të zgjidhshme, por ne e mbajmë Rook për thjeshtim, por kemi ndërlikim.

Vështirësi në zgjedhjen e kufijve për demonët ceph

Për një instalim baremetal të ceph, është mjaft e lehtë të llogariten burimet e kërkuara për grup - ka formula dhe ka studime. Kur përdorni CPU më të dobët, ju duhet të bëni një numër testesh të performancës për të zbuluar se çfarë është Numa, por është akoma më e lehtë sesa në Rook.

Në rastin e Rook, përveç kufijve të memories që mund të llogariten, lind pyetja e vendosjes së një kufiri CPU.

Dhe këtu ju duhet të djersiteni me testet e performancës. Nëse ulni kufijtë, do të merrni një grup të ngadaltë, nëse vendosni unlim, do të merrni përdorim aktiv të CPU-së gjatë ribalancimit, gjë që do të ndikojë keq në aplikacionet tuaja në kubernetes.

Çështjet e Rrjetit v1

Për ceph, rekomandohet përdorimi i një rrjeti 2x10gb. Njëra për trafikun e klientëve, tjetra për nevojat e shërbimit ceph (ribalancim). Nëse jetoni me ceph në baremetal, atëherë kjo ndarje konfigurohet lehtësisht, nëse jetoni me Rook, atëherë ndarja e rrjetit do t'ju shkaktojë probleme, për faktin se jo çdo konfigurim i grupit ju lejon të futni dy rrjete të ndryshme në pod.

Çështjet e Rrjetit v2

Nëse refuzoni të ndani rrjetet, atëherë gjatë ribalancimit, trafiku ceph do të bllokojë të gjithë kanalin dhe aplikacionet tuaja në kubernetes do të ngadalësohen ose do të bien. Ju mund të zvogëloni shpejtësinë e ribalancimit të ceph, por më pas, për shkak të një ribalancimi të gjatë, ju merrni një rrezik në rritje që nyja e dytë të bjerë nga grupi në disqe ose OOM, dhe tashmë ka një lexim të garantuar vetëm në grup.

Ribalancim i gjatë - frena me aplikim të gjatë

Citate nga Ceph. Anatomia e një fatkeqësie.

Testi i performancës së grupit:

Një operacion shkrimi 4 KB kërkon 1 ms, performanca është 1000 operacione / sekondë në 1 fillesë.

Një operacion 4 MB (madhësia e një objekti) zgjat 22 ms, me një performancë prej 45 operacionesh/sekondë.

Prandaj, kur një domen nga tre dështon, grupi është në një gjendje të degraduar për një kohë dhe gjysma e objekteve të nxehta do të përhapen në versione të ndryshme, atëherë gjysma e operacioneve të shkrimit do të fillojë me një rikuperim të vështirë.

Ne llogarisim afërsisht kohën e rikuperimit të detyruar - shkruajmë operacionet në një objekt të degraduar.

Së pari lexojmë 4 MB në 22 ms, shkruajmë 22 ms, dhe më pas në 1 ms shkruajmë 4 KB të dhëna aktuale. Në total, një total prej 45 ms për operacion shkrimi në një objekt të degraduar në një SSD, kur performanca standarde ishte 1 ms, është një rënie e performancës 45-fish.

Sa më shumë të kemi përqindjen e objekteve të degraduara, aq më keq bëhet gjithçka.

Rezulton se shpejtësia e ribalancimit është kritike për funksionimin korrekt të grupit.

Cilësimet specifike të serverit për ceph

ceph ndonjëherë ka nevojë për akordim specifik të hostit.

Shembull: cilësimet sysctl dhe i njëjti JumboFrame, disa nga këto cilësime mund të ndikojnë negativisht në ngarkesën tuaj.

Nevoja reale për Rook mbetet në pikëpyetje

Nëse jeni në cloud, keni hapësirë ​​​​nga ofruesi juaj i cloud, gjë që është shumë më e përshtatshme.

Nëse jeni në serverët tuaj, atëherë menaxhimi i ceph do të jetë më i përshtatshëm pa kubernetes.

A merrni me qira serverë në ndonjë host me kosto të ulët? Atëherë do të argëtoheni shumë me rrjetin, vonesat dhe xhiron e tij, gjë që dukshëm ndikon negativisht në ceph.

Total: Zbatimi i kuberentes dhe zbatimi i ruajtjes janë detyra të ndryshme me hyrje të ndryshme dhe zgjidhje të ndryshme - për t'i përzier ato do të thotë të bësh një shkëmbim ndoshta të rrezikshëm në favor të njërit ose tjetrit. Do të jetë shumë e vështirë të kombinohen këto zgjidhje edhe në fazën e projektimit, por ka ende një periudhë funksionimi.

Lista e literaturës së përdorur:

Postimi numër 1 Por ju thoni Ceph ... a është vërtet kaq mirë?
Postimi numër 2 Ceph. Anatomia e një fatkeqësie

Burimi: www.habr.com

Bleni një host të besueshëm për faqet me mbrojtje DDoS, serverë VPS VDS 🔥 Bleni hosting të besueshëm të faqeve të internetit me mbrojtje DDoS, servera VPS VDS | ProHoster