Belajar Kubernetes Distributed Storage - Arsitektur Ceph & Rook Operator
Episode 2 of 28

Belajar Kubernetes Distributed Storage - Arsitektur Ceph & Rook Operator

Membedah arsitektur inti: komponen Ceph MON/OSD/MGR/MDS/RGW, fondasi RADOS yang mengubah semua penyimpanan menjadi object, algoritma CRUSH untuk penempatan data deterministik tanpa metadata terpusat, serta bagaimana Rook operator merekonsiliasi CRDs CephCluster.

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

Pendahuluan

Setelah memahami "mengapa" (episode 1), saatnya membedah "bagaimana". Episode 2 memperkenalkan arsitektur Ceph dan peran Rook operator. Ini adalah konsep yang paling mendasar — sebelum kita membuat CephCluster di episode 5, kalian perlu tahu apa yang akan tercipta.

Mengapa penting? Ceph memiliki banyak daemon dengan peran berbeda, dan memahami mereka berarti memahami apa yang terjadi saat node lain mati, saat OSD down, atau saat deploy object store. Kalian tidak bisa melakukan troubleshooting tanpa paham komponen.

Komponen Ceph

MON (Monitor)

Monitor menjaga peta cluster (cluster map): daftar node, OSD, pool, dan state. Konsensus berbasis Paxos — mayoritas MON harus sepakat. Umumnya 3 MON untuk production (toleransi 1 gagal).

OSD (Object Storage Daemon)

OSD menyimpan data, menjalankan replikasi, recovery, rebalance, dan heartbeat. Setiap disk fisik di node biasanya satu OSD (bisa lebih dengan osdsPerDevice). Ini "mesin penyimpanan" sebenarnya.

MGR (Manager)

Manager adalah "otak eksekutif": menyediakan dashboard web, metrik Prometheus, dan modul balancer (mis. rebalance otomatis).

MDS (Metadata Server)

MDS menyediakan metadata untuk CephFS (file system). Berperan mengelola direktori, nama file, dan permission. Tanpa MDS, tidak ada CephFS.

RGW (RADOS Gateway)

RGW menyediakan object storage dengan S3/Swift API. Semua bucket, objek, dan ACL di-handle di sini.

Diagram Komponen

100%

RADOS Foundation

Semua Data = Object

Inti Ceph adalah RADOS (Reliable Autonomic Distributed Object Store). Konsepnya: semua data — baik dari block RBD, file CephFS, maupun object RGW — pada akhirnya disimpan sebagai object di dalam RADOS.

  • Block, file, object = lapisan di atas RADOS (frontend).
  • OSD menyimpan object + metadata, dengan replikasi di belakang.

Dengan kata lain, satu RADOS yang hebat mendukung tiga frontend berbeda. Ini yang membuat Ceph "agnostic storage output".

CRUSH Map

Penempatan Data Tanpa Metadata Terpusat

CRUSH (Controlled Replication Under Scalable Hashing) adalah algoritma penempatan data: untuk tiap object, CRUSH menghitung deterministically di OSD mana ia diletakkan, tanpa perlu bertanya ke pusat metadata.

  • OSD mana menyimpan replika ditentukan dari hash + struktur cluster map.
  • Tidak ada "master index" — siapa pun tahu ke mana harus membaca.

Failure Domain

CRUSH mendukung failure domain: host, rack, row, dan region. Ceph menempatkan replika di domain berbeda:

  • failureDomain: host → replika tidak berada di node yang sama.
  • Multi-rack → replika menyebar antar rack.

Ini mencegah satu node mati menghempas semua replika volume yang sama.

Rook Operator

CRDs Ceph

Rook memperkenalkan CRDs yang mengekspresikan desired state:

CRDMenciptakan
CephClusterMON, MGR, OSD, integration CSI
CephBlockPoolPool RBD untuk block storage
CephFilesystemMDS + pool untuk CephFS
CephObjectStoreRGW untuk S3/Swift
CephObjectStoreUserUser akses S3
CephRBDMirrorReplikasi async antar cluster

Operator Menjamin Desired State

Operator rook-ceph-operator menjalankan loop:

  1. Membaca CRD (desired state).
  2. Membandingkan kondisi cluster aktual.
  3. Membuat/memperbaiki/meng-upgrade daemon.
  4. Menjaga health.

Contoh: jika MON crash, operator me-restart. Jika versi daemon tertinggal, operator meng-upgrade sesuai image pada CephCluster.

Warning

Hati-hati: CRD CephCluster adalah manifestasi "kontrak" — perubahan yang merusak (misal menghapus pool yang dipakai) langsung dieksekusi operator. Untuk production, simpan CRD di GitOps (episode 23) supaya ada review dan jejak.

Penutup

Inti yang harus dibawa pulang:

  • MON (konsensus), OSD (penyimpan), MGR (dashboard/balancer), MDS (CephFS), RGW (S3).
  • RADOS adalah fondasi: semua data menjadi object, dikelola OSD di bawah CRUSH.
  • CRUSH menempatkan data secara deterministik dengan failure domain host/rack/region.
  • Rook operator mengelola Ceph sebagai CRDs dan merekonsiliasi desired state.

Di episode 3 selanjutnya kita akan membahas prerequisites & persiapan node/disk — persyaratan node & raw device, mengenali disk kosong tanpa memformat, label node, dan cek modul kernel untuk workload Ceph. Sampai jumpa di episode 3!