Devo rinominare diversi indici in un cluster (il loro nome deve essere cambiato, non posso usare gli alias ).
Ho visto che non ci sono modi supportati per farlo, il più vicino che ho trovato è rinominare la directory dell'indice , l'ho provato in un cluster.
Il cluster ha 3 macchine A, Be Ced i frammenti vengono replicate su ciascuno di essi. Ho spento elasticsearch su A, rinominato /var/lib/elasticsearch/security/nodes/0/indices/oldindexnameper /var/lib/elasticsearch/security/nodes/0/indices/newindexnamee riavviato A.
Lo stato del cluster era giallo e elasticsearch stava facendo qualche magia per ripristinare uno stato corretto. Dopo un po 'ho finito con
oldindexnameessere disponibile e completamente replicato (recuperato daBeCimmagino)newindexnameessendo disponibile (posso cercarlo) ma il plug-in principale mostra che i suoi frammenti sono in uno stato "Non assegnato" e che sono disattivati (non replicati)
Durante il recupero ha security.logmostrato il seguente messaggio:
[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
Sebbene newindexnamesia ricercabile, non è certamente in uno stato normale.
Sono tornato allo stato precedente eliminando newindexname. Il cluster è tornato verde senza alcuna voce "Non assegnato".
Dato che, come posso rinominare oldindexnamea newindexnamein un cluster?
Nota: l'ultima soluzione che ho in mente è quello di scroll-copia oldindexin newindexe cancellare oldindexin seguito. Questo richiederà tempo, quindi se esiste una soluzione più diretta sarebbe fantastico.