Tugas pemeliharaan Apache Cassandra

Bagian ini menjelaskan tugas pemeliharaan berkala untuk Cassandra.

Pemeliharaan anti-entropi

Node cincin Apache Cassandra memerlukan pemeliharaan berkala untuk memastikan konsistensi di semua node. Untuk melakukan pemeliharaan ini, gunakan perintah berikut:

apigee-service apigee-cassandra apigee_repair -pr

Apigee merekomendasikan hal berikut saat menjalankan perintah ini:

  • Berjalan di setiap node Cassandra (di semua region atau pusat data).
  • Berjalan di satu node pada satu waktu, untuk memastikan konsistensi di semua node dalam ring. Menjalankan tugas perbaikan di beberapa node secara bersamaan dapat mengganggu kesehatan Cassandra.

    Untuk memeriksa apakah tugas perbaikan di node berhasil diselesaikan, cari entri dengan UUID sesi perbaikan terbaru dan frasa "sesi berhasil diselesaikan" di file system.log node. Berikut adalah contoh entri log:

    INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully"
    Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
  • Jalankan selama periode beban kerja yang relatif rendah (alat ini menimbulkan beban yang signifikan pada sistem).
  • Jalankan setidaknya setiap tujuh hari untuk menghilangkan masalah terkait "penghapusan yang terlupakan" Cassandra.
  • Jalankan di node yang berbeda pada hari yang berbeda, atau jadwalkan sehingga ada beberapa jam antara menjalankannya di setiap node.
  • Gunakan opsi -pr (rentang pempartisi) untuk menentukan rentang pempartisi utama node saja.

Jika Anda mengaktifkan autentikasi JMX untuk Cassandra, Anda harus menyertakan nama pengguna dan sandi saat memanggil nodetool. Contoh:

apigee-service apigee-cassandra apigee_repair -u username -pw password -pr

Anda juga dapat menjalankan perintah berikut untuk memeriksa opsi apigee_repair: yang didukung

apigee-service apigee-cassandra apigee_repair -h

Catatan: apigee_repair adalah wrapper di sekitar perbaikan nodetool Cassandra, yang melakukan pemeriksaan tambahan sebelum melakukan perbaikan Cassandra.

Untuk informasi selengkapnya, lihat referensi berikut:

Pemeliharaan file log

Log Cassandra disimpan di direktori /opt/apigee/var/log/apigee-cassandra di setiap node. Secara default, maksimal 50 file log, masing-masing dengan ukuran maksimum 20 MB, dapat dibuat; setelah batas ini tercapai, log lama akan dihapus saat log baru dibuat.

Jika Anda mendapati bahwa file log Cassandra menggunakan ruang yang berlebihan, Anda dapat mengubah jumlah ruang yang dialokasikan untuk file log dengan mengedit setelan log4j.

  1. Edit /opt/apigee/customer/application/cassandra.properties untuk menetapkan properti berikut. Jika file tersebut tidak ada, buat file tersebut:
    conf_logback_maxfilesize=20MB
    # max file size
    conf_logback_maxbackupindex=50 # max open files
  2. Mulai ulang Cassandra menggunakan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Pemeliharaan kapasitas disk

Anda harus memantau penggunaan disk Cassandra secara berkala untuk memastikan setidaknya 50 persen dari setiap disk kosong. Jika penggunaan disk naik di atas 50 persen, sebaiknya Anda menambahkan lebih banyak ruang disk untuk mengurangi persentase yang digunakan.

Cassandra secara otomatis melakukan operasi berikut untuk mengurangi penggunaan disknya sendiri:

  • Penghapusan token autentikasi saat token habis masa berlakunya. Namun, mungkin perlu waktu beberapa minggu untuk mengosongkan ruang disk yang digunakan token, bergantung pada konfigurasi Anda. Jika penghapusan otomatis tidak memadai untuk mempertahankan ruang disk yang memadai, hubungi dukungan untuk mempelajari cara menghapus token secara manual guna memulihkan ruang.
  • Catatan tentang pemadatan data: Mulai Edge for Private Cloud 4.51.00, penginstalan baru Apigee Cassandra akan membuat keyspace dengan Strategi Pemadatan Berjenjang.

    Penginstalan Edge untuk Private Cloud versi lama yang telah diupgrade ke Private Cloud 4.51.00 akan terus mempertahankan strategi pemadatan sebelumnya. Jika strategi pemadatan yang ada adalah SizeTieredCompactionStrategy, sebaiknya ubah ke LeveledCompactionStrategy, yang memberikan penggunaan disk yang lebih baik.

Catatan: Saat Cassandra melakukan pemadatan data, proses ini dapat menghabiskan siklus CPU dan memori dalam jumlah yang cukup besar. Namun, penggunaan resource akan kembali normal setelah pemadatan selesai. Anda dapat menjalankan perintah 'Nodetool compactionstats' di setiap node untuk memeriksa apakah pemadatan sedang berjalan. Output compactionstats memberi tahu Anda jika ada pemadatan yang tertunda untuk dieksekusi dan perkiraan waktu penyelesaiannya.