Virtualisasi di Linux dengan KVM

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.

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

Verifikasi bahwa KVM sudah terinstall

virsh list --all

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

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)

Selanjutnya klik Connect, Jika di dashboard sudah bertambah maka koneksi ke server berhasil!!

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.

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.

Selanjutnya kita pilih File ISO nya dengan klik Browse

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

Secara otomatis biasanya operating system akan terdeteksi, selanjutnya klik Forward

Lalu kita atur RAM dan CPU, klik Forward lagi untuk melanjutkan ke menu selanjutnya

Selanjutnya kita buat disk baru untuk VM nya, klik Manage

Selanjutnya tambah storage pool baru dengan mengklik tombol +

Buat Storage Pool baru, contoh dengan nama storage untuk Target Path nya kita pilih direktori khusus penyimpanan disk VM. Lalu klik Finish

Kita buat disk baru untuk VM Ubuntu Server yang kita buat, klik icon + di bagian Volumes

Atur size disk sesuai keinginan, misal 20GB lalu klik Finish untuk membuat disk

Selanjutnya klik Choose Volume untuk memilih disk yang baru kita buat sebagai disk VM

Setelah berhasil memilih disk, lanjut klik Forward untuk ke menu selanjutnya

Tahap terakhir, kita centang Customize configuration before install dan pilih Network default.

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

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

Lakukan installasi VM seperti biasa.

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

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

Selanjutnya ubah Network VM kita menjadi bridge

Cek di VM apakah sudah mendapatkan IP lokal, disini network lokalnya yaitu 172.23.0.0/20

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

Untuk caranya pilih Ubuntu-Server2, lalu klik kanan -> Clone..

Kemudian beri nama untuk VM yang di clone, lalu klik Clone untuk memulai proses

Tunggu proses cloning selesai

Proses clone VM berhasil!

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 +

Selanjutnya beri nama snapshot misal “VM-Kosongan” dan tambahkan keterangan, terakhir klik Finish untuk membuat snapshot

Snapshot berhasil dibuat!

Untuk merestore snapshot, tinggal pilih snapshot lalu klik tombol start

Monitoring Performa dan Troubleshooting

Untuk monitoring pemakain CPU, Memory, Disk dan Networking bisa kita lihat di bagian menu performance di virt-manager.

Untuk troubleshooting secara default sudah ada log per-virtual machine lokasinya ada di /var/log/libvirt/qemu. Seperti berikut:

Live Migration di KVM

Agar KVM bisa melakukan live migration kita perlu mengkonfigurasi storage server seperti NFS,iSCSI

Lebih jelasnya bisa kunjungi disini

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

Sebelum migraasi kita coba ping IP VM yang mau di migrate(Untuk pengujian apakah ada downtime atau tidak)

Selanjutnya klik migrate, lalu tunggu proses sampai selesai

Migrasi berhasil, dan ping masih berjalan berarti tidak ada downtime ketika migrasi.

Leave a Reply

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