Infrastruktuuri tõrgete mõju Amazon OpenSearch Service'i killule

Infrastruktuuri tõrgete mõju Amazon OpenSearch Service'i killule

Allikasõlm: 1783553

Amazon OpenSearchi teenus on hallatav teenus, mis muudab OpenSearchi ja Elasticsearchi pärandklastrite AWS-i pilves ulatusliku turvalisuse, juurutamise ja haldamise lihtsaks. Amazon OpenSearch Service pakub teie klastri jaoks kõiki ressursse, käivitab selle ning tuvastab ja asendab automaatselt ebaõnnestunud sõlmed, vähendades isehallatavate infrastruktuuride üldkulusid. Teenus muudab interaktiivse logianalüütika teostamise, rakenduste reaalajas jälgimise, veebisaidiotsingu ja muu lihtsaks, pakkudes OpenSearchi uusimaid versioone, tuge 19 Elasticsearchi versioonile (versioonid 1.5–7.10) ja visualiseerimisvõimalusi, mida toetab OpenSearchi juhtpaneelid ja Kibana (versioonid 1.5–7.10).

Viimases teenusetarkvara versioonis oleme värskendanud kildude eraldamise loogikat nii, et see oleks koormusteadlik, nii et kui sõlmede tõrgete korral killud ümber jagatakse, ei luba teenus ellujäänud sõlmedel saada ülekoormamist varem ebaõnnestunud sõlmes hostitud kildudega. See on eriti oluline Multi-AZ domeenide jaoks, et tagada klastri järjepidev ja prognoositav jõudlus.

Kui soovite üldiselt killu jaotamise loogika kohta lisateavet, vaadake Elasticsearchi killu eraldamise demüstifitseerimine.

Väljakutse

Väidetavalt on Amazon OpenSearch Service'i domeen "tasakaalustatud", kui sõlmede arv on konfigureeritud saadavustsoonide vahel võrdselt jaotatud ja kildude koguarv on jaotatud võrdselt kõigi saadaolevate sõlmede vahel, ilma et ühegi indeksi killud oleksid koondunud ühelegi ühele. sõlm. Samuti on OpenSearchil atribuut nimega "Tsooniteadlikkus", mis lubamisel tagab esmase killu ja selle vastava koopia eraldamise erinevatesse saadavustsoonidesse. Kui teil on rohkem kui üks andmete koopia, tagab mitu saadavuse tsooni parema tõrketaluvuse ja saadavuse. Kui domeeni skaleeritakse või skaleeritakse või sõlme(de) rikke ajal, jaotab OpenSearch automaatselt killud ümber saadaolevate sõlmede vahel, järgides tsooniteadlikkusel põhinevaid jaotusreegleid.

Kuigi kildude tasakaalustamise protsess tagab, et killud jaotuvad saadavuse tsoonide vahel ühtlaselt, jaotatakse mõnel juhul, kui ühes tsoonis esineb ootamatu rike, killud ümber ellujäänud sõlmedesse. See võib kaasa tuua ellujäänud sõlmede ülekoormamise, mis mõjutab klastri stabiilsust.

Näiteks kui üks sõlm kolmest sõlmest koosnevas klastris läheb alla, jaotab OpenSearch ümber määramata killud, nagu on näidatud järgmisel diagrammil. Siin tähistab "P" esmast koopiat, samas kui "R" tähistab koopiat.

Seda domeeni käitumist saab seletada kahes osas – rikke ja taastumise ajal.

Ebaõnnestumise ajal

Mitmes saadavuse tsoonis juurutatud domeen võib oma elutsükli jooksul kokku puutuda mitut tüüpi tõrgetega.

Täielik tsooni rike

Klaster võib erinevatel põhjustel kaotada ühe saadavuse tsooni ja ka kõik selle tsooni sõlmed. Täna üritab teenus paigutada kadunud sõlmed ülejäänud tervetesse saadavustsoonidesse. Teenus proovib ka ülejäänud sõlmedes kadunud killud uuesti luua, järgides samas eraldamisreegleid. See võib põhjustada soovimatuid tagajärgi.

  • Kui mõjutatud tsooni killud jaotatakse ümber tervetesse tsoonidesse, käivitavad need killud, mis võivad suurendada latentsusaega, kuna see kulutab täiendavaid protsessoritsükleid ja võrgu ribalaiust.
  • N-AZ, n-koopia seadistuse (n>1) korral eraldatakse säilinud n-1 saadavuse tsooni n-nda koopiaga, mis võib olla ebasoovitav, kuna võib põhjustada killu jaotuse viltu, mis võib samuti põhjustada sõlmedevaheline tasakaalustamata liiklus. Need sõlmed võivad saada ülekoormatud, mis toob kaasa täiendavaid tõrkeid.

Osaline tsooni rike

Osalise tsooni tõrke korral või kui domeen kaotab ainult mõned saadavuse tsooni sõlmed, püüab Amazon OpenSearch Service ebaõnnestunud sõlmed võimalikult kiiresti asendada. Kui aga sõlmede asendamine võtab liiga kaua aega, proovib OpenSearch eraldada selle tsooni määramata killud saadavuse tsoonis säilinud sõlmedesse. Kui teenus ei saa asendada mõjutatud saadavuse tsooni sõlmpunkte, võib see eraldada need teise konfigureeritud saadavuse tsooni, mis võib veelgi moonutada kildude jaotust nii tsoonis kui ka sees. Sellel on jällegi soovimatud tagajärjed.

  • Kui domeeni sõlmedel pole täiendavate kildude mahutamiseks piisavalt salvestusruumi, saab domeeni kirjutamise blokeerida, mis mõjutab indekseerimistoimingut.
  • Kildude kallutatud jaotuse tõttu võib domeenis esineda ka sõlmede vahelist liiklust, mis võib lugemis- ja kirjutamistoimingute latentsusaega või ajalõppe veelgi suurendada.

Taastamine

Tänapäeval käivitab Amazon OpenSearch Service domeeni soovitud sõlmede arvu säilitamiseks ülejäänud tervetes saadavuse tsoonides andmesõlmed, sarnaselt ülaltoodud tõrgete jaotises kirjeldatud stsenaariumidega. Et tagada sõlmede õige jaotus kõigis saadavuse tsoonides pärast sellist juhtumit, vajas AWS käsitsi sekkumist.

Mis muutub

Et parandada üldist rikete käsitlemist ja minimeerida tõrke mõju domeeni tervisele ja jõudlusele, viib Amazon OpenSearch Service läbi järgmised muudatused.

  • Sundtsooni teadlikkus: OpenSearchil on olemasolev killu tasakaalustamise konfiguratsioon, mida nimetatakse sundteadlikkuseks, mida kasutatakse saadavuse tsoonide määramiseks, millele killud tuleb eraldada. Näiteks kui teil on teadlikkuse atribuut nimega tsoon ja konfigureerite sõlmed zone1 ja zone2, saate kasutada sundteadlikkust, et takistada OpenSearchil replikaid eraldamast, kui saadaval on ainult üks tsoon:
cluster.routing.allocation.awareness.attributes: zone
cluster.routing.allocation.awareness.force.zone.values: zone1,zone2

Selle näidiskonfiguratsiooni korral, kui alustate kahte sõlme node.attr.zone seatud zone1 ja luua viie killu ja ühe koopiaga indeks, loob OpenSearch indeksi ja eraldab viis peamist kildu, kuid mitte koopiaid. Koopiad eraldatakse ainult ühekordselt koos sõlmedega node.attr.zone seatud zone2 on olemas.

Amazon OpenSearch Service kasutab Multi-AZ domeenides sunnitud teadlikkuse konfiguratsiooni tagamaks, et killud eraldatakse ainult vastavalt tsooniteadlikkuse reeglitele. See hoiaks ära tervete saadavustsoonide sõlmede koormuse järsu suurenemise.

  • Koormusteadlik killu eraldamine: Amazon OpenSearch Service võtab eeldatava keskmise kildude arvu põhjal sõlme kohta arvutamiseks arvesse selliseid tegureid nagu ette nähtud võimsus, tegelik võimsus ja killukoopiate koguarv. See takistaks kildude määramist, kui mõni sõlm on eraldanud kildude arvu, mis ületab selle piiri.

märkused et mis tahes määramata esmane koopia oleks siiski lubatud ülekoormatud sõlmes, et vältida klastri peatset andmekadu.

Samamoodi teeb Amazon OpenSearch Service käsitsi taastamise probleemi lahendamiseks (nagu kirjeldatud ülaltoodud jaotises Taaste) muudatusi ka oma sisemises skaleerimiskomponendis. Uuemate muudatuste korral ei käivita Amazon OpenSearch Service ülejäänud saadavuse tsoonides sõlmi isegi siis, kui see läbib eelnevalt kirjeldatud tõrkestsenaariumi.

Praeguse ja uue käitumise visualiseerimine

Näiteks on Amazon OpenSearch Service'i domeen konfigureeritud 3-AZ-ga, 6 andmesõlme, 12 esmase killu ja 24 koopiakilduga. Domeen on ette nähtud AZ-1, AZ-2 ja AZ-3 vahel ning mõlemas tsoonis on kaks sõlme.

Praegune killu eraldamine:
Kildude koguarv: 12 esmast + 24 koopiat = 36 kildu
Kättesaadavuse tsoonide arv: 3
Kildude arv tsooni kohta (tsooni teadvus on tõene): 36/3 = 12
Sõlmede arv saadavuse tsooni kohta: 2
Kildude arv sõlme kohta: 12/2 = 6

Järgmine diagramm annab visuaalselt domeeni seadistuse. Ringid tähistavad sõlmele eraldatud kildude arvu. Amazon OpenSearch Service eraldab kuus killu sõlme kohta.

Osalise tsooni tõrke ajal, kui AZ-3 üks sõlm ebaõnnestub, määratakse ebaõnnestunud sõlm ülejäänud tsoonile ja tsoonis olevad killud jaotatakse ümber saadaolevate sõlmede alusel. Pärast ülalkirjeldatud muudatusi ei loo klaster pärast sõlme tõrget uut sõlme ega jaota kilde ümber.


Ülaltoodud diagrammil proovib Amazon OpenSearch Service ühe sõlme kaotamisega AZ-3-s käivitada asendusvõimsuse samas tsoonis. Kuid mõne katkestuse tõttu võib tsoon olla kahjustatud ja asendust ei käivitata. Sellisel juhul proovib teenus käivitada puuduliku võimsuse mõnes teises tervislikus tsoonis, mis võib põhjustada tsoonide tasakaalustamatust saadavuse tsoonides. Mõjutatud tsoonis olevad killud topitakse sama tsooni säilinud sõlme külge. Kuid uue käitumise korral prooviks teenus proovida käivitada võimsust samas tsoonis, kuid vältida tasakaalustamatuse vältimiseks puuduliku võimsuse käivitamist teistes tsoonides. Kildude eraldaja tagaks ka selle, et säilinud sõlmed ei koormaks üle.


Samamoodi, kui kõik AZ-3 sõlmed lähevad kaotsi või AZ-3 rikutakse, toob Amazon OpenSearch Service ülejäänud saadavuse tsoonis kadunud sõlmed üles ja jagab ka sõlmede killud ümber. Kuid pärast uusi muudatusi ei eralda Amazon OpenSearch Service ülejäänud tsoonile sõlmi ega püüa kaotatud killud ülejäänud tsooni ümber jaotada. Amazon OpenSearch Service ootab, kuni taastamine toimub ja domeen naaseb pärast taastamist algse konfiguratsiooni juurde.

Kui teie domeenil pole piisavalt võimsust, et taluda saadavuse tsooni kaotamist, võib teie domeeni läbilaskevõime väheneda. Seetõttu on domeeni suuruse määramisel tungivalt soovitatav järgida parimaid tavasid, mis tähendab, et teil on piisavalt ressursse, et taluda ühe saadavuse tsooni tõrke kaotamist.


Praegu nõuab teenus pärast domeeni taastumist käsitsi sekkumist, et tasakaalustada võimsust saadavuse tsoonide vahel, mis hõlmab ka killude liikumist. Uue käitumise korral ei ole aga taastumisprotsessis vaja sekkuda, kuna võimsus taastub mõjutatud tsoonis ja killud jaotatakse automaatselt ka taastatud sõlmedele. See tagab, et ülejäänud ressursside osas ei ole konkureerivaid prioriteete.

Mis siis võid oodata

Pärast oma Amazon OpenSearch Service'i domeeni värskendamist uusimale teenusetarkvara versioonile, domeenid, mis on olnud konfigureeritud parimate tavadega on prognoositavam isegi pärast ühe või mitme andmesõlme kaotamist saadavuse tsoonis. Sõlmes esinevate kildude üldise paiknemise juhtumeid on vähem. Hea tava on varustada piisav võimsus, et taluda ühe tsooni riket

Mõnikord võite näha, et domeen muutub selliste ootamatute tõrgete ajal kollaseks, kuna me ei määra ülekoormatud sõlmedele koopiakilde. See aga ei tähenda, et hästi konfigureeritud domeenis toimuks andmete kadu. Jälgime endiselt, et katkestuste ajal oleks kõik esmased määratud. Seal on automaatne taastamine, mis hoolitseb domeeni sõlmede tasakaalustamise eest ja tagab, et koopiad määratakse pärast tõrke taastumist.

Värskendage oma Amazon OpenSearch Service'i domeeni teenindustarkvara, et need uued muudatused teie domeenile rakenduksid. Lisateavet teenindustarkvara värskendamise protsessi kohta leiate aadressilt Amazon OpenSearch teenuse dokumentatsioon.

Järeldus

Selles postituses nägime, kuidas Amazon OpenSearch Service parandas hiljuti loogikat sõlmede ja kildude jaotamiseks saadavuse tsoonide vahel tsoonide katkestuste ajal.

See muudatus aitab teenusel tagada ühtlasema ja prognoositavama jõudluse sõlmede või tsoonide rikete ajal. Domeenid ei näe kirjutamise ja lugemise töötlemise ajal suurenenud latentsusaega ega kirjutamisplokke, mis tekkisid sõlmedes killustiku liigse jaotamise tõttu mõnikord varem.


Autoritest

Bukhtawar Khan on vanemtarkvarainsener, kes töötab Amazon OpenSearch Service'is. Teda huvitavad hajutatud ja autonoomsed süsteemid. Ta on aktiivne OpenSearchi kaastööline.

Anshu Agarwal on vanemtarkvarainsener, kes töötab Amazon Web Servicesis AWS OpenSearchiga. Ta on kirglik skaleeritavate ja väga töökindlate süsteemide ehitamisega seotud probleemide lahendamise vastu.

Shourya Dutta Biswas on tarkvarainsener, kes töötab Amazon Web Servicesis AWS OpenSearchiga. Ta on kirglik väga vastupidavate hajutatud süsteemide ehitamise vastu.

Rishab Nahata on tarkvarainsener, kes töötab Amazon Web Servicesis OpenSearchiga. Teda köidab probleemide lahendamine hajutatud süsteemides. Ta on aktiivne OpenSearchi kaasautor.

Ranjith Ramachandra on insenerijuht, kes töötab Amazon OpenSearch Service'is Amazon Web Servicesis.

Jon Handler on vanemlahenduste arhitekt, kes on spetsialiseerunud AWS-i otsingutehnoloogiatele – Amazon CloudSearch ja Amazon OpenSearch Service. Asudes Palo Altos, aitab ta paljudel klientidel otsingu- ja logianalüütika töökoormust õigesti rakendada ja hästi toimida.

Ajatempel:

Veel alates AWSi suured andmed