Pencadangan dan pemulihan tanpa Google Cloud

Bagian ini membahas cara mengonfigurasi pencadangan dan pemulihan database Cassandra Anda menggunakan SSH dan sistem file, bukan menggunakan Google Cloud. Lihat juga:

Apa itu pencadangan dan pemulihan Cassandra tanpa Layanan Google Cloud?

Pencadangan tanpa Layanan Cloud menyimpan cadangan database Cassandra Anda ke file terkompresi di sistem file server yang Anda tentukan. Pencadangan terjadi sesuai jadwal yang Anda tentukan dalam file penggantian Anda. Koneksi ke server dilakukan melalui SSH yang aman.

Menyiapkan pencadangan tanpa Layanan Cloud:

Langkah-langkah berikut mencakup contoh umum untuk menyelesaikan tugas tertentu, seperti membuat pasangan kunci SSH. Gunakan metode yang sesuai untuk penginstalan Anda.

Prosedur ini memiliki bagian berikut:

Menyiapkan server dan SSH

  1. Tentukan server Linux atau Unix untuk cadangan Anda. Server ini harus dapat dijangkau melalui SSH dari bidang runtime hybrid Apigee Anda. Perangkat harus memiliki penyimpanan yang cukup untuk cadangan Anda.
  2. Siapkan server SSH di server, atau pastikan server tersebut telah dikonfigurasi dengan server SSH yang aman.
  3. Buat pasangan kunci SSH dan simpan file kunci pribadi di jalur yang dapat diakses dari bidang runtime hibrida Anda. Jangan gunakan sandi kosong untuk pasangan kunci Anda. Contoh:
    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]-----+
  4. Buat akun pengguna di server cadangan dengan nama "apigee". Pastikan pengguna "apigee" baru memiliki direktori beranda di /home.
  5. Di server cadangan, buat direktori "ssh" di direktori /home/apigee baru.
  6. Salin kunci publik (ssh_key.pub dalam contoh sebelumnya) ke dalam file bernama "authorized_keys" di direktori /home/apigee/ssh baru. Contoh:
    cd /home/apigee
    mkdir .ssh
    cd .ssh
    vi authorized_keys
  7. Di server cadangan, buat direktori cadangan dalam direktori /home/apigee/. Direktori cadangan dapat berupa direktori apa pun selama pengguna "apigee" memiliki akses ke direktori tersebut. Contoh:
    cd /home/apigee
    mkdir cassandra-backup
  8. Uji koneksi. Anda harus memastikan bahwa pod Cassandra dapat terhubung ke server cadangan melalui SSH:
    1. Login ke shell pod Cassandra Anda. Contoh:
      kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash

      Dengan apigee-cassandra-default-0 adalah nama pod cassandra. Ubah ini menjadi nama pod yang ingin Anda hubungkan.

    2. Hubungkan dengan SSH ke server cadangan Anda, menggunakan alamat IP server:
      ssh apigee@backup-server-ip

Menetapkan jadwal dan tujuan pencadangan

Anda menetapkan jadwal dan tujuan untuk pencadangan di file overrides.yaml.

  1. Tambahkan parameter berikut ke file overrides.yaml Anda:

    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"
    

    Contoh

    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 * * *"
    

    Dengan:

    Properti Deskripsi
    backup:enabled Pencadangan dinonaktifkan secara default. Anda harus menetapkan properti ini ke true
    path-to-private-key-file Jalur pada sistem file lokal Anda ke file kunci pribadi SSH (bernama ssh_key pada langkah saat Anda membuat pasangan kunci SSH).
    backup-server-ip Alamat IP server cadangan Anda.
    backup-directory Nama direktori cadangan di server cadangan Anda. Ini harus berupa direktori dalam home/apigee (direktori cadangan diberi nama cassandra_backup di langkah saat Anda membuat direktori cadangan).
    HYBRID Properti cloudProvider: "HYBRID" wajib diisi.
    schedule Waktu saat pencadangan dimulai, yang ditentukan dalam sintaksis crontab standar. Default: 0 2 * * *

    Catatan: Hindari penjadwalan pencadangan yang dimulai tidak lama setelah Anda menerapkan konfigurasi pencadangan ke cluster. Saat Anda menerapkan konfigurasi pencadangan, Kubernetes akan membuat ulang node Cassandra. Jika pencadangan dimulai sebelum node dimulai ulang (mungkin beberapa menit) pencadangan akan gagal.

  2. Gunakan apigeectl untuk menerapkan konfigurasi pencadangan ke cakupan penyimpanan cluster Anda:
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-file

    Dengan your-overrides-file adalah jalur ke file penggantian yang baru saja Anda edit.

Mengonfigurasi pemulihan

Pemulihan mengambil data dari file cadangan dengan stempel waktu yang Anda tentukan dan memulihkannya ke cluster Cassandra baru dengan jumlah pod yang sama. Cluster baru harus memiliki namespace yang berbeda dengan cluster bidang runtime Anda.

Untuk memulihkan cadangan Cassandra:

  1. Buat cluster Kubernetes baru dengan namespace baru. Anda tidak dapat menggunakan cluster/namespace yang sama dengan yang Anda gunakan untuk penginstalan hybrid asli.
  2. Di direktori penginstalan hybrid root, buat file overrides-restore.yaml baru.
  3. Salin konfigurasi Cassandra lengkap dari file overrides.yaml asli Anda ke file yang baru.
  4. Tambahkan parameter berikut ke file overrides-restore.yaml Anda:

    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"
    

    Contoh

    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"
    

    Dengan:

    Properti Deskripsi
    restore-namespace Nama namespace baru untuk cluster Cassandra baru. Jangan gunakan namespace yang sama dengan yang Anda gunakan untuk cluster asli.
    restore:enabled Pemulihan dinonaktifkan secara default. Anda harus menetapkan properti ini ke true
    path-to-private-key-file Jalur pada sistem file lokal Anda ke file kunci pribadi SSH (bernama ssh_key pada langkah saat Anda membuat pasangan kunci SSH).
    backup-server-ip Alamat IP server cadangan Anda.
    backup-directory Nama direktori cadangan di server cadangan Anda. Ini harus berupa direktori dalam home/apigee (direktori cadangan diberi nama cassandra_backup di langkah saat Anda membuat direktori cadangan).
    HYBRID Properti cloudProvider: "HYBRID" wajib diisi.
    backup-to-restore Cadangan tertentu yang ingin Anda pulihkan, yang ditentukan dalam sintaksis crontab standar (tidak ada karakter pengganti yang diizinkan).
  5. Gunakan apigeectl untuk menerapkan konfigurasi pencadangan ke cakupan penyimpanan cluster Anda:
    $APIGEECTL_HOME/apigeectl --datastore -f your-overrides-restore-file

    Dengan your-overrides-restore-file adalah jalur ke file overrides-restore.yaml yang baru saja Anda edit.