Pencadangan dan pemulihan tanpa Google Cloud

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

Apa yang dimaksud dengan pencadangan dan pemulihan Cassandra tanpa Layanan Google Cloud?

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

Menyiapkan pencadangan tanpa Layanan Cloud:

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

Prosedur ini memiliki bagian berikut:

Menyiapkan server dan SSH

  1. Tentukan server Linux atau Unix untuk pencadangan Anda. Server ini harus dapat dijangkau melalui SSH dari platform runtime campuran Apigee Anda. Perangkat harus memiliki penyimpanan yang cukup untuk cadangan Anda.
  2. Siapkan server SSH di server, atau pastikan server tersebut memiliki server SSH aman yang dikonfigurasi.
  3. Buat pasangan kunci SSH dan simpan file kunci pribadi di jalur yang dapat diakses dari platform 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 utama 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 melalui SSH ke server cadangan Anda, menggunakan alamat IP server:
      ssh apigee@backup-server-ip

Menetapkan jadwal dan tujuan untuk 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 keterangan:

    Properti Deskripsi
    backup:enabled Pencadangan dinonaktifkan secara default. Anda harus menetapkan properti ini ke true
    path-to-private-key-file Jalur di sistem file lokal Anda ke file kunci pribadi SSH (bernama ssh_key di 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 bernama 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 menjadwalkan pencadangan yang dimulai dalam waktu singkat 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 platform runtime Anda.

Untuk memulihkan cadangan Cassandra:

  1. Buat cluster Kubernetes baru dengan namespace baru. Anda tidak dapat menggunakan cluster/namespace yang sama dengan yang digunakan untuk penginstalan hybrid asli.
  2. Di direktori penginstalan campuran root, buat file overrides-restore.yaml baru.
  3. Salin konfigurasi Cassandra lengkap dari file overrides.yaml asli ke file 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 keterangan:

    Properti Deskripsi
    restore-namespace Nama namespace baru yang Anda buat 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 di sistem file lokal Anda ke file kunci pribadi SSH (bernama ssh_key di 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 bernama 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.