Han er ikkje din dRook

Med den Þkende populariteten til Rook Þnsker jeg Ä snakke om fallgruvene og problemene som venter deg pÄ veien.

Om meg: Erfaring med administrasjon av Ceph siden versjon hammer, grunnlegger av fellesskapet. t.me/ceph_no i Telegram.

For Ä ikke vÊre ordknapp vil jeg referere til vedtatte Habr (ifÞlge rangeringen) innlegg om problemer med Ceph. Jeg har ogsÄ stÞtt pÄ de fleste problemene som er omtalt i disse innleggene. Henvisninger til brukt materiale kommer pÄ slutten av innlegget.

I innlegget om Rook nevner vi ikke Ceph uten grunn — Rook er i bunn og grunn Ceph pakket inn i Kubernetes og arver derfor alle problemene det har. La oss begynne med Cephs problemer.

Forenkling av klusteradministrasjon.

En av fordelene med Rook er muligheten for Ă„ administrere Ceph enkelt gjennom Kubernetes.

Imidlertid inneholder Ceph mer enn 1000 parametere for konfigurasjon, mens vi gjennom Rook bare kan endre en mindre del av dem.

Eksempel pÄ Luminous.
> ceph daemon mon.a config show | wc -l
1401

Rook er posisjonert som en enkel mÄte Ä installere og oppdatere Ceph pÄ.
Det er ingen problemer med Ă„ installere Ceph uten Rook — en Ansible playbook kan skrives pĂ„ 30 minutter, men det er mange problemer med oppdateringer.

Sitat fra Krok-innlegget.

Eksempel: feilaktig funksjon av crush tunables etter oppdatering fra Hummer til Jewel.

> ceph osd crush show-tunables
{


«straw_calc_version»: 1,
«allowed_bucket_algs»: 22,
«profile»: «unknown»,
«optimal_tunables»: 0,


}

Men selv innenfor mindre versjoner kan det oppstÄ problemer.

Eksempel: Oppdatering 12.2.6 som fĂžrer klyngen til en tilstand med health err og betinget Ăždelagte PG.
ceph.com/releases/v12-2-8-released

Ikke oppdatere, vent og test? Men vi bruker vel Rook ogsÄ for bekvemmeligheten ved oppdateringer.

Vanskeligheter med katastrofegjenoppretting i Rook.

Eksempel: OSD krasjer med feil som fyller utgangen. Du mistenker at problemet ligger i ett av parameterne i konfigurasjonen, Ăžnsker Ă„ endre konfigurasjonen for en bestemt daemon, men kan ikke fordi du har Kubernetes og DaemonSet.

Det finnes ingen alternativ. Ceph tell osd.Num injectargs fungerer ikke — OSD ligger nede.

Vansker med debugging.

For noen innstillinger og ytelsestester er det nÞdvendig Ä koble til selve sokkelen til OSD-daemonen. I Rook mÄ du fÞrst finne den riktige containeren, deretter gÄ inn i den, oppdage at nÞdvendig debug-verktÞy mangler og bli veldig skuffet.

Vansker med sekvensiell oppstart av OSD.

Eksempel: OSD krasjer pÄ OOM, rebalansering begynner, deretter krasjer neste.

LÞsning: Hev OSD én ad gangen, vent til den er fullt inkludert i klyngen, og deretter heve de neste. (Mer informasjon i rapporten Ceph. Katastrofeanatomi).

I tilfelle av baremetal-installasjoner gjÞr man dette enkelt manuelt, mens for Rook og én OSD per node er det ikke store problemer; problemer med sekvensiell heving vil oppstÄ hvis OSD > 1 per node.

SelvfĂžlgelig er de lĂžselige, men vi bruker Rook for forenkling, og ender opp med Ă„ komplisere det.

Kompleksiteten ved Ă„ finne passende grenser for ceph-demoner.

For baremetal-installasjoner er det ganske enkelt Ă„ beregne de nĂždvendige ressursene for klyngen – formler og forskning finnes. Ved bruk av svake CPU-er vil du fortsatt mĂ„tte gjennomfĂžre en rekke ytelsestester, forstĂ„ hva Numa er, men det er fortsatt enklere enn i Rook.

I tilfelle av Rook vil du i tillegg til minnegrensene som kan beregnes, mÞte spÞrsmÄlet om CPU-grenser.

Og da mÄ du jobbe med ytelsestester. Ved Ä sette grensene for lavt, fÄr du en treg klynge; ved Ä sette dem til ubegrenset fÄr du aktiv CPU-bruk under rebalansering, noe som vil pÄvirke applikasjonene dine i kubernetes negativt.

Problemer med nettverksinteraksjon v1.

For ceph anbefales det Ä bruke 2x10gb nettverk. Ett for klienttrafikk, det andre for cephs administrative behov (rebalance). Hvis du kjÞrer ceph pÄ baremetal, kan denne delingen enkelt settes opp; dersom du bruker Rook, vil deling av nettverk skape problemer, siden ikke hver klyngekonfigurasjon tillater at to forskjellige nettverk brukes i pod.

Problemer med nettverksinteraksjon v2.

Hvis du velger Ä ikke dele nettverk, vil ceph-trafikken under rebalansering fylle hele kanalen, og applikasjonene dine i kubernetes vil bli tregere eller krasje. Det er mulig Ä redusere rebalancehastigheten til ceph, men da risikerer du at den andre noden faller ut av klyngen pÄ grunn av disker eller OOM, og da har du garanti for read-only pÄ klyngen.

Lang rebalansering – lange nedetider for applikasjonene.

Sitat fra innlegget Ceph. Katastrofeanatomi.

Ytelsen til testklyngen:

En skriving pÄ 4 KByte tar 1 ms, ytelse 1000 operasjoner/sekund i ett spor.

En operasjon pÄ 4 MByte (objektstÞrrelse) tar 22 ms, ytelse 45 operasjoner/sekund.

Dermed, nÄr én av tre domener svikter, er klyngen i en degredert tilstand i en periode, og halvparten av de varme objektene sprer seg over forskjellige versjoner, vil halvparten av skriveoperasjonene mÄtte begynne med en tvungen gjenoppretting.

Tiden for tvungen gjenoppretting beregner vi omtrent — skriveoperasjoner til et degredert objekt.

FĂžrst leser vi 4 MB pĂ„ 22 ms, skriver i 22 ms, og deretter skriver vi 4 KB med faktiske data pĂ„ 1 ms. Totalt er det 45 ms for Ă©n skriveoperasjon til et degredert objekt pĂ„ SSD, nĂ„r standardytelsen vĂ„r var 1 ms — en ytelsesreduksjon pĂ„ 45 ganger.

Jo hĂžyere prosentandel av degredere objekter vi har, desto verre blir det.

Det viser seg at hastigheten pÄ rebalansering er kritisk viktig for korrekt drift av klyngen.

Spesifikke innstillinger for servere for Ceph

Ceph kan trenge spesifikk tuning av verten.

Eksempel: sysctl-innstillinger og samme JumboFrame, noen av disse innstillingene kan ha en negativ innvirkning pÄ payloadet ditt.

Den reelle nÞdvendigheten av Rook er fortsatt et spÞrsmÄl.

Hvis du er i skyen, har du lagring fra din skyleverandĂžr, noe som er mye mer praktisk.

Hvis du er pÄ dine egne servere, vil administrasjon av Ceph vÊre mer praktisk uten Kubernetes.

Leier du servere fra en slags lavpris hosting? Da venter det mye moro med nettverk, dets forsinkelser og bÄndbredde, noe som Äpenbart pÄvirker Ceph negativt.

Totalt: Implementering av Kubernetes og implementering av lagring er forskjellige oppgaver med forskjellige inngangsverdier og forskjellige lĂžsningsalternativer — Ă„ blande dem betyr Ă„ gjĂžre en potensielt farlig trade-off til fordel for den ene eller den andre. Å kombinere disse lĂžsningene vil vĂŠre veldig vanskelig selv pĂ„ designfasen, og det er fortsatt driftsperioden.

Liste over brukt litteratur:

Innlegg #1 Men sier du Ceph
 er han sÄ bra?
Innlegg #2 Ceph. Katastrofens anatomi

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster