Episode ini fokus pada pengelolaan pool RADOS: membuat pool, mengatur replication level, membedakan pool replicated dan erasure coded, men-tune placement groups dan failure domain, serta mengelola lifecycle OSD mulai dari menambah hingga menghapus OSD yang rusak.

Selamat datang di episode 4 series Belajar Ceph! Cluster kalian sudah berdiri dan sehat. Sekarang saatnya memahami bagian yang paling sering kalian sentuh dalam operasional harian: pool RADOS. Hampir semua operasi — membuat image RBD, filesystem CephFS, atau bucket RGW — bermuara pada pool.
Di episode ini kita akan membahas cara membuat dan mengonfigurasi pool, mengatur level replikasi, membedakan pool replicated dan erasure coded, men-tune placement groups, serta mengelola lifecycle OSD: menambah, menonaktifkan, dan menghapus.
Pengelolaan pool yang baik adalah kunci dari keandalan dan performa. Keputusan seperti ukuran replika, jumlah PG, dan failure domain akan menentukan bagaimana cluster kalian bertahan menghadapi kegagalan.
Perintah dasar untuk membuat pool:
ceph osd pool create rbd-pool 128ceph osd pool create rbd-pool 128 membuat pool bernama rbd-pool dengan 128 PG. Sintaks dasar memakai jumlah PG sebagai argumen kedua. Untuk pool baru, pertimbangkan juga menetapkan application:
ceph osd pool application enable rbd-pool rbdMenandai application pool membantu mengaktifkan fitur yang sesuai, misalnya rbd, cephfs, atau rgw. Ini juga mencegah pool dipakai secara tidak sengaja oleh layanan lain.
Level replikasi diatur dengan parameter size (jumlah salinan) dan min_size (jumlah salinan minimum agar pool tetap bisa menulis):
ceph osd pool set rbd-pool size 3
ceph osd pool set rbd-pool min_size 2size 3 berarti setiap objek memiliki tiga salinan. min_size 2 berarti pool masih menerima write meskipun satu salinan hilang, sehingga cluster tetap bisa dipakai saat recovery berlangsung. Menurunkan min_size ke 1 berisiko kehilangan data.
Pool replicated menyalin setiap objek secara utuh ke size OSD. Kelebihannya: sederhana, tulis dan baca cepat, dan semua operasi seperti snapshot bekerja penuh. Kekurangannya: pemakaian disk tiga kali lipat untuk size 3.
Pool replicated adalah pilihan default untuk RBD dan umumnya untuk CephFS. Jika kalian tidak yakin memilih apa, mulai dari replicated.
Pool erasure coded (EC) memecah data menjadi chunk k data dan m parity. Untuk membaca hanya dibutuhkan k chunk, sehingga pemakaian disk jauh lebih hemat — misalnya konfigurasi k=4, m=2 hanya memakai 1.5x kapasitas.
ceph osd erasure-code-profile set ec42 \
k=4 m=2 crush-failure-domain=host
ceph osd pool create ec-pool 128 erasure ec42ceph osd pool create ec-pool 128 erasure ec42 membuat pool erasure coded dengan profile ec42. Perhatikan bahwa pool EC memiliki keterbatasan: tidak mendukung operasi part-read/part-write secara penuh dan belum kompatibel dengan semua fitur RBD.
Jumlah PG menentukan granularity distribusi dan rebalancing. Pedoman praktis: untuk cluster dengan total kapasitas T GB dan target PG per OSD sekitar 100, total PG cluster sekitar T / OSD_size * 100. Ceph modern punya pg autoscaler yang menyesuaikan otomatis:
ceph config set global osd_pool_default_pg_autoscale_mode on
ceph osd pool autoscale-statusceph osd pool autoscale-status menampilkan perkiraan jumlah PG ideal per pool dan mode autoscale-nya. Dengan autoscaler aktif, Ceph menambah atau mengurangi PG pool secara otomatis.
Failure domain menentukan seberapa jauh replika ditempatkan — host, rack, atau osd. Untuk pool replicated size 3 dengan failure domain host, ketiga salinan tidak akan pernah berada di host yang sama.
ceph osd getcrushmap -o /tmp/map.bin
ceph osd pool get rbd-pool crush_ruleMengubah failure domain dilakukan dengan membuat CRUSH rule baru dan menetapkannya ke pool. Detail CRUSH rule akan kita bedah lengkap di episode 15.
Untuk pekerjaan maintenance pada sebuah OSD — misalnya mengganti disk — nonaktifkan OSD secara terkendali agar data dipindahkan dulu:
ceph osd out osd.3
systemctl restart ceph-osd@3ceph osd out osd.3 menandai OSD sehingga data di dalamnya dipindahkan ke OSD lain secara bertahap. Proses ini disebut backfill. Setelah OSD kembali sehat, hidupkan lagi dengan ceph osd in osd.3.
Jika sebuah OSD benar-benar rusak dan harus diganti, hapus dari cluster:
ceph osd out osd.5
ceph osd destroy osd.5 --yes-i-really-mean-it
ceph osd rm osd.5
ceph osd crush remove osd.5
ceph auth del osd.5Urutan ini menonaktifkan, menghancurkan, menghapus dari OSD map dan CRUSH, lalu menghapus key-nya. Untuk cephadm, yang lebih sederhana adalah ceph orch daemon rm osd.5 yang mengelola seluruh langkah tersebut sekaligus.
Menambah OSD baru untuk mengganti yang rusak atau menambah kapasitas:
ceph orch daemon add osd node2:/dev/sdc
ceph osd treeSetelah OSD baru masuk, Ceph secara otomatis akan mulai menyeimbangkan ulang data (rebalance) ke seluruh cluster termasuk OSD baru.
Di episode ini kalian sudah menguasai pengelolaan pool RADOS: membuat pool replicated dan erasure coded, mengatur size dan min_size, men-tune jumlah placement groups dengan autoscaler, menetapkan failure domain, serta mengelola lifecycle OSD dari menambah hingga menghapus.
Inti yang harus dibawa pulang:
size menentukan jumlah salinan, min_size menjaga ketersediaan saat recovery.host mencegah replika berada di node yang sama.ceph orch daemon rm.Di episode 5 selanjutnya kita akan membahas block storage dengan RBD — membuat image RBD, memetakannya sebagai block device, integrasi dengan OpenStack Cinder dan Kubernetes CSI, serta snapshot, clone, dan thin provisioning. Mari kita ubah pool kalian menjadi storage yang benar-benar bisa dipakai!