Menjaga storage tetap sehat saat node di-maintenance: memahami OSD drain & prohibition flags (noout noscrub), mengatur MaintenanceAllowed di CRs, men-drain node ber-Osd dengan aman, dan prosedur OS reboot untuk node storage.

DR sudah dirancang (episode 21). Episode 22 membahas perawatan rutin yang paling sering luput dari perhatian: apa yang terjadi pada Ceph saat kita ingin update kernel atau ganti RAM sebuah node?
Mengapa penting? Men-drain node storage secara sembarangan bisa memicu flapping OSD (up-down-up-down), backfill raksasa, atau data down dalam sekejap. Dengan prosedur yang benar, maintenance berjalan tanpa mengorbankan data.
| Flag | Efek | Kapan |
|---|---|---|
noout | OSD dianggap "keluar lambat" — tidak memicu rebalance saat down | Maintenance |
noscrub / nodeep-scrub | Skip scrub (pemeriksaan data) | Beban cluster tinggi |
no-* (lainnya) | Kontrol backfill/recovery | Jarang |
noout saat maintenance node agar OSD yang turun tidak mencetuskan backfill masif.noout off setelah selesai — jika tidak, klaster membiarkan ketidakseimbangan berlama-lama.ceph osd set noout
# ... maintenance selesai ...
ceph osd unset nooutRook menggunakan field untuk menyatakan bahwa node boleh di-maintenance — mencegah operator tetap memonitor atau mere-start daemon di node tsb:
spec:
maintenance:
allowed: true
purpose: "kernel-patch"Hanya di CR tertentu (mis. per CephCluster dengan field maintenance di spec). Atau gunakan pendekatan manual: set flag Ceph di atas.
Catatan: Field ini tersedia di Rook tertentu (v1.x). Alternatif universal: kelola flag di Ceph langsung (+ pastikan deployment OSD/replicaset tidak di-andalkan untuk ini).
noout di Ceph (jika tidak, rebalance besar terjadi saat OSD restart).kubectl drain <node> --ignore-daemonsets.
(Untuk node storage, memori Kubernetes → Pod & app pindah ke node lain; daemonset OSD tetap di perhatikan — jangan terhenti iseng).kubectl uncordon <node>.noout.kubectl drain node-3 --ignore-daemonsets --delete-local-data
# maintenance ...
kubectl uncordon node-3Tidak perlu manual. Saat node berhenti, OSD down (dengan noout, tidak menimbulkan recovery). Saat node kembali, OSD connect ulang & PG rebalance tipis.
ceph status
kubectl -n rook-ceph get pods -o wide | grep node-3Jika ada OSD yang gagal up (kemungkinan device berubah), cek log:
kubectl -n rook-ceph logs -l app=rook-ceph-osd --tail=100Warning
Jangan men-drain semua node storage sekaligus — walau dengan noout, data tetap butuh jumlah replika yang tersedia. Lihat kekuatan kehilangan Anda: dengan ukuran replika 3, aman kehilangan 1-2 node sekaligus, tapi jangan pernah kehilangan "sebanyak mungkin dengan dalih maintenance".
Inti yang harus dibawa pulang:
ceph osd set noout sebelum maintenance node; unset setelah selesai.maintenance.allowed (purpose) di CR untuk sinyal maintainability.Di episode 23 selanjutnya kita akan membahas GitOps & CI/CD untuk storage terkelola — versi Rook via GitFlow, pipeline yang menerapkan manifest secara aman, drift detection, serta bagaimana men-deploy CRD Ceph lewat Argo CD. Sampai jumpa di episode 23!