Episode ini membahas RGW multisite architecture dan data replication: struktur zonegroups, routes, dan failover, use case untuk global object storage, serta model konsistensi dan cross-site synchronization.

Selamat datang di episode 13 series Belajar Ceph! Semua yang kita bahas sejauh ini berjalan dalam satu lokasi fisik. Tapi bagaimana jika data harus tersedia di dua datacenter, atau bahkan dua benua? Episode ini membahas multi-site & geo-replication — kemampuan Ceph menyinkronkan data antar site yang terpisah geografis.
RGW mendukung konfigurasi multisite yang penuh: beberapa cluster Ceph di lokasi berbeda saling mereplikasi data object storage secara asinkron. Ini memungkinkan failover ke site lain saat satu lokasi mengalami bencana, sekaligus mendekatkan data ke pengguna global.
Di akhir episode ini kalian akan paham arsitektur RGW multisite, cara mengonfigurasi zonegroup dan zone, logika failover dan route, use case object storage global, serta model konsistensi yang berlaku. Mari kita mulai.
Multisite memakai hierarki yang sudah kalian kenal dari episode 7, tapi sekarang dengan peran yang lebih jelas. Realm menyatukan seluruh site dalam satu namespace global. Zonegroup adalah kumpulan zone yang direplikasi, dan zone adalah unit fisik tempat data benar-benar disimpan.
realm: global
zonegroup: primary
zone: site-a (aktif untuk write)
zone: site-b (replikasi, read-only)Pada konfigurasi di atas, site-a menerima write dan site-b menerima salinan data. Struktur ini adalah model active-passive yang paling umum untuk memulai.
Sinkronisasi multisite dibagi dua: data sync yang menyalin isi bucket antar zone, dan metadata sync yang menyinkronkan daftar user, bucket, dan policy. Keduanya berjalan terus-menerus dan bisa dipantau lewat radosgw-admin sync status.
radosgw-admin sync status
radosgw-admin bucket sync status --bucket=bucket-pertamaradosgw-admin sync status menampilkan progres sinkronisasi data dan metadata antar zone. Lag pada angka ini menunjukkan seberapa jauh salinan data tertinggal dari site utama.
Langkah pertama membangun konfigurasi multisite adalah membuat realm yang menyatukan kedua site:
radosgw-admin realm create --rgw-realm=global --default
radosgw-admin zonegroup create --rgw-zonegroup=primary \
--master --defaultradosgw-admin zonegroup create membuat zonegroup dengan peran master dan default. Zonegroup master menyimpan metadata sumber kebenaran untuk namespace global.
Di setiap site, buat zone dan tempel period untuk menyinkronkan konfigurasi:
radosgw-admin zone create --rgw-zonegroup=primary \
--rgw-zone=site-a --master --default
radosgw-admin period update --commitradosgw-admin zone create mendefinisikan zone dalam zonegroup. radosgw-admin period update --commit menerbitkan konfigurasi terbaru ke semua site yang terhubung.
Site kedua dibuat dengan memakai konfigurasi dari site pertama, biasanya dengan mengekspor dan mengimpor period. Setelah kedua zone saling mengenal, RGW di masing-masing site di-restart agar memakai konfigurasi baru. Proses ini mendetail dan sebaiknya diikuti panduan resmi, karena urutan pembuatan realm, zone, dan period sangat menentukan keberhasilan.
Setiap zone memiliki endpoint S3-nya sendiri. Client memakai endpoint sesuai region atau lokasinya. Untuk failover, arahkan DNS ke endpoint site sekunder saat site utama mengalami masalah — misalnya dengan health check yang memindahkan record ke site lain.
radosgw-admin zone placement modify \
--rgw-zone=site-a --placement-id=default-placement \
--endpoints=https://rgw-a.example.comradosgw-admin zone placement modify menetapkan endpoint publik untuk sebuah zone. Konsistensi antara endpoint di konfigurasi dan DNS harus dijaga agar redirect S3 bekerja dengan benar.
Konfigurasi multisite sangat cocok untuk layanan yang membutuhkan ketersediaan global: media streaming yang menyajikan object dari site terdekat, backup yang menyalin data ke site lain, serta data lake yang harus bisa diakses dari berbagai region. Yang terpenting, multisite memberikan perlindungan dari bencana di satu lokasi fisik.
Untuk workload yang membutuhkan write di lebih dari satu site, Ceph mendukung model active-active dengan konflik yang di-resolve secara deterministic berdasarkan timestamp. Mode ini lebih kompleks karena membutuhkan penanganan versioning dan resolusi konflik, sehingga hanya disarankan setelah benar-benar memahami karakteristik data.
Sinkronisasi multisite bersifat asynchronous dan eventually consistent: write di site-a belum tentu langsung terlihat di site-b. Ada lag yang bergantung pada bandwidth antar site dan beban kerja. Untuk banyak use case object storage, lag ini dapat diterima karena data bersifat immutable atau jarang berubah.
radosgw-admin replication log-status
radosgw-admin data sync statusradosgw-admin replication log-status menampilkan status log replikasi per shard. Jika lag terus membesar, periksa bandwidth antar site dan konfigurasi sharding log replikasi.
Model eventual consistency berarti aplikasi harus siap membaca data yang sedikit tertinggal di site sekunder. Untuk data yang membutuhkan konsistensi kuat, tulis di site utama dan baca dari site yang sama, atau terima trade-off latensi untuk cross-site read. Pahami karakteristik ini sejak awal agar desain aplikasi tidak menabrak batas konsistensi.
Di episode ini kalian sudah memahami cara membangun multi-site dan geo-replication untuk Ceph: arsitektur RGW multisite dengan hierarki realm, zonegroup, dan zone, konfigurasi zone dan period di masing-masing site, logika route dan failover untuk use case global, serta model konsistensi eventual dan sinkronisasi lintas site.
Inti yang harus dibawa pulang:
radosgw-admin period update --commit menerbitkan konfigurasi ke semua site.Di episode 14 selanjutnya kita akan membahas data protection & disaster recovery — strategi backup dan restore untuk Ceph, alur snapshot dan clone, perencanaan disaster recovery untuk CephFS, RBD, dan RGW, serta pengujian failover dan drill recovery. Pastikan data kalian aman dalam segala kondisi!