Virtualization: The know-how

Virtualization: The know-how

Virtualization is nothing but a process of creating virtual versions of something, it can be a server, a desktop, a storage device, or a network but at the same abstraction level.

Here "same abstraction level" implies that all the virtualized resources are presented to the user or application in the same way as the physical resources are present. For example, if a user owns a physical server that has 4 CPUs, then on-demand virtualized server can also have 4 CPUs (this can be scaled up or down based on the needs of the user ). We will discuss more about how abstraction is achieved and what are its uses in the subsequent articles.

In this article let's dive deep into the concept behind virtualization and its types!

The concept of virtualization :

The virtual machine created in this process is referred to as Guest Machine, whereas the machine on which it is created is called a Host Machine. These guest machines have no physical presence, they may be used in numerous ways, they can enable a single computer (called a host) to run multiple operating systems in isolation, for example installing VirtualBox on Windows. Many of these can also act as a component of a physical computer such as storage locations, virtual routers, or even standalone computers, users can access these virtual applications and use them remotely as if they are locally present or installed.

Types of virtualization :

There are multiple types of virtualizations, but some of the common ones are listed below :

  • Server virtualization:

    Server virtualization is the most adopted one in the industry, it solves the root cause behind the need for virtualization which is the underutilization of hardware computing resources. In this process, the partitions of a physical server (large-scale) lying at a remote location act as standalone servers (instances) also called virtual servers.

    The virtual servers share the CPU, memory, storage, and networking capacity pulled from the hypervisor of the corresponding physical server. The users can demand various system configurations in terms of storage, RAM, computing power, etc allowing server virtualization to be easily scalable (also referred to as elasticity ). It isolates the computer hardware from the operating system and the virtual machine here is treated as a file.

    Various providers offer server virtualization such as vSphere. RedHat, Hyper-V, etc.

  • Storage virtualization :

    It is majorly used by companies that need to store and maintain large amounts of data. It is put into an effort by gathering and merging multiple physical storage arrays of the company placed in one virtual environment and presented as a single storage location to the users over a network. The data is remotely stored. This pooling of all the storage resources into one virtual environment helps administrators to manage them remotely. It allows easy backup, recycling, and dropping of data improving the storage performance at comparatively lesser expenses.

    There are two kinds of storage virtualization :

    1. Internal storage virtualization: it is virtualizing the storage within a single computer or server. Multiple logical storage units are created from a pool of physical storage resources, the virtualization layer resides between the operating system and physical storage devices presenting a virtual view of storage to the OS and applications.

      Examples of internal storage virtualization technologies include Logical Volume Management (LVM) on Linux, Storage Spaces in Windows, etc.

    2. External storage virtualization: it is virtualizing the storage resources that are external to a computer or server. It enables a unified view of heterogeneous storage systems like direct-attached storage (DAS), network-attached storage (NAS), storage area network (SAN), and cloud storage services.

  • Network virtualization :

    Similar to storage virtualization here all the components of networks are combined and administered using a single software, this includes all the hardware and software of a network with their functionalities. It involves disconnecting the virtual networks from the physical hardware, the virtualizing software similar to a hypervisor now controls all the functionalities and availability, although the network still uses its hardware resources. The disconnection allows the use of switches to direct network traffic and manage resources.

    Network virtualization is used to interconnect virtual machines, group various networks into one, or divide the resources of a network, it is preferred for testing newly developed software applications before releasing them to the public.

  • Application virtualization:

    It basically refers to the process of deploying an application over a network say on cloud. The application can be accessed by users without installing it on their local machines.

    There are two kinds of application virtualization :

    1. Full virtualization: it involves encapsulating an entire application and its dependencies in a standalone package called a virtual application. This package includes all files, registry settings, and resources required to run the application.

      Examples: VMware ThinApp, Microsoft App-V, etc.

    2. OS level virtualization: also termed as containerization, here the entire OS is itself virtualized allowing multiple applications to run in separate containers on a shared OS kernel. Containers share the host system's OS kernel while maintaining application isolation providing an overall lightweight approach to virtualization.

      A few quite popular OS-level virtualization technologies include docker containers, LXC (Linux containers), and Kubernetes.

Difference between Server virtualization and OS-level application virtualization:

Server virtualizationOS-level application virtualization
It involves virtualizing an entire physical server, including the underlying hardware resources (CPU, memory, storage, network) and the operating system.It focuses on isolating and virtualizing individual applications and their dependencies within a single operating system instance.
It allows multiple virtual machines (VMs) to run on a single physical server, each with its own operating system, applications, and resources.It enables multiple applications to run in separate containers on the same operating system, sharing the host system's resources and kernel.
  • Desktop virtualization :

    It allows users to access multiple applications and operating systems (OS) on a single computer, these applications are installed on virtual machines (VMs) that run on powerful servers that can host several desktop sessions concurrently.

    VMs are nothing but physical computers but in a software form, they are organized using hypervisors. It is similar to application virtualization but instead of apps, it is the entire desktop environment that is virtualized. Users can access these VMs whenever required regardless of the specifications of their devices.

    From the point of view of large IT organizations, this minimizes the risk associated with employees storing the sensitive data of the company locally, moreover, as most of the data is stored on servers, device failures do not threaten the loss of data.

Conclusion

Virtualization is a powerful technology that offers numerous benefits for modern computing environments. It facilitates efficient utilization of hardware resources, improved scalability, simplified management, enhanced security, and flexibility in deploying applications and services.

With these various types of virtualizations mentioned above, organizations can achieve cost savings, resource optimization, and increased productivity in their IT infrastructure.