Spanner Omni-Bereitstellung verwalten

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:

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.

  1. Löschen Sie den Server, den Sie ersetzen möchten:

    spanner deployment servers delete SERVER_ENDPOINT --zone=ZONE
    

    Ersetzen Sie Folgendes:

    • SERVER_ENDPOINT: Der Endpunkt des Server-Pods, der gelöscht werden soll, im Format SERVER.pod.NAMESPACE:PORT, z. B. spanner-a-1.pod.spanner-ns:15000. Führen Sie spanner 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=ZONE
    

    Warten Sie, bis der Befehl einen NOT_FOUND-Fehler zurückgibt oder angibt, dass der Server nicht mehr registriert ist.

  2. Löschen Sie den PersistentVolumeClaim (PVC) für den Pod, der den Server hostet:

    kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACE
    

    Ersetzen Sie Folgendes:

    • DATA_VOLUME_NAME: Der Name des Datenvolumes, z. B. data-volume-spanner-a-1. Führen Sie kubectl get pvc -n NAMESPACE aus, um den Namen des Datenvolumes zu finden. Listen Sie die PVCs in Ihrem Namespace auf, indem Sie
    • NAMESPACE: Der Namespace der Bereitstellung, z. B. spanner-ns.
  3. Löschen Sie den Pod:

    kubectl delete pod POD_NAME -n NAMESPACE
    

    Ersetzen Sie POD_NAME durch 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.

  4. Fügen Sie der Bereitstellung den neuen Server hinzu:

    spanner deployment servers create SERVER_ENDPOINT --zone=ZONE
    

    Prüfen Sie, ob die Argumente mit dem neuen Pod-Endpunkt und der neuen Zone übereinstimmen, z. B. mit spanner-a-1.pod.spanner-ns:15000 als Endpunkt und us-central1-a als Zone.

VM

Führen Sie die folgenden Schritte aus, um einen Stammserver in einer VM-Bereitstellung zu ersetzen:

  1. Löschen Sie den Server, den Sie ersetzen möchten:

    spanner deployment servers delete SERVER_ENDPOINT --zone=ZONE
    

    Ersetzen Sie Folgendes:

    • SERVER_ENDPOINT: Die IP-Adresse oder der Hostname und Port des Servers, z. B. spanner-vm-1.example.com:15000. Führen Sie spanner 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=ZONE
    

    Warten Sie, bis der Befehl einen NOT_FOUND-Fehler zurückgibt oder angibt, dass der Server nicht mehr registriert ist.

  2. 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_DIR
    

    Ersetzen 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.
  3. Fügen Sie der Bereitstellung den neuen Server hinzu:

    spanner deployment servers create SERVER_ENDPOINT --zone=ZONE
    

    Prüfen Sie, ob die Argumente mit den Parametern des neuen Servers übereinstimmen, z. B. mit spanner-vm-1.example.com:15000 als Endpunkt und us-central1-a als 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:

  1. Löschen Sie den Server, den Sie ersetzen möchten:

    spanner deployment servers delete SERVER_ENDPOINT --zone=ZONE
    

    Ersetzen Sie Folgendes:

    • SERVER_ENDPOINT: Der Endpunkt des Server-Pods, der gelöscht werden soll, im Format SERVER.pod.NAMESPACE:PORT, z. B. spanner-a-4.pod.spanner-ns:15000. Führen Sie spanner 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=ZONE
    

    Warten Sie, bis der Befehl einen NOT_FOUND-Fehler zurückgibt oder angibt, dass der Server nicht mehr registriert ist.

  2. Löschen Sie den PersistentVolumeClaim (PVC) für den Pod, der den Server hostet:

    kubectl delete pvc DATA_VOLUME_NAME -n NAMESPACE
    

    Ersetzen Sie Folgendes:

    • DATA_VOLUME_NAME: Der Name des Datenvolumes, z. B. data-volume-spanner-a-4. Führen Sie kubectl get pvc -n NAMESPACE aus, um den Namen des Datenvolumes zu finden. Listen Sie die PVCs in Ihrem Namespace auf, indem Sie
    • NAMESPACE: Der Namespace der Bereitstellung, z. B. spanner-ns.
  3. Löschen Sie den Pod:

    kubectl delete pod POD_NAME -n NAMESPACE
    

    Ersetzen Sie POD_NAME durch 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:

  1. Löschen Sie den Server, den Sie ersetzen möchten:

    spanner deployment servers delete SERVER_ENDPOINT --zone=ZONE
    

    Ersetzen Sie Folgendes:

    • SERVER_ENDPOINT: Die IP-Adresse oder der Hostname und Port des Servers, z. B. spanner-vm-4.example.com:15000. Führen Sie spanner 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=ZONE
    

    Warten Sie, bis der Befehl einen NOT_FOUND-Fehler zurückgibt oder angibt, dass der Server nicht mehr registriert ist.

  2. 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.

Nächste Schritte