Automatisk återbalansering av skärvor överensstämmer med begränsningar och regler som tilldelningsfiltrering och tvingad medvetenhet, vilket leder till ett så effektivt och välbalanserat kluster som möjligt.
NOTERA: Förväxla inte omfördelning av skärvor, vilket är processen för att hitta och flytta icke tilldelade skärvor till de noder där de finns, med ombalansering. Ombalansering tar tilldelade skärvor och flyttar dem jämnt till olika noder, syftet är lika fördelning av skärvor per nod.
Hur man aktiverar automatisk ombalansering
För att aktivera automatisk återbalansering av kluster i Elasticsearch kan vi använda PUT-begäran to_cluster API endpoint och lägga till de inställningar vi behöver.
De tillgängliga inställningarna för dynamisk återbalansering av skärvor inkluderar:
- klunga.dirigering.återbalansera.Gör det möjligt: Kontrollerar automatisk återbalansering för olika skärtyper, såsom:
- Allt: Uppsättningar möjliggör återbalansering av skärvor för alla index.
- Ingen: Inaktiverar skärbalansering för alla index.
- Kopior: Endast ombalans mellan repliker är tillåten.
- Primär: Endast primär skärbalansering är tillåten.
- klunga.dirigering.tilldelning.allow_rebalance: Ställer in värdet för skärbalansering. Alternativen inkluderar:
- Alltid: Aktiverar ombalansering på obestämd tid.
- Indices_primaries_active: Tillåter ombalansering endast när alla primära skärvor i klustret tilldelas.
- Indices_all_active: Tillåter ombalansering när endast skärvorna i klustret tilldelas. Detta inkluderar både primär- och replikskärvorna.
- klunga.dirigering.tilldelning.klunga.samverkande.återbalansera: Det här alternativet anger antalet tillåtna ombalanser som tillåts i klustret. Standardvärdet är 2.
Överväg begäran nedan för att tillåta automatisk återbalansering av skärvor för klustret.
PUT / _cluster / inställningar"ihållande":
"klunga.dirigering.återbalansera.aktivera ":" primaries ",
"klunga.dirigering.tilldelning.allow_rebalance ":" alltid " ,
"klunga.dirigering.tilldelning.cluster_concurrent_rebalance ":" 2 "
Följande är cURL-kommandot:
curl -XPUT "http: // localhost: 9200 / _cluster / settings" -H 'Content-Type: application / json' -d '"persistent": "cluster.dirigering.återbalansera.aktivera ":" primaries "," cluster.dirigering.tilldelning.allow_rebalance ":" alltid "," kluster.dirigering.tilldelning.cluster_concurrent_rebalance ":" 2 " 'Detta kommando ska returnera ett svar när JSON-objektet bekräftar de inställningar som uppdateras.
”Erkänt”: sant,
"ihållande":
"kluster":
"routing":
"balansera om":
"enable": "primaries"
,
"allokering":
"allow_rebalance": "alltid",
"cluster_concurrent_rebalance": "2"
,
"övergående":
Manuell indexbalansering
Du kan också balansera en skärv manuellt för ett visst index. Jag skulle inte rekommendera det här alternativet eftersom Elasticsearch-standardalternativ för ombalansering är mycket effektiva.
Om behovet av manuell ombalansering skulle uppstå kan du dock använda följande begäran:
"Erkänd": sant,
"ihållande":
"kluster":
"routing":
"balansera om":
"enable": "primaries"
,
"allokering":
"allow_rebalance": "alltid",
"cluster_concurrent_rebalance": "2"
,
"övergående":
Kommandot cURL är:
curl -XPOST "http: // localhost: 9200 / _cluster / omdirigera" -H 'Content-Type: application / json' -d '"commands": ["move": "index": "kibana_sample_data_flights", "shard": 0, "from_node": "instans-0000000001", "to_node": "instans-0000000002"] 'NOTERA: Tänk på att om du utför en manuell återbalansering kan Elasticsearch flytta skärvorna automatiskt för att säkerställa bästa möjliga återbalansering.
Slutsats
Den här guiden guidade dig genom att uppdatera och ändra inställningarna för ett Elasticsearch-kluster för att möjliggöra automatisk återbalansering av skärvor. Artikeln omfattade också manuell ombalansering, om du behöver det.