Skip to main content
  1. Posts/

Install KVM and Virt-Manager

·3 mins·
libvirt libvirt ubuntu kvm
Table of Contents

KVM atau Kernel Virtual Machine merupakan modul dari kernel linux agar memungkinkan sistem operasi bertindak sebagai hypervisor. Sehingga dapat menjalankan instance atau virtual machine di dalam sistem host.

Check Virtualization Support
#

Periksa apakah CPU Anda mendukung virtualisasi dengan perintah.

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

Jika output yang tampil adalah 0 maka CPU Anda belum support virtualisasi, sedangkan jika output yang tampil adalah nilai lain maka dapat dipastikan CPU Anda telah support virtualisasi.

Atau bisa juga menggunakan lsmod untuk mengecek modul kvm.

lsmod | grep -i kvm

Apabila output seperti salah satu contoh dibawah ini maka CPU Anda mendukung virtualisasi.

kvm_intel             368640  0
kvm                  1032192  1 kvm_intel
kvm_amd               155648  0
kvm                  1032192  1 kvm_amd

Install KVM dan Virt-Manager
#

Untuk menginstall KVM berserta paket dependensinya.

apt -y install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager sasl2-bin python3-guestfs supervisor

Konfigurasikan vnc dan spice agar listen ke semua address (0.0.0.0). Ini akan membantu apabila ingin mengakses console VM dari luar server host.

sed -i 's/#[ ]*vnc_listen.*/vnc_listen = "0.0.0.0"/g' /etc/libvirt/qemu.conf
sed -i 's/#[ ]*spice_listen.*/spice_listen = "0.0.0.0"/g' /etc/libvirt/qemu.conf

Restart service libvirtd.

systemctl restart libvirtd

Quick Install
#

Install KVM dengan script installer.

wget -O - https://bit.ly/36baWUu | sudo sh

Create User
#

Jika Anda ingin memakai virt-manager di server host, maka Anda perlu membuat user agar dapat membuka GUI pada virt-manager lalu membuat VM.

adduser virtman

Lalu tambahkan user virtman ke grup kvm

usermod -aG kvm virtman
chmod 666 /var/run/libvirt/libvirt-sock

Atau jika ingin menambahkan user yang saat ini digunakan.

sudo usermod -aG kvm $USER

Test akses virt-manager.

Create Storage Pool
#

Sejak awal instalasi libvirt, terdapat storage pool ke tujuan path /var/lib/libvirt/images dengan nama pool default yang dapat digunakan. Namun jika Anda ingin membuatnya lagi misal ketujuan disk atau path lain gunakan perintah

virsh pool-create-as --name vms --type dir --target /vms

Setting autostart agar pool dapat otomatis aktif jika host di reboot.

virsh pool-autostart vms

List pool yang tersedia.

$ virsh pool-list
 Name      State    Autostart
-------------------------------
 default   active   yes
 vms       active   yes

Create Virtual Network
#

Terdapat juga virtual network dengan mode NAT yang dapat Anda gunakan setelah instalasi libvirt. Namun tutorial kali ini akan menggunakan mode bridge sehingga VM mendapatkan alamat IP dari router.

Buat bridge dengan nama br0

brctl addbr br0

Selanjutnya tambahkan interface yang mengarah ke router ke dalam bridge.

brctl addif br0 enp8s0f1

Edit konfigurasi network yang ada di /etc/netplan/.

network:
  ethernets:
    enp2s0f1:
      dhcp4: true
    enp8s0f1:
      dhcp4: no
  bridges:
    br0:
      dhcp4: no
      interfaces:
        - enp8s0f1
  version: 2
Interface untuk jalur remote dan jalur ke VM lebih baik dibedakan dibedakan. Namun jika terdapat 1 interface saja, Anda dapat mengonfigurasi dhcp4 pada interface bridge.

Selanjutnya buat file network.xml lalu edit seperti berikut.

<network>
  <name>net0</name>
  <forward mode='bridge'/>
  <bridge name='br0'/>
</network>

Buat virtual network dari file network.xml.

virsh net-define network.xml

Lalu setting agar otomatis aktif saat host server di reboot.

virsh net-autostart net0

Aktifkan virtual network.

virsh net-start net0

List network.

$ virsh net-list
 Name   State    Autostart   Persistent
-----------------------------------------
 net0   active   yes         yes

Create Virtual Machine
#

Download cloud image Rocky 8

wget -O rocky8.qcow2 https://download.rockylinux.org/pub/rocky/8.8/images/x86_64/Rocky-8-GenericCloud.latest.x86_64.qcow2

Lalu pindahkan file ke /vms untuk menambahkan ke pool vms

mv rocky8.qcow2 /vms

Buat file XML untuk membuat VM dengan virt-install.

virt-install --print-xml -n rocky8 --os-variant rocky8 \
--memory 2048 --vcpus 2 \
--disk /vms/rocky8.qcow2,cache=none \
--network network=net0,model=virtio \
--graphics vnc > domain.xml

Resource seperti memory dan vcpus dapat Anda sesuaikan.

Lalu buat VM dari output file XML.

virsh define domain.xml

Start VM.

virsh start rocky8

Akses console untuk memastikan VM sudah running.

virsh console rocky8
Connected to domain 'rocky-basic'
Escape character is ^] (Ctrl + ])

Rocky Linux 8.8 (Green Obsidian)
Kernel 4.18.0-477.10.1.el8_8.x86_64 on an x86_64

Activate the web console with: systemctl enable --now cockpit.socket

localhost login:

Related

Install WebVirtCloud
·2 mins
libvirt libvirt ubuntu kvm
Enable Nested Virtualization pada KVM
·1 min
libvirt kvm libvirt
Setup VM Menggunakan Virt-Manager CLI
·1 min
libvirt kvm libvirt
Cara Membuat Storage Volume di Libvirt
·2 mins
libvirt kvm libvirt
Setting VirtioFS untuk Shared Folder VM
·2 mins
libvirt kvm libvirt
Create Multiple IP Addresses in Linux
·2 mins
linux centos ubuntu linux