Introduction to Virtualization
Virtualization is the process of running a virtual/online instance of a computer system in a layer abstracted from the actual hardware. It refers to running multiple operating systems on a computer system simultaneously. It is like the VLAN where you logically divide a physical switch into multiple local area networks.
To the applications running on top of the virtualized machine, it will appear as if they are on their own dedicated machine, where the operating system, libraries, and other programs are unique to the guest virtualized system and unconnected to the host operating system which sits below it.
Reasons why we virtualize in computing
- For desktop users -to be able to run applications meant for a different operating system without having to switch computers or reboot into a different system.
- For administrators of servers, offers the ability to run different operating systems,
- It offers a way to segment a large system into many smaller parts, allowing the server to be used more efficiently by a number of different users or applications with different needs.
- It also allows for isolation, keeping programs running inside of a virtual machine safe from the processes taking place in another virtual machine on the same host.
Server Virtualization and WHY?
One of the components in a data center is a server and a server is just a big computer that serves data. These servers come loaded with high end resources like
- More memory
- More storage
- High end CPU
- High end GPU (Graphical processing units)
Big organizations usually have a data center where all their servers, applications and data are domiciled. For these organizations, they have individual servers for individual applications, so a server box can be running a single application on its own operating system and another server running another application with its own operating system. This is called Bare Metal Server. The problem with this arrangement is that these servers eventually become underutilized were each running a single operating system with a single application on a server and using only about 10% to 25% of the CPU resources. So, at the end of the day, you have a data center filled with high end servers and each running just one single application each.
At the end of the day, the looser here is the organization because they are spending money on server’s hardware that are not being used to their fullest potentials and these became one of the main reason behind server virtualization.
Virtual Machines
A virtual machine (VM) is a software emulation of a physical server with an operating system. It simulates hardware functionality and create a virtual computer system. The virtualization software that creates VMs and performs the hardware abstraction that allows multiple VMs to run concurrently is known as a hypervisor.
Examples of the most popular hypervisors in the server virtualization market includes;
- VMware vSphere,
- Microsoft Hyper-V,
- Citrix XenServer, and
- Red Hat Kernel-based Virtual Machine (KVM)
From an application’s point of view, the VM provides the look and feel of a real physical server, including all its components, such as CPU, memory, and network interface. VMs and containers increase the overall efficiency and cost-effectiveness of a server by maximizing the use of the available resources.
Three Kinds of Server Virtualization.
Full virtualization,
para-virtualization and
OS-level virtualization.
They all share a few common traits; the physical server is called the host.
Types of Hypervisors
There are two main hypervisor types, referred to as “Type 1” (or “bare metal”) and “Type 2” (or “hosted”).
A type 1 hypervisor acts like a lightweight operating system and runs directly on the host’s hardware, while a type 2 hypervisor runs as a software layer on an operating system, like other computer programs.
Type 1 Hypervisor
A bare-metal hypervisor (Type 1) is a software that is installed directly on top of a physical server. There is no software or any operating system in between, hence the name bare-metal hypervisor.
A Type 1 hypervisor provides excellent performance and stability since as it does not run inside Windows or any other operating system for that matter.
Type 1 hypervisors are OS in themselves, a very basic one on top of which a virtual machine is run. The physical hardware the hypervisor is running on serves virtualization purposes only. You cannot use it for anything else and they are mainly found in enterprise environments.
Once you boot up a physical server with a bare-metal hypervisor installed, it displays a command prompt screen and when you connect a monitor to the server, what you get to see are some of the hardware and network details. This consists of the CPU type, the amount of memory, the IP address and the MAC address. The type 1 hypervisors may look quite different but they all allow for simple server configuration which consists of
- changing the date and time,
- IP address,
- password, etc.
To create virtual instances, you need a management console set up on another machine. Using the console, you can connect to the hypervisor on the server, and manage your virtual environment. A management console can be web-based or a separate software package you install on the machine for which you want remote management.
One action you can perform includes moving virtual machines between physical servers, manually or automatically. This move is based on resource needs of a VM at a given moment and happens without any impact to the end-users. Properly configured management software moves virtual machines to a working server as soon as an issue arises. The detection and restoration procedure takes place automatically and seamlessly.
Type 2 Hypervisor
This type of hypervisor runs inside of an operating system of a physical host machine. Therefore, we call type 2 hypervisors – hosted hypervisors. As opposed to type 1 hypervisors that run directly on the hardware, hosted hypervisors have an operating system installed on the hardware (Windows, Linux, macOS).
Type 2 hypervisors are typically found in environments with a small number of servers. What makes them convenient is that you do not need a management console on another machine to set up and manage virtual machines. You can do all of this on the server where you install the hypervisor.
They are not any different from the other applications you have in your operating system.
When you launch a virtual machine, you get another window to perform all tasks.
Hosted hypervisors essentially also act as management consoles for virtual machines, you can perform any task using the built-in functionalities.
There is no need to install separate software on another machine to create and maintain your virtual environment. You simply install and run a type 2 hypervisor as you would any other application within your OS. With it, you can create snapshots or clone your virtual machines, import or export appliances, etc.