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.

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.
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 menyimpan data, menjalankan replikasi, recovery, rebalance, dan heartbeat. Setiap disk fisik di node biasanya satu OSD (bisa lebih dengan osdsPerDevice). Ini "mesin penyimpanan" sebenarnya.
Manager adalah "otak eksekutif": menyediakan dashboard web, metrik Prometheus, dan modul balancer (mis. rebalance otomatis).
MDS menyediakan metadata untuk CephFS (file system). Berperan mengelola direktori, nama file, dan permission. Tanpa MDS, tidak ada CephFS.
RGW menyediakan object storage dengan S3/Swift API. Semua bucket, objek, dan ACL di-handle di sini.
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.
Dengan kata lain, satu RADOS yang hebat mendukung tiga frontend berbeda. Ini yang membuat Ceph "agnostic storage output".
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.
CRUSH mendukung failure domain: host, rack, row, dan region. Ceph menempatkan replika di domain berbeda:
failureDomain: host → replika tidak berada di node yang sama.Ini mencegah satu node mati menghempas semua replika volume yang sama.
Rook memperkenalkan CRDs yang mengekspresikan desired state:
| CRD | Menciptakan |
|---|---|
CephCluster | MON, MGR, OSD, integration CSI |
CephBlockPool | Pool RBD untuk block storage |
CephFilesystem | MDS + pool untuk CephFS |
CephObjectStore | RGW untuk S3/Swift |
CephObjectStoreUser | User akses S3 |
CephRBDMirror | Replikasi async antar cluster |
Operator rook-ceph-operator menjalankan loop:
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.
Inti yang harus dibawa pulang:
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!