Have you ever wondered how a cloud works? It is the most fast-growing IT-trend which attracts billions of dollars of investments annually. A product or service goes through the technological production process before it becomes ready-to-use.
We can work out in detail endlessly, therefore we will discuss only the completion phase, virtualization, and consider software or hardware components for its implementation.
The first issue from a series of VPS/VDS technology is devoted to KVM software (Kernel-based Virtual Machine). We are beginning from this hypervisor as it is the one we use in Tuchacloud and our relation to it is essential.
WHAT IS HYPERVISOR?
A Hypervisor is nothing but a middle layer of program, between the guest operating system and host systems hardware. It manages the actual hardware for all the connecting guest operating systems.
The hypervisors can be of two types: native or hosted. The hypervisors are also called as VMMs-[Virtual Machine managers]. Please refer the figure below. It represents a bare-metal native hypervisor.
HYPERVISOR KVM: FEATURES AND PRINCIPLE OF OPERATION
The technologies of virtualization are increasingly applied in modern systems. Virtual machines is the simplest way to have different operating systems with attendant software environment for different purposes such as testing (QA) or software development, VPS hosting, digital content distribution, learning etc. Hypervisors are used for simplifying control of virtual machines. These program solutions enable to quickly run, stop and open new virtual machines within one host. One of the most popular hypervisors for UNIX-like systems is KVM.
HYPERVISOR KVM: ARCHITECTURE
KVM (from abbreviation for Kernel-based Virtual Machine) is software that allows to implement computer-based virtualization in OS Linux and Linux-like systems. For some time now KVM is a part of Linux-kernel, that is why they develop together. It works only in systems with hardware vizualation support on the CPU Intel and AMD.
For organization of work KVM uses direct access to a kernel with CPU-specific module (kym-intel or kvm–amd). Moreover, the complex contains a main kernel kvm.ko and elements UI, including popular QEMU. Hypervisor enables to work directly with virtual machines files and disc images from other programs. Isolated space is created for every machine with its own RAM, disk, network access, video card and other devices.
ADVANTAGES AND DISADVANTAGES OF KVM
As any software solution KVM has both pros and cons, depending on which hosters and final consumers decide about using this software. There are several advantages of hypervisors, such as:
- Independently dedicated resources. Every KVM-based virtual machine receives its own volume of RAM and ROM and cannot interrupt another fields, thereby increasing work stability.
- Wide support of guest OS. Except full support of UNIX-distribution including *BSD, Solaris, Linux it is possible to install Windows and even MacOS;
- Interaction with kernel enables to directly address the workstation hardware that makes the work faster.
- With the support of software market giants (RedHat Linux, HP, Intel, IBM) the project is growing fast, covering more amount of hardware and OS, including the newest ones.
- Simple administration gives a possibility of remote control using VNC and a wide array of external software and add-ons.
However, it was impossible to avoid disadvantages.
- Hypervisor is relatively young (for example, if compare with Xen) and an extreme growth correspondingly leads to different issues, especially when adding the support of new hardware and software environment.
- The complicity of settings, especially for inexperienced user. To say the truth the most of options can stay unchanged as they have been already optimal adjusted from a box.
THE FUNCTIONAL POSSIBILITIES AND PROPERTIES OF HYPERVISOR
KVM complex is featured by such main properties as security, convenient RAM control, reliable data storing, dynamical migration, performance, scalability and stability.
Every machine in KVM is a Linux-based process, therefore it follows all standard security policies and get isolation from other processes. Special add-ons (such as SELinux) also add another security elements such as access control, encryption etc.
As KVM is a part of Linux kernel, hypervisor inherits powerful instruments of RAM control. The memory pages of every process (virtual machines) can be easily copied and changed without slowing the work. Multiply-CPU systems KVM allow to control huge volumes of memory. Memory generalization that is a process of unification of the same pages and delivering a copy for machine after request are available so as another methods of optimisation.
For machine images and data storing KVM can use any data storage device that is supported by pre-installed operating systems, for example hard drive, NAS, removable storage device including multi-threat input-output for work enhancement. Moreover, hypervisor can operate with distributed file systems such as GFS2. Disks for KVM have their own unique format that supports dynamic creation of different-level images, encryption and compression.
The important feature of KVM is support of dymanic migration: it means the relocation of virtual machines between the different hosts without stopping them. Such migration is unnoticeable for user at all. The machine continues to work, the performance isn’t interrupted, network connections are active. Sure, it is possible to make a migration by saving the current state of virtual machine to an image and opening it on a new host.
Performance and scalability
Scalability and performance thanks to a tight integration with Linux are totally inherited from Linux. Thus, the hypervisor supports up to 16 CPU (both virtual and physical) and up to 256 Gb of RAM in every virtual machine. It enables to use hypervisor even in the most high-loaded systems.
The program complex is continually improved. If originally it has supported only Linux x86 platform, the amount of different platforms now exceeds the dozens, including popular server operating systems. Moreover, it is easy to open the virtual machines with modified OS pack, in case it is compatible with the pre-installed platform. Because of cooperation with key software development companies the hypervisor might be called the most stable and reliable on the market one.