Learning Virtualization has become a basic requirement for IT engineers. Its importance and use in data centers and the cloud have made it one of the most popular technologies in IT. In this article, I am going to discuss what virtualization is and why virtualization matters with its benefits. I am also going to cover some basic terminologies used in virtualization and the benefits of using virtual machines.
What is Virtualization
Virtualization is the process of creating a virtual version of something that is physical. For example, creating a virtual version of your computer/PC/Laptop OR emulating your hardware machine. Traditionally, we used to install and use one operating system on hardware (PC / Server / Laptop) and then run applications on top of it. This approach limits us and doesn’t address many questions. Let me ask you:
- If you have a PC/Server, can you run multiple Operating systems at the same time on the same hardware?
- Can you run or test an application on an obsolete operating system without touching your existing operating system on the same hardware? OR Can you test an application that is not supported by your existing OS and you may want to test it on another supported OS?
- If you have extra Memory / CPU / Storage resources on your existing PC/Server, can you efficiently use them to allocate resources to other operating systems so that the resources are not under-utilized?
These questions are well answered by Virtualization. By using Virtualization, we can run multiple operating systems on the same hardware at the same time. This allows us to simultaneously run two or more operating systems without any conflicts. For example, we can run Windows OS while using macOS on Apple MacBook. Similarly, we can run Linux OS while running MS Windows. We can efficiently allocate required resources to the operating systems so that the hardware is not underutilized.
Without virtualization, we can only:
- use a Single OS image on hardware.
- allocate the hardware resources [RAM/CPU/Hard Disk/Network] to a single operating system.
With virtualization, we can:
- Install multiple operating systems on the same physical hardware. We can achieve this by creating multiple virtual environments called Virtual Machines (VM). These Virtual Machines are created on a special Virtualization Software called Hypervisor. The hypervisor creates a virtualization layer to allow us to create multiple virtual machines. Inside, each virtual machine, we may install an operating system to run applications.
- Share the hardware resources [RAM/CPU/Hard Disk/Network] among the Virtual Machines, allowing efficient utilization of resources.
Is virtualization the same as Dual Booting ?
In general, the idea behind virtualization is to make many from one. Make many virtual computer systems on a single hardware server. And the single hardware server has all the required resources available to create and run virtual machines.
DUAL BOOT: Creating virtual machines is not the same as dual booting. In Dual Booting, you cannot work on two operating systems simultaneously. If you want to work on other operating systems, you may need a system reboot and then select the operating system you want to run. Consequently, you are just working on a single OS at a time.
Consolidation, Reduced Capital & Operating Costs: A data center without virtualization would require unique physical servers for each of the operating systems and applications. This would need more floor or rack space. Similarly, maintaining different physical servers may consume a lot of power and require significant cooling. Virtualization helps us consolidate multiple physical servers and allows more efficient use of hardware, requiring less rack space, power, and maintenance.
By using virtualization, the provisioning of applications and resources can be done much faster. For instance, if you want to add a new server/application in a business-critical environment, it may take quite some time to provision it. You may need to buy and reinstall new hardware. The delay in obtaining a new hardware server varies with each organization and can be a lengthy process. However, in a virtualized environment, the time to provision a new server or restore an already existing server is greatly reduced. It is because the physical server is already up and running with the required resources. You can just create a virtual machine and provision your application and that’s it. If required, resources for this virtual machine can also be increased or decreased with just a few clicks.
Taking full backups or snapshots of a virtual machine doesn’t require a lot of effort and is easy. Virtual environments can be backed up from the system level to the object level. Also, taking full backups and restoring them for disaster recovery (DR) scenarios, is easy to manage.
Servers are required to maintain high service quality through peak time. Full resources of a physical server are rarely used and consequently, the average server utilization levels are often around 30%. This is a clear indication of under-utilization. In a virtualized environment, all virtual machines can be given either dedicated or shared resources (RAM/CPU/STORAGE/NETWORK…) which helps inefficient utilization of resources. These resources can be dynamically allocated by the hypervisor.
Many virtualization vendors support features such as vMotion or Live Migration, in which a running virtual machine can be migrated from one physical server to another. Live migration of virtual machines allows companies to perform hardware maintenance without scheduling downtime and disrupting business operations.
Virtualization is the head-start to the cloud and is one of the core components of cloud computing. Many cloud services that are provided by cloud providers rely on virtualization.
The following terms are mostly used when talking about virtualization.
Application: It is software that runs on an operating system. Examples include but are not limited to Internet Explorer, Google Chrome, Skype, MS Office, Adobe Photoshop, etc …
Operating System: It is software that is designed to allocate resources to applications. Examples include but are not limited to Windows 10, macOS, Debian Linux, Ubuntu Linux, Kali Linux, etc…
Virtual machine (VM): A virtual machine is created on a hypervisor and can be viewed as a complete operating system. Like physical machines, you can install any supported operating system and application on it. A virtual machine (VM) has all resources [Memory, Storage, Network, CPU] available through the hypervisor. These resources are usually termed as virtual resources as they have been allocated to a virtual machine (VM).
Guest OS: The operating system that you install in a Virtual Machine (VM). Examples include Windows 7/8/10, Debian Linux, Ubuntu, Kali Linux, CentOS, macOS, etc …
Hypervisor: A special virtualization software called Hypervisor is used to create and maintain Virtual Machines (VMs). The Hypervisor decouples the virtual machines from the hardware/host and dynamically allocates resources to each VM as required. Examples include VMware ESXi, Xen, KVM, VMware Workstation, VMware Fusion, Oracle VirtualBox, etc…
Host: A host is referred to as a physical computer that provides resources to the hypervisor. A Host OS can host multiple guest operating systems (Guest OS) via Hypervisor as long as it has all the required resources.
What is a Virtual Machine (VM)?
A virtual machine is a software representation of a physical computer and its components. One of the key functions of Virtualization is to create the Virtual Machine (VM). When created, each VM is treated as a different virtual computer system that will get all required resources from the physical hardware through Hypervisor.
Each VM has virtual components that provide the same functionality as the physical hardware. A virtual machine typically has an operating system, applications, and virtual resources such as CPU, Memory, Network Adapters, Hard Disks, Serial ports, etc…
When creating virtual machines, the operating system is no longer bound to the hardware. The operating system (OS) is abstracted from the hardware and is not installed directly on the hardware. Instead, the operating system is installed in a Virtual Machine. We call it a Guest OS.
Benefits of Using Virtual Machines
When using virtual machines, we can install multiple operating systems on one physical machine. The resources of the physical machine can be divided among virtual machines, allowing efficient utilization of the available resources.
VMs are extremely Versatile: A virtual machine is stored on a physical disk like any other data. It is essentially a set of files in a folder. You can create copies of the virtual machines and use it right away if required. Virtual machines can be moved or copied just like any other file or folder on your hard disk. On the other hand, physical computers are difficult to move or copy. Since a VM is a set of files, you can rapidly provision VMs.
Taking Snapshots is another amazing feature available in a virtualized environment. A snapshot is a complete system-level copy of the VM at any point in time. If anything goes wrong, you can restore the snapshot and start working again from that point onward.
VMs are Isolated: Each virtual machine is completely independent and runs as if each VM is a separate physical box. In addition, VMs are completely isolated from one another. As a result of this isolation, if an operating system in one VM fails, it won’t affect other VMs running on the same physical hardware. Users can still access other VMs and VMs can still access the underlying hardware resources
Support Various OS and Applications: With virtual machines, you can:
- test newer or older versions of operating systems. It could be anything within the OS that you may want to test.
- use legacy applications that require outdated operating systems on newer hardware. This can be useful in environments where maintenance contracts on the existing old hardware expire.
- test the same application or software on multiple operating systems.
- Virtualization is one of the hardware-reducing, energy-saving, and cost-saving technology. Virtualization can reduce IT costs while increasing the utilization of the hardware.
- A virtual machine is a software representation of a physical computer and its components. Each VM is treated as a completely independent virtual computer system.
- By using virtualization, it is possible to run multiple operating systems and applications on the same hardware server without any conflicts. Each virtual machine is completely independent and isolated from one another. As a result of this isolation, the failure of one VM doesn’t have any effect on others.
- All virtual resources are assigned to the virtual machines by specialized virtualization software, known as Hypervisor. The Hypervisor decouples the virtual machines from the hardware and dynamically allocates the resources to each VM.