What is virtualization?
Virtualization is the technology that allows a technological resource to be represented by software, simulating its existence, in this way the programs will detect this resource as if it were real (physical).
Pillars of virtualization
- Partition: Divide real resources using different techniques or strategies to be used as virtual resources.
- Encapsulation: Store the entire state of a VM (Virtual Machine) in files, for copying and moving VMs like copying and moving files.
- Isolation, isolates itself from real hardware, preserving performance through advanced resource controls to prevent failures.
- Hardware independence, any virtual machine can be provisioned or migrated to any other compatible hypervisor, regardless of its hardware.
What can be done with virtualization?
Virtualization has many applications, with it, you can create virtual machines (VM) in which other operating systems can be installed. In this way, several virtual machines could be running on a physical machine or server at the same time. This is very beneficial for many companies and people, since they reduce the amount of equipment they have to perform the same functions. Network devices such as hubs, bridges, switches, connections, network cards, etc. can also be created virtually.
Types of Virtualization
Infrastructure virtualization
Infrastructure virtualization consists of the creation of Virtual Machines that simulate physical machines, on which an Operating System and all other applications can be installed as if it were a real-world computer. These virtual machines can access resources such as the network, video cards, sound, cameras, USB devices or any other that the hypervisor shares with them. This type of virtualization allows you to manage the hardware resources that the VM will have, depending on the real resources available.
Hardware resource virtualization
Among the hardware resources that we can virtualize are the processors (vCPU), RAM and ROM (Firmware, example BIOS), network interfaces (NIC), complete networks (VLAN), storage devices (RAID, LVM, SAN and NAS).
Virtualization of computing resources
This is what large clusters of servers do in data centers (The Cloud) in which special software is responsible for uniting the processing capabilities of several servers and presenting it as a single system with high computing capacity.
Network interface virtualization
It allows you to use techniques such as Link Aggregation (Bonding) that simulates a single network device with high bandwidth using multiple independent network interfaces.
Network virtualization
It allows the representation of logical networks such as VLANs, VPNs, Virtual IP.
OS-level virtualization or containerization
This is what technologies such as Docker and LXC do, which allows user space instances to run in parallel, isolated from each other, called containers in which applications that use the kernel of the host system are deployed.
Advantages of virtualization
- It promotes the security of the systems installed in the virtual machines, since they are logically separated; A malware attack or software failure on one would not affect the others, each machine is isolated, each VM has independent management access.
- Reduces operating expenses, due to the reduction of physical equipment.
- Reduces hardware maintenance costs, as there is less equipment, less maintenance expenses are required.
- Minimizes or eliminates resource downtime, because each virtualized resource works independently, using the times when real resources were idle.
- Allows program compatibility, allows you to use a program that does not exist or is incompatible with our platform.
- Increases the productivity, efficiency, agility, and response capacity of the Technology department in companies.
- Deploy applications and resources more quickly and easily, since everything is done in software.
- Facilitates the hot migration of systems and/or their cloning.
- Ease of creating test environments
- It makes backups easier, since you can back up entire virtual machines with all their configurations.
- It guarantees business continuity and disaster recovery, since it takes less time to raise services in the event of any impact.
- Simplifies data center management.
Disadvantages of virtualization
The implementation of this technology also has its cons, among them, we must talk about the following:
- Increased initial costs.
- Need to learn to manage the new virtual environment.
- Lower performance in small percentages.
- Hardware Limitations, Each Hypervisor has manageable or supported hardware and can impose a series of virtual devices such as Video and Network Cards that we will not be able to expand.
Since the virtual resources run at an intermediate layer to that of the real hardware, the performance will be lowed, but by a small percentage. On the other hand, excessive abuse of virtual resources on a single physical computer will end up saturating it, affecting performance. It is important that only essential virtual resources are created, not one more.
Modern microprocessors also have specific instruction sets to accelerate virtualization; this feature is enabled in the BIOS settings of the PC or server in question.
The software that allows the execution of Virtual Machines (VM) is called Hypervisor, the main operating system that supports the hypervisor and the virtual machines is called the host operating system, and the operating system of the virtual machines is called the guest system or system. Hosted. Hypervisors can be of two types: type 1 works directly on the hardware, and type 2 works on a host operating system.
Software tools to virtualize (Hypervisors):
Type 1 hypervisors: Server virtualization, the variant used in companies and data centers
- VMware: ESX / vSphere Hypervisor
- Microsoft Hyper-V Server
- Promox VE
- Citrix XenServer
- Citrix Hypervisor
- Xen
Type 2 Hypervisors – Workstation Virtualization
- VMWare Workstations / Player
- VirtualBox
- Microsoft Virtual PC
- QEMU
- Virt-Manager
Virtualization is the basis of other technologies that we use today, such as “Cloud computing”, but that is another topic that we will talk about in another article.