Episode ini membahas RBD, interface block storage Ceph: konsep dan use case untuk VM, membuat image RBD dan memetakannya sebagai block device, integrasi dengan OpenStack Cinder dan Kubernetes RBD CSI, serta snapshot, clone, dan thin provisioning.

Selamat datang di episode 5 series Belajar Ceph! Di episode 4 kalian sudah memahami pool. Sekarang kita memanfaatkan pool untuk salah satu interface paling populer Ceph: block storage dengan RBD (RADOS Block Device).
RBD adalah interface yang dipakai untuk disk virtual machine, disk database, dan workload yang membutuhkan akses raw block. Ciri khas RBD adalah kemampuannya diakses sebagai block device layaknya disk fisik, tetapi dengan fitur storage modern seperti snapshot, clone, dan thin provisioning.
Di episode ini kita akan membahas konsep RBD dan use case-nya, membuat image RBD dan memetakannya sebagai block device di Linux, integrasi dengan OpenStack Cinder dan Kubernetes CSI, serta snapshot, clone, dan thin provisioning.
RBD memetakan objek-objek RADOS menjadi sebuah image yang tampak sebagai block device kontinu. Client memakai driver rbd — bisa via kernel Linux, librbd di QEMU, atau driver CSI di Kubernetes — untuk mengakses image tersebut.
Image RBD disimpan di dalam pool dengan application rbd. Pool tempat image disimpan biasanya diberi nama seperti rbd-pool atau volumes, sesuai konvensi OpenStack.
RBD cocok untuk workload yang butuh raw block access:
Jika workload hanya butuh shared file atau akses via HTTP, pertimbangkan CephFS atau RGW sebagai alternatif.
Image dibuat di dalam pool dengan perintah rbd create:
rbd create vol-data --size 10G --pool rbd-pool
rbd ls rbd-pool
rbd info rbd-pool/vol-datarbd create vol-data --size 10G --pool rbd-pool membuat image berkapasitas 10 GB. rbd info menampilkan detail seperti size, block size, dan fitur yang aktif. Image secara default mendukung thin provisioning.
Untuk memakai image sebagai disk di Linux, petakan dengan kernel rbd:
rbd feature disable rbd-pool/vol-data exclusive-lock,object-map,fast-diff,deep-flatten
rbd map rbd-pool/vol-data
sudo mkfs.ext4 /dev/rbd0Perintah rbd map rbd-pool/vol-data membuat device /dev/rbd0 di client. Fitur-fitur tertentu harus dinonaktifkan untuk kernel yang lebih tua; mkfs.ext4 lalu memformat device menjadi filesystem.
sudo mkdir /mnt/vol-data
sudo mount /dev/rbd0 /mnt/vol-dataSetelah mount, /mnt/vol-data bisa dipakai seperti disk biasa. Untuk memetakan device dari node lain, node tersebut perlu keyring client dengan akses ke pool — detailnya akan kita bahas di episode 8.
Menambah kapasitas image mudah dilakukan:
rbd resize rbd-pool/vol-data --size 20G
sudo resize2fs /dev/rbd0rbd resize memperbesar image, dan resize2fs memperluas filesystem di dalamnya. RBD mendukung pengurangan ukuran dengan --allow-shrink, tetapi itu operasi berisiko dan jarang disarankan.
Snapshot adalah salinan image yang konsisten pada titik waktu tertentu, dan bersifat read-only:
rbd snap create rbd-pool/vol-data@sebelum-migrasi
rbd snap ls rbd-pool/vol-datarbd snap create membuat snapshot bernama sebelum-migrasi. Snapshot menjadi dasar backup point-in-time dan bisa di-restore kapan saja dengan rbd snap rollback.
Clone menghasilkan image baru yang mandiri namun berbagi data dengan snapshot asal sampai data berubah. Clone adalah cara cepat membuat salinan image tanpa menyalin seluruh data:
rbd snap protect rbd-pool/vol-data@sebelum-migrasi
rbd clone rbd-pool/vol-data@sebelum-migrasi rbd-pool/vol-clonerbd snap protect menandai snapshot agar tidak bisa dihapus selama masih ada clone yang bergantung padanya. rbd clone membuat image vol-clone yang terhubung ke snapshot tersebut.
Image RBD dibuat thin: hanya blok yang benar-benar ditulis yang mengonsumsi kapasitas pool. Kapasitas total image bisa melebihi kapasitas pool, selama pemakaian aktual tidak melampauinya.
ceph df
rbd du rbd-pool/vol-datarbd du menampilkan ruang yang benar-benar dipakai image dibandingkan kapasitas logisnya. Pantau nilai ini agar over-provisioning tidak berubah menjadi disk penuh.
Ceph RBD adalah backend utama Cinder di deployment OpenStack. Cinder memanggil librbd untuk membuat volume, snapshot, dan clone, sehingga fitur RBD tersedia langsung di dashboard Horizon. Konfigurasi dilakukan di file cinder.conf dengan volume_driver = cinder.volume.drivers.rbd.RBDDriver.
Untuk Kubernetes, driver RBD CSI menyediakan persistent volume dengan fitur snapshot, resize, dan clone via StorageClass:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ceph-rbd
provisioner: rbd.csi.ceph.com
parameters:
clusterID: <fsid>
pool: rbd-pool
csi.storage.k8s.io/fstype: ext4StorageClass di atas memungkinkan PVC memakai image RBD otomatis. Deployment penuh di Kubernetes akan kita bahas di episode 16.
Di episode ini kalian sudah memahami dan mempraktikkan block storage RBD: konsep dan use case, membuat image dan memetakannya sebagai block device, snapshot dan clone, thin provisioning, serta integrasi dengan OpenStack Cinder dan Kubernetes CSI.
Inti yang harus dibawa pulang:
rbd create, rbd map, lalu mkfs dan mount adalah alur dasar pemakaian.Di episode 6 selanjutnya kita akan membahas file storage dengan CephFS — arsitektur metadata server dan data path, membuat filesystem dan mount client, active-active MDS untuk scaling metadata, serta quotas, snapshot, dan konsistensi client. Bersiap untuk interface file pertama kalian!