Pendahuluan
Ceph umumnya menggunakan minimal tiga Monitor untuk menyediakan quorum dan redundansi. Namun, pada pengujian ini saya mencoba menjalankan cluster Proxmox VE dua node dengan hanya satu Ceph Monitor.
Tujuan pengujian ini adalah mengetahui kondisi VM dan storage Ceph ketika node kedua dimatikan, serta memastikan apakah VM baru masih dapat dibuat pada node yang tetap aktif.
Konfigurasi Homelab
Pengujian dilakukan menggunakan konfigurasi berikut:
| Komponen | Konfigurasi |
|---|---|
| Proxmox VE | 9.2.10 |
| Ceph | 19.2.5 Squid |
| Node pertama | pveceph1 – 192.168.14.57 |
| Node kedua | pveceph2 – 192.168.14.58 |
| Jumlah OSD | 6 OSD |
OSD pveceph1 | osd.3, osd.4, dan osd.5 |
OSD pveceph2 | osd.0, osd.1, dan osd.2 |
| Storage VM | pvecephpool |
| Pool replica | size=2 |
| Minimum replica | min_size=1 |
| Ceph Monitor | Hanya di pveceph1 |
| VM pengujian | Alpine Linux di pveceph1 |
Pada kondisi awal, kedua node aktif, enam OSD berstatus up/in, seluruh Placement Group berstatus active+clean, dan Ceph menunjukkan status HEALTH_OK.
Mengubah Ceph Menjadi Satu Monitor
Awalnya Ceph memiliki dua Monitor, yaitu:
pveceph1pveceph2
Sebelum Monitor kedua dihapus, dilakukan pemeriksaan untuk memastikan bahwa mon.pveceph2 aman dikeluarkan dari monmap. Hasil pemeriksaan menunjukkan:
root@pveceph1:~# ceph mon ok-to-rm pveceph2
safe to remove mon.pveceph2
Monitor pveceph2 kemudian dihapus melalui Proxmox Web GUI dengan langkah berikut:
- Pilih node pveceph2.
- Buka menu Ceph → Monitor.
- Pilih Monitor pveceph2.
- Klik Destroy.
- Konfirmasi penghapusan dan tunggu sampai proses selesai.
Alternatifnya, penghapusan Monitor dapat dilakukan melalui CLI pada node pveceph2:
pveceph mon destroy pveceph2
Proses tersebut hanya menghapus fungsi Ceph Monitor pada pveceph2. Node Proxmox, tiga OSD, dan layanan Ceph lainnya pada node tersebut tetap dipertahankan.
Setelah proses selesai, Ceph hanya memiliki satu Monitor aktif, yaitu pveceph1, dengan quorum 1/1.

Dokumentasi Ceph menjelaskan:
“A cluster will run fine with a single Monitor; however, a single Monitor is a single-point-of-failure.”
Artinya, satu Monitor tetap dapat melayani cluster Ceph. Namun, jika Monitor tersebut gagal, tidak ada Monitor lain yang dapat mengambil alih. Ceph Monitor Configuration Reference.
Membuat VM Pengujian
Selanjutnya, dibuat satu VM Alpine Linux dengan ketentuan berikut:
- VM ditempatkan di node
pveceph1. - Disk VM menggunakan storage
pvecephpool. - VM tidak dimasukkan ke dalam konfigurasi Proxmox HA.
- VM dinyalakan sebelum proses pengujian dimulai.
Melalui Web GUI, VM dipastikan telah berstatus Running dan disk-nya menggunakan storage Ceph.
Mematikan pveceph2
Setelah VM Alpine berjalan, node pveceph2 dimatikan melalui Proxmox Web GUI:
- Pilih node pveceph2.
- Klik tombol Shutdown.
- Konfirmasi proses shutdown.
- Tunggu sampai node benar-benar berstatus offline.
Setelah pveceph2 mati, pemeriksaan dilakukan melalui Web GUI pada pveceph1, meliputi:
- Status VM Alpine pada halaman Summary.
- Status node pada halaman Datacenter.
- Status Ceph pada menu Ceph.
- Status Monitor pada menu Ceph → Monitor.
- Status OSD pada menu Ceph → OSD.
- Status storage
pvecephpool. - Percobaan membuat VM baru di
pveceph1.
Hasil Pengujian
VM yang sudah berjalan tetap running

Setelah pveceph2 dimatikan, VM Alpine di pveceph1 tetap berstatus Running.
Hal ini terjadi karena:
- Ceph Monitor
pveceph1tetap memiliki quorum 1/1. - Tiga OSD di
pveceph1masih aktif. - Pool menggunakan
min_size=1. - Proses VM telah berjalan di
pveceph1.
Meskipun VM tetap berjalan, Ceph berada dalam kondisi degraded karena tiga OSD pada pveceph2 sudah tidak tersedia.

Dengan size=2 dan min_size=1, Ceph masih dapat melayani I/O menggunakan satu replica yang tersedia. Namun, data pada kondisi tersebut hanya memiliki satu salinan aktif.
Dokumentasi Ceph memperingatkan bahwa penggunaan size=2 atau min_size=1 memiliki risiko kehilangan data dan tidak direkomendasikan sebagai konfigurasi normal untuk production. Dokumentasi Ceph Pool.
VM baru tidak dapat dibuat
Ketika dilakukan percobaan membuat VM baru di pveceph1, proses tersebut gagal walaupun storage Ceph masih dapat diakses.
Kegagalan ini bukan disebabkan oleh single Ceph Monitor, melainkan karena cluster Proxmox kehilangan quorum.

Cluster Proxmox masih mengharapkan dua vote, sedangkan setelah pveceph2 dimatikan hanya tersedia satu vote dari pveceph1. Akibatnya, Proxmox Cluster File System atau pmxcfs berubah menjadi read-only.
Dokumentasi Proxmox menjelaskan salah satu karakteristik pmxcfs sebagai berikut:
“Read-only when a node loses quorum.”
Karena konfigurasi VM disimpan di dalam /etc/pve, Proxmox tidak dapat menulis konfigurasi VM baru ketika cluster tidak memiliki quorum. Dokumentasi Proxmox pmxcfs.
Ringkasan Hasil
| Pengujian | Hasil |
|---|---|
Ceph Monitor pveceph2 dihapus | Berhasil |
| Ceph berjalan dengan satu Monitor | Berhasil, quorum 1/1 |
pveceph2 dimatikan | Berhasil |
VM Alpine di pveceph1 | Tetap running |
| Storage Ceph | Tetap tersedia, tetapi degraded |
OSD pada pveceph2 | Down |
Membuat VM baru di pveceph1 | Gagal |
| Penyebab kegagalan | PVE/Corosync kehilangan quorum |
Pengujian Lanjutan
Untuk kebutuhan lab, jumlah expected vote dapat diubah sementara menjadi satu:
pvecm expected 1
Perintah tersebut dapat membuat pveceph1 kembali memiliki quorum sehingga pengujian pembuatan VM baru dapat dilanjutkan.
Namun, perintah ini hanya boleh digunakan setelah memastikan pveceph2 benar-benar mati, bukan sekadar terputus dari jaringan. Penggunaannya dalam kondisi node lain masih aktif dapat menimbulkan risiko split-brain.
Untuk cluster Proxmox dua node yang digunakan secara permanen, Proxmox merekomendasikan QDevice sebagai vote ketiga. Dokumentasi Proxmox Cluster Manager.
Kesimpulan
Pengujian menunjukkan bahwa satu Ceph Monitor di pveceph1 tetap dapat melayani storage ketika pveceph2 dimatikan. VM Alpine yang sudah berjalan tetap berstatus Running karena Ceph masih memiliki MON quorum 1/1 dan pool memperbolehkan I/O dengan satu replica.
Namun, VM baru tidak dapat dibuat karena cluster Proxmox kehilangan quorum dan pmxcfs berubah menjadi read-only. Dengan demikian, kegagalan pembuatan VM baru berasal dari quorum PVE/Corosync, bukan dari quorum Ceph.
Konfigurasi satu Ceph Monitor dan pool size=2/min_size=1 dapat digunakan untuk eksperimen, tetapi tidak direkomendasikan untuk production karena tidak memiliki redundansi Monitor dan hanya menyisakan satu salinan data ketika salah satu node mati.


Leave a Reply