Tugas pemeliharaan Apache Cassandra

Bagian ini menjelaskan tugas pemeliharaan berkala untuk Cassandra.

Pemeliharaan anti-entropi

Node ring 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).
  • Jalankan pada satu node dalam satu waktu, untuk memastikan konsistensi di semua node di dalam lingkaran. Menjalankan tugas perbaikan pada beberapa {i>node<i} secara bersamaan dapat mengganggu kesehatan Cassandra.

    Untuk memeriksa apakah tugas perbaikan pada node berhasil diselesaikan, lihat di system.log file untuk entri dengan UUID sesi reparasi terbaru dan frasa "sesi berhasil diselesaikan". 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
  • Berjalan selama periode beban kerja yang relatif rendah (alat ini membebankan beban yang signifikan pada sistem).
  • Berjalanlah setidaknya setiap tujuh hari untuk menghilangkan masalah yang terkait dengan {i>Cassandra<i} "lupa menghapus".
  • Jalankan pada {i>node<i} yang berbeda pada hari yang berbeda, atau jadwalkan sehingga selama beberapa jam sebelum menjalankannya di setiap {i>node<i}.
  • Gunakan opsi -pr (rentang partisi) untuk menentukan rentang partisi utama dari node saja.

Jika Anda mengaktifkan autentikasi JMX untuk Cassandra, Anda harus menyertakan nama pengguna dan sandi saat Anda 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/cassandra di setiap {i>node<i}. 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 baru dibuat.

Jika Anda mendapati bahwa file log {i>Cassandra<i} memakan banyak ruang, Anda dapat mengubah jumlah ruang yang dialokasikan untuk file log dengan mengedit pengaturan log4j.

  1. Edit /opt/apigee/customer/application/cassandra.properties untuk mengatur 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 dengan menggunakan perintah berikut:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Pemeliharaan kapasitas disk

Anda harus memantau pemanfaatan {i>disk Cassandra disk<i} secara teratur untuk memastikan setidaknya 50 persen dari setiap {i>disk<i} secara kosong. Jika penggunaan {i>disk <i}meningkat di atas 50 persen, sebaiknya Anda menambah kapasitas {i>disk<i} untuk mengurangi persentase yang digunakan.

Cassandra secara otomatis melakukan operasi berikut untuk mengurangi pemanfaatan {i>disk <i}nya sendiri:

  • Penghapusan token autentikasi saat masa berlaku token habis. Namun, mungkin membutuhkan waktu beberapa minggu untuk mengosongkan ruang {i> disk<i} yang digunakan token, tergantung pada konfigurasi Anda. Jika penghapusan otomatis tidak memadai untuk mempertahankan kapasitas disk yang memadai, hubungi dukungan untuk mempelajari cara menghapus token secara manual spasi.
  • Pemadatan data. Sebaiknya ubah strategi pemadatan pada keyspace menjadi LeveledCompactionStrategy, yang menawarkan strategi pemanfaatan disk yang lebih baik SizeTieredCompactionStrategy. Lihat Strategi Pemadatan Bertingkat.

Catatan: Saat Cassandra melakukan pemadatan data, diperlukan banyak siklus CPU dan memori. Namun, pemanfaatan resource harus kembali normal setelah pemadatan selesai. Anda dapat menjalankan perintah 'Nodetool compactionstats' di setiap node untuk memeriksa apakah pemadatan sedang berjalan. Output compactionstats akan memberi tahu Anda jika ada adalah pemadatan tertunda yang harus dieksekusi dan perkiraan waktu untuk penyelesaian.