Amazon OpenSearch Service nyligen introducerad Multi-AZ med standby, ett distributionsalternativ utformat för att ge företag förbättrad tillgänglighet och konsekvent prestanda för kritiska arbetsbelastningar. Med den här funktionen kan hanterade kluster uppnå 99.99 % tillgänglighet samtidigt som de förblir motståndskraftiga mot zonbaserade infrastrukturfel.
I det här inlägget utforskar vi hur sökning och indexering fungerar med Multi-AZ med Standby och fördjupar oss i de underliggande mekanismerna som bidrar till dess tillförlitlighet, enkelhet och feltolerans.
Bakgrund
Multi-AZ med Standby distribuerar OpenSearch Service-domäninstanser över tre Tillgänglighetszoner, med två zoner utsedda som aktiva och en som vänteläge. Denna konfiguration säkerställer konsekvent prestanda, även i händelse av zonfel, genom att bibehålla samma kapacitet i alla zoner. Viktigt är att denna beredskapszon följer en statiskt stabil design, vilket eliminerar behovet av kapacitetsförsörjning eller dataförflyttning under fel.
Under ordinarie verksamhet hanterar den aktiva zonen koordinatortrafik för både läs- och skrivförfrågningar, samt shard-förfrågningstrafik. Standby-zonen, å andra sidan, tar bara emot replikeringstrafik. OpenSearch Service använder ett synkront replikeringsprotokoll för skrivförfrågningar. Detta gör det möjligt för tjänsten att omedelbart höja en standby-zon till aktiv status i händelse av ett fel (medeltid till failover <= 1 minut), känd som en zonal failover. Den tidigare aktiva zonen degraderas sedan till standbyläge, och återställningsoperationer påbörjas för att återställa dess friska tillstånd.
Söktrafikdirigering och failover för att garantera hög tillgänglighet
I en OpenSearch Service-domän, en samordnare är vilken nod som helst som hanterar HTTP(S)-förfrågningar, speciellt indexering och sökförfrågningar. I en Multi-AZ med Standby-domän fungerar datanoderna i den aktiva zonen som koordinatorer för sökförfrågningar.
Under frågefasen av en sökförfrågan bestämmer samordnaren vilka skärvor som ska frågas och skickar en begäran till datanoden som är värd för skärvkopian. Frågan körs lokalt på varje fragment och matchade dokument returneras till koordinatornoden. Koordinatornoden, som ansvarar för att skicka förfrågan till noder som innehåller skärvor, kör processen i två steg. Först skapar den en iterator som definierar i vilken ordning noder måste frågas efter en fragmenterad kopia så att trafiken är jämnt fördelad över fragmentariska kopior. Därefter skickas begäran till relevanta noder.
För att skapa en ordnad lista med noder som ska frågas efter en skärvkopia, använder koordinatornoden olika algoritmer. Dessa algoritmer inkluderar round-robin-val, adaptivt replikval, preferensbaserad shard-routing och viktad round-robin.
För Multi-AZ med Standby används den viktade round-robin-algoritmen för val av skärvkopior. I detta tillvägagångssätt tilldelas aktiva zoner vikten 1 och standbyzonen tilldelas vikten 0. Detta säkerställer att ingen lästrafik skickas till datanoder i reservtillgänglighetszonen.
Vikterna lagras i klustertillståndsmetadata som ett JSON-objekt:
Som visas i följande skärmdump, us-east-1b
Region har sin zonstatus som StandBy
, vilket indikerar att datanoderna i denna tillgänglighetszon är i viloläge och inte tar emot sök- eller indexeringsförfrågningar från lastbalanseraren.
För att upprätthålla steady-state-drift roteras standby-tillgänglighetszonen var 30:e minut, vilket säkerställer att alla nätverksdelar täcks över tillgänglighetszoner. Detta proaktiva tillvägagångssätt verifierar tillgängligheten av läsvägar, vilket ytterligare förbättrar systemets motståndskraft under potentiella fel. Följande diagram illustrerar denna arkitektur.
I det föregående diagrammet har Zon-C en viktad round-robin-vikt inställd på noll. Detta säkerställer att datanoderna i standby-zonen inte tar emot någon indexering eller söktrafik. När koordinatorn frågar efter datanoder för skärvkopior, använder den en viktad round-robin-vikt för att bestämma i vilken ordning noder som ska frågas. Eftersom vikten är noll för standby-tillgänglighetszonen skickas inte koordinatorförfrågningar.
I ett OpenSearch Service-kluster kan den aktiva zonen och standby-zonen kontrolleras när som helst med hjälp av tillgänglighetszonens rotationsmått, som visas i följande skärmdump.
Under zonavbrott växlar standby-tillgänglighetszonen sömlöst till felöppningsläge för sökförfrågningar. Detta innebär att fragment-förfrågningstrafiken dirigeras till alla Tillgänglighetszoner, även de i standbyläge, när en sund fragmenterad kopia inte är tillgänglig i den aktiva Tillgänglighetszonen. Denna misslyckade tillvägagångssätt skyddar sökförfrågningar från störningar under fel, vilket säkerställer kontinuerlig service. Följande diagram illustrerar denna arkitektur.
I det föregående diagrammet, under det stationära tillståndet, skickas shard-förfrågningstrafiken till datanoden i de aktiva tillgänglighetszonerna (Zone-A och Zone-B). På grund av nodfel i Zon-A, kan standby-tillgänglighetszonen (Zone-C) inte öppnas för att ta shard-förfrågningstrafik så att det inte blir någon inverkan på sökförfrågningarna. Så småningom upptäcks Zon-A som ohälsosam och läsfelet växlar standby till Zon-A.
Hur failover säkerställer hög tillgänglighet under skrivnedsättning
OpenSearch Service-replikeringsmodellen följer en primär säkerhetskopieringsmodell, kännetecknad av dess synkrona karaktär, där bekräftelse från alla fragmentariska kopior är nödvändig innan en skrivbegäran kan kvitteras till användaren. En anmärkningsvärd nackdel med denna replikeringsmodell är dess känslighet för avmattningar i händelse av någon försämring av skrivvägen. Dessa system förlitar sig på en aktiv ledarnod för att identifiera fel eller förseningar och sedan sända denna information till alla noder. Hur lång tid det tar att upptäcka dessa problem (medeltiden att upptäcka) och därefter lösa dem (medeltiden att reparera) avgör till stor del hur länge systemet kommer att fungera i ett nedsatt tillstånd. Dessutom kan varje nätverkshändelse som påverkar kommunikation mellan zoner avsevärt hindra skrivförfrågningar på grund av replikeringens synkrona natur.
OpenSearch Service använder ett internt nod-till-nod kommunikationsprotokoll för att replikera skrivtrafik och koordinera metadatauppdateringar genom en vald ledare. Att sätta zonen som upplever stress i standby-läge skulle följaktligen inte effektivt lösa problemet med skrivförsämring.
Zonal write failover: Avbryter replikeringstrafik mellan zoner
För Multi-AZ med Standby, för att mildra potentiella prestandaproblem som orsakas under oförutsedda händelser som zonfel och nätverkshändelser, är zonal write failover ett effektivt tillvägagångssätt. Detta tillvägagångssätt innebär att noder i den påverkade zonen tas bort från klustret på ett graciöst sätt, vilket effektivt stänger av in- och utgående trafik mellan zonerna. Genom att bryta replikeringstrafiken mellan zonerna kan effekterna av zonfel begränsas inom den drabbade zonen. Detta ger en mer förutsägbar upplevelse för kunderna och säkerställer att systemet fortsätter att fungera tillförlitligt.
Graciös skrivfel
Orkestreringen av en skriv-failover inom OpenSearch Service utförs av den valda ledarnoden genom en väldefinierad mekanism. Denna mekanism inbegriper ett konsensusprotokoll för klusterstatspublicering, vilket säkerställer enhällighet mellan alla noder för att utse en enda zon (hela tiden) för avveckling. Viktigt är att metadata relaterade till den drabbade zonen replikeras över alla noder för att säkerställa att den håller i sig, även under en fullständig omstart i händelse av ett avbrott.
Vidare säkerställer ledarnoden en smidig och graciös övergång genom att initialt placera noderna i de drabbade zonerna i beredskap under en varaktighet av 5 minuter innan I/O-fäktning påbörjas. Detta avsiktliga tillvägagångssätt förhindrar all ny koordinatortrafik eller fragmenteringstrafik från att dirigeras till noderna inom den påverkade zonen. Detta gör i sin tur att dessa noder kan slutföra sina pågående uppgifter graciöst och gradvis hantera alla förfrågningar ombord innan de tas ur drift. Följande diagram illustrerar denna arkitektur.
I processen med att implementera en skriv-failover för en ledarnod, följer OpenSearch Service dessa nyckelsteg:
- Ledarabdikering – Om ledarnoden råkar vara belägen i en zon som är schemalagd för skrivfel, säkerställer systemet att ledarnoden frivilligt hoppar av sin ledarroll. Denna abdikering genomförs på ett kontrollerat sätt och hela processen överlämnas till en annan berättigad nod, som sedan tar hand om de åtgärder som krävs.
- Förhindra omval av ledare som ska avsättas – För att förhindra återval av en ledare från en zon markerad för skrivfailover, när den berättigade ledarenoden initierar skrivfailöveråtgärden, vidtar den åtgärder för att säkerställa att eventuella ledarenoder som ska avvecklas inte deltar i ytterligare val. Detta uppnås genom att utesluta ledarnoden som ska tas ur drift från röstningskonfigurationen, vilket effektivt förhindrar den från att rösta under någon kritisk fas av klustrets drift.
Metadata relaterad till skrivfelszonen lagras i klustertillståndet, och denna information publiceras till alla noder i det distribuerade OpenSearch Service-klustret enligt följande:
Följande skärmdump visar att under en nätverksavmattning i en zon hjälper skrivfel över att återställa tillgängligheten.
Zonåterställning efter skrivfel
Processen för zonal recommissioning spelar en avgörande roll i återställningsfasen efter en zonal write failover. Efter att den påverkade zonen har återställts och anses vara stabil, kommer de noder som tidigare avvecklades att ansluta sig till klustret. Denna återdrifttagning sker vanligtvis inom en tidsram på 2 minuter efter att zonen har tagits i drift igen.
Detta gör det möjligt för dem att synkronisera med sina peer-noder och initierar återställningsprocessen för replikskärvor, vilket effektivt återställer klustret till önskat tillstånd.
Slutsats
Introduktionen av OpenSearch Service Multi-AZ med Standby ger företag en kraftfull lösning för att uppnå hög tillgänglighet och konsekvent prestanda för kritiska arbetsbelastningar. Med det här distributionsalternativet kan företag förbättra sin infrastrukturs motståndskraft, förenkla klusterkonfiguration och hantering och tillämpa bästa praxis. Med funktioner som viktat round-robin-val av skärvor, proaktiva failover-mekanismer och felöppna standby-tillgänglighetszoner, säkerställer OpenSearch Service Multi-AZ med standby en pålitlig och effektiv sökupplevelse för krävande företagsmiljöer.
För mer information om Multi-AZ med Standby, se Amazon OpenSearch Service Under the Hood: Multi-AZ med standby.
Om författaren
Anshu Agarwal är en senior mjukvaruingenjör som arbetar med AWS OpenSearch på Amazon Web Services. Hon brinner för att lösa problem relaterade till att bygga skalbara och mycket pålitliga system.
Rishab Nahata är en mjukvaruingenjör som arbetar med OpenSearch på Amazon Web Services. Han är fascinerad av att lösa problem i distribuerade system. Han är aktiv bidragsgivare till OpenSearch.
Bukhtawar Khan är en huvudingenjör som arbetar på Amazon OpenSearch Service. Han är intresserad av distribuerade och autonoma system. Han är en aktiv bidragsgivare till OpenSearch.
Ranjith Ramachandra är en ingenjörschef som arbetar på Amazon OpenSearch Service på Amazon Web Services.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/big-data/achieve-high-availability-in-amazon-opensearch-multi-az-with-standby-enabled-domains-a-deep-dive-into-failovers/
- : har
- :är
- :inte
- :var
- 1
- 10
- 100
- 12
- 30
- 501
- a
- Om oss
- Uppnå
- uppnås
- medgav
- tvärs
- Agera
- Handling
- åtgärder
- aktiv
- adaptiv
- Dessutom
- adress
- påverkas
- Efter
- Avtal
- algoritm
- algoritmer
- Alla
- tillåter
- amason
- Amazon Web Services
- bland
- an
- och
- Annan
- vilken som helst
- tillvägagångssätt
- arkitektur
- ÄR
- AS
- delad
- At
- autonom
- autonoma system
- tillgänglighet
- medvetenhet
- AWS
- säkerhetskopiering
- gunga
- BE
- därför att
- varit
- innan
- Där vi får lov att vara utan att konstant prestera,
- BÄST
- bästa praxis
- mellan
- båda
- sända
- Byggnad
- företag
- by
- KAN
- Kapacitet
- genom
- orsakas
- känne
- laddning
- kontrollerade
- kluster
- Kommunikation
- Trygghet i vårdförloppet
- fullborda
- konfiguration
- Konsensus
- Följaktligen
- anses
- konsekvent
- Konsol
- innehöll
- fortsätter
- kontinuerlig
- bidra
- bidragsgivare
- kontrolleras
- samordnande
- Samordnare
- koordinatorer
- kopior
- omfattas
- skapa
- skapar
- kritisk
- avgörande
- Kunder
- skärning
- datum
- beslutar
- djup
- djupdykning
- definierar
- fördröjningar
- gräva
- krävande
- utplacering
- vecklas ut
- betecknad
- utformade
- önskas
- upptäcka
- detekterad
- bestämd
- riktad
- Störningar
- distribueras
- distribuerade system
- Dyk
- do
- dokument
- domän
- domäner
- inte
- ner
- grund
- varaktighet
- under
- varje
- Effektiv
- effektivt
- effektiv
- valdes
- Val
- berättigad
- eliminera
- aktiverad
- möjliggör
- förstärka
- ingenjör
- Teknik
- förbättra
- förbättrad
- förbättra
- säkerställa
- säkerställer
- säkerställa
- Företag
- Hela
- miljöer
- speciellt
- Eter (ETH)
- Även
- händelse
- händelser
- så småningom
- Varje
- exklusive
- erfarenhet
- upplever
- utforska
- misslyckas
- Misslyckande
- misslyckanden
- Leverans
- Funktioner
- stängsel
- Förnamn
- efter
- följer
- För
- RAM
- från
- full
- ytterligare
- gif
- Graciös
- gradvis
- garanti
- sidan
- hantera
- Handtag
- händer
- he
- friska
- hjälper
- Hög
- höggradigt
- huva
- värd
- Hur ser din drömresa ut
- http
- HTTPS
- identifiera
- if
- illustrerar
- Inverkan
- påverkade
- nedsättning
- genomföra
- viktigt
- in
- innefattar
- indikerar
- informationen
- Infrastruktur
- initialt
- initierar
- initiering
- instanser
- intresserad
- inre
- in
- introducerade
- Beskrivning
- innebär
- fråga
- problem
- IT
- DESS
- jpg
- json
- Nyckel
- känd
- till stor del
- ledare
- Ledarskap
- tycka om
- Lista
- läsa in
- lokalt
- belägen
- Lång
- bibehålla
- upprätthålla
- förvaltade
- ledning
- chef
- sätt
- markant
- matchas
- betyda
- betyder
- åtgärder
- mekanism
- mekanismer
- metadata
- Metrics
- minut
- minuter
- Mildra
- Mode
- modell
- mer
- rörelse
- Natur
- nödvändigt för
- Behöver
- nät
- nätverk
- Nya
- Nej
- nod
- noder
- anmärkningsvärd
- objektet
- of
- sänkt
- on
- ONE
- pågående
- endast
- öppet
- driva
- drift
- Verksamhet
- Alternativet
- or
- orkestrering
- beställa
- Övriga
- ut
- strömavbrott
- avbrott
- över
- delta
- reservdelar till din klassiker
- brinner
- bana
- banor
- jämlikar
- prestanda
- persistens
- fas
- placering
- plato
- Platon Data Intelligence
- PlatonData
- spelar
- Inlägg
- potentiell
- den mäktigaste
- praxis
- föregående
- Förutsägbar
- förhindra
- förebyggande
- förhindrar
- tidigare
- primär
- Principal
- Proaktiv
- problem
- process
- främja
- protokoll
- ge
- ger
- Offentliggörande
- publicerade
- sätta
- sökfrågor
- Läsa
- motta
- erhåller
- nyligen
- Recover
- återhämta
- återvinning
- hänvisa
- region
- regelbunden
- relaterad
- relevanta
- tillförlitlighet
- pålitlig
- förlita
- Återstående
- avlägsnande
- reparation
- svara
- replikeras
- replikation
- begära
- förfrågningar
- Obligatorisk
- motståndskraft
- elastisk
- Lös
- ansvarig
- återställa
- återställd
- återställa
- Roll
- routing
- Körning
- kör
- s
- skyddsåtgärder
- Samma
- skalbar
- planerad
- sömlöst
- Sök
- Val
- skicka
- sänder
- senior
- skickas
- service
- Tjänster
- in
- hon
- visas
- signifikant
- enkelhet
- förenkla
- enda
- Sakta ner
- nedgångar
- släta
- So
- Mjukvara
- Programvara ingenjör
- lösning
- Lösa
- stabil
- Ange
- status
- stadig
- Steg
- lagras
- påkänning
- Senare
- framgångsrik
- känslighet
- system
- System
- Ta
- tagen
- tar
- uppgifter
- den där
- Smakämnen
- deras
- Dem
- sedan
- Där.
- Dessa
- detta
- de
- tre
- Genom
- tid
- gånger
- till
- tolerans
- trafik
- övergång
- SVÄNG
- två
- typiskt
- under
- underliggande
- oförutsedd
- Uppdateringar
- Begagnade
- Användare
- användningar
- med hjälp av
- Återvinnare
- olika
- frivilligt
- Röstning
- we
- webb
- webbservice
- vikt
- VÄL
- väldefinierad
- były
- när
- som
- medan
- kommer
- med
- inom
- arbetssätt
- fungerar
- skriva
- zephyrnet
- noll-
- zoner