Cara Install KVM di CentOS 7 / RHEL 7

Bagaimana cara untuk install dan konfigure KVM di CentOS 7 atau RHEL 7 server? Bagaimana saya bisa setup dan setting KVM dan gunakan cloud images/cloud-init untuk install guest VM?

KVM (Kernel-based Virtual Machine) adalah software virtualisasi untuk CentOS atau RHEL 7. KVM menjadikan server kita kedalam hypervisor. Posting ini akan memuat cara untuk setup dan mengatur lingkup virtualisasi dengan KVM pada CentOS 7 atau RHEL 7. Juga akan dijelaskan tentang bagaimana cara untuk install dan melakukan administrasi VM (Virtual Machines) pada server fisikal dengan CLI.

Sebelum memulai, pastikan Virtualization Technology (VT) pada server anda telah di enable yang terletak di BIOS. Anda juga bisa jalankan perintah berikut untuk mengecek jika VT telah aktif.

$ lscpu | grep Virtualization
Virtualization: VT-x

Tahap installasi KVM pada CentOS 7 / RHEL 7

Tahap 1: Install kvm di centos 7

How to install KVM on CentOS 7 RHEL 7 Headless Server

Ketik perintah berikut dengan yum:

# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install


Jalankan libvirtd service:

# systemctl enable libvirtd
# systemctl start libvirtd

 

Tahap 2: Verifikasi installasi KVM

Make sure KVM module loaded using lsmod command and grep command:

Pastikan module KVM telah load dengan perintah “lsmod” dan grep

# lsmod | grep -i kvm

Tahap 3: Konfigurasi bridged networking

KVM default networking

By default dhcpd based network bridge configured by libvirtd. You can verify that with the following commands:

Secara default dhcpd berdasarkan network bridge di konfigurasi oleh libvirtd. Kita bisa verifikasi dengan perintah:

# brctl show
# virsh net-list

Semua VM hanya dapat akses network ke VM lain dalam satu server yang sama. Private network telah terbuat dengan alamat 192.168.122.0/24 . Verifikasi dengan:

# virsh net-dumpxml default

Jika anda ingin VM tersebut tersedia atau bisa terhubung dengan server lain dalam LAN, maka lakukan setup network bridge pada server yang terhubung ke LAN. Update NIC config file seperti ifcfg-enp3s0 or em1:

Notes : anda bisa gunakan vi atau nano.

# vi /etc/sysconfig/network-scripts/enp3s0


Tambahkan baris ini:

BRIDGE=br0

Save dan tutup file. Lalu edit /etc/sysconfig/network-scripts/ifcfg-br0 dan tambahkan:

DEVICE="br0"
# I am getting ip from DHCP server #
BOOTPROTO="dhcp"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0"

Restart networking service dengan perintah (ssh bisa saja terputus):

# systemctl restart NetworkManager


lakukan verifikasi dengan brctl command:

# brctl show

Tahap 4: Membuat Virtual Machine

Kita akan membuat CentOS 7.x VM. Pertama download image CentOS 7.x termasuk dengan wget:

# cd /var/lib/libvirt/boot/
# wget https://mirrors.edge.kernel.org/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso

Verifikasi ISO images:

# wget https://mirrors.edge.kernel.org/centos/7.6.1810/isos/x86_64/sha256sum.txt
# sha256sum -c sha256sum.txt

MEMBUAT CENTOS 7.X VM

In this example, I’m creating CentOS 7.x VM with 2GB RAM, 2 CPU core, 1 nics and 40GB disk space, enter:

Pada contoh ini, kita buat CentOS 7.x VM dengan 2GB RAM, 2CPU code, 1 nics dan 40GB disk space.

# virt-install \
--virt-type=kvm \
--name centos7 \
--ram 2048 \
--vcpus=1 \
--os-variant=centos7.0 \
--cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-Minimal-1708.iso \
--network=bridge=br0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

Untuk konfigurasi VNC, login dari terminal lain melalui ssh, dan ketik perintah :

# virsh dumpxml centos7 | grep vnc<br /><graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>

Catat port nya (misal 5901). Anda butuh SSH client untuk setup tunnel dan VNC client untuk akses ke remote VNC server. Ketik perintah SSH port forwarding dibawah ini di desktop/mac/komputer anda.

$ ssh user@komputersaya -L 5901:127.0.0.1:5901

 

Ketika ssh tunnel telah terhubung, anda bisa pointing VNC client ke 127.0.0.1 (localhost) dengan port 5901

 

Setelah itu akan terlihat tampilan installasi Centos.

Anda bisa mengikuti instruksi di layar dan install CentOS 7. Setelah terinstall, klik reboot. Remote server akan menutup koneksi VNC client. Anda bisa konek kembali untuk konfigurasi setelah beberapa saat server reboot.

How to create RHEL 7.x VM

Pastikan anda telah memiliki iso rhel, contoh rhel-server-7.3-x86_64-dvd.iso yang disimpan di lokal anda. Pada contoh ini, vm dibuat dengan spek 2GB RAM, 2 CPU core, 1 nic and 40GB disk space. Ketik perintah berikut:

# virt-install \
--virt-type=kvm \
--name rhel7 \
--memory=2048,maxmemory=4096 \
--vcpus=2 \
--os-variant=rhel7.3 \
--cdrom=/var/lib/libvirt/boot/rhel-server-7.3-x86_64-dvd.iso \
--network=bridge=virbr0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/rhel7.qcow2,size=40,bus=virtio,format=qcow2


To configure vnc login from another terminal over ssh and type:

Untuk konfigurasi vnc login dari terminal lain melalui ssh, dan ketik :

$ sudo virsh dumpxml rhel7 | grep vnc
<graphics type='vnc' port='5904' autoport='yes' listen='127.0.0.1'>


Sama seperti di atas, lakukan port forwarding untuk client yang anda gunakan.

$ ssh vivek@server1.cyberciti.biz -L 5904:127.0.0.1:5904

Setelah tunnel terhubung, anda bisa konek dengan VNC client ke IP local 127.0.0.1 port 5904 untuk installasi RHEL 7

Perintah dasar untuk mengatur VM

List semua VMs

# virsh list --all

vmName = Nama VM

Dapatkan info VM

# virsh dominfo vmName
# virsh dominfo centos7-vm1

Stop/shutdown  VM

# virsh shutdown vmName

Start VM

# virsh start vmName

Jadikan VM ke autostart saat boot time

# virsh autostart vmName

Reboot (soft & safe reboot) VM

# virsh reboot vmName


Reset (hard reset/not safe) VM

# virsh reset vmName

Delete VM

# virsh shutdown vmName
# virsh undefine vmName
# virsh pool-destroy vmName
# D=/var/lib/libvirt/images
# VM=centos7-vm1
# rm -ri $D/$VM

Untuk melihat list perintah virsh yang lengkap, ketikkan:

# virsh help | less
# virsh help | grep reboot

5 thoughts on “Cara Install KVM di CentOS 7 / RHEL 7”

Leave a Comment