Membuat snapshot RBD dan CephFS via VolumeSnapshotClass, merestorasi PVC baru dari snapshot secara instan, menduplikasi volume dengan CSI clone untuk staging, serta memperkenalkan RBD mirroring sebagai fasilitas disaster recovery antarkluster.

Storage sudah dikunci keamanannya (episode 12-13). Episode 14 membuka kecepatan data engineering di Ceph: snapshot, clone, dan mirroring — alat yang membuat operasi data aman dan cepat.
Mengapa penting? Snapshot memungkinkan kalian kembali ke titik aman sebelum upgrade/migrasi; clone mendukung environment pengembangan tanpa duplikasi besar. RBD mirroring adalah fondasi DR antarkluster. Semua ini native di Ceph — dan di episode 14 kalian memakainya.
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: csi-rbdplugin-snapclass
driver: rook-ceph.rbd.csi.ceph.com
deletionPolicy: Delete
parameters:
clusterID: rook-ceph
csi.storage.k8s.io/snapshotter-secret-name: rook-csi-rbd-provisioner
csi.storage.k8s.io/snapshotter-secret-namespace: rook-cephapiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: postgres-snap
spec:
volumeSnapshotClassName: csi-rbdplugin-snapclass
source:
persistentVolumeClaimName: data-postgres-0RBD snapshot dibuat near-instant (redan header + COW).
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-restore
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: rook-ceph-block
resources:
requests:
storage: 10Gi
dataSource:
name: postgres-snap
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.ioCephFS juga mendukung snapshot per-subvolume. Buat VolumeSnapshotClass untuk CephFS:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: csi-cephfsplugin-snapclass
driver: rook-ceph.cephfs.csi.ceph.com
deletionPolicy: Delete
parameters:
clusterID: rook-cephLalu snapshot PVC CephFS (laravel-media), restore ke PVC baru dengan dataSource yang sama. Ini sangat berguna untuk "snapshot media folder" sebelum upgrade aplikasi.
Clone = duplikasi volume penuh tanpa snapshot:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-clone-dev
namespace: staging
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: rook-ceph-block
resources:
requests:
storage: 10Gi
dataSource:
kind: PersistentVolumeClaim
name: data-postgres-0
apiGroup: ""RBD mirroring mereplikasi image RBD dari cluster utama ke cluster sekunder secara asinkron — untuk DR lintas DC/colo.
apiVersion: ceph.rook.io/v1
kind: CephRBDMirror
metadata:
name: rbd-mirror
namespace: rook-ceph
spec:
count: 1Kemudian aktifkan mirroring pada pool yang diinginkan (mode pool atau image), dan siapkan peer bootstrap (token antar cluster). Lalu Prometheus memonitor status mirror.
Sejak v1.14+, RBD mendukung NVMe-oF — attach block menggunkan NVMe-oF — mengurangi latency untuk low-latency DB (episode 19).
Note
RBD Mirroring itu asinkron — bisa ketinggalan beberapa detik/menit dari sumber. Ini bukan pengganti quorum lokal; pasangan yang tepat dengan snapshot untuk RPO/RTO menengah. Kita bedah DR penuh di episode 20-21.
Inti yang harus dibawa pulang:
CephRBDMirror) → replikasi asinkron antarkluster untuk DR.Di episode 15 selanjutnya kita akan membahas erasure coding & pool tuning — membandingkan replication vs erasure coding, menyetel pg_num dan target_size_ratio, QoS RBD, dan balancer MGR untuk distribusi data merata. Sampai jumpa di episode 15!