Belajar Kubernetes Distributed Storage - Troubleshooting & Common Issues
Episode 25 of 28

Belajar Kubernetes Distributed Storage - Troubleshooting & Common Issues

Menghadapi masalah Ceph yang paling sering muncul: PG stuck states, OSD down/crash loop, network latency dan timeouts, kapasitas penuh, serta langkah diagnosis sistematis beserta perintah ceph yang relevan.

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Backup sudah tertata (episode 24). Sekarang, saat produksi, akan tiba saatnya sesuatu terasa salah: PVC mounting lambat, health warning, atau Pod CrashLoopBackOff. Episode 25 berisi troubleshooting: cara mendiagnosis masalah Ceph yang paling umum secara sistematis.

Mengapa penting? Alat observasi (episode 18) memberi alarm, tetapi menyelesaikan masalah membutuhkan diagnosis terarah. Episdoe ini memecah masalah umum menjadi langkah-langkah konkret yang bisa dijalankan dari toolbox. Diagnosa dini = resolusi cepat.

Prosedur Diagnosa Umum

Mulai dari ceph status

Kondisi awal selalu di sini
ceph status
ceph health detail
ceph osd tree

Kategorikan

  • Health_WARN/ERR: OSD down? PG stuck? MDS warning? Lakukan identifikasi.
  • Performa: I/O lambat tanpa warning → lihat latency & utilization.
  • Mount/masalah app: PVC tidak attach → lihat log CSI.

Jangan langsung mencoba solusi sebelum tahu jenis masalahnya.

PG Stuck

Gejala

text
HEALTH_WARN 1 pgs stuck unclean

Diagnosis

Lihat PG mana yang masalah
ceph pg dump | grep -E "stale|undersized|peering"

Solusi

  • stale → OSD turun lama; nyalakan lagi atau replacement.
  • peering → MON tidak bisa setuju; cek log MON, network latency antar MON.
  • incomplete → bisa butuh recovery manual.

Jangan memaksa ceph pg force-create kecuali benar-benar tahu dampaknya (bisa kehilangan data).

OSD Down / Crash Loop

Gejala

  • ceph osd tree menunjukkan OSD down.
  • Pod OSD CrashingLoopBackOff.

Diagnosis

Cek log OSD
kubectl -n rook-ceph logs rook-ceph-osd-0 | tail -100

Penyebab Umum & Fix

PuncaTandaLangkah
Disk fullENOSPC di log / osd df penuhTambah OSD / bersihkan snapshot
Disk faultyI/O error / kernel buangReplace disk (OSD baru)
Network issuetimeout koneksi MONCek latency & firewall
MemoriOOM (untuk OSD Pod)Tambah limit/upgrade RAM

Fix lanjutan: ganti disk → Rook otomatis membuat OSD baru saat device tersedia.

Network Latency & Timeouts

Gejala

  • Connection timeout pada MON.
  • noout tidak bekerja (MON down).
  • Database timeouts walau OSD up.

Diagnosis

Ukur latency internal
ping <mon-ip>
iperf3 -c <mon-ip>   # bandwidth
ceph osd perf         # latency per OSD

Fix

  • Tambah MOS/mon placement dekat.
  • Pisahkan cluster/public network (episode 11).
  • Pastikan MTU konsisten.
  • Mount latency (mis. NFS) bisa jadi sumber.

Alert yang Menyesatkan

Jika semua terlihat lambat pada satu waktu: cek ceph -w untuk backfill besar yang sedang berjalan (mis. karena OSD baru ditambahkan atau tempahan).

Kapasitas Penuh (ENOSPC)

Gejala

  • OSD full / nearfull, write ditolak (-28 ENOSPC).
  • PG backfill_wait.

Tindakan Cepat

  1. Hapus snapshot/RG yang bisa di-reclaim (episode 20).
  2. Aktifkan mgr pg_autoscaler — tapi jangan harap ajaib.
  3. Tambah OSD (episode 16) — jalur berkelanjutan.
  4. Bila darurat: ceph osd set noout salah — justru tidak menolong; gunakan full handling (ansible) secara bijak.

Pencegahan

Alerting > 80% (episode 18) bukan 95%. Evaluasi kuota per-pool.

Masalah FS/App (Filesystem & PVC)

Yang Sering Terjadi

  • Pod tidak bisa mount volume.
  • Wait: PVC pending (storageclass missing ? request size > disk).
  • Permissions/ownership (pod container UID tidak sesuai).

Perintah Cek

Cek PVC dan CSI
kubectl get pvc -n laravel
kubectl get events -n laravel | grep PersistentVolume
kubectl -n rook-ceph logs deploy/csi-rbdplugin -f

CSI log memberi pesan akurat: secret missing, pool error, ukuran tidak valid.

Tip

Selalu tulis "cara memperbaiki" setelah memperbaiki. Troubleshooting yang tidak terdokumentasi ulang mewajibkan mengulang latihan next time. Jadikan log 1 lembar masalah → diagnosis → solusi sebagai bagian dari budaya operasi.

Penutup

Inti yang harus dibawa pulang:

  • Diagnosis = ceph status + health detail + osd tree dulu; baru solusi.
  • PG stuck: bedakan stale/peering/incomplete; hindari force-create sembarangan.
  • OSD down: log OSD menentukan (disk full? faulty? memori? network?).
  • Kapasitas penuh: reclaim snapshot → tambah OSD → alert 80%+ ; hindari menunggu.
  • PVC/CSI: baca event + csi plugin log; tanda penyebab ketemu di sana.

Di episode 26 selanjutnya kita akan membahas cost, capacity & kapan memilih Rook-Ceph — menghitung biaya raw vs usable, TCO per daya penyimpanan, serta kapan solusi ini cocok dan kapan tidak. Sampai jumpa di episode 26!

Belajar Kubernetes Distributed Storage - Troubleshooting & Common Issues | Belajar Kubernetes Distributed Storage