Unit1 Virtualization
Unit1 Virtualization
• Unit-1
• Part a
Abhishek
Virtualization
Modern computing is more efficient
due to virtualization
Lets think like this
• Have you ever wished you could clone yourself?
• If you could, would you be more efficient?
Would you do more?
• Virtualization enables computers to be more
efficient in a similar fashion
• Computers that use virtualization optimize the
available compute resources
Lets ponder on this...
• Do you use a smartphone, laptop or home
computer?
• Smartphones, laptops or home computers are
hardware
• Similar to how your brain controls your actions,
software controls hardware
• There are different types of software that control
computer actions
What is a VM
• Virtualization creates virtual hardware by
cloning physical hardware
• The hypervisor uses virtual hardware to create
a virtual machine (VM)
• A VM is a set of files
• With a hypervisor and VMs, one computer
can run multiple OS simultaneously
Terminologies
• Host Operating System: The operating system via which the Virtual
Machines are run. For Type 1 Hypervisors, as in Hyper-V, the hypervisor
itself is the Host OS which schedules the virtual machines and allocates
memory. For Type 2 hypervisors, the OS on which the hypervisor
applications run is the Host OS.
• Guest Operating System: The operating system that uses virtualized
hardware. It can be either Fully Virtualized or Para Virtualized. An
enlightened guest OS knows that its a virtualized system which can improve
performance.
• Virtual Machine Monitor: VMM is the application that virtualizes
hardware for a specific virtual machine and executes the guest OS with the
virtualized hardware.
Concepts
• Virtualization is technology that allows you to
create multiple simulated environments or
dedicated resources from a single, physical
hardware system.
• Software called a hypervisor connects directly to
that hardware and allows you to split 1 system
into separate, distinct, and secure environments
known as virtual machines (VMs).
Hypervisors
• A hypervisor is a process or a function that create an
operating system and applications from the underlying
hardware.
• Though virtual machines operate on the same physical
hardware, they are separated from each other. This also
depicts that if one virtual machine undergoes a crash,
error, or a malware attack, it doesn't affect the other
virtual machines.
Types of Hypervisor
• A type-I hypervisor operates directly on the
host's hardware to monitor hardware and guest
virtual machines, and it's referred to as the bare
metal.
• A type-II, also called a hosted hypervisor because
it is usually installed onto an existing operating
system. They are not much capable to run more
complex virtual tasks. Used for basic
development, testing, and emulation.
Differences
What's the difference between virtualization and cloud
computing?
• It's easy to confuse the two, particularly because they both
revolve around separating resources from hardware to create a
useful environment. Virtualization helps create clouds, but
that doesn't make it cloud computing. Think about it like this:
• Virtualization is a technology that separates functions from
hardware
• Cloud computing is more of a solution that relies on that split
X86 Virtualization
• x86 virtualization refers to hardware
and software-based mechanisms to
support virtualization for
processors based on the x86
architecture . Using a hypervisor , it
allows several operating systems to
be run in parallel on an x86 processor
and resources to be distributed in an
isolated and efficient manner between the
operating systems running in parallel.
• In order to be able to allocate resources exclusively to the guest systems
running in parallel, only the host operating system or the hypervisor may be
granted direct access to the processor hardware, while the guest systems,
like all other applications, may only have limited access rights to the
hardware. In particular, it can be prevented that the guest systems can see
or change memory areas that the hypervisor needs for management.
• The protected mode was introduced in the x86 world . With it, four
different protection levels or privilege levels, known as rings,
were introduced, which grant the code segments running on them different
rights. Only with the introduction of this concept was it possible to
implement virtualization based on the x86 architecture: In protected mode,
the operating system kernel runs in a more privileged mode, called Ring 0 ,
and applications in a less privileged mode, in usually either ring 1 or ring 3.
• The hypervisor or the
host operating system are
executed with ring 0
authorization due to their
privileged position in
resource management. In
order to guarantee the
protection of the
hypervisor resources,
guest systems must
therefore be run either at
authorization level Ring 1
(in the so-called Ring 3.
Types of Hardware Virtualization
• Full Virtualization
• Para-virtualization
• Hardware Assisted Virtualization
What to change
• Based on how much change is required and at what level
• Categories
– Modified Guest OS
• Operating system level
• Para-virtualization.
– Unmodified Guest OS
• Binary Translations
• Hardware assisted
Full virtualization
• In the full virtualization technique, the hypervisor completely simulates
the underlying hardware. The main advantage of this technique is that
it allows the running of the unmodified OS. In full virtualization, the
guest OS is completely unaware that it’s being virtualized.
• Full virtualization uses a combination of direct execution and binary
translation. This allows direct execution of non-sensitive CPU instructions,
whereas sensitive CPU instructions are translated on the fly. To improve
performance, the hypervisor maintains a cache of the recently translated
instructions.
• VMware’s ESXi server uses this technique to achieve server virtualization.
Para Virtualization
• In paravirtualization, the hypervisor doesn’t simulate underlying
hardware. Instead, it provides hypercalls. The guest OS uses
hypercalls to execute sensitive CPU instructions. This technique is
not as portable as full virtualization, as it requires modification in the
guest OS. However, it provides better performance because the guest
OS is aware that it’s being virtualized.
• Hypercalls are similar to kernel system calls. They allow the guest
OS to communicate with the hypervisor.
• The open-source Xen project uses the paravirtualization technique.
Hardware-assisted Virtualization
• Also known as native virtualization, in this technique, underlying
hardware provides special CPU instructions to aid
virtualization. This technique is also highly portable as the
hypervisor can run an unmodified guest OS. This technique makes
hypervisor implementation less complex and more maintainable.
• Intel’s Intel-VT and AMD’s AMD-V processors provide CPU
virtualization instructions that software vendors use to implement
hardware-assisted virtualization.
Comparisons HARDWARE
FULL PARA
PARAMETER ASSISTED
VIRTUALIZATION VIRTUALIZATION
VIRTUALIZATION
Generation 1st 2nd 3rd
Better in certain
Performance Good Fair
cases
VMware, Microsoft, VMware, Xen,
Used By VMware, Xen
KVM Microsoft, Parallels
Guest OS Codified to issue
Unmodified Unmodified
modification hypercalls
Guest OS
XenLinux runs only
hypervisor Yes Yes
on Hypervisor
independent?
Exit to root mode on
Technique Direct execution Hypercalls
privileged instruction
Compatibility Excellent
Poor Excellent
Types of Virtualization
• Apart from hardware virtualization,
other types of virtualization include:
» Application Virtualization
» Data Virtualization
» Desktop Virtualization
» Network Virtualization
» Server Virtualization
» Storage Virtualization
Application virtualization
• The process of installing an
application on a central server
(single computer system) that can
virtually be operated on multiple
systems is known as application
virtualization. For end users, the
virtualized application works exactly
like a native application installed on
a physical machine. With application
virtualization, it’s easier for
organizations to update, maintain,
and fix applications centrally.
Admins can control and modify
access permissions to the application
• Virtualizing an app allows for seamless use for the end-
user, making it possible for the employee to work
remotely with the same key programs installed in the
office. When virtualized, apps work in what is called a
sandbox, an environment that runs separately from the
operating system. While operating in this sandbox, any
changes will appear to run in the operating system, though
the app is pulling operating power from the sandbox.
• An example would be virtualizing Microsoft
PowerPoint to run on Ubuntu over an Opera browser.
Data Virtualization
• Data virtualization is a logical data layer that
integrates all enterprise data siloed (isolated from
others.) across the disparate systems, manages the
unified data for centralized security and
governance, and delivers it to business users in
real time..
Example Big Data
Desktop virtualization
• Desktop virtualization is a method of simulating a user workstation
so it can be accessed from a remotely connected device. By
abstracting the user desktop in this way, organizations can allow
users to work from virtually anywhere with a network connecting,
using any desktop laptop, tablet, or smartphone to access enterprise
resources without regard to the device or operating system employed
by the remote user.
• Remote desktop virtualization is also a key component of digital
workspaces Virtual desktop workloads run on desktop virtualization
servers which typically execute on virtual machines (VMs) either at
on-premises data centers or in the public cloud.
• Since the user devices is basically a display, keyboard, and mouse, a
lost or stolen device presents a reduced risk to the organization. All
user data and programs exist in the desktop virtualization server, not
on client devices.
• Example AnyDesk
Network virtualization
• Network virtualization helps manage and monitor the entire
computer network as a single administrative entity. Admins
can keep a track of various elements of network infrastructure
such as routers and switches from a single software-based
administrator’s console. Network virtualization helps network
optimization for data transfer rates, flexibility, reliability,
security, and scalability. It improves the overall network’s
productivity and efficiency.
• Example of network virtualization is virtual LAN (VLAN).
A VLAN is a subsection of a local area network (LAN)
created with software that combines network devices into one
group, regardless of physical location.
Server virtualization
Storage virtualization
• Storage virtualization performs resource abstraction in a way
that the multiple physical storage arrays are virtualized as a
single storage pool with direct and independent access.
• The storage virtualization software aggregates and manages
storage in various storage arrays and serves it to applications
whenever needed.
• The centralized virtual storage increases flexibility and
availability of resources needed. This data virtualization and
centralization is easily manageable from a central console. It
allows users to manage and access multiple arrays as a single
storage unit.
• A popular example is a dynamically expanding virtual hard
disk.