Unit 2 Virtualization
Unit 2 Virtualization
1. Application Virtualization
2. Network Virtualization
3. Desktop Virtualization
4. Storage Virtualization
5. Server Virtualization
6. Data virtualization
Types of Virtualization
1. Application Virtualization: Application virtualization helps a user to have
remote access to an application from a server. The server stores all personal
information and other characteristics of the application but can still run on a
local workstation through the internet. An example of this would be a user who
needs to run two different versions of the same software. Technologies that use
application virtualization are hosted applications and packaged applications.
2. Network Virtualization: The ability to run multiple virtual networks with each
having a separate control and data plan. It co-exists together on top of one
physical network. It can be managed by individual parties that are potentially
confidential to each other. Network virtualization provides a facility to create and
provision virtual networks, logical switches, routers, firewalls, load
balancers, Virtual Private Networks (VPN) , and workload security within days or
even weeks.
Network Virtualization
To do this, you will need a hypervisor. Now, what is the role of the hypervisor? It
is a bridge between the hardware and the virtual operating system, which allows
smooth functioning.
For the basic emulation, an interpreter is needed, which interprets the source code
and then converts it into a hardware format that can be read. This then allows
processing. This is one of the five implementation levels of virtualization in Cloud
Computing..
Multiple users will not be able to use the same hardware and also use multiple
virtualization instances at the very same time. This is mostly used in the cloud-
based infrastructure.
3) Operating System Level
At the level of the operating system, the virtualization model is capable of creating
a layer that is abstract between the operating system and the application. This is an
isolated container on the operating system and the physical server, which uses the
software and hardware. Each of these then functions in the form of a server.
When there are several users and no one wants to share the hardware, then this is
where the virtualization level is used. Every user will get his virtual environment
using a dedicated virtual hardware resource. In this way, there is no question of
any conflict.
4) Library Level
The operating system is cumbersome, and this is when the applications use the API
from the libraries at a user level. These APIs are documented well, and this is why
the library virtualization level is preferred in these scenarios. API hooks make it
possible as it controls the link of communication from the application to the
system.
5) Application Level
The application-level virtualization is used when there is a desire to virtualize only
one application and is the last of the implementation levels of virtualization in
Cloud Computing. One does not need to virtualize the entire environment of the
platform.
This is generally used when you run virtual machines that use high-level
languages. The application will sit above the virtualization layer, which in turn sits
on the application program.
Virtualization types
Paravirtualization is virtualization in which the guest operating system (the one being
virtualized) is aware that it is a guest and accordingly has drivers that, instead of issuing
hardware commands, simply issue commands directly to the host operating system. This also
includes memory and thread management as well, which usually require unavailable privileged
instructions in the processor.
Full Virtualization is virtualization in which the guest operating system is unaware that it is in
a virtualized environment, and therefore hardware is virtualized by the host operating system so
that the guest can issue commands to what it thinks is actual hardware, but really are just
simulated hardware devices created by the host.
Hardware Assisted Virtualization is a type of Full Virtualization where the microprocessor
architecture has special instructions to aid the virtualization of hardware. These instructions
might allow a virtual context to be setup so that the guest can execute privileged instructions
directly on the processor without affecting the host. Such a feature set is often called
a Hypervisor. If said instructions do not exist, Full Virtualization is still possible, however it
must be done via software techniques such as Dynamic Recompilation where the host
recompiles on the fly privileged instructions in the guest to be able to run in a non-privileged
way on the host.
Difference between Full Virtualization and
Paravirtualization
1. Full Virtualization: Full Virtualization was introduced by IBM in the year 1966. It is
the first software solution for server virtualization and uses binary translation and direct
approach techniques. In full virtualization, guest OS is completely isolated by the virtual
machine from the virtualization layer and hardware. Microsoft and Parallels systems are
some examples of full virtualization.
2. Paravirtualization: Paravirtualization is the category of CPU virtualization which
uses hypercalls for operations to handle instructions at compile time. In
paravirtualization, guest OS is not completely isolated but it is partially isolated by the
virtual machine from the virtualization layer and hardware. VMware and Xen are some
examples of paravirtualization.
The difference between Full Virtualization and Paravirtualization are as follows:
S.No
. Full Virtualization Paravirtualization
Windows & Linux. So it can easily be done by creating two Virtual Machines
(VMs), one for Windows and one for Linux.
The virtualization software will create a virtual CPU for each VM. The
virtualization software will create a virtual CPU for each VM. The virtual CPUs
will execute on the physical CPU but separately. This means the Windows
Virtual Machine cannot view or communicate with the Linux VM, and vice
versa.
The virtualization software will also allocate memory and other resources to
each VM. This guarantees each VM has enough resources to execute. CPU
virtualization is made difficult but necessary for cloud computing.
Let’s take an example you have a powerful computer with a CPU, memory, and other
resources.
To start CPU virtualization, you use special software called a hypervisor. This is like the
conductor of a virtual orchestra.
The hypervisor creates virtual machines (VMs) – these are like separate, isolated worlds within
your computer.
The “virtual” resources of each VM include CPU, memory, and storage. It’s like having multiple
mini-computers inside your main computer.
Step 2: Allocating Resources
The hypervisor carefully divides the real CPU’s processing power among the VMs. It’s like
giving each VM its own slice of the CPU pie.
It also makes sure that each Virtual memory (VM) gets its share of memory, storage, and other
resources.
Step 3: Isolation and Independence
Within each Virtual Machine, you can install & run different operating systems (like Windows, Linux)
and applications.
The VM thinks it’s a real computer, even though it’s sharing the actual computer’s resources with other
VMs.
Step 5: Managing Workloads
The hypervisor acts as a smart manager, deciding when each VM gets to use the real CPU.
It ensures that no VM takes up all the CPU time, making sure everyone gets their turn to work.
Step 6: Efficient Use of Resources
Even though there’s only one physical CPU, each VM believes it has its own dedicated CPU.
The hypervisor cleverly switches between VMs so that all the tasks appear to be happening
simultaneously.
2) Cost Savings
By running multiple virtual machines on a single physical server, cloud providers
save on hardware costs, energy consumption, and maintenance.
3) Scalability
CPU virtualization allows easy scaling, adding or removing virtual machines
according to demand. This flexibility helps businesses adapt to changing needs as
per requirements.
1) Overhead
The virtualization layer adds some overhead, which means a small portion of CPU
power is used to manage virtualization itself.
2) Performance Variability
Depending on the number of virtual machines and their demands, performance can
vary. If one VM needs a lot of resources, others might experience slower
performance.
3) Complexity
Handling multiple virtual machines and how they work together needs expertise.
Creating and looking after virtualization systems can be complicated.
4) Compatibility Challenges
Some older software or hardware might not work well within virtualized
environments. Compatibility issues can arise.
5) Resource Sharing
While CPU virtualization optimizes resource usage, if one VM suddenly requires a
lot of resources, it might impact the performance of others.