Membuat Virtual Machine dengan KVM


Photo by Mockup Graphics on Unsplash

Kali ini kita akan melakukan instalasi dan membuat mesin virtual dengan KVM (Kernel Virtualization Module). KVM sendiri sudah terintegrasi oleh kernel Linux sehingga kita dapat menggunakannya dengan mudah. KVM adalah salah satu aktor dibalik layar yang ada dalam teknologi cloud yang ada saat ini. Kemungkinan besar jika anda menggunakan VPS maka kemungkinan besar menggunakan KVM sebagai virtualisasinya. Mungkin anda juga sudah tahu Proxmox yang juga menggunakan KVM di belakangnya. Pada dasarnya Proxmox memudahkan kita melakukan proses dan manajemen virtualisasi berbasis KVM.

Sangat direkomendasikan anda menggunakan sistem operasi dengan kernel Linux diatas versi 2.6.20, karena sebelum versi tersebut kernel Linux belum memiliki KVM di dalamnya. Kali ini saya menggunakan sistem operasi Rocky Linux 9 sebagai host OS dan menggunakan CPU dengan arsitektur ARM64.

CPU ARM biasanya memerlukan Generic Interrupt Controller (GIC) untuk menangani interupsi dalam lingkungan virtual. Bila CPU anda berbasis ARM seperti yang saya gunakan, ikuti perintah berikut:

grep -c 'GIC' /proc/interrupts

Bila hasilnya tidak sama dengan 0 maka CPU anda mendukung virtualisasi level hardware.

Untuk x86, cek apakah CPU mendukung vmx atau svm

egrep -o '(vmx|svm)' /proc/cpuinfo

Pertama tentu lakukan instalasi package. Disini kita juga perlu menambahkan package QEMU dan libvirt. QEMU perlu kita tambahkan karena KVM hanya melakukan kontrol pada low-level CPU dan virtualisasi memori, sedangkan QEMU memberikan emulasi perangkat dan virtualisasi I/O. Adapun libvirt kita gunakan sebagai daemon dan alat manajemen VM.

sudo dnf check-update
sudo dnf update
sudo dnf install qemu-kvm libvirt virt-install wget

Aktifkan dan mulai layanan libvirtd

sudo systemctl enable --now libvirtd

Unduh image Linux yang ingin anda masukkan ke VM. Disini saya menggunakan Debian 12 Bookworm.

sudo wget -O /var/lib/libvirt/images/installer.iso http://kartolo.sby.datautama.net.id/debian-cd/current/arm64/iso-cd/debian-12.5.0-arm64-netinst.iso

Perlu anda perhatikan, disini saya menggunakan image netinstall. Yang berarti membutuhkan internet untuk proses instalasinya. Silahkan gunakan image non netinstall bila anda tidak ingin menggunakan koneksi internet untuk instalasi.

sudo virt-install   --name myvm   --ram 2048   --vcpus 2   --disk path=/var/lib/libvirt/images/myvm.qcow2,format=qcow2   --os-variant generic   --network network=default   --graphics none   --console pty,target_type=serial   --location /var/lib/libvirt/images/installer.iso --check-all=off   --extra-args 'console=ttyS0,115200n8 serial'

Anda akan masuk ke console baru, selanjutnya tinggal ikuti perintah instalasi yang muncul

Bila instalasi sudah selesai, console akan menampilkan login.

Proses yang kita lakukan tadi adalah cara manual untuk kita dapat membuat suatu virtual machine. Beberapa tools yang kita kenal seperti Proxmox dan VirtualBox sudah memberikan abstraksi untuk hal seperti ini sehingga memudahkan kita untuk membuat VM melalui GUI yang disediakan.