Automatyczne ponowne równoważenie fragmentów jest zgodne z ograniczeniami i regułami, takimi jak filtrowanie alokacji i wymuszona świadomość, co prowadzi do najbardziej wydajnego i zrównoważonego klastra.
UWAGA: Nie należy mylić realokacji fragmentów, czyli procesu znajdowania i przenoszenia nieprzypisanych fragmentów do węzłów, w których się znajdują, z rebalansowaniem. Rebalancing bierze przypisane shardy i przenosi je równomiernie do różnych węzłów, celem jest równe rozłożenie shardów na węzeł.
Jak włączyć automatyczne równoważenie?
Aby włączyć automatyczne ponowne równoważenie klastra w Elasticsearch, możemy użyć żądania PUT do punktu końcowego API klastra i dodać potrzebne ustawienia.
Ustawienia dostępne dla dynamicznego równoważenia fragmentów obejmują:
- grupa.wytyczanie.przywrócić równowagę.włączyć: Kontroluje automatyczne równoważenie dla różnych typów odłamków, takich jak:
- Wszystko: Zestawy umożliwiają rebalansowanie odłamków dla wszystkich indeksów.
- Żaden: Wyłącza rebalansowanie odłamków dla wszystkich indeksów.
- Repliki: Dozwolone jest tylko ponowne zrównoważenie fragmentu repliki.
- Podstawowy: Dozwolone jest tylko rebalansowanie podstawowego fragmentu.
- grupa.wytyczanie.przydział.allow_rebalance: Ustawia wartość dla równoważenia odłamków. Opcje obejmują:
- Zawsze: Umożliwia przywracanie równowagi w nieskończoność.
- Indexs_primaries_active: Umożliwia ponowne równoważenie tylko wtedy, gdy wszystkie podstawowe fragmenty w klastrze są przydzielone.
- Indexs_all_active: Umożliwia ponowne równoważenie, gdy przydzielone są tylko fragmenty w klastrze. Obejmuje to zarówno odłamki podstawowe, jak i repliki.
- grupa.wytyczanie.przydział.grupa.równoległy.zrównoważyć: Ta opcja określa liczbę równoczesnych zmian równoważenia dozwolonych w klastrze. Domyślna wartość to 2.
Rozważ poniższe żądanie, aby zezwolić na automatyczne ponowne równoważenie fragmentów dla klastra.
PUT /_klaster/ustawienia"uporczywy":
"grupa.wytyczanie.przywrócić równowagę.enable: "podstawowe",
"grupa.wytyczanie.przydział.allow_rebalance: "zawsze" ,
"grupa.wytyczanie.przydział.cluster_concurrent_rebalance":"2"
Poniżej znajduje się polecenie cURL:
curl -XPUT "http://localhost:9200/_cluster/settings" -H 'Content-Type: application/json' -d' "persistent": "cluster.wytyczanie.przywrócić równowagę.enable": "podstawowe","klaster.wytyczanie.przydział.allow_rebalance: "zawsze" ,"cluster.wytyczanie.przydział.cluster_concurrent_rebalance":"2" 'To polecenie powinno zwrócić odpowiedź, ponieważ obiekt JSON potwierdza zaktualizowane ustawienia.
„potwierdzony”: prawda,
"uporczywy" :
"klaster" :
"wytyczanie" :
"zrównoważyć" :
"włącz" : "podstawowe"
,
"przydział" :
"allow_rebalance" : "zawsze",
"cluster_concurrent_rebalance" : "2"
,
"przejściowy" :
Ręczne równoważenie indeksu
Możesz również ręcznie zrównoważyć fragment dla określonego indeksu. Nie polecałbym tej opcji, ponieważ domyślne opcje równoważenia Elasticsearch są bardzo wydajne.
Jeśli jednak zajdzie potrzeba ręcznego równoważenia, możesz skorzystać z następującego żądania:
„potwierdzony”: prawda,
"uporczywy" :
"klaster" :
"wytyczanie" :
"zrównoważenie" :
"włącz" : "podstawowe"
,
"przydział" :
"allow_rebalance" : "zawsze",
"cluster_concurrent_rebalance" : "2"
,
"przejściowy" :
Polecenie cURL to:
curl -XPOST "http://localhost:9200/_cluster/reroute" -H 'Content-Type: application/json' -d' "commands" : [ „move” : „index” : "kibana_sample_data_flights", "shard" : 0, "from_node" : "instance-0000000001", "to_node" : "instance-0000000002" ]'UWAGA: Pamiętaj, że jeśli wykonasz ręczne ponowne wyważenie, Elasticsearch może automatycznie przesunąć odłamki, aby zapewnić najlepsze możliwe ponowne wyważenie.
Wniosek
Ten przewodnik przeprowadził Cię przez aktualizację i modyfikację ustawień klastra Elasticsearch, aby umożliwić automatyczne równoważenie fragmentów. Artykuł dotyczył również ręcznego równoważenia, jeśli tego potrzebujesz you.