Belajar Kubernetes Distributed Storage - Scaling Cluster: OSD, Node & Capacity
Episode 16 of 28

Belajar Kubernetes Distributed Storage - Scaling Cluster: OSD, Node & Capacity

Menskalakan storage Ceph: menambah OSD dan node baru, memantau rebalance otomatis CRUSH/backfill, menskalakan MDS dan RGW secara horizontal, serta merencanakan kapasitas dengan ceph df.

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

Pendahuluan

Performa & kapasitas sudah dibahas di episode 15, tapi sekarang tibalah pertanyaan praktis: bagaimana storage membesar? Episode 16 menjawab scaling Ceph: menambah disk OSD, menambah node baru, dan menskalakan MDS/RGW.

Mengapa penting? Kapasitas storage tidak pernah cukup selamanya. Kemampuan menambah kapasitas tanpa downtime — dan tahu cara kerjanya (rebalance) — adalah keterampilan inti admin storage. Di episode ini kalian mempraktikkannya.

Menambah OSD/Node

Menambah Disk ke Node yang Ada

Tambahkan device ke manifest CephCluster:

yaml
storage:
  nodes:
    - name: worker-1
      devices:
        - name: "sdb"
        - name: "sdc"   # disk baru

Apply manifest:

Apply & cek OSD baru
kubectl apply -f cluster.yaml
kubectl -n rook-ceph get pods | grep osd

Rook menjalankan prepare untuk disk baru dan membuat OSD baru — tanpa downtime.

Menambah Node Baru

  1. Siapkan node baru worker-3 dengan disk raw.
  2. Label node.
  3. Tambahkan ke CephCluster.spec.storage.nodes:
yaml
storage:
  nodes:
    - name: worker-3
      devices:
        - name: "sdb"

Rook men-deploy OSD di node baru.

Rebalance Otomatis

CRUSH & Backfill Saat OSD Masuk/Keluar

Saat OSD baru diperkenalkan (atau yang keluar), CRUSH menempatkan ulang PG:

  • PG dipindah (backfill) ke OSD baru sampai distribusi merata.
  • ceph -w menampilkan proses backfill di latar.
Pantau rebalance
ceph -w
text
... pgmap ... backfill_wait 2, backfill 3 ...

Efek pada Workload

  • Backfill menghabiskan I/O & bandwidth — workload mungkin melambat sementara.
  • Untuk beban besar, jadwalkan penambahan OSD di jam sepi, atau terapkan pemisahan cluster network (episode 11).

Skala MDS/RGW

MDS (CephFS)

Perbanyak MDS aktif untuk throughput lebih:

yaml
metadataServer:
  activeCount: 2
  activeStandby: true

Ganti activeCount dari 2 → 4, apply — Rook menambah MDS aktif.

RGW (Object Store)

yaml
spec:
  gateway:
    port: 8080
    instances: 3

Dari instances: 13, Rook mendeploy 3 RGW di belakang Service yang sama — load balancing S3.

Capacity Planning

baca ceph df

Baca kapasitas
ceph df

Output:

text
RAW STORAGE:
  TOTAL: 400 GiB   USED: 100 GiB   AVAIL: 300 GiB

Raw vs Usable

Ingat rasio replikasi/EC (episode 15):

text
usable = raw / size_atau_ec_overhead
  • Replicated size 2 → 50% usable.
  • EC 2+1 → ~66% usable.

Aturan Praktis Resource Kalau OSD

  • 1 OSD = 1 disk → aturan per-GiB memory (biasanya ~O(1GB) memori state per OSD, disk I/O thread).
  • Jangan meletakkan semua OSD pada node kecil — OSD crash akan memicu backfill besar.

Tip

Sebelum menambah OSD, pastikan cluster HEALTH_OK. Menambah OSD di cluster yang kurang sehat memperbesar backfill dan bisa memperpanjang masalah. Periksa ceph health detail dulu.

Penutup

Inti yang harus dibawa pulang:

  • Tambah OSD: tambah device/node di CephCluster.spec.storage → operator membuat OSD baru.
  • Rebalance otomatis via CRUSH/backfill — pantau dengan ceph -w, jadwalkan di jam sepi.
  • Scale MDS (activeCount) dan RGW (instances) secara horizontal.
  • Capacity plan: usable = raw / overhead; pantau ceph df dan alerting >80%.

Di episode 17 selanjutnya kita akan membahas upgrade Rook & Ceph dan release management — strategi upgrade operator, urutan upgrade Ceph MON→MGR→OSD→MDS→RGW, monitoring selama upgrade, serta rilis Rook v1.20 dan Ceph v20 yang relevan di 2026. Sampai jumpa di episode 17!

Belajar Kubernetes Distributed Storage - Scaling Cluster: OSD, Node & Capacity | Belajar Kubernetes Distributed Storage