KVM is free open source full virtualization solution for Linux on x86 hardware. After the cloud revolution, KVM(Kernel Based Virtual Machine) Virtualization is a hot topic in the industry. Most of the cloud technologies will prefer to use the KVM hypervisors over XEN due to it’s simplicity. Redhat and Ubuntu’s default hypervisor is KVM. Contrast to these vendors, Oracle Linux uses XEN Virtualization. More information about KVM can be obtain from linux-kvm.org.
KVM consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko (Intel) or kvm-amd.ko (AMD). These modules allows kernel to become a hypervisor. kvm.ko kernel module is responsible to exposing “/dev/kvm” which is used by various programs including libvirt.
KVM has initially developed by Qumranet that was acquired by Red Hat in 2008.
Prerequisites for KVM:
1. Processors with virtualization technology. Accelerate the virtualization guests.
- Intel – Intel-VT
- AMD – AMD-V (SVM)
2. Enable the CPU VT technology on the BIOS.
3. Linux kernel must be greater than 2.6.20 .
4. Access to the repository to install the necessary KVM packages.
5. Shared Storage. (NFS, SAN , NAS)
Supported Guests on KVM:
- Linux – Most of the linux flavours are supported
- Windows – Most of the windows guests are supported including desktops and servers.
- Unix – BSD , Solaris
Supported Architecture:
KVM supports both 32-bit & 64-bit guest operating systems. To host the 64-Bit guests , the host system should be 64-bit and VT enabled.
KVM Maximums:
Maximum number of concurrently running virtual guests is 4 . But it is not a KVM limitation. Redhat protect the number of virtual guests using the license methods.
Redhat unlimited Virtual Licenses: (15/12/2015)
KVM new features:
- QMP – Qemu Monitor Protocol
- KSM – Kernel Samepage Merging
- Kvm Paravirtual Clock – A Paravirtual timesource for KVM
- CPU Hotplug support – Adding cpus on the fly
- PCI Hotplug support – Adding pci devices on the fly
- vmchannel – Communication channel between the host and guests
- migration – Migrating Virtual Machines
- Supports Paravirtualization
Paravirtualization vs HVM (Native Hardware Virtualization)
KVM supports paravirtualization typically supports the following components.
- Networking
- Block Devices
- Graphics
- Memory
Paravirtualization supported on Linux, BSD and windows guests. It improves the performances considerably compare to HVM.
Networking:
KVM supports the following network features.
NAT: – NAT provides the outbound network access to the KVM guests. In other words, guest machine can access the outside world but external network system can’t reach the guests. This is the default network for KVM.
Bridges: – Bridge provide the access to public and private network. KVM guests can be access from outside the host machine unlike NAT.
KVM Environment:
The KVM environment is maintained in /var/lib/libvirt. This includes the ISO images for the installation , actual VM guest images and network configurations.
[root@UA-HA libvirt]# ls -lrt total 4 drwx------. 2 root root 6 Oct 8 09:14 lxc drwx--x--x. 2 root root 6 Oct 8 09:14 images drwx--x--x. 2 root root 6 Oct 8 09:14 filesystems drwx--x--x. 2 root root 6 Oct 8 09:14 boot drwx------. 2 root root 6 Dec 13 00:30 network drwxr-x--x. 7 qemu qemu 69 Dec 13 00:30 qemu drwxr-xr-x. 2 root root 4096 Dec 13 13:12 dnsmasq [root@UA-HA libvirt]#
KVM configuration files are stored in /etc/libvirt/ directory.
[root@UA-HA libvirt]# cd /etc/libvirt/ [root@UA-HA libvirt]# ls -lrt total 56 -rw-r--r--. 1 root root 2134 Oct 8 09:14 virtlockd.conf -rw-r--r--. 1 root root 2169 Oct 8 09:14 qemu-lockd.conf -rw-r--r--. 1 root root 18987 Oct 8 09:14 qemu.conf drwx------. 3 root root 21 Oct 8 09:14 qemu -rw-r--r--. 1 root root 1176 Oct 8 09:14 lxc.conf -rw-r--r--. 1 root root 518 Oct 8 09:14 libvirt.conf -rw-r--r--. 1 root root 15070 Oct 8 09:14 libvirtd.conf drwx------. 2 root root 4096 Dec 13 00:25 nwfilter [root@UA-HA libvirt]#
Hope this article is informative to you. Share it ! Comment it !! Be Sociable !!!
Leave a Reply