Virtualization is a technology for creating and running one or more virtual representations of a computer or its various resources on a single physical machine. Find out everything you need to know about this technology: definition, operation, advantages…
Companies’ needs for computing power and storage space are constantly increasing. Unfortunately, x86 servers are too limited to meet these needs. As a result, many organizations deploy multiple servers, and operate at a fraction of their capacity. This results in inefficient and costly use. Virtualization is one technology that addresses this problem, and much more.
What is virtualization?
Virtualization consists of create a virtual, software-based representation of an object or resource such as an operating system, server, storage system or network. These simulated or emulated resources are identical to their physical version.
The virtual machines are executed on a hardware abstraction layer. As a result, companies are able to run multiple operating systems and applications simultaneously on a single server. Server resources and capabilities are distributed among the different instances. This results in significant cost savings and more efficient use of servers as their capabilities are fully utilized.
In addition, virtualization allows to run programs in isolation to test securely without compromising other virtual machines running on the same host server. For home and PC users, it is also possible to use virtualization to run applications that require different operating systems on a single computer.
How does virtualization work?
The virtualization technology is based on abstraction of an application, operating system or data storage of the actual underlying software or hardware. One of the main use cases is server virtualization, which relies on a software layer called “hypervisor” to emulate the hardware.
The hypervisor allows you to create and run virtual machines. The software takes care of divide resources between different virtual environments according to their needs.
In the past, we could distinguish between native hypervisorsdirectly integrated into the software hardware, and the “hosted” hypervisors similar to software applications. However, on modern systems, this distinction has become less important. For good reason, there are now systems such as KVM (kernel-based virtual machine), which is integrated into the Linux kernel and can run virtual machines directly, although it is possible to continue to use the system itself as a normal computer.
Users can then interact and launch applications or calculations within the virtual environmentwhich is generally referred to as a virtual machine. The virtual machine is the emulated equivalent of a computer, and is run on top of another system. It can use the computing power of the CPU and memory of the host machine, one or more virtual disks for storage, a virtual or real network interface, and other components such as graphics cards or even USB sticks.
The virtual machine works as a single data file. It can therefore be transferred from one computer to the other, and operate in the same way on both machines. If the virtual machine is stored on a virtual disk, it is often referred to as a disk image.
What are the different types of virtualization?
There are different types of virtualization. There are six main areas of computing where virtualization is commonly used :
The server virtualisationThe above-mentioned “virtual machine” feature allows multiple operating systems to run on a single physical server as virtual machines. It enables increased efficiency, reduced costs, faster deployment of workloads, increased application performance, higher server availability, and elimination of server management complications.
The network virtualization consists of reproducing a physical network and its various components: ports, switches, routers, firewalls, load balancers… this allows applications to run on a virtual network as on a physical network, while taking advantage of the hardware independence inherent in any form of virtualization.
The storage virtualization is to assemble the storage capacity of multiple networked storage devices into a single (virtual) storage device that can be managed from a centre console.
The desktop virtualization is similar to server virtualization, but allows you to create virtual machines that replicate PC environments. This allows companies to react more quickly to changing needs and new opportunities. In addition, virtualized PCs, like applications, can be quickly transferred to contractors or employees working on mobile devices such as tablets.
The data virtualization is based on the abstraction of the traditional technical details of data and Data Management: location, performance, format… this opens up access to data and increases resilience. In addition, Data Virtualization also enables data to be consolidated into a single source to simplify data processing.
I mean, come on, application virtualization is the abstraction of the application layer of the operating system. This allows the application to run in an encapsulated form, independent of the operating system. For example, it is possible to run a Windows application on Linux and vice versa.
What is the difference between a virtual machine and a container?
In principle, Linux containers are similar to virtual machines. Both allowt running applications in an isolated environmentand can be accumulated separately on the same machine. However, their operation is different.
A container is not a complete independent machine. It is simply a isolated processes share the same Linux kernet the host operating system, as well as the libraries and other files needed to run the program contained in the container. In general, therefore, containers are designed to run a single program and not an entire server.
Virtualization vs. Cloud Computing: What’s the difference?
The virtualisation and Cloud Computing are two technologies not to be confused.. Virtualization makes IT environments independent of a physical infrastructure, while Cloud Computing is a service that delivers shared computing resources on demand via the Internet.
These two technologies are therefore different, but can also be complementary. For example, it is possible to virtualize servers and then migrate to the Cloud for greater agility and self-service access.