In diesem Dokument wird erläutert, wie Sie eine Spanner Omni-Bereitstellung verwalten. Die Wartung einer Spanner Omni-Bereitstellung umfasst regelmäßige Systemdiagnosen, die Außerbetriebnahme fehlerhafter Elemente und den Austausch von Serverknoten oder fehlerhaften Laufwerken, um die Clusterstabilität und ‑konsistenz zu gewährleisten. Durch die Verwaltung des Datenbankzustands werden Ihre Datenbanken vor ungeplanten Ausfällen geschützt und die Redundanz der zugrunde liegenden Paxos-Konsensgruppe aufrechterhalten.
Die Durchführung von Wartungsarbeiten hilft Ihnen dabei, Folgendes zu erreichen:
Hochverfügbarkeit gewährleisten: Stellen Sie fehlerhafte virtuelle Maschinen (VMs) oder Pods neu bereit, um die Redundanz des Datenbankservers aufrechtzuerhalten. So können Sie Ihre Anwendungen auch bei Hardwarefehlern weiter ausführen.
Datensicherheit und ‑integrität schützen: Nehmen Sie Knoten mit fehlerhaften Laufwerken außer Betrieb um zu verhindern, dass sich Speicherfehler auf andere Teile der Datenbank ausbreiten. Außerdem wird so verhindert, dass getrennte Server widersprüchliche Aktualisierungen aufzeichnen.
Hinweis
Bevor Sie Wartungsarbeiten an Ihrer Kubernetes-Bereitstellung durchführen, müssen Sie Folgendes tun:
Erstellen Sie eine Spanner Omni-Bereitstellung. Weitere Informationen finden Sie unter Bereitstellung in Kubernetes erstellen oder Bereitstellung auf VMs erstellen.
Laden Sie die Spanner Omni CLI herunter und installieren Sie sie.
Installieren Sie für Bereitstellungen in Kubernetes Helm und erstellen Sie eine Helm-Diagrammkonfiguration.
Server ersetzen
Möglicherweise müssen Sie einen Server in Ihrer Bereitstellung ersetzen, um System- oder Speicherfehler zu beheben.
Stammserver ersetzen
Wählen Sie den Tab für Ihre Umgebung aus, um einen Stammserver zu ersetzen:
Kubernetes
Führen Sie die folgenden Schritte aus, um einen Stammserver in einer Kubernetes-Bereitstellung zu ersetzen. Das Hinzufügen weiterer Stammserver zu einer vorhandenen Kubernetes-Bereitstellung wird nicht unterstützt. Sie können jedoch vorhandene Stammserver ersetzen, um nicht behebbare Fehler zu beheben.
Löschen Sie den Server, den Sie ersetzen möchten:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEErsetzen Sie Folgendes:
SERVER_ENDPOINT: Der Endpunkt des Server-Pods, der gelöscht werden soll, im FormatSERVER.pod.NAMESPACE:PORT, z. B.spanner-a-1.pod.spanner-ns:15000. Führen Siespanner deployment servers list --zone=ZONEaus, um die Serverendpunkte in Ihrer Bereitstellung zu finden.ZONE: Die Zone, die den Server enthält, z. B.us-central1-a.
Dieser Schritt kann je nach Datenmenge auf dem Server einige Minuten dauern. Spanner Omni verschiebt die Daten von diesem Server auf andere Server in der Bereitstellung. Achten Sie darauf, dass der Server gelöscht wurde, bevor Sie mit dem nächsten Schritt fortfahren.
Prüfen Sie den Status des Servers, um den Fortschritt des Löschvorgangs zu verfolgen:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONEWarten Sie, bis der Befehl einen
NOT_FOUND-Fehler zurückgibt oder angibt, dass der Server nicht mehr registriert ist.Löschen Sie den PersistentVolumeClaim (PVC) für den Pod, der den Server hostet:
kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACEErsetzen Sie Folgendes:
DATA_VOLUME_NAME: Der Name des Datenvolumes, z. B.data-volume-spanner-a-1. Führen Siekubectl get pvc -n NAMESPACEaus, um den Namen des Datenvolumes zu finden. Listen Sie die PVCs in Ihrem Namespace auf, indem SieNAMESPACE: Der Namespace der Bereitstellung, z. B.spanner-ns.
Löschen Sie den Pod:
kubectl delete pod POD_NAME -n NAMESPACEErsetzen Sie
POD_NAMEdurch den Namen des Server-Pods, der gelöscht werden soll, z. B.spanner-a-1.Kubernetes startet automatisch einen neuen Server in einem Ersatz-Pod und hängt einen neuen PVC an.
Fügen Sie der Bereitstellung den neuen Server hinzu:
spanner deployment servers create SERVER_ENDPOINT --zone=ZONEPrüfen Sie, ob die Argumente mit dem neuen Pod-Endpunkt und der neuen Zone übereinstimmen, z. B. mit
spanner-a-1.pod.spanner-ns:15000als Endpunkt undus-central1-aals Zone.
VM
Führen Sie die folgenden Schritte aus, um einen Stammserver in einer VM-Bereitstellung zu ersetzen:
Löschen Sie den Server, den Sie ersetzen möchten:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEErsetzen Sie Folgendes:
SERVER_ENDPOINT: Die IP-Adresse oder der Hostname und Port des Servers, z. B.spanner-vm-1.example.com:15000. Führen Siespanner deployment servers list --zone=ZONEaus, um die Serverendpunkte zu finden.ZONE: Die Zone, die den Server enthält, z. B.us-central1-a.
Dieser Schritt kann je nach Datenmenge auf dem Server einige Minuten dauern. Spanner Omni verschiebt die Daten von diesem Server auf andere Server in der Bereitstellung. Achten Sie darauf, dass der Server gelöscht wurde, bevor Sie mit dem nächsten Schritt fortfahren.
Prüfen Sie den Status des Servers, um den Fortschritt des Löschvorgangs zu verfolgen:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONEWarten Sie, bis der Befehl einen
NOT_FOUND-Fehler zurückgibt oder angibt, dass der Server nicht mehr registriert ist.Stellen Sie den Server mit sauberem Speicher neu bereit, wie unter Bereitstellung für Spanner Omni auf VMs erstellen beschrieben:
spanner start \ --root \ --server-address=HOSTNAME \ --zone=ZONE \ --base-dir=BASE_DIRErsetzen Sie Folgendes:
HOSTNAME: Der auflösbare FQDN oder Hostname der neuen VM, z. B.spanner-vm-1.example.com.ZONE: Die Zielzone, z. B.us-central1-a.BASE_DIR: Der Pfad, in dem Daten gespeichert werden, z. B../span-dir.
Fügen Sie der Bereitstellung den neuen Server hinzu:
spanner deployment servers create SERVER_ENDPOINT --zone=ZONEPrüfen Sie, ob die Argumente mit den Parametern des neuen Servers übereinstimmen, z. B. mit
spanner-vm-1.example.com:15000als Endpunkt undus-central1-aals Zone.
Nicht-Stammserver ersetzen
Wählen Sie den Tab für Ihre Umgebung aus, um einen Nicht-Stammserver zu ersetzen:
Kubernetes
Führen Sie die folgenden Schritte aus, um einen Nicht-Stammserver in einer Kubernetes-Bereitstellung zu ersetzen:
Löschen Sie den Server, den Sie ersetzen möchten:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEErsetzen Sie Folgendes:
SERVER_ENDPOINT: Der Endpunkt des Server-Pods, der gelöscht werden soll, im FormatSERVER.pod.NAMESPACE:PORT, z. B.spanner-a-4.pod.spanner-ns:15000. Führen Siespanner deployment servers list --zone=ZONEaus, um die Serverendpunkte in Ihrer Bereitstellung zu finden.ZONE: Die Zone, die den Server enthält, z. B.us-central1-a.
Dieser Schritt kann je nach Datenmenge auf dem Server einige Minuten dauern. Spanner Omni verschiebt die Daten von diesem Server auf andere Server in der Bereitstellung. Achten Sie darauf, dass der Server gelöscht wurde, bevor Sie mit dem nächsten Schritt fortfahren.
Prüfen Sie den Status des Servers, um den Fortschritt des Löschvorgangs zu verfolgen:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONEWarten Sie, bis der Befehl einen
NOT_FOUND-Fehler zurückgibt oder angibt, dass der Server nicht mehr registriert ist.Löschen Sie den PersistentVolumeClaim (PVC) für den Pod, der den Server hostet:
kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACEErsetzen Sie Folgendes:
DATA_VOLUME_NAME: Der Name des Datenvolumes, z. B.data-volume-spanner-a-4. Führen Siekubectl get pvc -n NAMESPACEaus, um den Namen des Datenvolumes zu finden. Listen Sie die PVCs in Ihrem Namespace auf, indem SieNAMESPACE: Der Namespace der Bereitstellung, z. B.spanner-ns.
Löschen Sie den Pod:
kubectl delete pod POD_NAME -n NAMESPACEErsetzen Sie
POD_NAMEdurch den Namen des Server-Pods, der gelöscht werden soll, z. B.spanner-a-4.Kubernetes startet automatisch einen neuen Server in einem Ersatz-Pod und hängt einen neuen PVC an. Spanner Omni registriert den neuen Nicht-Stammserver automatisch in der Bereitstellung.
VM
Führen Sie die folgenden Schritte aus, um einen Nicht-Stammserver in einer VM-Bereitstellung zu ersetzen:
Löschen Sie den Server, den Sie ersetzen möchten:
spanner deployment servers delete SERVER_ENDPOINT --zone=ZONEErsetzen Sie Folgendes:
SERVER_ENDPOINT: Die IP-Adresse oder der Hostname und Port des Servers, z. B.spanner-vm-4.example.com:15000. Führen Siespanner deployment servers list --zone=ZONEaus, um die Serverendpunkte zu finden.ZONE: Die Zone, die den Server enthält, z. B.us-central1-a.
Dieser Schritt kann je nach Datenmenge auf dem Server einige Minuten dauern. Spanner Omni verschiebt die Daten von diesem Server auf andere Server in der Bereitstellung. Achten Sie darauf, dass der Server gelöscht wurde, bevor Sie mit dem nächsten Schritt fortfahren.
Prüfen Sie den Status des Servers, um den Fortschritt des Löschvorgangs zu verfolgen:
spanner deployment servers describe SERVER_ENDPOINT --zone=ZONEWarten Sie, bis der Befehl einen
NOT_FOUND-Fehler zurückgibt oder angibt, dass der Server nicht mehr registriert ist.Stellen Sie den Nicht-Stammserver mit sauberem Speicher neu bereit, wie unter Nicht-Stammserver hinzufügen beschrieben. Der Server wird automatisch der Bereitstellung hinzugefügt.