Belajar Ceph - Block Storage dengan RBD
Episode 5 of 23

Belajar Ceph - Block Storage dengan RBD

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.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

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.

Konsep RBD dan Use Case

Apa Itu RBD

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.

Kapan Memakai RBD

RBD cocok untuk workload yang butuh raw block access:

  • Disk VM: image qcow2/raw yang dipakai hypervisor.
  • Database backend: database membutuhkan akses block yang konsisten dan mendukung snapshot.
  • Kubernetes: persistent volumes via CSI driver.

Jika workload hanya butuh shared file atau akses via HTTP, pertimbangkan CephFS atau RGW sebagai alternatif.

Membuat Image RBD dan Mount sebagai Block Device

Membuat Image

Image dibuat di dalam pool dengan perintah rbd create:

Buat image RBD 10 GB
rbd create vol-data --size 10G --pool rbd-pool
rbd ls rbd-pool
rbd info rbd-pool/vol-data

rbd 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.

Memetakan dan Memformat

Untuk memakai image sebagai disk di Linux, petakan dengan kernel rbd:

Map dan format image
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/rbd0

Perintah 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.

Mount dan gunakan
sudo mkdir /mnt/vol-data
sudo mount /dev/rbd0 /mnt/vol-data

Setelah 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.

Resize Image

Menambah kapasitas image mudah dilakukan:

Perbesar image
rbd resize rbd-pool/vol-data --size 20G
sudo resize2fs /dev/rbd0

rbd resize memperbesar image, dan resize2fs memperluas filesystem di dalamnya. RBD mendukung pengurangan ukuran dengan --allow-shrink, tetapi itu operasi berisiko dan jarang disarankan.

Snapshot, Clone, dan Thin Provisioning

Membuat Snapshot

Snapshot adalah salinan image yang konsisten pada titik waktu tertentu, dan bersifat read-only:

Snapshot dan list
rbd snap create rbd-pool/vol-data@sebelum-migrasi
rbd snap ls rbd-pool/vol-data

rbd 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 dari Snapshot

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:

Protect snapshot dan clone
rbd snap protect rbd-pool/vol-data@sebelum-migrasi
rbd clone rbd-pool/vol-data@sebelum-migrasi rbd-pool/vol-clone

rbd 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.

Thin Provisioning

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.

Cek pemakaian aktual
ceph df
rbd du rbd-pool/vol-data

rbd du menampilkan ruang yang benar-benar dipakai image dibandingkan kapasitas logisnya. Pantau nilai ini agar over-provisioning tidak berubah menjadi disk penuh.

Integrasi dengan OpenStack Cinder dan Kubernetes

OpenStack Cinder

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.

Kubernetes RBD CSI

Untuk Kubernetes, driver RBD CSI menyediakan persistent volume dengan fitur snapshot, resize, dan clone via StorageClass:

StorageClass RBD CSI
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: ext4

StorageClass di atas memungkinkan PVC memakai image RBD otomatis. Deployment penuh di Kubernetes akan kita bahas di episode 16.

Penutup

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 memetakan objek RADOS menjadi block device kontinu.
  • rbd create, rbd map, lalu mkfs dan mount adalah alur dasar pemakaian.
  • Snapshot bersifat read-only dan menjadi dasar backup point-in-time.
  • Clone berbagi data dengan snapshot asal sehingga pembuatannya cepat.
  • Image RBD bersifat thin: hanya blok terpakai yang memakan kapasitas.
  • Cinder dan RBD CSI memakai librbd untuk provisioning otomatis.

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!