Me që po bëhet gjithnjë e më popullor Rook, dëshiroj të flas për pengesat dhe problemet që ju presin në rrugë.
Për veten: Eksperiencë në administrimin e ceph nga versioni hammer, themelues i komunitetit në telegram.
Për të mos qenë thjesht fjalë boshe, do të referohem në postimet e pranuara në habr (sipas rendit) për problemet me ceph. Me shumicën e këtyre problemeve kam hasur edhe unë. Lidhjet me materialin e përdorur në fund të postit.
NĂ« postimin pĂ«r Rook ne pĂ«rmendim ceph jo rastĂ«sisht â Rook nĂ« thelb Ă«shtĂ« ceph i mb wrapped nĂ« kubernetes, dhe kjo do tĂ« thotĂ« se trashĂ«gon tĂ« gjitha problemet e tij. Nga problemet e ceph edhe do tĂ« fillojmĂ«.
Thjeshtimi i menaxhimit të klasterit
Një nga avantazhet e Rook është lehtësia e menaxhimit të ceph përmes kubernetes.
Megjithatë, ceph ka më shumë se 1000 parametra për konfigurim, në të njëjtën kohë përmes rook ne mund të rregullojmë vetëm një pjesë të vogël të tyre.
Shembull në Luminous
> ceph daemon mon.a config show | wc -l
1401
Rook pozicionohet si një mënyrë e lehtë për të instaluar dhe përditësuar ceph
Me instalimin e ceph pa Rook nuk ka asnjĂ« problem â skenari ansible shkruhet pĂ«r 30 minuta, por me pĂ«rditĂ«simin ka masa tĂ« mĂ«dha problematikash.
Citim nga posta e Krok
Shembull: funksionimi i gabuar i crush tunables pas përditësimit nga hummer në jewel
> ceph osd crush show-tunables
{
âŠ
«straw_calc_version»: 1,
«allowed_bucket_algs»: 22,
«profile»: «unknown»,
«optimal_tunables»: 0,
âŠ
}
Por edhe në kuadër të versioneve më të vogla ka probleme.
Shembull: Përditësimi 12.2.6 që çon klasterin në gjendjen health err dhe PG në gjendje të mbase të dëmtuar
Nuk përditësohet, prit dhe testoni? Por ne duket se përdorim Rook edhe për lehtësimin e përditësimeve.
Vështirësia e rikuperimit në katastrofë të klasterit në Rook
Shembull: OSD bie me gabim duke hedhur probleme poshtë vetes. Ju dyshoni se problemi është në një nga parametrat në konfigurim, dëshironi të ndryshoni konfigurimin për një demon të caktuar, por nuk mundeni, sepse keni kubernetes dhe DaemonSet.
Nuk ka alternativĂ«. ceph tell osd.Num injectargs nuk funksionon â OSD Ă«shtĂ« i shtrirĂ«.
Vështirësia e debug
Për disa konfigurime dhe teste të performancës është e nevojshme të lidheni direkt me soketin e demonit osd. Në rastin e Rook, për fillim duhet të gjeni kontejnerin e duhur, pastaj të hyni në të, të zbulojnë mungesën e mjeteve për debug dhe të shqetësohen shumë.
Vështirësia e koleksionit të OSD në mënyrë të ndërsjellë
Shembull: OSD bie për shkak të OOM, fillon rebalance, pas kësaj bien të tjerët.
Zgjidhja: Ngri OSD-në një nga një, pritni që ajo të aktivizohet plotësisht në klaster dhe ngriheni të tjerat. (Më shumë në raportin Ceph. Anatomia e katastrofës).
Në rastin e instalimeve baremetal, kjo bëhet lehtësisht manualisht, ndërsa në rastin e Rook dhe një OSD në nod, nuk ka probleme të veçanta; problemet me ngritjen e radhës do të ndodhin nëse OSD > 1 në nod.
Sigurisht, ato janë të zgjidhshme, por ne po sollim Rook për thjeshtim, ndërsa marrim komplike.
Vështirësia e përcaktimit të limiteve për demonët ceph.
PĂ«r instalimet baremetal tĂ« ceph, Ă«shtĂ« mjaft e lehtĂ« tĂ« llogarisĂ«sh burimet e nevojshme pĂ«r klasterin â formula dhe kĂ«rkime janĂ« tĂ« disponueshme. Duke pĂ«rdorur CPU tĂ« dobĂ«t, do t'ju duhet ende tĂ« kryeni njĂ« sĂ«rĂ« testesh tĂ« performancĂ«s, tĂ« mĂ«soni se çfarĂ« Ă«shtĂ« Numa, por gjithsesi kjo Ă«shtĂ« mĂ« e thjeshtĂ« se nĂ« Rook.
Në rastin e Rook, përveç limiteve të memories që mund të llogariten, lind edhe pyetja e caktimit të limites CPU.
Dhe këtu do t'ju duhet të bëni teste të performancës. Në rastin e zvogëlimit të limiteve, do të merrni një klaster të ngadalshëm; në rastin e vendosjes së unlimit, do të keni përdorim aktiv të CPU gjatë ribalancimit, gjë që do të ndikojë në aplikacionet tuaja në kubernetes.
Problemet me ndërveprimin rrjet v1.
PĂ«r ceph, rekomandohet tĂ« pĂ«rdorni njĂ« rrjet 2x10gb. NjĂ« pĂ«r trafikun e klientĂ«ve, tjetra pĂ«r nevoja shĂ«rbimi tĂ« ceph (ribalanc). NĂ«se jetoni me ceph nĂ« baremetal, atĂ«herĂ« kjo ndarje Ă«shtĂ« lehtĂ« e konfigurueshme, nĂ«se jetoni me Rook, ndarja e rrjeteve do tĂ« shkaktojĂ« probleme, pasi jo çdo konfigurim klasteri lejon qĂ« tâi jepni pod-it dy rrjete tĂ« ndryshme.
Problemet me ndërveprimin rrjet v2.
Nëse refuzoni të ndaheni rrjetet, atëherë gjatë ribalancit, trafiku i ceph do të mbushë të gjithë kanalin dhe aplikacionet tuaja në kubernetes do të ngadalësohen ose do të bien. Mund të ulni shpejtësinë e ribalancit të ceph, por atëherë për shkak të ribalancit të gjatë, rreziku i rënies së nodës së dytë nga klasteri për shkak të disqeve ose OOM do të rritet, dhe atje do të keni një garancinë e leximit vetëm në klaster.
Ribalanc i gjatë - ngadalësim i gjatë i aplikacioneve.
Citim nga postimi Ceph. Anatomia e katastrofës.
Performanca e klasterit testues:
Operacioni i shkruan me madhësi 4 Kbyte merr 1 ms, performanca 1000 operacione/sekond në 1 thread.
Operacioni me madhësi 4 Mbyte (madhësia e objektit) merr 22 ms, performanca 45 operacione/sekond.
Prandaj, kur një nga tre domenet dështon, klasteri ndodhet për një kohë në një gjendje të degraduar, dhe gjysma e objekteve të nxehta shpërndahet në versione të ndryshme, atëherë gjysma e operacioneve të shkrimit do të fillojnë me një rikuperim të detyruar.
Koha e rikuperimit tĂ« detyruar llogaritet pĂ«r rreth â operacionet e shkrimit nĂ« objektin e degraduar.
SĂ« pari lexojmĂ« 4 MB nĂ« 22 ms, shkruajmĂ« 22 ms, dhe pastaj 1 ms shkruajmĂ« 4 KB tĂ« dhĂ«nash. NĂ« total, 45 ms pĂ«r njĂ« operacion shkrimi nĂ« objektin e degraduar nĂ« SSD, kur performanca standarde ishte 1 ms â njĂ« rĂ«nie performance 45 herĂ«.
Sa më i madh të jetë përqindja e objekteve të degraduara, aq më e frikshme bëhet situata.
Pra, shpejtësia e ribalancimit është kritikisht e rëndësishme për funksionimin e duhur të klasterit.
Konfigurime specifike për serverët për ceph
ceph shpesh kërkon një tuning specifik të hostit.
Shembuj: konfigurimet sysctl dhe JumboFrame, disa nga këto konfigurime mund të kenë një ndikim negativ në payload-in tuaj.
Kërkesa reale për Rook mbetet nën pyetje
Nëse jeni në cloud, keni ruajtje nga ofruesi tuaj i cloud-it, që është shumë më e përshtatshme.
Nëse jeni në serverët tuaj, menaxhimi i ceph do të jetë më i lehtë pa kubernetes.
A po merrni me qira serverë në një hostim me kosto të ulët? Atëherë ju presin shumë telashe me rrjetin, vonesat dhe kapacitetin, që ndikon ndjeshëm në ceph.
Pra, nĂ« pĂ«rfundim: Zbatimi i kuberentes dhe zbatimi i ruajtjes janĂ« detyra tĂ« ndryshme me kĂ«rkesa tĂ« ndryshme dhe mundĂ«si tĂ« ndryshme zgjidhjesh â t'i pĂ«rzieni ata do tĂ« thotĂ« tĂ« bĂ«ni njĂ« trade-off potencialisht tĂ« rrezikshĂ«m nĂ« favor tĂ« njĂ«ri-tjetrit. TĂ« pĂ«rputhni kĂ«to zgjidhje do tĂ« jetĂ« shumĂ« e vĂ«shtirĂ« edhe nĂ« fazĂ«n e projektimit, dhe ka ende periudha eksperimentimi.
Lista e letrave të përdorura:
Po flisni për Ceph⊠a është vërtet kaq i mirë?
Ceph. Anatomia e katastrofës
Burimi: habr.com
