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
- 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.
- Siapkan server SSH di server, atau pastikan server tersebut memiliki server SSH aman yang dikonfigurasi.
- 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]-----+ - Buat akun pengguna di server cadangan dengan nama "
apigee
". Pastikan pengguna "apigee
" baru memiliki direktori utama di/home
. - Di server cadangan, buat direktori "
ssh
" di direktori/home/apigee
baru. - 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
- 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
- Uji koneksi. Anda harus memastikan bahwa pod Cassandra dapat terhubung ke
server cadangan melalui SSH:
- 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.
- Hubungkan melalui SSH ke server cadangan Anda, menggunakan alamat IP server:
ssh apigee@backup-server-ip
- Login ke shell pod Cassandra Anda. Contoh:
Menetapkan jadwal dan tujuan untuk pencadangan
Anda menetapkan jadwal dan tujuan untuk pencadangan di file overrides.yaml
.
- 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 bernamacassandra_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.
- 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:
- Buat cluster Kubernetes baru dengan namespace baru. Anda tidak dapat menggunakan cluster/namespace yang sama dengan yang digunakan untuk penginstalan hybrid asli.
- Di direktori penginstalan campuran root, buat file
overrides-restore.yaml
baru. - Salin konfigurasi Cassandra lengkap dari file
overrides.yaml
asli ke file baru. - 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 bernamacassandra_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). - 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.