Tugas pemeliharaan Apache Cassandra

Bagian ini menjelaskan tugas pemeliharaan berkala untuk Cassandra.

Pemeliharaan anti-entropi

Node dering 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:

  • Jalankan di setiap node Cassandra (di semua region atau pusat data).
  • Untuk memeriksa apakah tugas perbaikan pada node telah berhasil diselesaikan, cari entri dengan UUID sesi perbaikan terbaru dalam file system.log node dan frasa "session completed successfully". 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
  • Dijalankan selama periode workload yang relatif rendah (alat ini menimbulkan beban yang signifikan pada sistem).
  • Jalankan minimal setiap tujuh hari untuk menghilangkan masalah yang terkait dengan "penghapusan yang terlupakan" Cassandra.
  • Jalankan pada node yang berbeda pada hari yang berbeda, atau jadwalkan sehingga ada beberapa jam antara menjalankannya di setiap node.
  • Gunakan opsi -pr (rentang partisi) untuk menentukan rentang partisi utama dari node saja.

Jika 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 untuk 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/cassandra pada setiap node. Secara default, maksimum 50 file log, masing-masing dengan ukuran maksimum 20 MB, dapat dibuat; setelah batas ini tercapai, log lama akan dihapus saat log yang lebih baru dibuat.

Jika file log Cassandra menggunakan terlalu banyak ruang penyimpanan, 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 ruang disk

Anda harus memantau penggunaan disk Cassandra secara rutin untuk memastikan setidaknya 50 persen dari setiap disk kosong. Jika pemakaian disk meningkat di atas 50 persen, sebaiknya tambah kapasitas disk untuk mengurangi persentase penggunaan.

Cassandra otomatis melakukan operasi berikut untuk mengurangi penggunaan disk-nya sendiri:

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

    Penginstalan Edge versi lama untuk Private Cloud 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 akan meningkatkan pemanfaatan disk.

Catatan: Saat melakukan pemadatan data, Cassandra mungkin memerlukan sejumlah besar siklus CPU dan memori. Namun, pemanfaatan resource akan kembali normal setelah pemadatan selesai. Anda dapat menjalankan perintah 'Nodetool compactionstats' pada setiap node untuk memeriksa apakah pemadatan sedang berjalan. Output compactionstats akan memberi tahu Anda jika ada pemadatan yang tertunda untuk dijalankan dan perkiraan waktu penyelesaiannya.