Kernel-based Virtual Machine atau KVM adalah teknologi virtualisasi yang ada di kernel linux, dengan KVM kita bisa mengubah linux kita menjadi hypervisor dan menjalankan beberapa os diatasnya. Untuk menjalankan KVM hardware kita tentunya harus support virtualisasi.
Benefit menggunakan KVM
- Performa
Dikarenakan kvm adalah type-1 hypervisor, kita tidak perlu Host OS untuk menjalankan virtualisasinya, jadi VM yang kita buat di KVM bisa lebih cepat performanya
- Skalabilitas
Dengan menggunakan KVM kita bisa membuat node cluster untuk VM kita, dan terdapat fitur untuk live migration yang berarti kita bisa memindahkan VM kita ke node KVM lain tanpa adanya downtime
- Keamanan
Dikarenakan KVM ada di modul kernel linux, maka ketika ada bug pada security akan lebih cepat di patch karena Linux merupakan hasil kolaborasi komunitas open-source.
- Murah
Kita tidak perlu mengeluarkan uang untuk membuat sebuah mesin virtualisasi dengan performa yang oke, karena KVM gratis digunakan.
Installasi dan Konfigurasi KVM
Pertama kita cek terlebih dahulu apakah cpu kita support KVM dengan menjalankan perintah berikut:
grep -Eoc '(vmx|svm)' /proc/cpuinfo
Jika hasilnya 0 artinya processor tidak support KVM.
![](https://aryapramudika.com/wp-content/uploads/2022/07/Screen-Shot-2022-07-28-at-20.57.06-1024x705.png)
Lanjut kita langsung ke installasinya
Disini saya menggunakan Ubuntu 20.04 sebagai servernya, dengan spesifikasi 8GB RAM dan 4 CPU. Sebelum menginstall KVM kita update terlebih dahulu repositorynya.
sudo apt update -y
Selanjutnya kita install paket yang dibutuhkan
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
KVM berhasil di install, jika kita ingin menjalankan kvm tanpa menggunakan user root kita perlu menambahkan user kita ke group libvirt
sudo usermod -aG arya libvirt
Cek layanan libvirtd, pastikan running
sudo systemctl status libvirtd
![](https://aryapramudika.com/wp-content/uploads/2022/07/Screen-Shot-2022-07-28-at-21.59.28-1024x700.png)
Verifikasi bahwa KVM sudah terinstall
virsh list --all
![](https://aryapramudika.com/wp-content/uploads/2022/07/Screen-Shot-2022-07-28-at-22.00.17-1024x700.png)
Untuk memudahkan manajemen KVM kita perlu menginstall virt-manager di client (Linux)
Debian Based Linux
sudo apt install virt-manager -y
Arch Based Linux
sudo pacman -S virt-manager
RedHat Based
sudo dnf install virt-manager -y
Tampilannya seperti ini
![](https://aryapramudika.com/wp-content/uploads/2022/07/0-virt-manager.png)
Untuk terkoneksi ke server, kita bisa menambahkannya dengan cara klik File > Add Connection. Sebelum itu pastikan kita sudah mengkonfigurasi login ssh dengan key bisa baca disini.
Kita isi username dan hostname(IP/Domain server)
![](https://aryapramudika.com/wp-content/uploads/2022/07/1-kvm-connect-to-server.png)
Selanjutnya klik Connect, Jika di dashboard sudah bertambah maka koneksi ke server berhasil!!
![](https://aryapramudika.com/wp-content/uploads/2022/07/1-kvm-connect-berhasil.png)
Menjalankan Virtual Machine
Untuk menjalankan VM tentunya kita perlu ISO file dari OS yang mau kita install(pastikan sudah ada). Selanjutnya pindahkan file iso ke direktori /var/lib/libvirt/images.
Kemudian untuk membuat VM baru, klik gambar New VM dikiri atas.
![](https://aryapramudika.com/wp-content/uploads/2022/07/1-kvm-connect-berhasil-edit.png)
Kemudian pilih Local install media(ISO image or CDROM), disini kita bisa memilih sumber installasi lain seperti Network Install, Network Boot, atau dari Disk yang sudah ada.
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm1.png)
Selanjutnya kita pilih File ISO nya dengan klik Browse
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm2.png)
Pilih ISO yang sudah di tersedia, contohnya disini saya memilih iso Ubuntu Server. Disini kita juga bisa memilih ISO dari direktori lain dengan Browse Local. Setelah memilih iso klik Choose Volume
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm4.png)
Secara otomatis biasanya operating system akan terdeteksi, selanjutnya klik Forward
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm5-1.png)
Lalu kita atur RAM dan CPU, klik Forward lagi untuk melanjutkan ke menu selanjutnya
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm6.png)
Selanjutnya kita buat disk baru untuk VM nya, klik Manage
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm7.png)
Selanjutnya tambah storage pool baru dengan mengklik tombol +
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm8-edited.png)
Buat Storage Pool baru, contoh dengan nama storage untuk Target Path nya kita pilih direktori khusus penyimpanan disk VM. Lalu klik Finish
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm9.png)
Kita buat disk baru untuk VM Ubuntu Server yang kita buat, klik icon + di bagian Volumes
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm10-edited.png)
Atur size disk sesuai keinginan, misal 20GB lalu klik Finish untuk membuat disk
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm11.png)
Selanjutnya klik Choose Volume untuk memilih disk yang baru kita buat sebagai disk VM
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm12.png)
Setelah berhasil memilih disk, lanjut klik Forward untuk ke menu selanjutnya
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm13.png)
Tahap terakhir, kita centang Customize configuration before install dan pilih Network default.
![](https://aryapramudika.com/wp-content/uploads/2022/07/newvm14.png)
Jika default network kita masih inactive kita bisa mengaktifkannya secara permanen dengan cara berikut:
sudo virsh net-autostart default
sudo virsh net-start default
Di sini kita bisa customize VM kita mulai dari jenis boot BIOS/UEFI
![](https://aryapramudika.com/wp-content/uploads/2022/07/vmop1.png)
Network juga bisa kita custom, misal device modelnya dan masih banyak lagi yang bisa kita custom.
Disini kita langsung klik Begin Installation dibagian atas, untuk melakukan installasi VM
![](https://aryapramudika.com/wp-content/uploads/2022/07/vmop2.png)
Lakukan installasi VM seperti biasa.
![](https://aryapramudika.com/wp-content/uploads/2022/07/vmop3.png)
![](https://aryapramudika.com/wp-content/uploads/2022/07/vm-jadi.png)
Networking di KVM
Secara default sudah ada network yang digunakan di KVM yaitu NAT, jika kita ingin menghubungkan VM kita ke internet bisa cukup menggunakan NAT, namun jika kita ingin menghubungkan VM kita agar satu jaringan di lokal kita perlu menambahkan interface bridge, ada beberapa cara untuk membuat bridge di Linux, kali ini kita akan membuat interface bridge dengan menggunakan netplan di Ubuntu.
Edit file konfigurasi netplan.
sudo vim /etc/netplan/00-installer-config.yaml
network:
ethernets:
ens160:
dhcp4: no
bridges:
br0:
dhcp4: yes
interfaces:
- ens160
version: 2
![](https://aryapramudika.com/wp-content/uploads/2022/07/image-80-1024x653.png)
ens160 adalah nama interface yang terhubung ke Internet, mungkin nama interface di server kalian berbeda (tinggal disesuaikan).
Selanjutnya simpan konfigurasi dan jalankan perintah netplan apply untuk menerapkan konfigurasi
netplan apply
Lalu kita cek interface bridgenya apakah sudah berhasil kita buat
ip a | grep br0
![](https://aryapramudika.com/wp-content/uploads/2022/07/ss-br0-1-1024x653.png)
Selanjutnya ubah Network VM kita menjadi bridge
![](https://aryapramudika.com/wp-content/uploads/2022/07/0-change-network-to-br-edited.png)
Cek di VM apakah sudah mendapatkan IP lokal, disini network lokalnya yaitu 172.23.0.0/20
![](https://aryapramudika.com/wp-content/uploads/2022/07/0-bridge-berhasil.png)
Cloning Virtual Machine
Di KVM kita juga bisa melakukan cloning VM, yang berguna jika kita ingin membuat banyak VM tanpa harus menginstall satu persatu. Untuk melakukan cloning , VM wajib dalam keadaan mati.
Sebagai contoh disini saya akan melakukan cloning Ubuntu-Server2
![](https://aryapramudika.com/wp-content/uploads/2022/07/cloning-vm1-1.png)
Untuk caranya pilih Ubuntu-Server2, lalu klik kanan -> Clone..
Kemudian beri nama untuk VM yang di clone, lalu klik Clone untuk memulai proses
![](https://aryapramudika.com/wp-content/uploads/2022/07/clone-vm2.png)
Tunggu proses cloning selesai
![](https://aryapramudika.com/wp-content/uploads/2022/07/clone-vm3-1.png)
Proses clone VM berhasil!
![](https://aryapramudika.com/wp-content/uploads/2022/07/clone-vm4.png)
Backup Virtual Machine di KVM
Untuk melakukan backup, kita hanya perlu menyalin file disk VM dan file konfigurasi serta VM harus wajib dalam keadaan mati.
Contoh: disk VM berlokasi di /var/lib/libvirt/disk akan kita salin ke direktori khusus backup
cp /var/lib/libvirt/disk/ubuntu20.04 /mnt/disk1/ubuntu-server-backup
Untuk file konfigurasi defaultnya ada di /etc/libvirt/qemu
cp /etc/libvirt/qemu/Ubuntu-Server.xml /mnt/disk1/ubuntu-server.xml
Backup berhasil!
Snapshot di KVM
Snapshot adalah metode menyimpan state VM, befungsi jika kita ingin rollback ke state sebelumnya jika konfigurasi kita terjadi error.
Untuk melakukan snapshot di KVM cukup mudah, kita klik tombol snapshot lalu klik tombol +
![](https://aryapramudika.com/wp-content/uploads/2022/07/snapshot1-edited-1.png)
Selanjutnya beri nama snapshot misal “VM-Kosongan” dan tambahkan keterangan, terakhir klik Finish untuk membuat snapshot
![](https://aryapramudika.com/wp-content/uploads/2022/07/snapshot2-1.png)
Snapshot berhasil dibuat!
![](https://aryapramudika.com/wp-content/uploads/2022/07/snapshot3.png)
Untuk merestore snapshot, tinggal pilih snapshot lalu klik tombol start
![](https://aryapramudika.com/wp-content/uploads/2022/07/snapshot3-edited.png)
Monitoring Performa dan Troubleshooting
Untuk monitoring pemakain CPU, Memory, Disk dan Networking bisa kita lihat di bagian menu performance di virt-manager.
![](https://aryapramudika.com/wp-content/uploads/2022/07/1-mon.png)
Untuk troubleshooting secara default sudah ada log per-virtual machine lokasinya ada di /var/log/libvirt/qemu. Seperti berikut:
![](https://aryapramudika.com/wp-content/uploads/2022/07/1-log-1024x568.png)
Live Migration di KVM
Agar KVM bisa melakukan live migration kita perlu mengkonfigurasi storage server seperti NFS,iSCSI
Lebih jelasnya bisa kunjungi disini
![](https://aryapramudika.com/wp-content/uploads/2022/07/image-83-1024x792.png)
Kita juga harus melakukan konfigurasi ssh-key di masing-masing server KVM, caranya bisa di lihat disini
Jika kedua server sudah siap, langsung saja kita buka virt-manager, kemudian pilih VM -> Klik kanan pilih Migrate.. selanjutnya pilih server tujuan dan ubah mode menjadi tunnelled
![](https://aryapramudika.com/wp-content/uploads/2022/07/2-live-migration-edited-1024x389.png)
Sebelum migraasi kita coba ping IP VM yang mau di migrate(Untuk pengujian apakah ada downtime atau tidak)
![](https://aryapramudika.com/wp-content/uploads/2022/07/2-migrate-ping-ss-1024x259.png)
Selanjutnya klik migrate, lalu tunggu proses sampai selesai
![](https://aryapramudika.com/wp-content/uploads/2022/07/2-migrate-proses-1024x516.png)
Migrasi berhasil, dan ping masih berjalan berarti tidak ada downtime ketika migrasi.
![](https://aryapramudika.com/wp-content/uploads/2022/07/2-migration-no-downtime-1024x576.png)