Server Virtualization for Cloud Computing : How to Setup a Virtualized Server for Enterprise - Wide Computing

As part of the Go Cloud Architects program, we got to learn about Virtualization, a key feature in Cloud Computing. I had to do a lot of research since at university since I did not have this in my curriculum and was project management oriented at my workplace. But still I am super passionate and ready to put what it takes for that Cloud Architect career.


SO WHAT IS SERVER VIRTUALIZATION ?

When we talked about the consolidation of Cloud Computing, we are talking about compute, networking and storage. And the Compute machine can be further divided into Virtual Machines and Containers.

" Server Virtualization is when you take a physical server and you logically divide that physical server into multiple logical servers. By doing you are buying an extremely powerful server and it can take actually the function of multiple servers (10,20,30 servers) based upon your environment".


HISTORY OF VIRTUALIZATION

The concept of virtualization started its industrial appearance in 1960s and early 1970s, when IBM invested a lot within its R&D in developing very solid time-sharing solutions. 

Fast forward to the the 1990s. Most enterprises had physical servers and single-vendor IT stacks, which could not let legacy apps to run on a various vendor’s hardware. With drastic update in IT infrastructure using less-expensive commodity servers, operating systems, and applications from a variety of vendors, they were limited to underused physical hardware, facing that challenge of each server running 1 vendor-specific task.

This is where virtualization really took off. It was the natural solution to 2 problems:

  1. Companies could partition their servers and run legacy apps on multiple operating system types and versions. 
  2. Servers started being used more efficiently (or not at all), hence achieving cost-effectiveness associated with purchase, set up, cooling, and maintenance.

What is time-sharing ?

Time-sharing refers to the shared usage of computer resources among a large group of users, aiming to increase the efficiency of both the users and the expensive computer resources they share.

This model represented a massive evolution in technology precisely computing: the cost of providing computing capability dropped dramatically and it became a reality both for companies and individuals to use a computer without actually owning one.


WHY USE SERVER VIRTUALIZATION ?

With server virtualization we can conserve space through consolidation. On an industrial perspective it is very common to dedicate each server to a single application. If several applications only use a small amount of processing power, the cloud architect can consolidate several machines into one server running multiple virtual environments. For companies that have hundreds or thousands of servers being operational, the need for physical space can decrease significantly. Thus this enhances cost-effectiveness and make the business more sustainable including diminishing carbon footprint.



How server virtualization works ?
Server virtualization works by abstracting or isolating a computer's hardware from all the software that might run on that hardware. This abstraction is accomplished by software known as a hypervisor which divide the physical resources from the virtual environment, the things that need those resources. Hypervisors can sit on top of an operating system (like on a PC) or be installed directly onto hardware (like a physical server), which is how most enterprises virtualize. 

Hypervisors take your physical resources and divide them up so that virtual environments can use them.. There are numerous hypervisors in the enterprise space, including Microsoft Hyper-V and VMware vSphere.

Resources are divided/partioned as needed from the physical environment to the many virtual environments. Users interact with and run computations within the virtual environment (typically called a guest machine or virtual machine). The virtual machine functions as a single data file. And like any digital file, it can be moved from one computer to another, opened in either one, and be expected to work the same.  

How the hypervisor acts as a relay ?
When the virtual environment is running and a user or program issues an instruction that requires additional resources from the physical environment, the hypervisor relays the request to the physical system and caches the changes—which all happens at close to native speed (particularly if the request is sent through an open source hypervisor based on KVM, the Kernel-based Virtual Machine).


What is abstraction ?
Abstraction essentially recognizes the computer's physical resources -- including processors, memory, storage volumes and network interfaces -- and creates logical aliases for those resources. For example, a physical processor can be abstracted into a logical representation called a virtual CPU, or vCPU. 

The hypervisor is responsible for managing all the virtual resources that it abstracts and handles all the data exchanges between virtual resources and their physical counterparts. The hypervisor monitors the physical server's resources. As virtual servers run applications, the hypervisor relays resources from the physical machine to the appropriate virtual server.


In a summarized way to better understand a hypervisor, we can say:

"A hypervisor is a thin layer of software that takes the host and it manages host's memory, CPU and its resources and allocate it to the virtual machines you created. A hypervisor takes a physical computer at the logical layer and enables you to install your virtual machines. This is called a Type 1 Hypervisor also known as bare metal."



THE REAL PROCESSING POWER BEHIND SERVER VIRTUALIZATION

The real power of a hypervisor isn't abstraction, but what can we achieve with those abstracted resources. A hypervisor uses virtualized resources to create logical representations of computers, or VMs. A VM is assigned :
  • virtualized processors
  • memory
  • storage
  • network adapters
  • and other virtualized elements such as GPUs managed by the hypervisor itself.

PROVISIONING PART
When a hypervisor provisions a VM, the resulting logical instance is completely isolated from the underlying hardware and all other VMs established by the hypervisor. This means a VM has no knowledge of the underlying physical computer or any of the other VMs that might share the physical computer's resources.

This logical isolation, combined with careful resource management, enables a hypervisor to create and control multiple VMs on the same physical computer at the same time with each VM capable of acting as a complete, fully functional computer. Virtualization enables an organization to carve several virtual servers from a single physical server. 

Once a VM is established, it requires a complete suite of software installation, including an OS, drivers, libraries and ultimately the desired enterprise application. This enables an organization to use multiple OSes to support a wide mix of workloads all on the same physical computer.


FLEXIBILITY THROUGH DUPLICATION, CLONING AND MOVING OF VMs
The abstraction enabled by virtualization gives VMs extraordinary flexibility that isn't possible with traditional physical computers and physical software installations. All VMs exist and run in a computer's physical memory space, so VMs can easily be saved as ordinary memory image files. 

These saved files can be used to quickly create duplicate or clone VMs on the same or other computers across the enterprise, or to save the VM at that point in time. Similarly, a VM can easily be moved from one virtualized computer to another simply by copying the desired VM from the memory space of a source computer to a memory space in a target computer and then deleting the original VM from the source computer. In most cases, the migration can take place without disrupting the VM or user experience.


NOW WHAT IS A VIRTUAL MACHINE ?
It is s a compute resource that uses software instead of a physical computer to run programs and deploy apps. One or more virtual “guest” machines run on a physical “host” machine.  Each virtual machine runs its own operating system and functions separately from the other VMs, even when they are all running on the same host. This means that, for example, a virtual MacOS virtual machine can run on a physical PC. 


What are virtual machines used for?
Virtual machines (VMs) allow a business to run an operating system that behaves like a completely separate computer in an app window on a desktop. VMs may be deployed to accommodate different levels of processing power needs, to run software that requires a different operating system, or to test applications in a safe such as a sandboxed environment generally used by software developers. 
 
Virtual machines have historically been used for server virtualization, which enables IT teams to build their computing resources and leverage efficiency. Additionally, virtual machines can perform specific tasks considered too risky to carry out in a host environment, such as accessing virus-infected data or testing operating systems. Since the virtual machine is separated from the rest of the system, the software inside the virtual machine cannot tamper with the host computer.  


Advantages of virtual machines
Virtual machines are easy to manage and maintain, and they offer several advantages over physical machines:   
  • VMs can run multiple operating system environments on a single physical computer, saving physical space, time and management costs. 
  • Virtual machines support legacy applications, reducing the cost of migrating to a new operating system. For example, a Linux virtual machine running a distribution of Linux as the guest operating system can exist on a host server that is running a non-Linux operating system, such as Windows. 
  • VMs can also provide integrated disaster recovery and application provisioning options. 

Disadvantages of virtual machines

  • Running multiple virtual machines on one physical machine can result in unstable performance if infrastructure requirements are not met. 
  • Virtual machines are less efficient and run slower than a full physical computer. Most enterprises use a combination of physical and virtual infrastructure to balance the corresponding advantages and disadvantages. 


TYPES OF HYPERVISORS

TYPE 1 HYPERVISOR - BARE METAL
There are numerous virtualization offerings in the current marketplace, but the choice of vendors and products often depends heavily on virtualization goals and established IT infrastructures. 

VMs interact directly with hosts to allocate hardware resources without any extra software layers in between. Host machines running type 1 hypervisors are used only for virtualization. They’re often found in server-based environments like enterprise datacenters.

VMware dominates the current virtualization landscape for its rich feature set and versatility. Microsoft Hyper-V is a common choice for organizations that already standardize on Microsoft Windows Server platforms. RHEV is commonly employed in Linux environments.




TYPE 2 HYPERVISOR - HOSTED
Hosted (Type 2) hypervisors are software products in test and development environments as well as multi-platform endpoints -- such as PCs that need to run Windows and Mac applications.
 
It runs on the host computer’s operating system. Hosted hypervisors pass VM requests to the host operating system, which then provisions the appropriate physical resources to each guest. Type 2 hypervisors are slower than their type 1 counterparts as every VM action has to go through the host operating system first. 

Unlike bare-metal hypervisors, guest operating systems are not tied to physical hardware. Users can run VMs and use their computer systems as usual. This makes type 2 hypervisors suitable for personal users or small businesses that don’t have dedicated servers for virtualization. VMware's multiple offerings provide general-purpose virtualization, supporting Windows and Linux OSes and applications on Mac hardware, as well as the deployment of virtual desktop infrastructure across the enterprise. 





Examples are as follows:

ADVANTAGES OF SERVER VIRTUALIZATION 

  • Redundancy

Server virtualization provides a way for companies to practice redundancy without investing on additional hardware for running same application on multiple servers. For safety measures on a enterprise basis  if a server fails for any reason, another server running the same application can take its place. This minimizes any interruption on an operational basis regarding the service itself.

It wouldn't make sense to build two virtual servers performing the same application on the same physical server. If the physical server were to crash, both virtual servers would also fail. In most cases, network administrators will create redundant virtual servers on different physical machines.

  • Transition from legacy systems to new systems

An IT professional could create a virtual version of the hardware on modern servers. From an application perspective, nothing has changed. The programs will continue to perform as if they were still running on the old hardware. This gives the company time to transition to new processes without worrying about hardware failures, particularly if the company that produced the legacy hardware no longer exists and can't fix broken equipment. On a time management it is both efficient and cost-effective.

  • Migration

Migration refers to moving a server environment from one location to another. Choosing the correct hardware and software, it is possible to move a virtual server from one physical machine in a network to another. Before, this was possible only if both physical machines ran on the same hardware, operating system and processor. Now with new technologies it is possible to migrate virtual servers from one physical machine to another even if both machines have different processors, but only if the processors come from the same manufacturer.

Summarized Benefits of Server Virtualization:

  • Higher server ability
  • Cheaper operating costs
  • Eliminate server complexity
  • Increased application performance
  • Deploy workload quicker

Server Virtualization Components
Depending on the approach, server virtualization uses a number of different components. These include:

  • A host machine which is the physical server hardware where virtualization occurs
  • Virtual machines (VMs), or guest machines, which contain the assets that are abstracted from a traditional server environment
  • A hypervisor, which is a specialized software that creates and maintains virtual machines and can be run natively on bare metal servers or hosted on top of an existing operating system.
  • Hypercalls, which are messages sent between para-virtualized hypervisors and operating systems to share resources using an API.
  • Containers, which are unique user environments that are created in virtualized operating systems. Containers are often deployed inside of hypervisors or virtual machines to offer an additional layer of isolation from the server’s core host operating system.

TO BE NOTED THAT !
Hypervisors have their own processing needs, which means that the physical server must reserve some processing power and resources to run the hypervisor application. This can impact overall server performance and slow down applications.


KEY PROBLEMS THAT SERVER VIRTUALIZATION HAS ADDRESSED ?

  1. Virtualization decreases the physical server count, helping organization achieving cost-effectiveness by reducing the number of physical servers in the data center or giving opportunity to run more workloads without adding servers. It's a technique called server consolidation. The lower server count also conserves data center space, power and cooling; this can often forestall or even eliminate the need to build new data center facilities.
  2. Virtualization platforms routinely provide powerful capabilities such as centralized VM management VM migration (enabling a VM to easily move from one system to another)workload/data protection (through backups and snapshots).

TYPES OF VIRTUALIZATION
  • Full Virtualization
Full virtualization makes use of a hypervisor (discussed above), a type of software that directly communicates with a physical server's disk space and CPU. The hypervisor monitors the physical server's resources and keeps each virtual server independent and unaware of the other virtual servers.

It also relays resources from the physical server to the correct virtual server as it runs applications. The biggest limitation of using full virtualization is that a hypervisor has its own processing needs. This can slow down applications and impact server performance for the production environment.

  • Para-Virtualization
Unlike full virtualization, para-virtualization involves the entire network working together as a cohesive unit. Since each operating system on the virtual servers is aware of one another in para-virtualization, the hypervisor does not have the need to make use of much processing power to manage the operating systems.

  • OS-Level Virtualization
Unlike full and para-virtualization, OS-level visualization does not use a hypervisor. Instead, the virtualization capability, which is part of the physical server operating system, performs all the tasks of a hypervisor. However, all the virtual servers must run that same operating system in this server virtualization method. 


Virtual Machine Comparison among AWS v/s Azure v/s Google Cloud

All cloud-based platforms provide the ability to run virtual machines (VMs), select different configurations for VMs, and select a VM class. Disk, CPU, memory, and input/output operations per second (IOPS) all depend on the selected VM class. Virtual machines and storage are the most used services in a cloud platform.

AWS 
Virtual machines running in Amazon Web Services are called Elastic Compute Cloud (EC2) instances. You can select EC2 instances with preconfigured settings or configure virtual hardware settings manually. Amazon EC2 instances can run in different locations, such as data centers in different geographical regions. AWS has the highest variety of available data centers of all cloud platforms.

Azure
You can run Azure virtual machines in the Azure cloud. One of the main advantages of Azure virtual machines is that they use real processor cores. If, for example, you configure a VM to use one processor with four cores, AWS and Google Cloud Platforms create a VM processor with two cores and four threads (using hyperthreading). 

A VM in Azure has one processor with four real cores (without hyper-threading). This results in higher CPU performance for VMs with similar configurations running in Azure compared with other cloud platforms. VMs in Azure show excellent results in terms of performance.

Google Cloud
Google Cloud uses Google Compute Engine to run virtual machines in Google Cloud Platform. Google does not offer wider VMs compared to AWS and Azure, but Google is more focused on containers and Kubernetes for running horizontally scalable applications with a microservice architecture.

The maximum VM computing configuration parameters for AWS vs Azure vs Google cloud platforms are compared in the table below.





SET UP OF A VIRTUALIZED SERVER

Before working on the launch of the virtualized server, we must ensure we were connected to Meraki VPN on my laptop and I have used the server provided by GoCloudArchitects platform itself.




Regarding hypervisor, we are going to use the VMware ESXI  as hypervisor to do our testing in various OS when setting up virtual machines.

1. Now before creating our virtual machine, we need to install an ISO file for the operating system we want to use for testing our working environment such as Ubuntu Linux or Windows.

So we go to the LHS and click on Storage drop - down button, click datastore and then Datastore Browser.


2. Now click on upload to choose an ISO image which you already have downloaded through the internet and then close.


3. Now go back to Host and click on create Virtual Machine. 


4. Fill in the details for the virtual machine 

So here click Create a new virtual machine.


Choose Name  and Guest OS Version , here we are using Ubuntu, so Linux and Ubuntu Linux 64-bit

5. We do Customize Settings 

We set our CPU at 2 and Memory 4000 Mb, enable hardware virtualization and IOMMU to the guest OS by clicking dropdown button of CPU.




   6.  Scroll down and go to CD/DVD to choose ISO file by uploading/selecting Ubuntu Linux Desktop.



7. Click Finish for Ready to Complete


Now let us check our Virtual Machine by clicking on our VM Ubuntu Test Systems.


8. Now let us check our Virtual Machine. Go to datastore and click on Ubuntu Test Systems to power it. This screen will show up.




References

[1] What is Server Virtualization? [online]. 

[2]  How Server Virtualization works?” [online].

[3] Virtualization In Cloud Computing and Types?” 03 Sep, 2021 [online]. 


Comments

Popular Posts