Muszę zmienić nazwę kilku indeksów w klastrze ( należy zmienić ich nazwę , nie mogę używać aliasów ).
Widziałem, że nie ma obsługiwanych sposobów, aby to zrobić, najbliższy, jaki znalazłem, to zmiana nazwy katalogu indeksu , próbowałem tego w klastrze.
Klaster zawiera 3 maszyny A, Ba Cfragmenty są replikowane na każdym z nich. Wyłączyłem elastyczne wyszukiwanie, zmieniłem Anazwę /var/lib/elasticsearch/security/nodes/0/indices/oldindexnamena /var/lib/elasticsearch/security/nodes/0/indices/newindexnamei uruchomiłem ponownie A.
Stan klastra był żółty, a elastyczne wyszukiwanie robiło magię, aby przywrócić prawidłowy stan. Po jakimś czasie skończyłem z
oldindexnamebycie dostępnym i w pełni replikowanym (odzyskanym zBiCjak sądzę)newindexnamejest dostępny (mogę go przeszukać), ale wtyczka head pokazuje, że jego fragmenty są w stanie „Nieprzypisane” i są wyszarzone (nie są replikowane)
Podczas odzyskiwania security.logpojawił się następujący komunikat:
[2015-02-20 11:02:33,461][INFO ][gateway.local.state.meta ] [A.example.com] dangled index directory name is [newindexname], state name is [oldindexname], renaming to directory name
Chociaż newindexnamemożna go przeszukiwać, z pewnością nie jest w normalnym stanie.
Przywróciłem poprzedni stan, usuwając newindexname. Klaster powraca do koloru zielonego bez żadnych wpisów „Nieprzypisane”.
Biorąc to pod uwagę, jak mogę zmienić nazwę oldindexnamena newindexnamew klastrze?
Uwaga: najlepszym rozwiązaniem Mam na myśli to, aby przewinąć-egzemplarzu oldindexdo newindexi usuwać oldindexpóźniej. To zajmie trochę czasu, więc jeśli istnieje bardziej bezpośrednie rozwiązanie, byłoby wspaniale.