A kernel-based virtual machine (KVM) is a virtualization infrastructure created with the Linux operating system and designed to run on the x86 processor architecture.
Red Hat Corporation created KVM to provide a virtualization solution and services for the Linux operating system platform. KVM is designed over the primary Linux OS kernel. It was merged into the Linux kernel mainline in kernel version 2.6.20, which was released on February 5, 2007. KVM supports a wide range of guest operating systems, including various flavours and versions of Linux, BSD (Berkeley Software Distribution), Solaris, Windows, Haiku, ReactOS, Plan 9, and AROS.
It also gives separate virtualized computing resources to each virtual machine, such as the processor, storage, and memory.
KVM does not perform any emulation. Instead, it exposes the /dev/kvm interface, which a userspace host can then use to:
Set up the guest VM’s address space. The host must also provide a firmware image (typically a custom BIOS when emulating PCs) that the guest can use to boot into its main OS.
Feed the guest simulated I/O.
Map the guest’s video display back onto the host.
(KVM) Virtualization terminology:-
VT(Virtualization Technology) enabled:
If the hardware supports virtualization directly without any third-party software to simulate then that hardware is called a VT-enabled processor. This is denoted by VTx in Intel processors and AMD-v For AMD processors. So if you want to install KVM on your machine your processor should support one of them.
Guest OS:
Guest OS is the OS you are going to install on a Virtual machine that guest to the Host/base OS. You can install several guest Operating systems on a host machine.
HOST OS:
This is the OS where you are going to install your hypervisor software like KVM and virtual manager etc. This base OS allows your hypervisor to begin running because KVM is not an operating system and must be run on one to function.
Hypervisor:
Hypervisor is software that will help us in implementing virtualization. KVM, Vmware ESX and Xen are some examples of Hypervisors.
Virtual Machine:
A Virtual Machine is an item allocated by the hypervisor to install a guest operating system and run it as a separate machine.
Libvirt: A toolkit for working with the virtualization capabilities of recent Linux versions (and other operating systems). This is one of the KVM building blocks.
Virsh(Virtualization Shell):
Virsh is a shell for managing hypervisors and VMs directly from the Host OS terminal. We will go into much more detail about this virsh in future posts.
Cloning:
Cloning is a concept that allows us to replicate a VM’s state/data without having to install a new operating system. After cloning, we can use the cloned machine in the same way that we would a normal virtual machine.
p2v:
This type of conversion takes a machine from one state to another. This allows us to convert a physical machine into a virtual machine to consolidate a hardware machine.
p2v:
v2v: This is the concept of migrating a virtual machine to other virtual machines at the time of maintenance etc.