Udostępnij za pomocą


Skalowanie w poziomie przy użyciu klastrów elastycznych

Ten artykuł zawiera instrukcje krok po kroku dotyczące wykonywania operacji skalowania w poziomie dla elastycznego klastra serwera usługi Azure Database for PostgreSQL.

Elastyczne klastry usługi Azure Database for PostgreSQL zapewniają skalowanie w poziomie przez dodanie większej liczby węzłów roboczych do klastra. Podczas skalowania klastra elastycznego PostgreSQL można obsłużyć wzrost, udostępniając bazie danych więcej zasobów lub więcej węzłów na potrzeby przetwarzania zapytań równoległych. Wszystkie te korzyści można uzyskać z minimalnym przestojem i wbudowanym zarządzaniem fragmentami.

Metody skalowania w poziomie

Użyj jednej z kilku metod, aby dodać węzły robocze do klastra elastycznego — w tym portal Azure, Azure CLI lub automatyzację za pośrednictwem szablonów ARM i interfejsów API — w zależności od potrzeb związanych z przepływem pracy i automatyzacją. Poniższe sekcje zawierają instrukcje krok po kroku dotyczące portalu i CLI oraz objaśnienia dotyczące ponownego równoważenia obciążenia po skalowaniu.

Korzystanie z portalu Azure:

  1. Otwórz zasób: w witrynie Azure Portal przejdź do klastra elastycznego usługi Azure Database for PostgreSQL — serwer elastyczny.

  2. Przejdź do obszaru Obliczenia i magazyn: w sekcji Ustawienia wybierz pozycję Obliczenia i magazyn. Na tej stronie zostanie wyświetlona bieżąca konfiguracja węzłów klastra.

    Zrzut ekranu przedstawiający panel Przegląd klastra elastycznego.

  3. Dostosuj liczbę węzłów: znajdź pole Liczba węzłów. Zwiększ liczbę do żądanych węzłów całkowitych (od 2 do 20 dla większości klastrów w ogólnie dostępnej wersji). Aby na przykład podwoić klaster czterech węzłów do ośmiu węzłów, zwiększ suwak do 8. Platforma Azure przydziela dodatkowe węzły robocze, aby osiągnąć tę liczbę.

    Zrzut ekranu pokazujący, jak wybrać stronę Obliczenia + magazynowanie.

  4. Zastosuj zmiany: wybierz pozycję Zapisz. Potwierdź operację skalowania w poziomie po wyświetleniu monitu. Platforma Azure rozpoczyna dodawanie węzłów do klastra. Ta operacja jest wykonywana w trybie online i zwykle nie przerywa istniejących połączeń ani zapytań. Wdrożenie może potrwać kilka minut. Postęp można monitorować w powiadomieniach portalu. Po zakończeniu liczba węzłów klastra odzwierciedla nową wartość.

Uwaga / Notatka

Należy bezpośrednio wyzwolić proces równoważenia shardów w tle, aby umożliwić ponowne dystrybuowanie istniejących danych we wszystkich węzłach. Ta operacja nie obejmuje przestoju dla operacji odczytu i zapisu.

Równoważenie

Po dodaniu węzłów do klastra wszelkie nowe modyfikacje danych lub nowo dodane tabele rozproszone używają wszystkich dostępnych węzłów. Istniejące fragmenty danych pozostają tam, gdzie się znajdują, dopóki nie zostaną ponownie rozdystrybuowane. Ponowne równoważenie w trybie online gwarantuje, że odczyty i zapisy z aplikacji będą kontynuowane z minimalnymi przerwami podczas przenoszenia danych.

Podczas rozszerzania klastra elastycznego, równoważenie klastra gwarantuje, że istniejące dane są całkowicie rozproszone, a baza danych używa wszystkich dostępnych węzłów. Użyj funkcji citus_rebalance_start , aby uruchomić proces ponownego równoważenia. Ta operacja dystrybuuje istniejące dane równomiernie we wszystkich węzłach.

SELECT citus_rebalance_start();

Równoległe równoważenie

Domyślna operacja ponownego równoważenia wykonuje wiele ruchów fragmentów w kolejności sekwencyjnej. W niektórych przypadkach możesz preferować szybsze zrównoważenie, kosztem użycia większej ilości zasobów, takich jak obliczenia, pamięć i przepustowość sieci. W takich sytuacjach można skonfigurować operację ponownego równoważenia w celu równoległego wykonywania wielu ruchów fragmentów.

Parametr citus.max_background_task_executors_per_node umożliwia równoległe działanie zadań, takich jak ponowne równoważenie fragmentów. Możesz zwiększyć wartość domyślną (1) zgodnie z potrzebami, aby zwiększyć równoległość.

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

Ponadto można skonfigurować funkcję citus_rebalance_start w celu ponownego równoważenia fragmentów zgodnie z różnymi strategiami, aby najlepiej dopasować obciążenie bazy danych. Teraz, gdy dodano dodatkowych wykonawców zadań w tle, oto przykład ponownego równoważenia segmentów przy użyciu równoległych pracowników.

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

Rozważania

Monitoruj klaster po skalowaniu: sprawdź użycie procesora, zużycie pamięci i zużycie IO na wykresach monitoringu w portalu Azure dla klastra elastycznego. Po operacji skalowania w poziomie sprawdź, czy dodanie węzłów odzwierciedla poprawy parametrów dla przepływności i czasów reakcji, w zależności od obciążenia. Dalej dostosuj, jeśli to konieczne.

Skalowanie klastra elastycznego wpływa liniowo na koszty zasobów. Dodawanie węzłów mnoży koszty zasobów obliczeniowych i magazynu przez liczbę węzłów. Na przykład klaster z czterema węzłami, każdy z dwoma vCore'ami, kosztuje około cztery razy więcej niż pojedynczy serwer z dwoma vCore'ami, ponieważ działasz na czterech serwerach. Zawsze przejrzyj wpływ cen w portalu. Szacowany koszt jest aktualizowany na portalu Azure w momencie zmiany konfiguracji przed zapisaniem, aby upewnić się, że mieści się w Twoim budżecie.

Wysoka dostępność: jeśli klaster ma włączoną strefowo nadmiarową wysoką dostępność, operacje skalowania również zapewniają zasoby rezerwowe dla nowych węzłów. Usługa platformy Azure obsługuje to automatycznie. Oczekuj, że proces skalowania w poziomie zajmie nieco więcej czasu, ponieważ konfiguracja replik wysokiej dostępności dla każdego dodanego węzła wymaga dodatkowych ustawień. Charakterystyka procesu i przestoju pozostają prawie takie same, pomnożone dla par podstawowych i rezerwowych.

Repliki do odczytu: jeśli klaster jest skonfigurowany do używania replik do odczytu, należy wykonać określoną kolejność operacji podczas dodawania węzłów do klastra. Najpierw dodaj liczbę węzłów do klastra podstawowego i zapisz zmiany. Po pomyślnym zakończeniu wprowadź odpowiednią zmianę w środowisku repliki do odczytu i zapisz zmiany. Nowe węzły w klastrze podstawowym nie kwalifikują się do operacji klastra, dopóki nie zostaną zaktualizowane i zsynchronizowane środowiska repliki podstawowej i odczytu.

Uwaga / Notatka

Możliwość usuwania węzłów z klastra elastycznego (skalowanie w poziomie) nie jest jeszcze dostępna.

Korzystając z powyższych technik skalowania, elastyczne klastry usługi Azure Database for PostgreSQL zapewniają elastyczność zaczynania od małych rozmiarów i bezproblemowego skalowania bazy danych w miarę wzrostu zapotrzebowania. Otrzymujesz prostotę pojedynczego punktu końcowego w połączeniu z mocą rozproszonej infrastruktury PostgreSQL. Kontynuuj monitorowanie dokumentacji platformy Azure pod kątem najnowszych aktualizacji funkcji klastrów elastycznych i najlepszych rozwiązań dotyczących skalowania.