Freigeben über


Skalieren mit elastischen Clustern

Dieser Artikel enthält schrittweise Anleitungen zum Ausführen horizontaler Skalierungsvorgänge für Ihren flexiblen Azure-Datenbank-Cluster für PostgreSQL.

Azure Database for PostgreSQL Elastic Clusters bietet horizontale Skalierung durch Hinzufügen weiterer Arbeitsknoten zu Ihrem Cluster. Wenn Sie Ihren PostgreSQL Elastic Cluster skalieren, können Sie das Wachstum bewältigen, indem Sie Ihrer Datenbank mehr Ressourcen oder mehr Knoten für die parallele Abfrageverarbeitung geben. Sie erhalten all diese Vorteile mit minimalen Ausfallzeiten und der integrierten Shard-Verwaltung.

Skalierungs-Methoden

Verwenden Sie eine von mehreren Methoden, um Ihrem elastischen Cluster Arbeitsknoten hinzuzufügen , einschließlich des Azure-Portals, der Azure CLI oder der Automatisierung über ARM-Vorlagen und APIs – je nach Ihren Workflow- und Automatisierungsanforderungen. In den folgenden Abschnitten finden Sie schrittweise Anleitungen für das Portal und die CLI sowie Erläuterungen zum Rebalancing nach der Skalierung.

Verwenden des Azure-Portals:

  1. Öffnen Sie die Ressource: Navigieren Sie im Azure-Portal zu Ihrer Azure-Datenbank für PostgreSQL – Flexible Serverlastencluster.

  2. Wechseln Sie zu Compute + Storage: Wählen Sie im Abschnitt "Einstellungen" die Option "Compute + Storage" aus. Auf dieser Seite wird die aktuelle Konfiguration der Clusterknoten angezeigt.

    Screenshot der Seite

  3. Knotenanzahl anpassen: Finden Sie das Feld für die Knotenanzahl. Erhöhen Sie die Zahl auf die gewünschten Gesamtknoten (zwischen 2 und 20 für die meisten Cluster bei GA). Um z. B. einen Vierknotencluster auf acht Knoten zu verdoppeln, erhöhen Sie den Schieberegler auf 8. Azure stellt zusätzliche Arbeitsknoten bereit, um diese Anzahl zu erreichen.

    Screenshot des Vorgangs, wie die Seite „Compute und Speicher“ ausgewählt wird

  4. Änderungen übernehmen: Wählen Sie "Speichern" aus. Bestätigen Sie den Skalierungsvorgang, wenn Sie dazu aufgefordert werden. Azure beginnt mit dem Hinzufügen von Knoten zu Ihrem Cluster. Dieser Vorgang wird online ausgeführt und unterbricht in der Regel keine vorhandenen Verbindungen oder Abfragen. Die Bereitstellung kann einige Minuten dauern. Sie können den Fortschritt in den Portalbenachrichtigungen überwachen. Nach Abschluss spiegelt die Knotenanzahl des Clusters den neuen Wert wider.

Hinweis

Sie müssen den Hintergrundprozess für den Shardausgleich explizit auslösen, damit vorhandene Daten neu auf alle Knoten verteilt werden können. Dieser Vorgang umfasst keine Ausfallzeiten für Lese- und Schreibvorgänge.

Umbalancierung

Nachdem Sie Ihrem Cluster Knoten hinzugefügt haben, verwenden alle neuen Datenänderungen oder neu hinzugefügten verteilten Tabellen alle verfügbaren Knoten. Vorhandene Datenshards bleiben dort, wo sie sich befinden, bis sie weiterverteilt werden. Das Online-Rebalancing stellt sicher, dass Lese- und Schreibvorgänge in der Anwendung mit minimalen Unterbrechungen fortgesetzt werden, während Daten verschoben werden.

Wenn Sie Ihren elastischen Cluster aufskalieren, wird durch den Ausgleich des Clusters sichergestellt, dass Ihre vorhandenen Daten vollständig verteilt sind und die Datenbank alle verfügbaren Knoten verwendet. Verwenden Sie die citus_rebalance_start-Funktion , um den Neuausgleichsprozess zu starten. Dieser Vorgang verteilt vorhandene Daten gleichmäßig über alle Knoten.

SELECT citus_rebalance_start();

Paralleler Ausgleich

Der standardmäßige Ausgleichsvorgang führt mehrere Shardverschiebungen in einer sequenziellen Reihenfolge aus. In einigen Fällen sollten Sie es vorziehen, sich schneller auf Kosten der Verwendung weiterer Ressourcen wie Compute, Arbeitsspeicher und Netzwerkbandbreite neu auszubalancieren. In diesen Situationen können Sie einen Rebalance-Vorgang so konfigurieren, dass viele Shardverschiebungen parallel ausgeführt werden.

Der Parameter citus.max_background_task_executors_per_node ermöglicht es Vorgängen wie dem Shard-Rebalancing, parallel abzulaufen. Sie können den Standardwert (1) nach Wunsch erhöhen, um Parallelität zu erhöhen.

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

Darüber hinaus können Sie die citus_rebalance_start-Funktion so konfigurieren, dass Shards entsprechend unterschiedlichen Strategien neu ausgeglichen werden, um ihren Datenbankworkload optimal abzugleichen. Nachdem Sie nun zusätzliche Hintergrundaufgaben-Executor hinzugefügt haben, finden Sie hier ein Beispiel für den Ausgleich von Shards mithilfe paralleler Worker:

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

Überlegungen

Überwachen Sie Ihren Cluster nach der Skalierung: Überprüfen Sie die CPU-Auslastung, die Speicherauslastung und den E/A-Verbrauch auf den Überwachungsdiagrammen des Azure-Portals für Ihren elastischen Cluster. Stellen Sie nach einer Skalierungsoperation sicher, dass das Hinzufügen von Knoten je nach Workload Verbesserungen bei den Metriken für Durchsatz und Reaktionszeiten widerspiegelt. Weitere Anpassungen bei Bedarf vornehmen.

Die Skalierung eines elastischen Clusters beeinflusst die Kosten linear in Zusammenhang mit den Ressourcen. Das Hinzufügen von Knoten multipliziert die Berechnungs- und Speicherkosten mit der Anzahl der Knoten. Beispielsweise kostet ein Vier-Knoten-Cluster mit zwei vCores jeweils ungefähr viermal, was ein einzelner zwei-vCore-Server kostet, da Sie vier Server ausführen. Überprüfen Sie immer die Auswirkungen auf die Preise im Portal. Die geschätzten Kosten werden im Azure-Portal aktualisiert, wenn Sie die Konfiguration ändern, bevor Sie speichern, um sicherzustellen, dass sie Ihr Budget erfüllt.

Hohe Verfügbarkeit: Wenn in Ihrem Cluster zonenredundante Hochverfügbarkeit aktiviert ist, stellen Skalierungsvorgänge auch Standby-Ressourcen für neue Knoten bereit. Der Azure-Dienst behandelt dies automatisch. Gehen Sie davon aus, dass die horizontale Skalierung etwas länger dauert, da Hochverfügbarkeitsreplikate für jeden hinzugefügten Knoten eingerichtet werden. Die Prozess- und Ausfallzeitsmerkmale bleiben nahezu gleich, multipliziert für primäre und Standby-Paare.

Lesereplikate: Wenn Ihr Cluster so konfiguriert ist, dass Lesereplikate verwendet werden, müssen Sie eine bestimmte Reihenfolge von Vorgängen befolgen, wenn Sie Knoten zu Ihrem Cluster hinzufügen. Fügen Sie zunächst die Anzahl der Knoten zu Ihrem primären Cluster hinzu, und speichern Sie die Änderungen. Nehmen Sie bei erfolgreichem Abschluss die entsprechende Änderung an Ihrer Lesereplikatumgebung, und speichern Sie die Änderungen. Ihre neuen Knoten im primären Cluster können nicht an Clustervorgängen teilnehmen, bis sowohl die primären als auch die Lese-Replik-Umgebungen aktualisiert und synchronisiert sind.

Hinweis

Die Möglichkeit zum Entfernen von Knoten aus einem elastischen Cluster (Scale-In) ist noch nicht verfügbar.

Durch die Verwendung der vorherigen Skalierungstechniken bieten Ihnen Azure Database for PostgreSQL elastic clusters die Flexibilität, klein zu beginnen und Ihre Datenbank nahtlos zu vergrößern, während die Nachfrage steigt. Sie erhalten die Einfachheit eines einzelnen Endpunkts mit der Leistungsfähigkeit der verteilten Postgres-Infrastruktur. Beobachten Sie weiterhin die Azure-Dokumentation für die neuesten Updates zu elastischen Clustereigenschaften und bewährten Methoden für die Skalierung.