Welcome to Day 83 of the #100DaysOfDevOps Challenge! Today we will see about the Types of Virtualization.
How does virtualization work?
As we have seen earlier, virtualization works by abstracting the physical hardware of a computer and creating a virtual version of it. Here is a step-by-step breakdown of how it works:
Hypervisor deployment: So, to start, the hypervisor needs to be installed on the machine’s hardware (type 1) or on the existing OS (type 2).
Resource allocation: Once the hypervisor is installed, it takes control of the machine’s hardware resources.
Now, virtual machines can be created onto which an operating system is installed separately from that of the host machines. With this, all the VM’s parameters need to be defined, such as the amount of memory or CPU cores it will use.
The users can install the various apps they need on the VM’s operating system and execute them as normal. However, the hypervisor ensures that the VM can only access the resources allocated to it. If some of the apps that the user is running need additional resources, the hypervisor relays the request to the physical machine and records the changes.
Types of Virtualizations
There are many different types of virtualizations, all of which have their own advantage and purpose. Here are some of the most common types of virtualizations:
Server virtualization: With server virtualization, users can partition their physical services into smaller virtual servers to maximize server resources. This ensures that the users do not have to micromanage complicated details of server resources while increasing resource sharing, utilization, and scalability. Here, each virtual server runs its own unique operating system and apps, independent of the other virtual servers on the physical machine.
Network virtualization: Network virtualization splits the available bandwidth into independent channels that can each be assigned to specific servers or devices in real-time. This helps decrease network complexity and also improves speed, security, and flexibility by allowing multiple networks to exist on the same physical network.
Storage virtualization: This is the type of virtualization where multiple network storage resources are pooled together and appear to be a single storage device which is managed by a central console. Storage virtualization significantly helps to improve the efficiency and speed of data storage. It is commonly used in Storage area networks (SAN).
Application virtualization: This is the process of separating the application layer from the hardware and operating system. Now, the app is able to run without being dependent on the physical machine’s operating system. This way, users can run a Windows app on Linux OS and vice versa without needing to have two computers.
Desktop virtualization: With desktop virtualization, an admin can deploy simulated desktop environments on a hosted, centralized or remote server. So users can access their desktops on any workstation or device. Furthermore, it makes it easy for admins to perform updates, security checks and mass configurations on all virtual desktops.
Data virtualization: Since modern enterprises store data in multiple locations, it becomes necessary to ensure that the apps can access all that data irrespective of the location, format or source. And that is the goal of data virtualization. It involves gathering data from different sources, which can be viewed in one place, giving users a single point of access to their data.