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 dengan penyimpanan kustom?
Cadangan dengan penyimpanan khusus menyimpan cadangan basis data Cassandra Anda ke file terkompresi dalam sistem file server yang Anda tentukan. Pencadangan terjadi sesuai jadwal yang Anda tentukan dalam file penggantian. Koneksi ke server dilakukan dengan SSH aman.
Menyiapkan pencadangan tanpa Layanan Cloud
Langkah-langkah berikut termasuk contoh umum untuk menyelesaikan tugas tertentu, seperti membuat SSH pasangan kunci. Gunakan metode yang sesuai dengan penginstalan Anda.
Prosedur tersebut memiliki bagian-bagian berikut:
Menyiapkan server dan SSH
- Tentukan server Linux atau Unix untuk cadangan Anda. Server ini harus dapat dijangkau menggunakan SSH dari bidang runtime hybrid Apigee. Harus memiliki penyimpanan yang cukup untuk cadangan Anda.
- Siapkan server SSH di server, atau pastikan server tersebut memiliki server SSH aman yang telah dikonfigurasi.
- Buat pasangan kunci SSH dan simpan file kunci pribadi di jalur yang dapat diakses dari hybrid Anda
pada bidang runtime. Anda harus menggunakan sandi kosong untuk pasangan kunci atau pencadangan akan gagal. 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 penggunaapigee
baru memiliki direktori utama di bawah/home
. - Di server cadangan, buat direktori
ssh
di/home/apigee
baru saat ini. - Salin kunci publik (
ssh_key.pub
pada contoh sebelumnya) ke dalam file bernamaauthorized_keys
di direktori/home/apigee/ssh
baru. Contoh:cd /home/apigee
mkdir .ssh
cd .ssh
vi authorized_keys
- Di server cadangan, buat direktori cadangan di dalam
/home/apigee/
saat ini. Direktori cadangan dapat berupa direktori apa pun selama penggunaapigee
memiliki akses IP eksternal mana pun yang ditetapkan pada instance tersebut. Contoh:cd /home/apigee
mkdir cassandra-backup
- Uji koneksi. Anda perlu memastikan bahwa pod Cassandra dapat terhubung ke
server cadangan menggunakan 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 dengan 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 pencadangan
Anda menetapkan jadwal dan tujuan 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 menyetel ini ke true
.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
Jalur di sistem file lokal Anda ke file kunci pribadi SSH (bernama
ssh_key
pada langkah tempat Anda membuat pasangan kunci SSH).backup:server
BACKUP_SERVER_IP
Alamat IP server cadangan Anda.
backup:storageDirectory
BACKUP_DIRECTORY
Nama direktori cadangan di server cadangan Anda. Ini harus berupa direktori di dalam
home/apigee
(direktori cadangan bernamacassandra_backup
pada langkah tempat Anda membuat direktori pencadangan).backup:cloudProvider
HYBRID
Properti
cloudProvider: "HYBRID"
wajib diisi.backup:schedule
SCHEDULE
Waktu mulai pencadangan, yang ditentukan dalam sintaksis crontab standar. Default:
0 2 * * *
- Gunakan
apigeectl
untuk menerapkan konfigurasi pencadangan ke cakupan penyimpanan :$APIGEECTL_HOME/apigeectl --datastore -f YOUR_OVERRIDES_FILE
Dengan YOUR_OVERRIDES_FILE adalah jalur ke file pengganti yang baru saja Anda edit.
Mengonfigurasi pemulihan
Pemulihan mengambil data Anda dari lokasi cadangan dan memulihkan data ke lokasi baru Gugus Cassandra dengan jumlah node yang sama. Tidak ada data yang diambil dari Cassandra lama .
Petunjuk pemulihan di bawah ini ditujukan untuk deployment region tunggal yang tidak menggunakan Google Cloud Storage untuk pencadangan. Untuk deployment lainnya, lihat referensi berikut:
- Untuk deployment region tunggal yang menggunakan Google Cloud Storage untuk pencadangan, lihat Pencadangan dan pemulihan Cassandra.
- Untuk deployment multi-region, lihat Deployment multi-region di GKE dan GKE lokal.
Untuk memulihkan cadangan Cassandra:
- Membuat namespace baru dalam cluster Kubernetes yang ada yang akan digunakan untuk memulihkan deployment waktu kerja hybrid. Jangan gunakan nama namespace asli untuk namespace baru. Jangan gunakan namespace lama untuk pemulihan.
-
Di direktori penginstalan root hybrid, buat
overrides-restore.yaml
baru . -
Salin konfigurasi Cassandra lengkap dari
overrides.yaml
asli Anda ke fileoverrides-restore.yaml
baru. Contoh:cp ./overrides.yaml ./overrides-restore.yaml
- Tambahkan elemen namespace ke file
overrides-restore.yaml
baru.Parameter
namespace: YOUR_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"
- Ubah label
app
pada node Cassandra di namespace lama dengan menjalankan perintah berikut:kubectl label pods --overwrite --namespace=OLD_NAMESPACE -l app=apigee-cassandra app=apigee-cassandra-old
- Membuat deployment runtime hybrid baru. Tindakan ini akan membuat gugus
Cassandra baru dan memulai
memulihkan data cadangan ke dalam cluster:
./apigeectl init -f ../overrides-restore.yaml
./apigeectl apply -f ../overrides-restore.yaml
-
Setelah pemulihan selesai, lalu lintas harus dialihkan untuk menggunakan Cassandra cluster di namespace baru. Jalankan perintah berikut untuk mengalihkan traffic:
kubectl get rs -n OLD_NAMESPACE # look for the 'apigee-connect' replicaset
kubectl patch rs -n OLD_NAMESPACE APIGEE_CONNECT_RS_NAME -p '{"spec":{"replicas" : 0}}'
- Setelah pengalihan traffic selesai, Anda dapat mengonfigurasi ulang cadangan di cluster yang dipulihkan dengan
menghapus konfigurasi
restore
dan menambahkan konfigurasibackup
ke Fileoverrides-restore.yaml
. Ganti YOUR_RESTORE_NAMESPACE dengan nama namespace baru dibuat di langkah 1.namespace: YOUR_RESTORE_NAMESPACE cassandra: ... backup: enabled: true serviceAccountPath: SA_JSON_FILE_PATH dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH schedule: BACKUP_SCHEDULE_CODE ...
Kemudian, terapkan konfigurasi
backup
dengan perintah berikut:./apigeectl apply -f ../overrides-restore.yaml
Dengan keterangan:
Properti | Deskripsi |
---|---|
namespace |
YOUR_RESTORE_NAMESPACE Nama namespace baru yang Anda buat pada langkah 1 untuk gugus Cassandra yang baru. Jangan gunakan namespace yang sama dengan yang Anda gunakan untuk gugus asli. |
restore:enabled |
Pemulihan dinonaktifkan secara default. Anda harus menyetel ini
ke true . |
restore:keyFile |
PATH_TO_PRIVATE_KEY_FILE Jalur di sistem file lokal Anda ke
File kunci pribadi SSH (bernama |
restore:server |
BACKUP_SERVER_IP Alamat IP server cadangan Anda. |
restore:storageDirectory |
BACKUP_DIRECTORY Nama direktori cadangan di server cadangan Anda.
Ini harus berupa direktori di dalam
|
restore:cloudProvider |
Properti |
restore:snapshotTimestamp |
BACKUP_TO_RESTORE Cadangan tertentu yang ingin Anda pulihkan, ditentukan di sintaksis crontab standar (karakter pengganti tidak diizinkan). |