Auf dieser Seite wird beschrieben, wie Sie eine Hochverfügbarkeitskonfiguration für AlloyDB Omni einrichten. Auf dieser Seite wird nur das Erstellen einer neuen AlloyDB Omni-Instanz in einer Hochverfügbarkeitskonfiguration behandelt. Die Umwandlung bestehender Instanzen in Hochverfügbarkeit wird nicht behandelt.
Hinweise
Lesen Sie den Hilfeartikel Hochverfügbarkeit und Datenausfallsicherheit.
Wenn Sie noch kein Projekt haben, erstellen Sie ein Google Cloud .
Die Abrechnung für Ihr Projekt muss aktiviert sein.
Öffnen Sie Cloud Shell in der Google Cloud Console.
Klonen Sie in der Google Cloud Console das folgende Quell-Repository.
git clone https://github.com/GoogleCloudPlatform/cloud-solutions.git
Installation
In dieser Anleitung stellen wir einen Patroni-Cluster mit drei Knoten und AlloyDB Omni sowie einen etcd-Cluster mit drei Knoten als Konfigurationsspeicher bereit. Vor dem Cluster verwenden wir HAProxy in einer verwalteten Instanzgruppe für die Floating-IP-Adresse, damit der Failover für die Kunden transparent ist.
Die Erstkonfiguration für diese Einrichtung ist im folgenden Diagramm dargestellt:
Abbildung 1. Konfiguration, bei der HAProxy die Verbindung zwischen den Clients und dem primären Knoten verwaltet.
Bei einem Ausfall ändert sich die Konfiguration in das folgende Diagramm:
Abbildung 2. Aktualisierte Konfiguration, bei der der ausgefallene primäre Knoten durch den Standby-Knoten ersetzt wird.
Wenn die Anzahl der Clients, die eine Verbindung zur Datenbank herstellen, zu einem Problem wird und Sie aufgrund der hohen Anzahl gleichzeitiger Datenbankverbindungen Leistungsprobleme haben, empfehlen wir Ihnen, ein anwendungsseitiges Verbindungs-Pooling hinzuzufügen. Wenn das nicht möglich ist, können Sie mit einem Tool wie PgBouncer ein datenbankseitiges Verbindungs-Pooling hinzufügen.
Bereitstellung
Nachdem Sie das Cloud Solutions-Repository geklont haben, rufen Sie in Cloud Shell das Verzeichnis „terraform“ auf.
cd cloud-solutions/projects/alloydbomni-ha-patroni-etcd/terraform
Erstellen und bearbeiten Sie eine
terraform.tfvars
-Datei. Legen Sie in der Datei Werte für die folgenden Variablen fest.project_id = "PROJECT_ID" region = "REGION" zones = "ZONES" node_count = 3 cluster_name = "CLUSTER_NAME" replication_user_password = "REPLICATION_USER_PASSWORD" postgres_super_user_password = "PG_SUPER_USER_PASSWORD"
Beschreibungen der einzelnen Variablen finden Sie auf GitHub in der Konfigurationsdatei für Variablen.
Führen Sie das Terraform-Script aus, um alle Ressourcen zu erstellen.
terraform init && terraform apply
Dieses Script erstellt und konfiguriert Folgendes:
Drei Knoten für Ihren etcd-Cluster
Drei Knoten für Ihren Patroni-Cluster
Ein Knoten für HAProxy
Patroni synchron konfigurieren
Wenn Patroni nur die synchrone Replikation in Ihrem Cluster mit drei Knoten verwenden soll, fügen Sie in den Patroni-Konfigurationsdateien im Abschnitt „bootstrap“ Konfigurationselemente wie synchronous_mode
, synchronous_node_count
, synchronous_commit
und synchronous_standby_names
hinzu. Die Patroni-Konfiguration wird in der Startskriptvorlage und in der /alloydb/config/patroni.yml
-Datei auf den Patroni-Knoten definiert. Wenn Sie die synchrone Replikation verwenden möchten, sollte Ihre Patroni-Bootstrap-Konfiguration so aussehen:
bootstrap:
dcs:
ttl: 30
loop_wait: 10
retry_timeout: 10
maximum_lag_on_failover: 1048576
synchronous_mode: true
synchronous_node_count: 2
postgresql:
use_pg_rewind: true
use_slots: true
parameters:
hot_standby: "on"
wal_keep_segments: 20
max_wal_senders: 8
max_replication_slots: 8
synchronous_commit: remote_apply
synchronous_standby_names: '*'
Wenn synchronous_mode
aktiviert ist, verwendet Patroni die synchrone Replikation zwischen dem primären und den anderen Replicas. Der Parameter synchronous_node_count
wird von Patroni verwendet, um die Anzahl der synchronen Standby-Replikate zu verwalten. Patroni verwaltet die genaue Anzahl der synchronen Standby-Replikate basierend auf dem Parameter synchronous_node_count
und passt den Status im Konfigurationsspeicher und in synchronous_standby_names
an, wenn Mitglieder beitreten oder verlassen. Weitere Informationen zur synchronen Replikation finden Sie in der Patroni-Dokumentation im Abschnitt Replikationsmodi.