Saat melakukan uji coba Apache CloudStack, atasan saya sedang menguji proses import VM dari VMware ke lingkungan CloudStack. Setelah beberapa VM dijalankan, saya diminta menguji overprovisioning pada CloudStack agar kapasitas CPU dan RAM host dapat dialokasikan kepada lebih banyak VM tanpa langsung menambah resource fisik.
Overprovisioning pada CloudStack hanya memperbesar kapasitas yang digunakan oleh scheduler dalam menentukan apakah sebuah VM masih dapat ditempatkan pada host. Jika seluruh VM menggunakan resource secara bersamaan, tetap dapat terjadi CPU contention atau kekurangan RAM.
Cara Kerja Overprovisioning
CloudStack menyediakan dua parameter pada level cluster:
cpu.overprovisioning.factor

mem.overprovisioning.factor

Nilai 1.0 berarti tidak ada overprovisioning. Contohnya, jika host memiliki 4 vCPU dan RAM 8 GB:
| Parameter | Factor | Kapasitas dalam perhitungan CloudStack |
|---|---|---|
| CPU | 10.0 | 4 x 10 = 40 vCPU |
| RAM | 10.0 | 8 x 10 = 80 GB |
Konfigurasi Melalui GUI
- Login ke CloudStack sebagai Root Administrator.
- Buka Infrastructure.
- Pilih Clusters.
- Klik cluster tempat host berada.
- Buka tab Settings.
- Cari kata
overprovisioning. - Ubah CPU overcommit factor
- Ubah RAM overcommit factor
- Simpan perubahan dan tunggu pembaruan capacity.
Pengaturan pada cluster lebih tepat dibandingkan hanya mengubah Global Settings karena kemampuan setiap cluster dapat berbeda. Global Settings berfungsi sebagai nilai default ketika cluster baru dibuat.
Verifikasi
Sebelum dan sesudah perubahan, periksa kapasitas melalui menu:
Infrastructure → System Wide Capacity
Selanjutnya, coba deploy atau start beberapa VM menggunakan service offering yang sama. Pantau penggunaan resource pada host KVM:
free -h
top
vmstat 1
VM yang dibuat setelah perubahan akan memakai perhitungan baru. Untuk VM lama, lakukan stop dan start agar CloudStack menghitung ulang used dan reserved capacity.
Catatan untuk RAM pada KVM
RAM overprovisioning lebih berisiko dibandingkan CPU. Pada KVM, guest VM sebaiknya memiliki virtio balloon driver agar hypervisor dapat melakukan memory ballooning. Hal ini perlu diperhatikan pada VM hasil import dari VMware karena driver yang dibutuhkan belum tentu sudah tersedia di dalam guest OS.
CloudStack juga mengatur minimum RAM VM berdasarkan nilai service offering yang dibagi dengan RAM overcommit factor. Karena itu, kapasitas RAM yang terbaca di dalam guest perlu diperiksa setelah VM dinyalakan. Jangan menerapkan RAM overprovisioning besar sebelum balloon driver dan penggunaan RAM host sudah diverifikasi.
Kesimpulan
CPU dan RAM overprovisioning dapat membantu menjalankan lebih banyak VM pada resource host yang sama. Penggunaan CPU, RAM, dan stabilitas VM harus tetap dipantau sebelum factor dinaikkan kembali.


Leave a Reply