Shardallokering och ombalansering
Förstå hur Elasticsearch avgör var shards ska placeras, hur allocation awareness sprider repliker över maskinvara och hur ni styr ombalansering vid skalning och underhåll.
Shardallokering och ombalansering är en gratis lektion i Elasticsearch och system för fulltextsökning på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Elasticsearch och system för fulltextsökning, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Elasticsearch och system för fulltextsökning innehåller totalt 4 lektioner.
Vart placeras shards?
När du skapar ett index eller lägger till en nod måste Elasticsearch avgöra vilken nod som ska innehålla varje shard. Den här processen kallas shardallokering, och en balanserad fördelning är avgörande för ett felfritt och högpresterande kluster.
Allokeringsprocessen
Huvudnoden kör allokeringsbeslut för varje ej tilldelad shard. De kontrollerar diskutrymme, antal shards, regler för medvetenhet och filter innan en shard placeras. Om något allokeringsbeslut inte godkänns förblir sharden UNASSIGNED.
Placering av primära shards och repliker
En replik allokeras aldrig till samma nod som sin primära shard. Det garanterar att förlusten av en nod inte slår ut båda kopiorna av samma data. Med en replik överlever du alla fel på en enskild nod.
Övervaka allokeringen
Använd API:et _cat/shards för att se var varje shard finns och vilket tillstånd den har. STARTED betyder aktiv; RELOCATING betyder att den flyttas.
GET _cat/shards?vFörklara en shard som har fastnat
När en shard inte allokeras visar API:et _cluster/allocation/explain exakt vilket allokeringsbeslut som blockerade den och varför. Detta är det första steget vid felsökning av ett gult eller rött kluster.
GET _cluster/allocation/explain
{
"index": "my_index",
"shard": 0,
"primary": false
}Allokeringsmedvetenhet
Allokeringsmedvetenhet sprider kopior över fysiska gränser som rack eller tillgänglighetszoner. Du märker noder med anpassade attribut och talar om för klustret att ta hänsyn till dem.
cluster.routing.allocation.awareness.attributes: zoneTvingad medvetenhet
Tvingad medvetenhet går längre: den vägrar att överallokera repliker till kvarvarande zoner om en zon slutar fungera, så att en zon inte får alla kopior. Det skyddar kapacitetsplaneringen vid avbrott.
cluster.routing.allocation.awareness.force.zone.values: zone1,zone2Shardfiltrering
Du kan låsa ett index till eller utesluta det från specifika noder med hjälp av allokeringsfilter. Det är praktiskt i hot/warm-arkitekturer där äldre index flyttas till billigare maskinvara.
PUT my_index/_settings
{
"index.routing.allocation.require.box_type": "warm"
}Ombalansering
När noder ansluter eller lämnar klustret ombalanserar klustret för att jämna ut antalet shards. Detta sker automatiskt men genererar nätverks- och disk-I/O, så det bör styras under känsliga åtgärder.
Pausa allokering
Innan en rullande omstart inaktiverar du allokeringen, så att klustret inte slösar resurser på att flytta shards från en nod som du snart kommer att starta igen. Aktivera den på nytt efteråt.
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "primaries"
}
}Begränsa samtidighet
Begränsa samtidiga återställningar med cluster.routing.allocation.node_concurrent_recoveries och bandbredden med indices.recovery.max_bytes_per_sec för att förhindra att ombalanseringen svälter aktiva frågor på resurser.
Snabbkontroll
Testa din förståelse av shardallokering.
Sammanfattning
Du har lärt dig hur shards placeras och balanseras:
- Allokeringsbeslut väljer shardarnas placering; repliker placeras inte på samma nod som sin primära shard.
- Felsök shards som har fastnat med
allocation/explain. - Allokeringsmedvetenhet och tvingad medvetenhet sprider kopior över zoner.
- Använd allokeringsfilter för hot/warm-nivåer och inaktivera allokering under rullande omstarter.
Lär dig Elasticsearch och system för fulltextsökning med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Shardallokering och ombalansering” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Elasticsearch och system för fulltextsökning, inklusive ”Shardallokering och ombalansering”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Elasticsearch och system för fulltextsökning innehåller totalt 4 lektioner.
Vad lär jag mig i ”Shardallokering och ombalansering”?
Förstå hur Elasticsearch avgör var shards ska placeras, hur allocation awareness sprider repliker över maskinvara och hur ni styr ombalansering vid skalning och underhåll. Ni övar på Elasticsearch och system för fulltextsökning med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Elasticsearch och system för fulltextsökning?
Du behöver inga förkunskaper. Utbildningen i Elasticsearch och system för fulltextsökning på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Shardallokering och ombalansering”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Elasticsearch och system för fulltextsökning-lektionen?
Ja. Varje Elasticsearch och system för fulltextsökning-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Sharding och repliker förklarat
- Klusterhälsa och övervakning
- Nodroller och arkitektur
- Shardallokering och ombalansering