Virtualize
Virtualize
Virtualization
.
5-1
Overview
1. Why Virtualize?
2. Server Virtualization Concepts
3. Virtualization Products
4. A Sample of Virtualization Products
5. Open Virtualization Format (OVF)
Note: Storage Virtualization and Network Virtualization will be
discussed in subsequent lectures
5-2
Virtualization
“Virtualization means that Applications can use a resource
without any concern for where it resides, what the technical
interface is, how it has been implemented, which platform it
uses, and how much of it is available.”
5-3
5 Reasons to Virtualize
1. Sharing: Break up a large resource
Large Capacity or high-speed 10Gb
E.g., Servers
2. Isolation: Protection from other tenants
E.g., Virtual Private Network
3. Aggregating: Combine many resources Switch Switch
in to one, e.g., storage
Switch Switch
4. Dynamics: Fast allocation,
Change/Mobility, load balancing, e.g.,
virtual machines
5. Ease of Management Easy
distribution, deployment, testing
5-4
Advantages of Virtualization
Minimize hardware costs (CapEx)
Multiple virtual servers on one physical hardware
Easily move VMs to other data centers
Provide disaster recovery. Hardware maintenance.
Follow the sun (active users) or follow the moon (cheap power)
Consolidate idle workloads. Usage is bursty and asynchronous.
Increase device utilization
Conserve power
Free up unused physical resources
Easier automation (Lower OpEx)
Simplified provisioning/administration of hardware and software
Scalability and Flexibility: Multiple operating systems
5-5
Virtualization in Computing
Storage:
Virtual Memory L1, L2, L3, ... Recursive
Virtual CDs, Virtual Disks (RAID), Cloud storage
Computing:
Virtual Desktop Virtual Server Virtual Datacenter
Thin Client VMs Cloud
Networking: Plumbing of computing
Virtual Channels, Virtual LANs,
Virtual Private Networks
5-6
Server Virtualization Concepts
Guest OS1 … Guest OSn
Hypervisor Type 2 Guest OS1 … Guest OSn
Host OS Hypervisor Type 1
Hardware Hardware
Host OS: Runs on the bare metal
Guest OS: Runs on the host OS,
e.g., Windows XP Mode on Win 7
Hypervisor: Software to support multiple virtual machines
Type 1: Runs on bare metal, e.g., Xen, VMware ESXi
5-7
Levels of Virtualization
User Virtualization
Application Virtualization
Desktop
Service Virtualization
Operating System Virtualization
Server Virtualization
Storage Virtualization
Network Virtualization
5-8
Operating System-Level Virtualization
Operating System
Multiple isolated user spaces on the same operating system
Example: Windows Server 2003, 2008, 2012, …
Multiple users can remotely login and use the system.
Only one operating system instance
Guest operating system is similar or same as the host,
E.g., Windows on Windows
Applications of one user cannot affect other users
aka Jails => Can be used to run suspect software
E.g., iCore Virtual Accounts and Sandboxie
5-9
Desktop Virtualization
A Desktop system with multiple operating systems
Example: Mac OS X and Windows at the same time
Parallels Desktop for Mac
Hypervisor type 1 similar to server virtualization
Useful for testing software on multiple OS
Reduced hardware cost
This is local desktop virtualization
… Guest OSn
Guest OS1
Hypervisor Type 1
Hardware
5-10
Thin Client
Also called Remote Desktop Virtualization
or Virtual Desktop Infrastructure (VDI)
or Access Virtualization
Remote server provides most of the computing and
storage resources
All programs and data is stored on remote servers
Local computer is simple with limited resources
Easy maintenance and upgrades
Users can log in on any client
Significant energy savings
Example: Chrome books
Zero Client: Power cable only.
USB and communication via WiFi
5-11
Application Virtualization
Allows an application to run on many different operating
systems and hardware
Application byte code can run on different processors and
operating systems usually using an interpreter or just-in-time
(run-time) compilation
Examples: Java Virtual Machine (JVM)
5-12
Service Virtualization
Service is similar to but different from applications in that they
are hidden from the end user
Example services: Firewall, load balancer, Proxy Server
Service virtualization: Virtual appliances implemented in
software
A load balancer’s IP address is advertised outside.
It distributes the load to multiple servers.
Load
Balancer …
5-13
User Experience Virtualization
Aka User Virtualization
Users see the same application interface
regardless of the device: laptop, tablet,
Smart Phone
Users can roam from device to device
User profiles and application settings are
stored in a central data center or cloud
Example: Microsoft UE-V
5-14
Related Concepts
Hardware Emulation
Hardware Assisted Virtualization
Parallel Virtual Machines
Paravirtualization
5-15
Hardware Emulation
Mimic a different type of hardware, e.g., SPARC on PC
Examples:
Microsoft Virtual PC for Mac: x86 on PowerPC
5-16
Hardware Assisted Virtualization
Processors are designed to help virtualization
For example, Intel-VT and AMD-V provide additional
instructions that help virtualization
Hypervisors can use these instructions to improve the
performance
Linux KVM, Microsoft Hyper-V, Microsoft Virtual PC, Xen,
etc. use these features
5-17
Parallel Virtual Machines
One computing environment running on multiple computers
PVM is also the name of an open source software that allows
running a program in parallel on multiple machines
Now grid computing and cluster computing is generally used
5-18
Paravirtualization
Hypervisor offers special APIs for operations that are difficult
to run in a virtual environment
Requires modifying the guest OS.
Requires source code for the guest OS.
Change and recompile for the hypervisor
Example: paravirt-ops code in Linux provides a hypervisor
agnostic interface between the hypervisor and guest kernels.
5-19
Virtualization Products
Microsoft Virtual PC: Included with Windows
Xen: Popular open source hypervisor from University of
Cambridge. Endorsed by many manufacturers. Allows running
multiple Linux-like operating systems at nearly native speeds.
Citrix provides Xen extensions and support.
Oracle VM VirtualBox: runs on Linux, Mac OS X, Windows
XP/Vista/7/8, Solaris, OpenSolaris, FreeBSD. Free.
Microsoft Hyper-V: Part of Windows 2008+ Server
Linux KVM (Kernel Virtual Machine): Uses Linux kernel as a
hypervisor. Each VM uses its own unique kernel. Uses
processor virtualization extensions (Intel-VT and AMD-V).
User-Mode Linux (UML): Uses an executable kernel and a
root file system to create a VM.
5-20
VMware ESX/ESXi
ESX: Bare metal embedded hypervisor for server virtualization
in an enterprise data center. Creates VM0 for a Linux based
service consol for management of hypervisor and other VMs
vMotion feature in ESX allows a live VM to move to
another host. A copy of memory is sent to the new location
and updated until the transfer.
ESXi: Smaller footprint version of ESX. No service console.
Free download. Many features require vCenter license.
vCenter allows managing multiple servers and to run
vMotion and svMotion (Storage sync on the remote
location)
5-21
VMware vMotion
VM
5-23
VMware Workstation and Player
Workstation: Hypervisor for virtual computing.
Virtualizes network adapters, disk drives, USB devices,
CD/DVD drives.
Useful for testing client-server environments.
5-24
VMware vSphere
vSphere is the VMware’s product suite consisting of:
vCenter: Provisioning, management, and monitoring console
for the cloud
ESX or ESXi: Type 1 hypervisor that runs on bare metal
Virtual SMP: VM running on two or more physical processors
Cluster = collection of servers that pool CPU/memory/storage
for VMs
Pod = Collection of clusters grouped as a management unit
Distributed Resource Scheduler (DRS): System for
provisioning VMs and load balancing across multiple physical
servers
vNetwork Distributed Switch (DVS): Maintains network
runtime state as VMs move
.
5-25
File System for VMs
Using VMware’s example:
All physical disks are clustered in to Pools
Each VM has a virtual disk in some pool with extension .vmdk
The disk is formatted using Virtual Machine File System (VMFS)
Thin Provisioning: Dynamic disk size. Occupies the minimum
space required and grows as the data grows
Thick Provisioning: Static. Full size is allocated at creation
Linked Clone: All VMs use the same disk (generally read-only),
e.g., operating system disk
Non-Linked Disk: Separate disks for each VM (writeable)
Persistent/Non-Persistent: Saved/Deleted on VM release.
Permanent/Temporary files
5-26
Open Virtualization Format (OVF)
Standalone software can be distributed as a virtual machine
image, called, virtual appliance
Independent of hypervisor or processor architecture
OVF is the standard format for virtual appliances
Standardized by DTMF (Distributed Management Task Force)
Now ISO/IEC standard.
OVF package consists of several files in a directory.
An XML file with extension .ovf or a compliant format, e.g.,
.vmdk in the directory contains all the meta data required to run
the package, e.g., hardware requirements, descriptions, security
certificates, etc.
VMware, Microsoft, Oracle, Citrix, IBM and many others
support OVF
5-27
OVF (Cont)
OVF V1.1.0 supports single VM packages and packages
containing multiple VMs constituting a multitier service
Other popular format are Microsoft’s Virtual Hard Disk
(VHD), and VMware’s Virtual Machine Disk (VMDK)
5-28
PCoIP Protocol
VMware proprietary protocol for virtual desktops
Content-Aware: Text and graphics are treated differently
Graphics is compressed
Server Rendered: All pixels are rendered on the server
No codec in the client
Delivery optimization based on real-time network conditions
Layered rendering: Graphics becomes clearer slowly
Can be used with/without a hardware PCoIP card
Alternatives:
Microsoft’s Remote Display Protocol (RDP)
Virtual Network Computing (VNC)
X Window System (X11)
5-29
Summary
5-31
Acronyms (Cont)
MS Microsoft
OS Operating System
OVF Open Virtualization Format
PC Personal Computer
SMP Symmetric Multiprocessing
SPARC Scalable Processor Architecture (Sun/Oracle)
svMotion Storage virtual motion
UML User-Mode Linux
USB Universal Serial Bus
VHD Virtual Hard Disk
VM Virtual Machine
VMFS Virtual Machine File System
vMotion Virtual Motion
XML eXtensible Markup Language
5-32