Script Perbaikan Ceph untuk Libvirt dan Agent CloudStack (Rocky Linux 9)

Saat testing integrasi Ceph sebagai primary storage CloudStack pada Rocky Linux 9, saya menemui kendala saat menambahkan storage dan membuat instance. Dua komponen masih menggunakan opsi auth_supported, yang ditolak library klien Ceph pada lab saya.

Perbaikannya adalah mengganti opsi tersebut menjadi auth_client_required. Untuk memudahkan penerapan ulang, saya menyiapkan dua script di GitHub.

Fungsi masing-masing script

  • Bagian A — fix-libvirt-rbd.sh: memperbaiki driver storage RBD libvirt untuk error failed to set RADOS option: auth_supported saat menambahkan primary storage.
  • Bagian B — fix-cloudstack-agent-rbd.sh: memperbaiki plugin KVM agent untuk error invalid conf option auth_supported saat konversi template atau disk instance.

Keduanya melakukan pengecekan sederhana, menyediakan backup dan rollback, serta melewati pemasangan jika komponen aktif sudah menggunakan opsi baru.

Persiapan

Ceph, pool RBD, konfigurasi klien, dan keyring harus sudah tersedia. Pastikan akses dari host KVM berhasil:

rbd --id cloudstack -p cloudstack-pool ls

Default script memakai Rocky 9 x86_64, libvirt 11.10.0-12.7.el9_8, dan CloudStack agent 4.23.0.0. Sesuaikan versi, URL, path, dan nama layanan melalui variabel di atas script. Patch tidak membutuhkan secret Ceph.

Unduh script

wget https://raw.githubusercontent.com/rafiharli/cloudstack-ceph-rbd-fix/refs/heads/main/fix-libvirt-rbd.sh

wget https://raw.githubusercontent.com/rafiharli/cloudstack-ceph-rbd-fix/refs/heads/main/fix-cloudstack-agent-rbd.sh

Jalankan Bagian A

Build sebaiknya dilakukan pada mesin Rocky dengan rilis, arsitektur, dan repository klien Ceph yang sesuai host KVM:

sudo bash fix-libvirt-rbd.sh build

Hasilnya ada di /root/libvirt-rbd-backport/fixed.rpm. Jika mesin build terpisah, salin RPM ke path yang sama pada host KVM dan unduh script A di host tersebut. Kemudian pasang:

sudo bash fix-libvirt-rbd.sh install

Bagian A hanya memasang subpaket driver RBD hasil build, kemudian me-restart libvirt dan menghentikan sementara agent yang aktif.

Jalankan Bagian B

Pada host KVM:

sudo bash fix-cloudstack-agent-rbd.sh apply

Script compile ulang satu class Java, memeriksa API dan bytecode, lalu mengganti plugin dan menghentikan sementara agent yang aktif. Jalankan pemasangan ketika tidak ada deployment atau migrasi berlangsung.

Cek hasil dan rollback

Tunggu host dan primary storage berstatus Up, lalu coba deployment. Pastikan instance Running dan ROOT volume berada di storage Ceph. Patch ini menangani error kompatibilitas opsi RBD; kapasitas host, template, dan offering tetap harus sesuai.

Jika perlu mengembalikan perubahan, jalankan pada host KVM dengan direktori kerja yang sama:

sudo bash fix-cloudstack-agent-rbd.sh rollback
sudo bash fix-libvirt-rbd.sh rollback

Update paket dapat menimpa patch lokal. Periksa kembali setelah update. Detail backup dan pemakaian tersedia di README repository.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *