Skala ut med elastiska kluster

Den här artikeln innehåller stegvisa instruktioner för att utföra horisontella skalningsåtgärder för ditt elastiska Azure Database for PostgreSQL-elastiska serverkluster.

Elastiska Azure Database for PostgreSQL-kluster ger horisontell skalning genom att lägga till fler arbetsnoder i klustret. När du skalar ditt elastiska PostgreSQL-kluster kan du hantera tillväxten genom att ge databasen fler resurser eller fler noder för parallell frågebearbetning. Du får alla dessa fördelar med minimal stilleståndstid och inbyggd shardhantering.

Skalningsmetoder

Använd en av flera metoder för att lägga till arbetsnoder i ditt elastiska kluster, inklusive Azure-portalen, Azure CLI eller automatisering via ARM-mallar och API:er, beroende på dina arbetsflödes- och automatiseringsbehov. Följande avsnitt innehåller stegvisa instruktioner för portalen och CLI och förklarar ombalansering efter skalning.

Använda Azure-portalen:

  1. Öppna resursen: I Azure-portalen går du till ditt elastiska Azure Database for PostgreSQL – elastiskt serverkluster.

  2. Gå till Beräkning + lagring: Under avsnittet Inställningar väljer du Beräkning + lagring. Den här sidan visar den aktuella konfigurationen av klustrets noder.

    Skärmbild som visar översiktssidan för ett elastiskt kluster.

  3. Justera antal noder: Leta reda på fältet Antal noder. Öka antalet till önskade totala noder (mellan 2 och 20 för de flesta kluster på GA). Om du till exempel vill dubbla ett kluster med fyra noder till åtta noder ökar du skjutreglaget till 8. Azure etablerar ytterligare arbetsnoder för att nå det här antalet.

    Skärmbild som visar hur du väljer sidan Beräkning + lagring.

  4. Tillämpa ändringar: Välj Spara. Bekräfta utskalningsåtgärden när du uppmanas att göra det. Azure börjar lägga till noder i klustret. Den här åtgärden utförs online och avbryter vanligtvis inte befintliga anslutningar eller frågor. Distributionen kan ta några minuter. Du kan övervaka förloppet i portalmeddelandena. När det är klart återspeglar antalet noder i klustret det nya värdet.

Anmärkning

Du måste uttryckligen utlösa bakgrundsprocessen för shard-ombalansering för att befintliga data ska kunna distribueras över alla dina noder. Den här åtgärden innebär ingen stilleståndstid för läsningar och skrivningar.

Omfördelning

När du har lagt till noder i klustret använder alla nya dataändringar eller nyligen tillagda distribuerade tabeller alla tillgängliga noder. Befintliga datapartiklar förblir där de finns tills de distribueras om. Onlineombalansering säkerställer att läsningar och skrivningar från programmet fortsätter med minimalt avbrott medan data flyttas.

När du skalar ut ditt elastiska kluster säkerställer ombalansering av klustret att dina befintliga data är helt distribuerade och att databasen använder alla tillgängliga noder. Använd funktionen citus_rebalance_start för att starta ombalanseringsprocessen. Den här åtgärden distribuerar befintliga data jämnt över alla noder.

SELECT citus_rebalance_start();

Parallell ombalansering

Standardombalanseringsåtgärden utför flera shard-rörelser i sekventiell ordning. I vissa fall kanske du föredrar att balansera om snabbare på bekostnad av att använda fler resurser, till exempel beräkning, minne och nätverksbandbredd. I sådana situationer kan du konfigurera en ombalanseringsoperation för att utföra många skivrörelser parallellt.

Parametern citus.max_background_task_executors_per_node tillåter att uppgifter som shardombalansering fungerar parallellt. Du kan öka standardvärdet (1) som du vill för att öka parallelliteten.

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

Dessutom kan du konfigurera funktionen citus_rebalance_start så att den balanserar om shards enligt olika strategier för att bäst matcha din databasarbetsbelastning. Nu när du har lagt till extra utförare av bakgrundsaktiviteter, här är ett exempel på ombalansering av shards med hjälp av parallella arbetare:

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

Överväganden

Övervaka klustret efter skalning: Kontrollera PROCESSORanvändning, minnesanvändning och I/O-förbrukning i Azure-portalens övervakningsdiagram för ditt elastiska kluster. Efter en utskalningsåtgärd kontrollerar du att tillägg av noder återspeglar måttförbättringar för dataflödes- och svarstider, beroende på din arbetsbelastning. Justera ytterligare om det behövs.

Att skala ett elastiskt kluster påverkar kostnaderna linjärt med resurser. Om du lägger till noder multipliceras beräknings- och lagringskostnaderna med antalet noder. Ett kluster med fyra noder med två virtuella kärnor kostar till exempel ungefär fyra gånger så mycket som en enskild server med två virtuella kärnor, eftersom du kör fyra servrar. Granska alltid prispåverkan i portalen. Den uppskattade kostnaden uppdateras på Azure-portalen när du ändrar konfigurationen innan du sparar för att säkerställa att den uppfyller din budget.

Hög tillgänglighet: Om ditt kluster har zonredundant hög tillgänglighet aktiverat etablerar skalningsåtgärder även väntelägesresurser för alla nya noder. Azure-tjänsten hanterar detta automatiskt. Förvänta dig att utökningen tar något längre tid eftersom den konfigurerar HA-repliker för varje tillagd nod. Process- och stilleståndstidsegenskaperna förblir nästan desamma, multiplicerade för primära par och standby-par.

Läsrepliker: Om klustret är konfigurerat att använda läsrepliker måste du följa en viss åtgärdsordning när du lägger till noder i klustret. Lägg först till antalet noder i det primära klustret och spara ändringarna. När du är klar gör du motsvarande ändring i läsreplikmiljön och sparar ändringarna. Dina nya noder i det primära klustret är inte berättigade till klusteråtgärder förrän både de primära och lästa replikmiljöerna har uppdaterats och synkroniserats.

Anmärkning

Möjligheten att ta bort noder från ett elastiskt kluster (inskalning) är ännu inte tillgänglig.

Med hjälp av de föregående skalningsteknikerna ger elastiska Azure Database for PostgreSQL-kluster dig flexibiliteten att starta små och utöka databasen sömlöst när efterfrågan ökar. Du får kraften hos distribuerad Postgres-infrastruktur kombinerad med enkelheten av en enda endpunkt. Fortsätt att övervaka Azures dokumentation för de senaste uppdateringarna av elastic clusters-funktioner och metodtips för skalning.