Ao criar um cluster do Alibaba Cloud Elasticsearch, configure as especificações e o armazenamento dos diferentes tipos de nó conforme suas necessidades de negócio. Um cluster do Elasticsearch é composto por nós de dados, nós do Kibana, nós mestres dedicados, nós warm, nós frozen e nós de coordenação, cada um com responsabilidades distintas.
Nó de dados
Os nós de dados armazenam dados de índice e executam indexação, busca e agregação. Esses nós exigem alto desempenho de CPU, memória e I/O. Se os recursos forem insuficientes, adicione novos nós de dados ao cluster.
Se o cluster possuir nós mestres dedicados, os nós de dados funcionarão exclusivamente como nós de dados.
Caso não existam nós mestres dedicados, os nós de dados atuarão simultaneamente como nós de dados e nós mestres dedicados.
Os clusters do Alibaba Cloud Elasticsearch utilizam uma de duas arquiteturas de plano de controle: básica (v2) ou nativa da nuvem (v3). Na arquitetura v2, aumentar a escala de um cluster sem nós mestres dedicados aciona uma reinicialização. Se a carga geral do cluster for baixa e seus índices possuírem shards de réplica, o cluster poderá permanecer disponível durante a reinicialização. No entanto, em cenários de alta carga de escrita e consulta, podem ocorrer tempos limite de acesso. Por isso, execute essas operações fora dos horários de pico.
|
Parâmetro |
Descrição |
|
Especificações do nó de dados |
Recomendamos o uso de nós de dados com 2 vCPUs e 4 GiB de memória em ambientes de teste e nós de dados com especificações superiores em ambientes de produção. |
|
Tipo de disco do nó de dados |
Nota
|
|
Nível de desempenho do ESSD |
Se você definir o parâmetro Tipo de Disco do Nó de Dados como ESSD, configure este parâmetro. |
|
Criptografia de disco do nó de dados |
|
|
Espaço de armazenamento por nó de dados |
O espaço de armazenamento de cada nó de dados depende do tipo de disco. Unidade: GiB.
Nota
Ao redimensionar um Ultra Disk com espaço de armazenamento superior a 2.560 GiB, apenas uma atualização blue-green pode ser realizada, pois o disco foi projetado para operar em arrays de disco ou RAID 0. |
|
Número de nós de dados |
A quantidade de nós adquirida deve ser um múltiplo do número de zonas. Importante
Um cluster com apenas dois nós de dados apresenta altos riscos de split-brain e baixa estabilidade. Em clusters de versões anteriores, como V6.X ou V5.X, com apenas dois nós de dados, pode não ser possível selecionar um nó mestre dedicado caso seja necessária uma reinicialização, o que pode interromper os serviços do cluster. Portanto, configure este parâmetro de acordo com as necessidades do seu negócio. |
Nó do Kibana
O valor do parâmetro Kibana Node pode ser apenas Yes.
Um nó do Kibana com 1 vCPU e 2 GiB de memória é gratuito. Entretanto, utilize essa configuração apenas para fins de teste.
Devido ao impacto no desempenho e na estabilidade do cluster, adquira um nó do Kibana com 2 vCPUs e 4 GiB de memória ou especificações superiores.
Nó mestre dedicado
Use nós mestres dedicados para realizar operações no cluster, como criar e excluir índices, rastrear nós e alocar shards. A estabilidade desses nós é fundamental para a saúde do cluster. Por padrão, qualquer nó pode atuar como mestre dedicado. Como operações de indexação, busca e consulta consomem muitos recursos de CPU, memória e I/O, adquira nós mestres dedicados para separá-los dos nós de dados e garantir a estabilidade do ambiente.
Se os nós mestres dedicados do seu cluster forem gratuitos, eles passarão a ser cobrados após um upgrade de configuração do cluster.
Ao realizar uma alteração blue-green em um cluster sem nós mestres dedicados implantado na arquitetura antiga (V2), os nós de dados serão reiniciados na próxima alteração feita no cluster. Por esse motivo, adquira nós mestres dedicados.
|
Parâmetro |
Descrição |
|
Nó mestre dedicado |
Nota
|
|
Especificações do nó mestre dedicado |
Consulte a página de compra para ver as especificações suportadas. |
|
Tipo de disco do nó mestre dedicado |
Verifique os tipos de disco suportados na página de compra. |
|
Espaço de armazenamento do nó mestre dedicado |
O valor deste parâmetro pode ser apenas 20G. |
|
Número de nós mestres dedicados |
O valor deste parâmetro pode ser apenas 3. |
Nó warm
Se sua carga de trabalho envolver ambos os tipos de dados abaixo, adote uma arquitetura hot-warm, que combina nós hot de alto desempenho com nós warm de grande capacidade:
Dados hot: Índices frequentemente consultados, com alta carga de escrita e sensíveis à latência.
Dados warm: Índices raramente consultados, predominantemente somente leitura ou com escritas mínimas. Geralmente são dados históricos.
Ao distribuir dados hot e warm em tipos diferentes de nós, você evita que a contenção de recursos causada pelos dados warm afete o desempenho dos dados hot, reduz significativamente os custos de armazenamento e melhora a eficiência e a estabilidade geral do cluster.
Para mais informações, consulte "Hot-Warm" Architecture in Elasticsearch 5.x.
Se houver nós mestres dedicados adquiridos, os nós warm funcionarão exclusivamente como nós warm.
Caso contrário, os nós warm também atuarão como nós mestres dedicados.
|
Parâmetro |
Descrição |
|
Nó warm |
É possível desativar nós warm adquiridos. Se o cluster travar ao desativar um nó warm, consulte O que fazer se o cluster travar após a desativação de um nó warm? |
|
Especificações do nó warm |
Para informações sobre as especificações suportadas, consulte a página de compra. Em cenários com altos requisitos de I/O e armazenamento, também é possível usar tipos de instância econômicos com disco local, como o tipo
Nota
|
|
Tipo de disco do nó warm |
Ultra Disk e ESSD são suportados. |
|
Criptografia de disco do nó warm |
Nota
|
|
Espaço de armazenamento do nó warm |
O valor mínimo deste parâmetro é 500. Unidade: GiB. |
|
Número de nós warm |
A quantidade de nós adquirida deve ser um múltiplo do número de zonas. |
Após a aquisição de nós warm, o sistema adiciona o parâmetro -Enode.attr.box_type aos parâmetros de inicialização do nó, conforme mostrado na tabela a seguir.
|
Tipo de nó |
Parâmetro de inicialização |
|
Nó de dados |
-Enode.attr.box_type=hot |
|
Nó warm |
-Enode.attr.box_type=warm |
Nós frozen
O nó frozen atua como camada de computação para o recurso Searchable Snapshot. Ele mantém metadados de índices, gerencia um cache compartilhado local e busca blocos de dados necessários sob demanda no Object Storage Service (OSS) para consultas. Ao armazenar dados históricos como snapshots no Alibaba Cloud OSS, os nós frozen podem reduzir os custos de armazenamento em até 90%, mantendo as capacidades de busca.
Os nós frozen são suportados apenas em instâncias V8.17.0 e posteriores. Após ativar os nós frozen, não é possível desativá-los. Para desativá-los, entre em contato com o suporte técnico.
Como os dados ficam armazenados no OSS, os nós frozen não exigem discos locais de grande capacidade. Configure memória suficiente para melhorar a taxa de acerto do cache.
Para exemplos detalhados, consulte Searchable Snapshot.
|
Parâmetro |
Descrição |
|
Nó frozen |
Ao adquirir uma nova instância V8.17.0, marque a caixa de seleção na seção de especificações da instância para ativar este recurso. |
|
Especificações do nó frozen |
Recomendamos um tipo de instância com 4 vCPUs e 16 GiB de memória ou superior. A memória do nó frozen mantém metadados de índices e gerencia o cache compartilhado. Memória suficiente melhora a taxa de acerto do cache. Consulte a página de compra para ver as especificações suportadas. |
|
Tipo de disco do nó frozen |
Ultra Disk e ESSD são suportados. Os discos locais servem apenas como cache compartilhado; os dados são persistidos no OSS. |
|
Espaço de armazenamento do nó frozen |
Recomendamos 500 GiB ou mais. O espaço em disco local funciona como cache compartilhado. O cache utiliza 90% do espaço total em disco do nó ou o espaço total menos 100 GiB, o que for menor. Uma política Least Recently Used (LRU) remove blocos de dados frios. Quanto maior o espaço em disco, maior a taxa de acerto do cache. |
|
Número de nós frozen |
A quantidade de nós adquirida deve ser um múltiplo do número de zonas de disponibilidade. |
Após a aquisição de nós frozen, o sistema adiciona o parâmetro -Enode.attr.box_type aos parâmetros de inicialização do nó, conforme mostrado na tabela a seguir.
|
Tipo de nó |
Parâmetro de inicialização |
|
nó de dados |
-Enode.attr.box_type=hot |
|
nó warm |
-Enode.attr.box_type=warm |
|
nó frozen |
-Enode.attr.box_type=frozen |
Nó cliente
Adquira nós clientes para compartilhar a sobrecarga de CPU dos nós de dados. Isso melhora o desempenho de processamento e a estabilidade do serviço do cluster. Para serviços intensivos em CPU, como aqueles que exigem muitas consultas agregadas, utilize nós clientes.
|
Parâmetro |
Descrição |
|
Nó de coordenação |
Não é possível liberar nós clientes adquiridos para um cluster implantado na arquitetura de controle nativa da nuvem (cluster V7.16 ou posterior). Verifique na página de compra se é possível liberar os nós clientes do seu cluster. |
|
Especificações do nó de coordenação |
Consulte a página de compra para ver as especificações suportadas. |
|
Tipo de disco do nó de coordenação |
O valor deste parâmetro pode ser apenas Ultra Disk. |
|
Espaço de armazenamento do nó de coordenação |
O valor deste parâmetro pode ser apenas 20G. |
|
Número de nós de coordenação |
A quantidade de nós adquirida deve ser um múltiplo do número de zonas. |
Referências
Para mais informações sobre como adquirir um cluster Elasticsearch, consulte Criar um cluster do Alibaba Cloud Elasticsearch.
Para mais detalhes sobre os nós, consulte Node | Elasticsearch Guide.
Para informações sobre preços das especificações de nós, consulte Pricing.
FAQ
Cluster travado após desativar um nó warm
1. Verifique se regras de alocação de nós baseadas em box_type foram configuradas manualmente no cluster (ou seja, se índices estão sendo forçados a alocar em nós marcados como warm)
-
Consulte a configuração
index.routing.allocation.require.box_typede todos os índices existentes.GET */_settings/index.routing.allocation.require.box_typeSe a saída for
{"index.routing.allocation.require.box_type": "warm"}, o índice deve ser alocado em nós ondebox_type=warm. -
Verifique se existe alguma regra de alocação
box_typeconfigurada em modelos de índice.Consulte todos os modelos de índice para verificar se há uma regra de alocação
box_typeconfigurada. Se um modelo retornar"index.routing.allocation.require.box_type": "warm", todos os novos índices serão alocados em nós warm por padrão.Quando um novo índice é criado, ele herda a configuração do modelo. Se esse valor estiver definido no modelo, todos os índices subsequentes aplicarão automaticamente essa regra.
-
GET _ilm/policy?filter_path=*.policy.phases.warm.actions.allocate.require.box_typeConsulta a configuração de alocação de nós para a fase warm de todas as políticas de Index Lifecycle Management (ILM).
Se um índice estiver alocado em um nó warm, desligar os nós de dados frios através de uma operação de scale-down fará com que a alteração do cluster fique bloqueada, exibindo o status Change is blocked:
2. Solução
-
Remova a configuração
box_typeda política# First, stop ILM. POST _ilm/stop # View the specific ILM policy. GET _ilm/policy/your_policy_name # Update the ILM policy and remove the box_type configuration from the warm phase. PUT _ilm/policy/your_policy_name { "policy": { "phases": { "warm": { "actions": { "allocate": { "require": { "box_type": null # Remove this configuration. } } } }, "hot": { "actions": { "allocate": { "require": { "box_type": null # If present, remove this as well. } } } } } } } # If the require field under allocate is empty, delete the entire allocate action. # Alternatively, retain only other necessary allocation rules, such as the number of replicas. -
Remova a configuração
box_typedo modelo de índice# View the specific template name. GET _template/?filter_path=*.settings.index.routing.allocation.require.box_type # Update the template and remove the box_type configuration. PUT _template/your_template_name { "settings": { "index.routing.allocation.require.box_type": null } } # Alternatively, resubmit the complete template definition without the box_type field. -
Remova a configuração
box_typedo índice# Remove the box_type configuration for a specific index. PUT /your_index_name/_settings { "index.routing.allocation.require.box_type": null } # Remove the configuration for all indexes in a batch. { "index.routing.allocation.require.box_type": null }