In diesem Abschnitt wird erläutert, wie Sie die Sicherung und Wiederherstellung Ihrer Cassandra-Datenbank mit SSH und Ihrem Dateisystem konfigurieren, statt mit Google Cloud. Siehe auch:
Was ist Cassandra-Sicherung und -Wiederherstellung ohne Google Cloud-Dienste?
Bei der Sicherung ohne Cloud-Dienste werden Sicherungen Ihrer Cassandra-Datenbank in komprimierte Dateien im Dateisystem eines Servers gespeichert, den Sie angeben. Die Sicherungen werden nach einem Zeitplan ausgeführt, den Sie in der Überschreibungendatei angeben. Die Verbindung zum Server erfolgt über eine sichere SSH-Verbindung.
Sicherungen ohne Cloud-Dienste einrichten:
Die folgenden Schritte enthalten gängige Beispiele für die Ausführung bestimmter Aufgaben, z. B. das Erstellen eines SSH-Schlüsselpaars. Verwenden Sie die für Ihre Installation geeigneten Methoden.
Der Vorgang besteht aus folgenden Teilen:
Server und SSH einrichten
- Geben Sie einen Linux- oder Unix-Server für Ihre Sicherungen an. Dieser Server muss über SSH von Ihrer Apigee Hybrid-Laufzeitebene erreichbar sein. Es muss genügend Speicherplatz für die Sicherungen haben.
- Richten Sie einen SSH-Server auf dem Server ein bzw. prüfen Sie, ob ein sicherer SSH-Server konfiguriert ist.
- Erstellen Sie ein SSH-Schlüsselpaar und speichern Sie die Datei mit dem privaten Schlüssel in einem Pfad, auf den von der Hybrid-Laufzeitebene aus zugegriffen werden kann. Verwenden Sie kein leeres Passwort für das Schlüsselpaar. Beispiel:
ssh-keygen -t rsa -b 4096 -C exampleuser@example.com
Enter file in which to save the key (/Users/exampleuser/.ssh/id_rsa): $APIGEE_HOME/hybrid-files/certs/ssh_key Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ssh_key Your public key has been saved in ssh_key.pub The key fingerprint is: SHA256:DWKo334XMZcZYLOLrd/8HNpjTERPJJ0mc11UYmrPvSA exampleuser@example.com The key's randomart image is: +---[RSA 4096]----+ | +. ++X| | . . o.=.*+| | . o . . o==o | | . . . =oo+o...| | . S +E oo .| | . . .. . o .| | . . . . o.. | | . ...o ++. | | .. .. +o+. | +----[SHA256]-----+ - Erstellen Sie auf dem Sicherungsserver ein Nutzerkonto mit dem Namen „
apigee
“. Achten Sie darauf, dass der neue Nutzer „apigee
“ ein Basisverzeichnis unter/home
hat. - Erstellen Sie auf dem Sicherungsserver das Verzeichnis „
ssh
“ im neuen Verzeichnis/home/apigee
. - Kopieren Sie den öffentlichen Schlüssel (im vorherigen Beispiel
ssh_key.pub
) in eine Datei mit dem Namen „authorized_keys
“ im neuen Verzeichnis/home/apigee/ssh
. Beispiel:cd /home/apigee
mkdir .ssh
cd .ssh
vi authorized_keys
- Erstellen Sie auf dem Sicherungsserver ein Sicherungsverzeichnis im Verzeichnis
/home/apigee/
. Das Sicherungsverzeichnis kann ein beliebiges Verzeichnis sein, solange der Nutzer „apigee“ Zugriff darauf hat. Beispiel:cd /home/apigee
mkdir cassandra-backup
- Testen Sie die Verbindung. Sie müssen sicherstellen, dass Ihre Cassandra-Pods eine SSH-Verbindung zu Ihrem Sicherungsserver herstellen können:
- Melden Sie sich in der Shell des Cassandra-Pods an. Beispiel:
kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
Dabei ist apigee-cassandra-default-0 der Name eines Cassandra-Pods. Ändern Sie dies in den Namen des Pods, von dem Sie eine Verbindung herstellen möchten.
- Stellen Sie über die Server-IP-Adresse eine SSH-Verbindung zu Ihrem Sicherungsserver her:
ssh apigee@backup-server-ip
- Melden Sie sich in der Shell des Cassandra-Pods an. Beispiel:
Zeitplan und Ziel für Sicherung festlegen
Zeitplan und Ziel für Sicherungen werden in der Datei overrides.yaml
festgelegt.
- Fügen Sie der Datei
overrides.yaml
Folgendes hinzu:Parameter
cassandra:backup: enabled: true keyFile: "path-to-private-key-file" server: "backup-server-ip" storageDirectory: "/home/apigee/backup-directory" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) schedule: "schedule"
Beispiel
cassandra:backup: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *"
Wobei:
Attribut Beschreibung backup:enabled
Die Sicherung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf true
festlegen.path-to-private-key-file Der Pfad in Ihrem lokalen Dateisystem zur privaten SSH-Schlüsseldatei, die Sie in dem Schritt, in dem Sie das SSH-Schlüsselpaar erstellt haben, mit ssh_key
benannt haben.backup-server-ip Die IP-Adresse des Sicherungsservers. backup-directory Der Name des Sicherungsverzeichnisses auf dem Sicherungsserver. Dies muss ein Verzeichnis innerhalb home/apigee
(das Sicherungsverzeichnis heißtcassandra_backup
in dem Schritt, in dem Sie das Sicherungsverzeichnis erstellt haben) sein.HYBRID
Das Attribut cloudProvider: "HYBRID"
ist erforderlich.schedule Die Zeit, zu der das Backup startet, angegeben in der Standard-Crontab-Syntax. Standard: 0 2 * * *
Hinweis: Planen Sie keine Backups, die kurz nach dem Anwenden der Backup-Konfiguration auf den Cluster startet. Wenn Sie die Backup-Konfiguration anwenden, erstellt Kubernetes die Cassandra-Knoten neu. Wenn das Backup vor dem Neustart der Knoten (möglicherweise mehrere Minuten) startet, schlägt die Backup fehl.
- Verwenden Sie
apigeectl
, um die Sicherungskonfiguration auf den Speicherbereich Ihres Clusters anzuwenden:$APIGEECTL_HOME/apigeectl --datastore -f your-overrides-file
Dabei ist your-overrides-file der Pfad zu der Überschreibungsdatei, die Sie gerade bearbeitet haben.
Wiederherstellung konfigurieren
Die Wiederherstellung übernimmt die Daten aus der Sicherungsdatei mit dem von Ihnen angegebenen Zeitstempel und stellt sie in einem neuen Cassandra-Cluster mit derselben Anzahl von Pods wieder her. Der neue Cluster muss einen Namespace haben, der sich von Ihrem Cluster auf Laufzeitebene unterscheidet.
So stellen Sie Cassandra-Backups wieder her:
- Einen neuen Kubernetes-Cluster mit einem neuen Namespace erstellen. Sie können nicht den Cluster/Namespace verwenden, den Sie für die ursprüngliche Hybridinstallation verwendet haben.
- Erstellen Sie im Stammverzeichnis der Hybridinstallation eine neue
overrides-restore.yaml
-Datei. - Kopieren Sie die gesamte Cassandra-Konfiguration aus der ursprünglichen
overrides.yaml
-Datei in die neue. - Fügen Sie der Datei
overrides-restore.yaml
Folgendes hinzu:Parameter
namespace: restore-namespace cassandra: restore: enabled: true keyFile: "path-to-private-key-file" server: "backup-server-ip" storageDirectory: "/home/apigee/backup-directory" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) snapshotTimestamp: "backup-to-restore"
Beispiel
namespace: cassandra-restore cassandra: restore: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" snapshotTimestamp: "20201001183903"
Wobei:
Attribut Beschreibung restore-namespace Der Name des neuen Namespace, den Sie für den neuen Cassandra-Cluster verwenden. Verwenden Sie nicht denselben Namespace, den Sie für den ursprünglichen Cluster verwendet haben. restore:enabled
Die Wiederherstellung ist standardmäßig deaktiviert. Sie müssen dieses Attribut auf true
festlegen.path-to-private-key-file Der Pfad in Ihrem lokalen Dateisystem zur privaten SSH-Schlüsseldatei, die Sie in dem Schritt, in dem Sie das SSH-Schlüsselpaar erstellt haben, mit ssh_key
benannt haben.backup-server-ip Die IP-Adresse des Sicherungsservers. backup-directory Der Name des Sicherungsverzeichnisses auf dem Sicherungsserver. Dies muss ein Verzeichnis innerhalb home/apigee
(das Sicherungsverzeichnis heißtcassandra_backup
in dem Schritt, in dem Sie das Sicherungsverzeichnis erstellt haben) sein.HYBRID
Das Attribut cloudProvider: "HYBRID"
ist erforderlich.backup-to-restore Die Sicherung, die Sie wiederherstellen möchten, wie in der Standard-Crontab-Syntax angegeben (keine Platzhalter zulässig). - Verwenden Sie
apigeectl
, um die Sicherungskonfiguration auf den Speicherbereich Ihres Clusters anzuwenden:$APIGEECTL_HOME/apigeectl --datastore -f your-overrides-restore-file
Dabei ist your-overrides-restore-file der Pfad zu der
overrides-restore.yaml
-datei, die Sie gerade bearbeitet haben.