Ceph adalah sistem penyimpanan terdistribusi yang dirancang untuk menyediakan penyimpanan objek, blok, dan file yang skalabel dan andal. Sedangkan scrubbing dalam Ceph adalah proses pemeriksaan dan perbaikan data yang disimpan dalam cluster Ceph untuk memastikan konsistensi dan integritas data. Scrubbing membantu mendeteksi dan memperbaiki kesalahan data yang mungkin terjadi karena berbagai alasan, seperti kerusakan hardware, bug, atau masalah jaringan.

Proses Scrubbing di Ceph

  • Deep Scrub:
    Proses pemeriksaan mendalam yang membandingkan data antar replika dengan verifikasi checksum. Waktu yang dibutuhkan lebih lambat karena membutuhkan lebih banyak sumber daya dibandingkan regular scrub.

  • Regular Scrub:
    Proses pemeriksaan ringan yang mengecek metadata dan struktur data untuk memastikan konsistensi. Waktu yang dibutuhkan lebih cepat dan lebih hemat sumber daya dibandingkan deep scrub.

Bagaimana Proses Scrubbing Bekerja?

  • Penjadwalan Scrubbing:
    Scrubbing di Ceph biasanya dijadwalkan secara otomatis oleh sistem, tetapi dapat juga dijalankan secara manual. Administrator dapat mengatur frekuensi dan waktu scrubbing melalui konfigurasi Ceph.

  • Pemeriksaan Data:
    Selama proses scrubbing, Ceph akan memeriksa setiap objek yang disimpan dalam pool yang ditentukan. Untuk regular scrub, Ceph akan memeriksa metadata dan struktur data. Untuk deep scrub, Ceph akan memverifikasi checksum dan membandingkan data di antara replika atau shard.

  • Deteksi dan Perbaikan Kesalahan:
    Jika scrubbing menemukan ketidaksesuaian atau kesalahan data, Ceph akan mencoba memperbaikinya secara otomatis dengan menggunakan data dari replika yang sehat. Jika kesalahan tidak dapat diperbaiki, Ceph akan melaporkannya ke administrator untuk tindakan lebih lanjut.

  • Pelaporan:
    Hasil scrubbing akan dicatat dalam log Ceph dan dapat dilihat melalui perintah CLI atau dashboard Ceph. Administrator dapat memantau status scrubbing dan mengambil tindakan jika diperlukan.

Berikut study case yang akan kita bahas dalam postingan kali ini, perhatikan output ceph status di bawah ini

cluster:
    id:     901daed6-9606-4a03-9db3-dcbb7a240161
    health: HEALTH_ERR
-           1/3 mons down, quorum node2,node3
-           1 scrub errors
-           Possible data damage: 1 pg inconsistent

  services:
-   mon: 3 daemons, quorum node2,node3 (age 5m), out of quorum: node1
    mgr: node3(active, since 5m)
    mds: 1/1 daemons up, 2 standby
    osd: 6 osds: 6 up (since 4m), 6 in (since 2w)

  data:
    volumes: 1/1 healthy
    pools:   5 pools, 129 pgs
    objects: 99.45k objects, 385 GiB
    usage:   1.1 TiB used, 4.4 TiB / 5.5 TiB avail
    pgs:     128 active+clean
-            1   active+clean+inconsistent

Pada bagian yg berlabel merah menampilkan beberapa error.

  • Cluster dalam kondisi error (HEALTH_ERR), yang berarti ada masalah serius yang perlu diperbaiki.
  • 1 dari 3 monitor (mon) down, monitor node1 tidak aktif, tetapi node2 dan node3 masih membentuk quorum.
  • Quorum hanya terdiri dari node2 dan node3, yang artinya cluster masih berfungsi, tetapi tidak dalam kondisi optimal.
  • Ada 1 error dari proses scrub, Jika ada error saat scrubbing, berarti ada potensi data yang korup atau tidak konsisten.
  • 1 PG (Placement Group) dalam keadaan inconsistent, ini berarti ada kemungkinan kerusakan data atau perbedaan antara replika yang tersimpan di beberapa OSD.
  • Dari 3 Monitor (mon), hanya 2 yang aktif (node2, node3). node1 keluar dari quorum, mungkin karena down atau mengalami gangguan jaringan.
  • 1 PG dalam keadaan active+clean+inconsistent → Ini adalah PG yang bermasalah karena data di dalamnya tidak konsisten.

Perbaikan Yang Dilakukan

  1. Memastika MON aktif kembali, bisa dilihat dari ceph web ui pada bagian Monitor, pastikan statusnya running dan qourum - yes. Atau bisa juga dengan daemon, masuk via terminal node masing-masing misal yang down node1 beeri login ke terminal node1, tidak bisa di cek dengan cluster, berlakujuga untuk ceph-mgr@nama-node
systemctl status ceph-mon@node1

cek status ceph

ceph -s

periksa OSD juga apakah ada yg down

ceph osd tree

cek pg_id yg bermasalah

ceph health detail

lakukan repair

ceph pg repair pg_id

contoh

ceph pg repair 4.d

Cek status dengan menggunakan

ceph pg stat

proses ini memakan waktu tinggal tunggu saja