Virtualization Virtualization is the creation of substitutes for real resources – abstraction of real resources Users/Applications are typically unaware of the substitution (layer of abstraction) Examples: computing systems/servers network storage (e.g. SAN) network resources (e.g. VLANs, VPNs, HSRP - virtual ip address assignment).
System (machine) Virtualization A virtual machine is a tightly isolated software container that can run its own operating systems and applications as if it were a physical computer. Was first introduced by IBM in the 60’s X86 virtualization introduced in the 90’s by VMWare On a given h/w platform (host) – simulated (virtual) machine environments are created Benefits: consolidation to reduce hw costs workloads consolidation single consolidated view/management portability of virtual machines can be used for testing/training
System (machine) Virtualization
Hypervisor functionality
Virtualization approaches - Hosted Hosted approach – host O/S runs virtualization software, unmodified guest O/Ss run isolated from each other (separate virtual machines) Virtualization software is known as Type 2 hypervisor Additional resources are required for host O/S Example: Microsoft Virtual PC, VMWare Workstation
Hosted Architecture
Virtualization approaches - Hypervisor Hypervisor (bare-metal or type 1) approach – there’s no host O/S. Virtual machines run on top of type 1 hypervisor directly on a hardware platform No resources are wasted for a Host O/S Higher virtualization efficiency can be achieved Example: VMWare ESX Server
Hypervisor or Bare-metal Architecture
Paravirtualization Guest O/S is modified to include a call to hypervisor to access h/w resources Guest O/S is “aware” of running in a virtualized environment Makes the structure of hypervisor simpler May make virtual machine more efficient Can be a problem when Guest O/S can’t be modified (proprietary O/S)
Paravirtualization
HW Virtualization Virtualization on x86 machines was difficult to implement, involved a lot of overhead Starting in 2005 both Intel and AMD introduced processors enabled for virtualization – Intel VT and AMD-V Pacifica Both employ virtualization extensions to x86 architecture to allow more efficient virtualization
X86 architecture – privilege levels
Virtualization – ring de-privileging
X86 architecture – with virtualization Paravirtualization Binary Translation
X86 architecture – with HW- assisted virtualization
Virtual machine networking Virtual Embedded Bridge – a software switch as part of the hypervisor
Virtual machine networking External Hardware Switch – switching function performed by an external switch
Traditional Infrastructure
Virtual Infrastructure