Novo no Elasticsearch? Participe do nosso webinar Introdução ao Elasticsearch. Você também pode iniciar um teste gratuito na nuvem do Elastic ou experimentar o Elastic em sua máquina agora.
O gerenciamento de disco é importante em qualquer banco de dados, e o Elasticsearch não é exceção. Se você não tiver espaço em disco suficiente disponível, o Elasticsearch deixará de alocar shards para o nó. Isso acabará por impedi-lo de gravar dados no cluster, com o risco potencial de perda de dados em sua aplicação. Por outro lado, se você tiver muito espaço em disco, estará pagando por mais recursos do que precisa.
Informações básicas sobre marcas d'água
Existem vários limites de "marca d'água" no seu cluster Elasticsearch que ajudam a monitorar o espaço em disco disponível. À medida que o disco de um nó se enche, o primeiro limite a ser ultrapassado será o "limite mínimo de espaço em disco". O segundo limite será então o “limite de marca d'água de disco alto”. Finalmente, será atingida a “fase de inundação do disco”. Assim que esse limite for ultrapassado, o cluster bloqueará a gravação em TODOS os índices que possuam um shard (primário ou réplica) no nó que atingiu o limite. As leituras (buscas) ainda serão possíveis.
Como prevenir e lidar com casos em que o disco está muito cheio (sobreutilização)
Existem vários métodos para lidar com casos em que o disco do Elasticsearch está muito cheio:
- Excluir dados antigos: Normalmente, os dados não devem ser mantidos indefinidamente. Uma forma de prevenir e resolver o problema de disco cheio é garantir que, quando os dados atingirem uma certa idade, sejam arquivados e excluídos de forma confiável. Uma maneira de fazer isso é usar o ILM.
- Adicionar capacidade de armazenamento: Se não for possível excluir os dados, talvez seja necessário adicionar mais nós de dados ou aumentar o tamanho dos discos para reter todos os dados sem afetar negativamente o desempenho. Se precisar adicionar capacidade de armazenamento ao cluster, considere se precisa adicionar apenas capacidade de armazenamento ou se deve adicionar também recursos de RAM e CPU em proporção adequada (consulte a seção sobre proporção de tamanho do disco, RAM e CPU abaixo).
Como adicionar capacidade de armazenamento ao seu cluster Elasticsearch
- Aumente o número de nós de dados: Lembre-se de que os novos nós devem ter o mesmo tamanho que os nós existentes e a mesma versão do Elasticsearch.
- Aumentar o tamanho dos nós existentes: Em ambientes baseados em nuvem, geralmente é fácil aumentar o tamanho do disco e a RAM/CPU nos nós existentes.
- Aumentar apenas o tamanho do disco: Em ambientes baseados em nuvem, geralmente é relativamente fácil aumentar o tamanho do disco.
- Instantâneo e Restauração: Se você deseja permitir que dados antigos sejam recuperados sob demanda em um processo automatizado a partir de backups, você pode criar snapshots de índices antigos, excluí-los e restaurar os dados temporariamente sob demanda a partir desses snapshots.
- Reduzir o número de réplicas por fragmento: Outra opção para reduzir os dados é diminuir o número de réplicas de cada fragmento. Para alta disponibilidade, o ideal é ter uma réplica por fragmento, mas quando os dados ficam mais antigos, pode ser possível trabalhar sem réplicas. Isso geralmente funciona se os dados forem persistentes ou se você tiver um backup para restaurar, se necessário.
- Criar alertas: Para evitar que os discos fiquem cheios no futuro e agir de forma proativa, você deve criar alertas com base no uso do disco que o notificarão quando o disco começar a ficar cheio.
Como prevenir e lidar com casos em que a capacidade do disco está subutilizada
Se a capacidade do seu disco estiver subutilizada, existem várias opções para reduzir o volume de armazenamento no seu cluster.
Como reduzir o volume de armazenamento em um cluster Elasticsearch
Existem vários métodos para reduzir o volume de armazenamento de um cluster.
1. Reduzir o número de nós de dados
Se você deseja reduzir o armazenamento de dados e também reduzir os recursos de RAM e CPU na mesma proporção, então esta é a estratégia mais fácil. A desativação de nós desnecessários provavelmente proporcionará a maior economia de custos.
Antes de desativar o nó, você deve:
- Certifique-se de que o nó a ser desativado não seja necessário como nó MESTRE. Você deve sempre ter pelo menos três nós com a função de nó MESTRE.
- Migre os fragmentos de dados para fora do nó a ser desativado.
2. Substitua os nós existentes por nós menores.
Se não for possível reduzir ainda mais o número de nós (normalmente, 3 seria uma configuração mínima), então você pode querer diminuir o tamanho dos nós existentes. Lembre-se de que é recomendável garantir que todos os nós de dados tenham a mesma quantidade de memória RAM e tamanho de disco, já que o balanceamento dos shards é feito com base no número de shards por nó.
O processo seria o seguinte:
- Adicione novos nós menores ao cluster.
- Migre os fragmentos para longe dos nós que serão desativados.
- Desligue os nós antigos.
3. Reduzir o tamanho do disco nos nós
Se você deseja reduzir APENAS o tamanho do disco nos nós, sem alterar a RAM ou a CPU geral do cluster, então você pode reduzir o tamanho do disco para cada nó individualmente. Reduzir o tamanho do disco em um nó do Elasticsearch não é um processo trivial.
A maneira mais fácil de fazer isso geralmente seria:
- Migrar fragmentos do nó
- Pare o nó
- Monte um novo volume de dados no nó com o tamanho apropriado.
- Copie todos os dados do volume de disco antigo para o novo volume.
- Desprenda o volume antigo A.
- Inicie o nó e migre os fragmentos de volta para o nó.
Isso exige que você tenha capacidade suficiente nos outros nós para armazenar temporariamente os fragmentos extras do nó durante esse processo. Em muitos casos, o custo de gerenciamento desse processo pode exceder a economia potencial no uso de disco. Por esse motivo, pode ser mais simples substituir o nó por completo por um novo nó com o tamanho de disco desejado (consulte “Substituir nós existentes por nós menores” acima).
Ao pagar por recursos desnecessários, os custos podem ser reduzidos otimizando a utilização desses recursos.
A relação entre o tamanho do disco, a RAM e a CPU.
A proporção ideal entre capacidade de disco e RAM no seu cluster dependerá do seu caso de uso específico. Por esse motivo, ao considerar alterações na sua capacidade de armazenamento, você também deve avaliar se as proporções atuais de disco/RAM/CPU estão adequadamente equilibradas e se, consequentemente, você precisa adicionar/reduzir RAM/CPU na mesma proporção.
Os requisitos de RAM e CPU dependem do volume de atividade de indexação , do número e tipo de consultas, bem como da quantidade de dados que está sendo pesquisada e agregada. Isso geralmente é proporcional à quantidade de dados armazenados no cluster e, portanto, também deve estar relacionado ao tamanho do disco.
A proporção entre a capacidade do disco e a RAM pode variar dependendo do uso. Veja alguns exemplos aqui:
| Atividade do índice | Retenção | Atividade de pesquisa | Capacidade do disco | BATER | |
|---|---|---|---|---|---|
| Aplicativo de busca empresarial | Ingestão moderada de toras | Longo | Luz | 2TB | 32 GB |
| Monitoramento de aplicativos | Ingestão intensiva de toras | Curto | Luz | 1TB | 32 GB |
| Comércio eletrônico | Indexação de dados leves | Indeterminado | Pesado | 500 GB | 32 GB |
Lembre-se de que modificar a configuração das máquinas de nó deve ser feito com cuidado, pois pode causar indisponibilidade do nó e você precisa garantir que os shards não comecem a migrar para seus outros nós já sobrecarregados.




