Memulihkan di beberapa region

Halaman ini menjelaskan cara memulihkan atau memulihkan Cassandra di beberapa region.

Dalam deployment multi-region, Apigee hybrid di-deploy di beberapa lokasi geografis di pusat data yang berbeda. Jika satu atau beberapa region gagal, tetapi region yang responsif tetap ada, Anda dapat menggunakan region yang responsif untuk memulihkan region Cassandra yang gagal dengan data terbaru.

Jika terjadi kegagalan parah di semua region hybrid, Cassandra dapat dipulihkan. Perlu diperhatikan bahwa, jika Anda memiliki beberapa organisasi Apigee dalam deployment, proses pemulihan akan memulihkan data untuk semua organisasi. Dalam penyiapan multi-organisasi, pemulihan hanya organisasi tertentu tidak didukung.

Topik ini menjelaskan kedua pendekatan untuk menyelamatkan region yang gagal:

  • Memulihkan region yang gagal - Menjelaskan langkah-langkah untuk memulihkan region yang gagal berdasarkan region yang responsif.
  • Memulihkan region yang gagal - Menjelaskan langkah-langkah untuk memulihkan region yang gagal dari cadangan. Pendekatan ini hanya diperlukan jika semua region hybrid terpengaruh.

Memulihkan wilayah yang gagal

Untuk memulihkan region yang gagal dari region yang berfungsi dengan baik, lakukan langkah-langkah berikut:

  1. Alihkan traffic API dari region yang terpengaruh ke region yang berfungsi dengan baik. Rencanakan kapasitas yang sesuai untuk mendukung traffic yang dialihkan dari region yang gagal.
  2. Nonaktifkan region yang terpengaruh. Untuk setiap region yang terpengaruh, ikuti langkah-langkah yang diuraikan dalam Menonaktifkan region hybrid. Tunggu hingga penonaktifan selesai sebelum melanjutkan ke langkah berikutnya.

  3. Pulihkan wilayah yang terpengaruh. Untuk memulihkan, buat region baru, seperti yang dijelaskan dalam Deployment multi-region di GKE, GKE on-prem, dan AKS.

Memulihkan dari cadangan

Pencadangan Cassandra dapat berada di Cloud Storage atau di server jarak jauh berdasarkan konfigurasi Anda. Untuk memulihkan Cassandra dari cadangan, lakukan langkah-langkah berikut:

  1. Buka file penggantian untuk wilayah yang ingin Anda pulihkan.
  2. Tetapkan cassandra:hostNetwork ke false.
  3. Terapkan file penggantian:
    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      -f OVERRIDES_FILE
    
  4. Sebelum melanjutkan, periksa untuk memastikan hostNetwork disetel ke false:
    kubectl -n APIGEE_NAMESPACE get apigeeds -o=jsonpath='{.items[].spec.components.cassandra.hostNetwork}'
  5. Hapus hybrid dari wilayah yang Anda pulihkan:
    helm delete DATASTORE_RELEASE_NAME \
      --namespace APIGEE_NAMESPACE
    

    Dengan DATASTORE_RELEASE_NAME adalah nama rilis datastore tempat Anda menginstal Cassandra di region tersebut, misalnya datastore-region1.

  6. Pulihkan region yang diinginkan dari cadangan. Untuk mengetahui informasi selengkapnya, lihat Memulihkan region dari cadangan.

  7. Hapus node yang tidak aktif dari wilayah yang dihapus:
    1. Dengan menggunakan perintah nodetool status, identifikasi semua node dengan status DN di region yang dihapus:
      kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE  -- nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status

      dengan:

      • APIGEE_JMX_USER adalah nama pengguna untuk pengguna operasi JMX Cassandra. Digunakan untuk mengautentikasi dan berkomunikasi dengan antarmuka JMX Cassandra. Lihat cassandra:auth:jmx:username.
      • APIGEE_JMX_PASSWORD adalah sandi untuk pengguna operasi JMX Cassandra. Lihat cassandra:auth:jmx:password.
    2. Hapus setiap node dengan status DN di region yang dihapus:
      kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE  -- nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD removenode NODE_HOST_ID

      Ganti NODE_HOST_ID dengan ID Host setiap node yang Anda identifikasi pada langkah sebelumnya. Contoh:

      kubectl exec apigee-cassandra-default-0 -n apigee -- nodetool -u my-jmx-id -pw my-jmx-pwd removenode abcdef-f202-438a-8a77-40636317b7c9
    3. Jalankan kembali perintah nodetool status dan verifikasi bahwa node dengan status DN di wilayah yang dihapus sudah tidak ada.

      kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE  -- nodetool -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status
  8. Hapus referensi wilayah yang dihapus dan tambahkan referensi wilayah yang dipulihkan di metadata KeySpaces.
    1. Dapatkan nama pusat data Cassandra menggunakan opsi nodetool status.
      kubectl exec -n APIGEE_NAMESPACE -it apigee-cassandra-default-0 -- bash
            nodetool  -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status |grep -i Datacenter

      dengan:

      • APIGEE_JMX_USER adalah nama pengguna untuk pengguna operasi JMX Cassandra. Digunakan untuk mengautentikasi dan berkomunikasi dengan antarmuka JMX Cassandra. Lihat cassandra:auth:jmx:username.
      • APIGEE_JMX_PASSWORD adalah sandi untuk pengguna operasi JMX Cassandra. Lihat cassandra:auth:jmx:password.
    2. Perbarui replikasi KeySpaces.
      1. Buat penampung klien dan hubungkan ke cluster Cassandra melalui antarmuka CQL.
      2. Dapatkan daftar keyspace pengguna dari antarmuka CQL:
        cqlsh CASSANDRA_SEED_HOST -u APIGEE_DDL_USER -p APIGEE_DDL_PASSWORD
              --ssl -e "select keyspace_name from system_schema.keyspaces;"|grep -v system

        dengan:

        • CASSANDRA_SEED_HOST adalah host multi-region Cassandra. Untuk sebagian besar penginstalan multi-region, gunakan alamat IP host di region pertama Anda. Lihat Mengonfigurasi Apigee hybrid untuk multi-region dan cassandra:externalSeedHost.
        • APIGEE_DDL_USER dan APIGEE_DDL_PASSWORD adalah nama pengguna dan sandi admin untuk pengguna Bahasa Definisi Data (DDL) Cassandra. Nilai defaultnya adalah "ddl_user" dan "iloveapis123".

          Lihat cassandra.auth.ddl.password di referensi properti Konfigurasi dan Opsi Command Line dalam dokumentasi cqlsh Apache Cassandra.

      3. Untuk setiap keyspace, jalankan perintah berikut dari antarmuka CQL untuk memperbarui setelan replikasi:
        ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'DATACENTER_NAME':3};

        dengan:

        • KEYSPACE_NAME adalah nama keyspace yang tercantum dalam output langkah sebelumnya.
        • DATACENTER_NAME adalah nama pusat data Cassandra yang Anda peroleh dengan opsi nodetool status di langkah 8.