Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
Abra o recurso: No portal Azure, navegue até à sua base de dados Azure para PostgreSQL – Flexible Server elastic cluster.
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.
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.
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.