Restauração de instantâneos Elasticsearch com mesclagem

1

Estou experimentando o Elasticsearch em relação a backups e restauração de dados.

Eu posso fazer o backup de dados em um instantâneo usando o curador sem problemas.

Eu então deletei fisicamente os arquivos relacionados ao índice (para simular um crash em HD, etc.)

Eu reinicio o Elasticsearch e verifico no Kibana que os dados não estão mais lá.

Se eu for para restaurar o instantâneo mais recente que fiz; quaisquer dados armazenados no Elasticsearch entre esse último instantâneo e o momento em que eu faço a restauração são perdidos.

A restauração de um instantâneo parece não se fundir com dados mais recentes nos índices e não consigo encontrar nenhuma referência a esse problema on-line, mas a restauração de um backup não apenas elimina dados mais recentes e eu devo estar ausente algo?

Para resumir:

Uma amostra dos meus instantâneos no diretório de backup:

snapshot-curator-20150830191221
snapshot-curator-20150901225612
snapshot-curator-20150902090327

que foram gerados pelo seguinte comando:

curator snapshot --repository es_backup indices --all-indices

Eu excluo os arquivos de um índice de um dia específico:

rm -rf /mnt/storage/var/lib/elasticsearch/elasticsearch/nodes/0/indices/logstash-production-media-2015.09.02

Reinicie o Elasticsearch (inicialmente eu não fiz isso e os dados estavam sempre lá, parece que o Java ou o buffer da máquina ficou preso nos dados e o Elasticsearch não percebeu que tinha sumido!)

Verifique se todos os dados de datas desapareceram no Kibana.

Feche todos os índices:

curator close indices --all-indices

Restaurar o instantâneo mais recente:

curl -XPOST http://localhost:9200/_snapshot/es_backup/curator-20150729133045/_restore

Os dados excluídos estão de volta ao procurar no Kibana, mas quaisquer dados colocados no elasticsearch entre o instantâneo foram tirados e o tempo da restauração desapareceu.

por exemplo. Última foto tirada às 10h. Restaurar às 13:00. Os dados das 10h às 13h desaparecem após a restauração.

Então, o que estou fazendo de errado? Como faço uma restauração com uma mesclagem de dados atuais mais recentes que foram armazenados no Elasticsearch desde que a captura instantânea anterior foi obtida?

Obrigado!

    
por Iain 02.09.2015 / 16:56

1 resposta

1

Bem, infelizmente parece que a fusão não é possível.

Uma resposta para a pergunta que também postei no fórum do ES quando não recebi nenhuma resposta aqui:

link

Snapshot is a point in time copy of the data. When you restore you restore things to that point in time.

There is currently no way to merge like this.

Uma sugestão era restaurar um nome de índice diferente e usar um alias que aponta para os dois índices de pesquisa, o que poderia ser um frequentador, mas eu acho que isso levaria a que dados duplicados fossem retornados para pesquisas.

Talvez a solução seja ter dois nós com uma cópia dos dados em cada um, embora com um grande armazenamento de dados que obviamente poderia ocupar muito mais espaço.

    
por 09.09.2015 / 11:09