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

Última atualização: 11/01/2023

O espaço em disco em meu domínio do Amazon OpenSearch Service é distribuído de forma desigual entre os nós. Como resultado, o uso do disco é fortemente distorcido.

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:

GET _cat/allocation?v

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

GET _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 dos índices pode causar distorção nos dados. Nesse caso, fragmentos de índices maiores residem em apenas alguns nós. Para conferir a estratégia de fragmentação para índices, use a seguinte API:

GET _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 dos fragmentos. 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 quando há falta de espaço de armazenamento disponível. Como resultado, se um nó de dados fica sem espaço de armazenamento não utilizado, o cluster bloqueia todas as gravações. Para obter mais informações sobre gerenciamento de espaço de disco, consulte Como soluciono espaço de armazenamento insuficiente em meu domínio do Amazon OpenSearch Service?

Atualizar sua estratégia de fragmentação

Por padrão, o Amazon 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 e se certifica de que existe um backup em caso de falha.

Para modificar o comportamento padrão do OpenSearch Service, crie í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 de índice 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 API de configurações de índices no site do Elasticsearch.

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

O OpenSearch Service ou o Elasticsearch versão 6.8 ou posterior oferecem suporte ao ISM. Com o ISM, é possível definir políticas de gerenciamento personalizadas para que índices antigos ou não utilizados sejam excluídos após uma duração estabelecida.