Partilhar via


Escala horizontalmente com clusters elásticos

Este artigo fornece instruções passo a passo para realizar operações de escalonamento horizontal para o seu cluster elástico de servidores flexíveis Azure Database for PostgreSQL.

O Azure Database PostgreSQL Elastic Clusters fornece escalonamento horizontal ao adicionar mais nós de trabalho ao seu cluster. Quando escala o seu PostgreSQL Elastic Cluster, pode gerir o crescimento dando à sua base de dados mais recursos ou mais nós para processamento paralelo de consultas. Obtém todos estes benefícios com um tempo de inatividade mínimo e gestão de shards integrada.

Métodos de escalonamento

Use um dos vários métodos para adicionar nós de trabalho ao seu cluster elástico — incluindo o portal Azure, a CLI do Azure ou automação através de templates e APIs ARM — dependendo do seu fluxo de trabalho e necessidades de automação. As secções seguintes fornecem instruções passo a passo para o portal e a CLI, e explicam o reequilíbrio pós-escala.

Usando o portal do Azure:

  1. Abra o recurso: No portal Azure, navegue até à sua base de dados Azure para PostgreSQL – Flexible Server elastic cluster.

  2. Vá a Computar + Armazenamento: Na secção Definições, selecione Calcular + armazenamento. Esta página mostra a configuração atual dos nós do seu cluster.

    Captura de ecrã que mostra a página de Visão Geral de um cluster elástico.

  3. Ajustar o Node Count: Encontre o campo de Node Count. Aumente o número de nós para o número total desejado (entre 2 e 20 para a maioria dos clusters na GA). Por exemplo, para duplicar um cluster de quatro nós para oito nós, aumente o slider para 8. O Azure disponibiliza nós adicionais para atingir esta contagem.

    Captura de tela mostrando como selecionar a página Computação + armazenamento.

  4. Aplicar alterações: Selecione Guardar. Confirme a operação de escalonamento quando solicitado. O Azure começa a adicionar nós ao teu cluster. Esta operação é realizada online e normalmente não interrompe ligações ou consultas existentes. A implantação pode levar alguns minutos. Pode monitorizar o progresso nas notificações do portal. Assim que estiver concluído, a contagem de nós no seu cluster refletirá o novo valor.

Observação

Deve ativar explicitamente o processo de rebalanceamento de fragmentos em segundo plano para permitir que os dados existentes sejam redistribuídos por todos os seus nós. Esta operação não envolve interrupção para operações de leitura e escrita.

Reequilíbrio

Depois de adicionar nós ao seu cluster, quaisquer novas modificações de dados ou tabelas distribuídas adicionadas utilizam todos os nós disponíveis. Os fragmentos de dados existentes mantêm-se onde estão até serem redistribuídos. O rebalanceamento online garante que as leituras e escritas da aplicação continuam com interrupções mínimas enquanto os dados são transferidos.

Quando escala o seu cluster elástico, reequilibrar o seu cluster garante que os seus dados existentes estão totalmente distribuídos e que a sua base de dados utiliza todos os nós disponíveis. Use a função citus_rebalance_start para iniciar o processo de reequilíbrio. Esta operação distribui os dados existentes de forma uniforme entre todos os nós.

SELECT citus_rebalance_start();

Reequilíbrio paralelo

A operação padrão de rebalanceamento executa múltiplos movimentos de fragmento numa ordem sequencial. Em alguns casos, pode preferir reequilibrar mais rapidamente, à custa de usar mais recursos, como computação, memória e largura de banda de rede. Nessas situações, pode configurar uma operação de rebalanceamento para efetuar várias movimentações de fragmentos em paralelo.

O parâmetro citus.max_background_task_executors_per_node permite que tarefas como o rebalanceamento de fragmentos operem em paralelo. Pode aumentar o valor padrão (1) conforme desejado para aumentar o paralelismo.

ALTER SYSTEM SET citus.max_background_task_executors_per_node = 2;
SELECT pg_reload_conf();

Além disso, pode configurar a função citus_rebalance_start para reequilibrar os shards de acordo com diferentes estratégias para melhor corresponder à sua carga de trabalho na base de dados. Agora que adicionou executores extra de tarefas em segundo plano, aqui está um exemplo de rebalanceamento de fragmentos usando trabalhadores paralelos:

SELECT citus_rebalance_start(parallel_transfer_colocated_shards := true, parallel_transfer_reference_tables := true);

Considerações

Monitorize o seu cluster após a escalabilidade: Verifique a utilização da CPU, o uso de memória e o consumo de E/S nos gráficos de Monitorização do portal Azure para o seu cluster elástico. Após uma operação de escala horizontal, verifique se adicionar nós reflete melhorias métricas em termos de largura de banda e tempos de resposta, dependendo da sua carga de trabalho. Ajusta ainda mais, se for necessário.

Escalar um cluster elástico afeta o custo de forma linear em relação aos recursos. Adicionar nós multiplica os custos de computação e armazenamento pelo número de nós. Por exemplo, um cluster de quatro nós com dois vCores cada custa cerca de quatro vezes o de um único servidor de dois vCores, já que está a executar quatro servidores. Revise sempre o impacto dos preços no portal. O Custo Estimado é atualizado no portal Azure quando altera a configuração antes de poupar para garantir que cumpre o seu orçamento.

Alta disponibilidade: Se o seu cluster tiver alta disponibilidade redundante por zona ativada, operações de dimensionamento também fornecem recursos de reserva para quaisquer novos nós. O serviço Azure trata disto automaticamente. Espere que o escalonamento demore um pouco mais, pois configura réplicas HA para cada nó adicionado. As características do processo e do tempo de inatividade mantêm-se quase as mesmas, multiplicadas para pares primário e de espera.

Réplicas de leitura: Se o seu cluster estiver configurado para usar réplicas de leitura, deve seguir uma ordem específica de operações ao adicionar nós ao seu cluster. Primeiro, adiciona o número de nós ao teu cluster principal e guarda as tuas alterações. Depois de concluída com sucesso, faça a alteração correspondente no ambiente da réplica de leitura e salve as alterações. Os seus novos nós no cluster primário não são elegíveis para operações de cluster até que tanto o ambiente primário como o ambiente réplica de leitura estejam atualizados e sincronizados.

Observação

A capacidade de remover nós de um cluster elástico (scale-in) ainda não está disponível.

Ao utilizar as técnicas de escalabilidade anteriores, os clusters elásticos Azure Database para PostgreSQL dão-lhe a flexibilidade de começar pequeno e fazer crescer a sua base de dados de forma fluida à medida que a procura aumenta. Obtém-se a simplicidade de um único endpoint com o poder da infraestrutura Postgres distribuída. Continue a monitorizar a documentação do Azure para as últimas atualizações sobre funcionalidades e boas práticas do Elastic Clusters para escalabilidade.