Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce istruzioni dettagliate per eseguire operazioni di ridimensionamento orizzontale per il cluster elastico del server flessibile di Database di Azure per PostgreSQL.
I cluster elastici di Database di Azure per PostgreSQL offrono scalabilità orizzontale aggiungendo altri nodi di lavoro al cluster. Quando si ridimensiona il cluster elastico PostgreSQL, è possibile gestire la crescita offrendo al database più risorse o più nodi per l'elaborazione parallela delle query. Si ottengono tutti questi vantaggi con tempi di inattività minimi e gestione delle partizioni predefinite.
Metodi di scalabilità orizzontale
Usare uno dei diversi metodi per aggiungere nodi di lavoro al cluster elastico, tra cui il portale di Azure, l'interfaccia della riga di comando di Azure o l'automazione tramite modelli e API arm, a seconda delle esigenze di flusso di lavoro e automazione. Le sezioni seguenti forniscono istruzioni dettagliate per il portale e l'interfaccia della riga di comando e illustrano il ribilanciamento post-ridimensionamento.
Usare il portale di Azure:
Aprire la risorsa: nel portale di Azure, passare al cluster elastico di Azure Database for PostgreSQL – Flexible Server.
Passare a Calcolo e archiviazione: nella sezione Impostazioni selezionare Calcolo e archiviazione. In questa pagina viene visualizzata la configurazione corrente dei nodi del cluster.
Modifica Conteggio Nodi: Trova il campo Conteggio Nodi. Aumentare il numero ai nodi totali desiderati (tra 2 e 20 per la maggior parte dei cluster a livello generale). Ad esempio, per raddoppiare un cluster a quattro nodi su otto nodi, aumentare il dispositivo di scorrimento su 8. Azure effettua il provisioning di nodi di lavoro aggiuntivi per raggiungere questo conteggio.
Applica modifiche: selezionare Salva. Confermare l'operazione di scalabilità orizzontale quando richiesto. Azure inizia ad aggiungere nodi al cluster. Questa operazione viene eseguita online e in genere non interrompe le connessioni o le query esistenti. La distribuzione può richiedere alcuni minuti. È possibile monitorare lo stato di avanzamento nelle notifiche del portale. Al termine, il conteggio dei nodi del cluster riflette il nuovo valore.
Annotazioni
È necessario attivare in modo esplicito il processo in background di ribilanciamento delle partizioni per consentire la ridistribuzione dei dati esistenti in tutti i nodi. Questa operazione non comporta tempi di inattività per le operazioni di lettura e scrittura.
Riequilibrio
Dopo aver aggiunto nodi al cluster, le nuove modifiche ai dati o le tabelle distribuite appena aggiunte usano tutti i nodi disponibili. Le partizioni di dati esistenti rimangono dove sono finché non vengono ridistribuite. Il ribilanciamento online garantisce che le letture e le scritture dall'applicazione continuino con interruzioni minime durante lo spostamento dei dati.
Quando si scala il cluster elastico, il ribilanciamento del cluster garantisce che i dati esistenti siano completamente distribuiti e che il database utilizzi tutti i nodi disponibili. Usare la funzione citus_rebalance_start per avviare il processo di ribilanciamento. Questa operazione distribuisce uniformemente i dati esistenti in tutti i nodi.
SELECT citus_rebalance_start();
Ribilanciamento parallelo
L'operazione di ribilanciamento predefinita esegue più spostamenti di partizioni in un ordine sequenziale. In alcuni casi, potrebbe essere preferibile ribilanciarsi più velocemente a scapito dell'uso di più risorse, ad esempio calcolo, memoria e larghezza di banda di rete. In tali situazioni, è possibile configurare un'operazione di ribilanciamento per eseguire molti spostamenti di partizioni in parallelo.
Il parametro citus.max_background_task_executors_per_node consente attività come il ribilanciamento delle partizioni per operare in parallelo. È possibile aumentare il valore predefinito (1) in base alle esigenze per aumentare il parallelismo.
ALTER SYSTEM SET citus.max_background_task_executors_per_node = 2;
SELECT pg_reload_conf();
Inoltre, è possibile configurare la funzione citus_rebalance_start per ribilanciare le partizioni in base a strategie diverse per soddisfare al meglio il carico di lavoro del database. Ora che sono stati aggiunti esecutori di attività in background aggiuntivi, di seguito è riportato un esempio di ribilanciamento delle partizioni usando i ruoli di lavoro paralleli:
SELECT citus_rebalance_start(parallel_transfer_colocated_shards := true, parallel_transfer_reference_tables := true);
Considerazioni
Monitorare il cluster dopo il ridimensionamento: controllare l'utilizzo della CPU, l'utilizzo della memoria e l'utilizzo di I/O nei grafici di monitoraggio del portale di Azure per il cluster elastico. Dopo un'operazione di scalabilità orizzontale, verificare che l'aggiunta di nodi rifletta i miglioramenti delle metriche per la velocità effettiva e i tempi di risposta, a seconda del carico di lavoro. Modificare ulteriormente, se necessario.
Il ridimensionamento di un cluster elastico influisce sui costi in modo lineare con le risorse. L'aggiunta di nodi moltiplica i costi di calcolo e archiviazione per il numero di nodi. Ad esempio, un cluster a quattro nodi con due vCore costa circa quattro volte il costo di un singolo server a due vCore, perché si eseguono quattro server. Esaminare sempre l'impatto sui prezzi nel portale. Il costo stimato viene aggiornato nel portale di Azure quando si modifica la configurazione prima di risparmiare per assicurarsi che soddisfi il budget.
Disponibilità elevata: se nel cluster è abilitata la disponibilità elevata con ridondanza zonale, le operazioni di ridimensionamento prevedono anche il provisioning delle risorse di standby per i nuovi nodi. Il servizio di Azure gestisce automaticamente questa operazione. Si prevede che la scalabilità orizzontale richiede un po' più tempo quando configura le repliche a disponibilità elevata per ogni nodo aggiunto. Le caratteristiche del processo e del tempo di inattività rimangono pressoché inalterate quando sono moltiplicate per le coppie primaria e di riserva.
Repliche in lettura: se il cluster è configurato per l'uso di repliche in lettura, è necessario seguire un ordine specifico di operazioni quando si aggiungono nodi al cluster. Aggiungere prima di tutto il numero di nodi al cluster primario e salvare le modifiche. Una volta completata correttamente, apportare la modifica corrispondente all'ambiente di replica in lettura e salvare le modifiche. I nuovi nodi nel cluster primario non sono idonei per le operazioni del cluster finché non vengono aggiornati e sincronizzati gli ambienti di replica primaria e di lettura.
Annotazioni
La possibilità di rimuovere nodi da un cluster elastico (con scalabilità orizzontale) non è ancora disponibile.
Utilizzando le tecniche di ridimensionamento precedenti, i cluster elastici di Azure Database per PostgreSQL offrono la flessibilità necessaria per avviare con un database di piccole dimensioni e farlo crescere senza problemi man mano che la domanda aumenta. Si ottiene la semplicità di un singolo endpoint con la potenza dell'infrastruttura Postgres distribuita. Continuare a monitorare la documentazione di Azure per gli aggiornamenti più recenti sulle funzionalità dei cluster elastici e sulle procedure consigliate per il ridimensionamento.