Definisi KVM
KVM (Kernel-based Virtual Machine) adalah teknologi virtualisasi open source yang mengubah kernel Linux menjadi sebuah hypervisor. Diperkenalkan pertama kali pada tahun 2007, KVM telah berkembang menjadi salah satu solusi virtualisasi paling populer dan powerful di dunia Linux.
Konsep utama KVM adalah memanfaatkan ekstensi virtualisasi hardware yang tersedia pada prosesor modern (Intel VT atau AMD-V) untuk menjalankan mesin virtual (VM) secara efisien. KVM memungkinkan kernel Linux untuk bertindak sebagai hypervisor tipe 1 (bare-metal), yang berarti ia berjalan langsung di atas hardware, memberikan performa yang sangat baik untuk VM.
Memahami Komponen: KVM, QEMU, VIRSH, dan LIBVIRT
Sebelum kita mendalami instalasi dan konfigurasi, penting untuk memahami komponen-komponen utama dalam ekosistem virtualisasi KVM:
- KVM (Kernel-based Virtual Machine): Ini adalah teknologi virtualisasi yang terintegrasi langsung ke dalam kernel Linux. KVM mengubah Linux menjadi hypervisor tipe 1, memungkinkan host menjalankan beberapa lingkungan virtual terisolasi yang disebut mesin virtual (VM) atau guests.
- QEMU (Quick Emulator): QEMU adalah emulator mesin dan virtualizer yang dapat melakukan emulasi hardware. Ketika digunakan bersama KVM, QEMU menyediakan emulasi I/O dan memungkinkan penggunaan berbagai perangkat virtual.
- VIRSH (Virtualization Shell): Ini adalah antarmuka baris perintah untuk mengelola mesin virtual. VIRSH memungkinkan administrator untuk membuat, menghapus, dan mengelola VM serta sumber daya virtualisasi lainnya.
- LIBVIRT: Libvirt adalah API, daemon, dan tool manajemen untuk platform virtualisasi. Ini menyediakan cara yang konsisten untuk mengelola berbagai hypervisor, termasuk KVM.
Cara Kerja KVM
KVM bekerja dengan cara berikut:
- Ekstensi Virtualisasi: KVM memanfaatkan ekstensi virtualisasi hardware (Intel VT-x atau AMD-V) untuk menjalankan kode guest secara langsung pada CPU host.
- Memory Management: KVM menggunakan Second Level Address Translation (SLAT) – Intel EPT atau AMD RVI – untuk manajemen memori yang efisien antara host dan guest.
- I/O Virtualization: KVM menggunakan QEMU untuk emulasi perangkat I/O, tetapi juga mendukung para-virtualisasi melalui virtio untuk performa yang lebih baik.
- Live Migration: KVM mendukung live migration, memungkinkan VM berpindah antar host fisik tanpa downtime yang signifikan.
Firewall
Sebelum kita konfigurasi server kita, kita perlu setting firewall terlebih dahulu agar server kita bisa lebih aman, untuk mengkatifkannya bisa dengan command
‘’’
ufw status
ufw enable
‘’’’
Jika sudah aktif kita perlu allow port yang boleh mengakses server kita
‘’’
ufw allow ssh
ufw status
‘’’
Install KVM dan Qemu Di Ubuntu 24
Sebelum kita install kvm pada server, kita perlu cek terlebih dahulu apakah server kita support untuk virtualisasi atau tidak dengan command
‘’’
egrep -c ‘(vmx|svm)’ /proc/cpuinfo
‘’’
Jika hasilnya bukan angka 0 maka server kita support untuk virtualisasi, namun jika yang muncul angka 0 maka server kita tidak support untuk virtualisasi
Jika sudah, kita bisa mulai untuk instalasinya
‘’’
apt update
apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virtinst libvirt-daemon virt-top libguestfs-tools libosinfo-bin qemu-system
‘’’
Selanjutnya kira masukkan user ke grub libvirt dan kvm
‘’’
usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
‘’’
Jika sudah, kita aktifkan servicenya dan cek apakah sudah berjalan atau belum
‘’’
systemctl enable –now libvirtd
systemctl status libvirtd
;;;
Kita cek dengan perintah
‘’
Virsh list –all
‘’’
Jika muncul seperti dibawah artinya kita sudah bisa mulai untuk membuat vmnya
Install cockpit
Kita akan memanage vm kita dan network melalui cockpit agar lebih mudah, jadi kita install cockpit terlebihh dahulu
‘’’
apt install cockpit
systemctl status cockpit
‘’’
Jika sudah kita bisa allow port cockpit karena untuk mengakses cockpit memerlukan port
‘’’
ufw allow 9090/tcp
ufw status
‘’’
Jika sudah diallow bisa buka browser dan ketik https://ip_server:9090
Login menggunakan user biasa, jika sudah klik login
Untuk tampilan cockpit ubuntu seperti di bawah ini
Network in kvm
- Bridge
Jaringan bridge memungkinkan VM untuk tampil sebagai perangkat fisik terpisah di jaringan. Ini ideal untuk server yang memerlukan alamat IP publik atau perlu diakses langsung dari jaringan eksternal.
Untuk mengonfigurasi bridge network:
‘’’
vim /etc/netplan/50-cloud-init.yaml
netplan apply
‘’’
‘’’
vim host-bridge.xml
‘’’
‘’’
virsh net-list –all
‘’’
‘’’
virsh net-undefine default
virsh net-list –all
‘’’
Jika sudah bisa define network bridge yang baru kita buat dengan command
‘’’
virsh net-define host-bridge.xml
virsh net-start br0
virsh net-autostart br0
virsh net-list –all
‘’’
- NAT
NAT dalam KVM bekerja dengan cara yang sangat berbeda dari bridge networking. Pada konfigurasi NAT, KVM menciptakan jaringan private virtual yang terpisah untuk mesin-mesin virtual. Host sistem bertindak sebagai router, melakukan translasi alamat antara jaringan virtual private ini dengan jaringan eksternal. Secara default, KVM membuat jaringan virtual dengan range IP 192.168.122.0/24, di mana host sistem bertindak sebagai gateway dengan IP 192.168.122.1. Ketika mesin virtual mengirim paket ke internet, host sistem akan mengubah alamat sumber paket tersebut menjadi alamat IP-nya sendiri sebelum meneruskannya ke jaringan eksternal. Ini memberikan lapisan isolasi tambahan karena mesin virtual tidak terekspos secara langsung ke jaringan luar, namun tetap memiliki kemampuan untuk mengakses internet dan sumber daya eksternal lainnya melalui host sistem.
Untuk setting NAT:
Buka cockpit terlebih dahulu dan klik Virtual machines>Networks
Klik Create Virtual Network
- Pertama kita buat nama untuk NATnya
- Lalu kita pilih untuk forwardnya NAT
- Dan untuk devicenya arahkan ke interface host
- Untuk ip setting IPv4 Only saja
- setting untuk address dan prefixnya
- Setting juga untuk dhcpnya agar client bisa langsung mendapatkan IP
Jika sudah kli Create
Jika sudah terbuat maka tampilannya seperti dibawah, yang 1 bridge dan yang 1 NAT
Deploy vm ubuntu dan windows
- Deploy Ubuntu
Untuk mendeploy vm kita perlu mendownload isonya terlebih dahulu, dengan command:
‘’’
cd /
mkdir ubuntu
wget https://releases.ubuntu.com/22.04/ubuntu-22.04.5-live-server-amd64.iso
cd ..
chmod -R 777 ubuntu/
‘’’
Jika sudah coba kita login ke cockpitnya lalu klik Virtual Machines>Create VM
- Pertama kita buta nama untuk vmnya
- Pilih installation typenya, karena kita menggunakan iso yang ada di local kita, jadi pilih yang local install media
- Untuk install sourcenya, kita arahkan tempat folder penyimpanan isonya
- Osnya sesuaikan dengan yang kita download, karena kita menggunakan ubuntu 22 jadi kita arahkan ke ubuntu 22.04
- Untuk storagenya bisa pilih qcow
- untuk storage dan memory bisa gunakan sesuai kebutuhan
Jika sudah bisa kita lihat bahwa vm ubuntunya sudah running
Nah, selanjutnya lakukan instalasi seperti biasa
Jika instalasi sudah selesaii, bisa cek untuk ip dan untuk internet bisa atau tidak, jika bisa maka sudah berhasil
- Deploy VM Windows
Untuk stepnya sama seperti diatas, dan jika sudah sampai sini instalasi seperti biasa
Jika sudah selesai, coba test buka browser
Setelah itu coba cek juga untuk ipnya, buka CMD>ipconfig, karena untuk vm windows menggunakan NAT, maka ipnya 192.168.100.x
Kesimpulan
Implementasi KVM (Kernel-based Virtual Machine) pada Ubuntu 24 merupakan solusi virtualisasi open source yang powerful untuk lingkungan Linux. KVM bekerja dengan mengubah kernel Linux menjadi hypervisor tipe 1, memanfaatkan ekstensi virtualisasi hardware pada prosesor modern seperti Intel VT atau AMD-V untuk memberikan performa virtualisasi yang optimal. Sistem ini terdiri dari beberapa komponen utama yang saling terintegrasi, yaitu KVM sebagai teknologi virtualisasi inti, QEMU untuk emulasi hardware, VIRSH sebagai antarmuka command line, dan LIBVIRT sebagai API manajemen. Dalam implementasinya, proses dimulai dengan konfigurasi firewall untuk keamanan, dilanjutkan dengan verifikasi dukungan virtualisasi pada hardware, instalasi paket-paket yang diperlukan, dan konfigurasi user permissions. Untuk memudahkan manajemen, sistem menggunakan Cockpit sebagai web interface yang dapat diakses melalui port 9090. Aspek networking pada KVM menyediakan dua opsi utama: Bridge networking yang memungkinkan VM tampil sebagai perangkat fisik terpisah, dan NAT yang menyediakan jaringan private virtual dengan kemampuan translasi alamat. Proses deployment VM, baik untuk sistem operasi Ubuntu maupun Windows, dapat dilakukan melalui Cockpit dengan langkah-langkah yang straightforward, mulai dari pemilihan ISO hingga konfigurasi resource dan networking. Keseluruhan implementasi ini menyediakan solusi virtualisasi yang komprehensif dan mudah dikelola untuk kebutuhan server modern.
Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkap.
Penulis : Rafly Abdul Bay Haqqy