Como reequilibrar a distribuição desigual de fragmentos em meu cluster do Amazon OpenSearch Service?

Última atualização: 2021-09-23

O espaço em disco no meu domínio do Amazon OpenSearch Service (sucessor do Amazon Elasticsearch Service) está distribuído de forma desigual entre os nós. Como resultado, o uso do disco está muito distorcido. Como faço para rebalancear a distribuição dos nós?

Breve descrição

O uso do disco pode ser muito distorcido pelo seguintes motivos:

Para reequilibrar a alocação de fragmentos no cluster do OpenSearch Service, considere as seguintes abordagens:

  • Confira a alocação de fragmentos, os tamanhos dos fragmentos e a estratégia de fragmentação de índice.
  • Certifique-se de que os fragmentos tenham o mesmo tamanho entre os índices.
  • Mantenha tamanhos dos fragmentos entre 10 GB e 50 GB para ter uma melhor performance.
  • Adicione mais nós de dados ao cluster do OpenSearch Service.
  • Atualize sua estratégia de fragmentação.
  • Exclua os índices antigos ou não utilizados para liberar espaço em disco.

Resolução

Confira a alocação dos fragmentos, os tamanhos dos fragmentos e a estratégia de fragmentação de índice

Para conferir o número de fragmentos alocados a cada nó e a quantidade de espaço em disco usada em cada nó, use a seguinte API:

$ curl -XGET ES_Endpoint/_cat/allocation?v

Para conferir os fragmentos alocados a cada nó e o tamanho de cada fragmento, use a seguinte API:

$ curl -XGET ES_Endpoint/_cat/shards?v

Observação: essa API mostra que o tamanho dos fragmentos pode variar para diferentes índices.

A estratégia de fragmentação desigual para índices pode causar distorção de dados, em que fragmentos de índice maiores residem em apenas alguns nós. Confira a estratégia de fragmentação para índices usando a seguinte API:

$ curl -XGET ES_Endpoint/_cat/indices?v

Certifique-se de que os fragmentos sejam do mesmo tamanho entre os índices

Se o tamanho do índice variar significativamente, use a API de rolamento de índice para criar um novo índice quando determinados tamanhos de índice forem atingidos. Ou você pode usar o Gerenciamento de Estados do Índice (ISM - Index State Management) para criar um novo índice para o OpenSearch Service versão 7.1 e posteriores. Para obter mais informações sobre como rolar um alias usando o ISM, consulte rollover (rolar) no site do Open Distro.

Mantenha os tamanhos de fragmento entre 10 GB e 50 GB para ter uma melhor performance

Se você tiver uma classe grande de instâncias, use a escala de petabytes do Amazon OpenSearch Service para determinar os tamanhos de fragmento. Por exemplo, um domínio do OpenSearch Service com várias instâncias i3.16xlarge.search pode suportar tamanhos de fragmento de até 100 GB porque há mais recursos disponíveis. Para obter mais informações sobre estratégia de fragmentação, consulte Escolher o número de fragmentos.

Adicionar mais nós de dados ao cluster do OpenSearch Service

Se seu cluster do OpenSearch Service tiver atingido altos níveis de uso de disco, adicione mais nós de dados ao cluster. A adição de nós de dados também adiciona mais recursos para melhorar a performance do cluster.

Observação: o OpenSearch Service não reequilibra automaticamente o cluster se houver falta de espaço de armazenamento disponível. Como resultado, se um nó de dados ficar sem espaço de armazenamento livre, o cluster bloqueia todas as gravações. Para obter mais informações sobre gerenciamento de espaço em disco, consulte Como adiciono espaço de armazenamento em um domínio do Amazon OpenSearch Service?

Atualizar sua estratégia de fragmentação

Por padrão, o OpenSearch Service tem uma estratégia de fragmentação de 5:1, em que cada índice é dividido em cinco fragmentos principais. Dentro de cada índice, cada fragmento primário também tem sua própria réplica. O OpenSearch Service designa automaticamente fragmentos primários e fragmentos de réplica a nós de dados separados, certificando-se de que exista um backup em caso de falha.

Para modificar o comportamento padrão do OpenSearch Service, crie seus índices para que os fragmentos sejam distribuídos igualmente por tamanho:

  • Para índices existentes, use a API de reindexação para alterar o número de fragmentos primários. A API _reindex pode ser usada para mesclar índices menores em um índice maior ou para dividir o índice maior. Quando o índice maior é dividido em mais fragmentos primários, os tamanhos dos fragmentos diminuem.
  • Para novos índices, use a API de modelo para definir o número de fragmentos primários e de réplica.

Em seguida, atualize as configurações de índices para seus fragmentos. Para obter mais informações, consulte Atualizar configurações de índices no site do Elasticsearch.

Exclua os índices antigos ou não utilizados para liberar espaço em disco

As versões 7.1 e posteriores do OpenSearch Service suportam o Gerenciamento de Estados de Índice. Com o ISM, você pode definir políticas de gerenciamento personalizadas para que índices antigos ou não utilizados sejam excluídos após uma duração estabelecida.