Unit II
• Introduction to virtualization, Different approaches to
  virtualization, Hypervisors, Machine Image, Virtual
  Machine (VM), Compute options in the cloud, Exploring
  IaaS with Compute Engine, Configuring elastic apps with
  auto scaling, Basics of virtualization and implementation
  challenges.               System             virtualization
  technologies-architectures and internals. KVM, Xen,
  VMware.
• Memory         virtualization-virtualization   techniques,
  ballooning, deduplication and sharing. Network and
  storage virtualization, Virtual machine migration and
  replication techniques pre-copy and post- copy techniques,
  applicability to system availability
                                   Virtualization
• One of the main cost effective, hardware reducing, and
  energy saving techniques used by cloud providers is
  virtualization.
• Virtualization allows to share a single physical instance
  of a resource or an application among multiple customers
  and organizations at one time.
• It does this by assigning a logical name to a physical
  storage and providing a pointer to that physical resource
  on demand.
• It provide a virtual environment for not only executing
  applications but also for storage, memory, and
  networking.
      BENEFITS OF VIRTUALIZATION
1. More flexible and efficient allocation of resources.
2. It lowers the cost of IT infrastructure.
3. Remote access and rapid scalability.
5. High availability
4. disaster recovery.
6. IT infrastructure on demand.
7. Enables running multiple operating systems.
                      Types of Virtualization
1.Application Virtualization.
2.Network Virtualization.
3.Desktop Virtualization.
4.Storage Virtualization.
5.Server Virtualization.
6.Data virtualization.
                               Virtual Machines
• A machine with virtualization software can host numerous
  applications, including those that run on different
  operating systems, on a single platform.
• Virtualization is a technique, which allows to share single
  physical instance of an application or resource among
  multiple organizations or tenants (customers).
• It does so by assigning a logical name to a physical
  resource and providing a pointer to that physical
  resource on demand
        Host machine, Guest machine
• The machine on which the virtual machine is created is
  known as host machine
• Virtual machine is referred as a guest machine.
• This virtual machine is managed by a software or
  firmware, which is known as hypervisor or virtual
  machine monitor (VMM).
Hypervisor
                          Types Of Hypervisor
• Type 1 ("bare metal“)
• Type 2 ("hosted")
                                               Type 1
• The hypervisor runs directly on the underlying host
  system.
• It does not require any base server operating system.
• It has direct access to hardware resources.
• Examples :VMware ESXi, Citrix XenServer, and Microsoft
  Hyper-V hypervisor
• Advantages
• Faster -As they can directly communicate with hardware
  resources
• Secure- if a single virtual machine crash, it does not affect
  the rest of the guest operation system.
• generate less overhead
                                                  TYPE-2
• A Host operating system runs on the underlying host
  system.
• Basically, the software is installed on an operating system.
  Hypervisor asks the operating system to make hardware
  calls.
• Example : VMware Player or Parallels Desktop, KVM,
  Microsoft Hyper V, VMWare Fusion, Virtual Server 2005
  R2, Windows Virtual PC and VMWare workstation 6.0.
• The type-2 hypervisor is very useful for engineers, and
  security analysts (for checking malware, or malicious
  source code and newly developed applications).
                                            Virtualization
Virtual Machines (VMs):
   ▪ Abstraction of a physical host machine
   ▪ Resource (e.g. CPU, memory share),
   ▪ Software configuration (e.g. O/S, provided services).
   ▪ Hypervisor intercepts and emulates instructions from VMs, and
     allows management of VMs,
   ▪ VMWare, Xen, etc.
                                                         App      App       App
                                                         OS       OS        OS
                                                               Hypervisor
                                                               Hardware
                                                          Virtualized Stack
                                            Virtual Machines
• VM technology allows multiple virtual machines to run on
  a single physical machine.
     App    App      App              App    App
                                                   Xen
      Guest OS        Guest OS         Guest OS
       (Linux)        (NetBSD)         (Windows)
                                                   VMWare
           VM              VM               VM
      Virtual Machine Monitor (VMM) / Hypervisor
                                                   Denali
                      Hardware
15
                      Virtualization in General
• Advantages of virtual machines:
     ▪ Run operating systems where the physical hardware is
       unavailable,
     ▪ Easier to create new machines, backup machines, etc.,
     ▪ Software testing using “clean” installs of operating systems
       and software,
     ▪ Emulate more machines than are physically available,
     ▪ Timeshare lightly loaded systems on one host,
     ▪ Debug problems (suspend and resume the problem
       machine),
     ▪ Easy migration of virtual machines (shutdown needed or
       not).
16
     Some Commercial Cloud Offerings
17
     Cloud Taxonomy
18
     The cloud computing architecture
19
     Cloud Computing Services Classification
20
     Infrastructure-as-a-Service
21
     The Platform-as-a-Service reference
                                  model
22
     A taxonomy of virtualization techniques.
23
                              User’s View of Virtualization
• SAN: Storage Area Network
• NAS: Network Attached Storage
Difference between Traditional Computer and
                            Virtual machines
                                     Virtualization - Basics
• The ability to run multiple operating systems on a single
  physical system and share the underlying hardware resources
• Virtualization can be viewed as utility computing, in which
  computer processing power is seen as a utility that clients can
  pay for only as needed.
• The usual goal of virtualization is to centralize administrative
  tasks while improving scalability and work loads
                                         Virtualization example
• Dividing your actual hard drive into different partitions.
• A partition is the logical division of a hard disk drive to create,
  in effect, two or more separate hard drives C:, D:, E: etc..
                Traditional App/Server
                               Virtualization - Definition
• It is "a technique for hiding the physical characteristics of
  computing resources from the way in which other systems,
  applications, or end users interact with those resources.
• This includes making a single physical resource (such as a
  server, an operating system, an application, or storage device)
  appear to function as multiple logical resources;
• OR - it can include making multiple physical resources (such
  as storage devices or servers) appear as a single logical
  resource."
                                      Why Virtualization?
• Cost Reduction.
• Isolation and creating protected environment.
• Testing and evaluation of OS, kernel, or an
  application.
• Ease of duplication.
• Relocation (and disaster recovery).
• Running Application not supported by the host.
• Green IT
                                             Why Virtualization?
• The Reality:
  ✔ Most servers only use 5-15% of their capabilities on average, while
     consuming 60-90% of their peak power
• The Solution – Virtualization
   o Use one server to host multiple applications.
   o Reduce energy consumption
   o Reduce CO2 emissions
Running fewer, highly utilized servers
frees up space and power. Less space and
power is better for environment and saves
money.
                                       Virtualization Benefits
•   Reduce Real Estate Needs
•   Increase Up Time
•   Reduce CO2 Emissions, Power and Cooling Requirements
•   Increase Flexibility
•   Reduce Overall Costs
Virtualized Model - Cloud
Types of Virtualization
             1) Hardware Virtualization
• When the virtual machine software or virtual machine
  manager (VMM) is directly installed on the hardware
  system is known as hardware virtualization.
• The main job of hypervisor is to control and monitoring the
  processor, memory and other hardware resources.
• After virtualization of hardware system we can install
  different operating system on it and run different
  applications on those OS.
• Usage:
• Hardware virtualization is mainly done for the server
  platforms, because controlling virtual machines is much
  easier than controlling a physical server.
      2) Operating System Virtualization
• When the virtual machine software or virtual machine
  manager (VMM) is installed on the Host operating
  system instead of directly on the hardware system is
  known as operating system virtualization.
• Usage:
• Operating System Virtualization is mainly used for testing
  the applications on different platforms of OS.
                    3) Server Virtualization
• It partition the resources of a server, which consist of
  hardware, software and networking resources, and
  distributing them over a network.
• When the virtual machine software or virtual machine
  manager (VMM) is directly installed on the Server system is
  known as server virtualization.
• virtual servers
• Usage:
• Server virtualization is done because a single physical
  server can be divided into multiple servers on the demand
  basis and for balancing the load.
                       4) Storage Virtualization
• Storage virtualization is the process of grouping the
  physical storage from multiple network storage devices so
  that it looks like a single storage device.
• gathering and merging multiple physical storage arrays and
  presenting them as a single storage location to the user over
  a network.
• It is employed typically by organizations and individuals
  looking to scale and maintain their systems’ storage without
  investing in physical storage devices.
• E.g. 2 TB disk drive (pooling several storage locations to
  offer it)
Usage:
????
????
• back-up and recovery purposes.
• It enables users to scale their storage capacity on-demand.
• It allows organizations to manage large amounts of crucial
  data by allocating it to a single location.
• Backing up, recycling and dropping data is much easier
  when consolidated at a single storage location.
• Virtualizing storage offers better storage performance at
  significantly lesser expenses.
                       Desktop Virtualization
• It allows the users’ OS to be remotely stored on a server
  in the data centre.
• It allows the user to access their desktop virtually, from
  any location by a different machine.
• Users who want specific operating systems other than
  Windows Server will need to have a virtual desktop.
• Benefits
   ▪ user mobility,
   ▪ portability,
   ▪ easy management of software installation, updates, and
     patches.
                          Network Virtualization
• The ability to run multiple virtual networks with each has a
  separate control and data plan.
• It co-exists together on top of one physical network.
• It can be managed by individual parties that is confidential to
  each other.
• Network virtualization provides a facility to create virtual
  networks—
   ▪   logical switches,
   ▪   routers,
   ▪   firewalls,
   ▪   load balancer,
   ▪   Virtual Private Network (VPN), and
   ▪   workload security within days or even in weeks.
                Application Virtualization
• process of deploying a computer application over a network
  (the cloud)
• It helps a user to have remote access of 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.
Advantages
• users can access a lots of applications in real-time without
  having to allocate too much storage to all of them.
• Users can also run applications not supported by their devices’
  operating systems.
• it eliminates the need for managing and updating several
  applications across different operating systems for IT teams.
                                   VM Taxonomy
Process VM
• These VMs are platforms created by operating system
  specifically for the process.
• These VMs are created when the application is initiated
  and they are destroyed when the application finishes
  execution.
• These VM support binaries compiled on different
  instruction set.
• Example: Java Virtual Machine.(JVM)
• The virtualizing software in the process VM environment
  translates one instruction from one platform to another
  platform.
• programs developed for variety of operating system or
  with different instruction set architecture can be executed.
• These VMs terminates automatically once the process
  terminates.
• “Platform independent”
                                            System VM
• It is the VM that is generally created for virtualizing the
  underlying hardware and networking resources.
• It provide a complete operational environment,
   ▪   guest operating system,
   ▪   user process,
   ▪   networking components,
   ▪   input output environment,
   ▪   graphical display components etc.
• These VMs are tied to the system and not any specific
  process and will be running as long as the host hardware is
  running or user terminates the VMs.
• have their own guest operating systems, which are made
  bootable from OS template called images.
• VMM manages the allocation of, and access to, the
  hardware resources of the host platform.
                        Primitive Operations in Virtual Machines
• A Multiplexing
                        • BS Suspension(Storage)
• C Provision(Resume)   • D Life Migration
                               VM Multiplexing
• multiplexing =>the ability of using multiple instances.
• In a virtualized environment, applications are deployed in
  VMs and hence restrictions regarding the number of VMs
  that can be launched, type of application that can be run
  in the VMs, the amount or share of the hardware that
  can be consumed by these applications become irrelevant.
• Hence called VM multiplexing
                                VM Suspension
• It is the process of moving the virtual machines to a
  paused state from running state.
• Any running or waiting VMs may be suspended from the
  current state and moved to storage,
• The VMs reside in storage until revoked back to
  execution.
                              VM Provisioning
• When needed, a suspended VM can be brought back to the
  execution environment and be scheduled on the same
  hardware or on a different hardware.
                                        VM migration
• The VMs can be migrated directly from one server to
  another server
   ▪ live migration without shutting down the virtual machines.
     Moving a powered on virtual machine to a new host.(hot
     migration)
   ▪ cold migration by shutting down the VMs and migrating the VM
     and rebooting the VM at destination. Moving a powered off or
     suspended virtual machine to a new host
                    Implementation Levels of Virtualization
• Hardware
   ▪ Server / OS / Devices ( peripheral devices like printer etc..)
   ▪ Desktop ( similar to above)
   ▪ Storage ( Memory, hard disk etc..)
   ▪ Network
• Application software
• Data
• FULL Virtualization
                                        Virtualization Techniques
•   Full Virtualization.
•   OS-level Virtualization.
•   Partial Virtualization (Historical, not used).
•   Para-virtualization.
•   Hardware -assested Virtualization.
• Para-virtualization
– VM does not simulate hardware
– Use special API that a modified guest OS must use
– Hypercalls trapped by the Hypervisor and serviced
– Xen, VMWare ESX Server
• OS-level virtualization
– OS allows multiple secure virtual servers to be run
– Guest OS is the same as the host OS, but appears isolated
– apps see an isolated OS
– Solaris Containers, BSD Jails, Linux Vserver
• Application level virtualization
– Application is gives its own copy of components that are not shared
– (E.g., own registry files, global objects)
– VE prevents conflicts
– JVM
                                          Full Virtualization
• Full simulation of underlying hardware.
• Sharing a computer system among multiple users.
• Isolating users from each other (and from the control
  program).
• The result is a system in which all software (including all
  OS’s) capable of execution on the raw hardware can be run
  in the virtual machine.
• Comprehensively simulate all computing elements as
  instruction set, main memory, interrupts, exceptions, and
  device access.
• Full virtualization is only possible given the right
  combination of hardware and software elements.
      The host OS emulated a hardware layer for each guest
      OS.
                       Hardware-level virtualization-Server
• It is the masking of server resources (including the number
  and identity of individual physical servers, processors, and
  operating systems) from server users.
• The intention is to spare the user from having to understand
  and manage complicated details of server resources while
  increasing resource sharing and utilization and maintaining
  the capacity to expand later.
• How dual boot is different ?
    ▪ In virtualization multiple OS run simultaneously
                                    OS-Level Virtualization
• Concept: Same OS for everyone (host & guest), and isolation is
  only in the user land.
• Pros: low overhead, highest performance.
• Cons: isolation, stability.
• Examples: FreeBSD Jails, Solaris Containers, Virtuzzo/Open
  VZ.
                                          Para virtualization
•   Concept: A thin layer (called the hypervisor), interfaces the hardware to
    all OS's (host and guest), Dom0 is called ”the privileged domain” which
    can issue commands to the hypervisor.
•   If Dom0 crashed (not the hypervisor), the guest OS still runs fine,
    anyway you won't be able to control the hypervisor till you reboot.
                                                     Para virtualization
•   Pros:
•   Stability is very close to the hardware virtualization.
•   Performance is very good (nothing can beat OS-level virtualization in
    this matter).
•   Overhead is very low (kernel level only, and not even a complete kernel).
•   Cons:
•   Not easy to implement (it's getting better these days).
•   Both host and guest kernels has to be patched.
•   Maintainability.
•   Example: Xen
                                 Hardware- assisted Virtualization
•   Sometimes it's called accelerated virtualization or HVM (Hardware
    Virtual Machines).
•   Concept: Hardware provides support to run instructions independently
    for each OS.
•   Implémentation: IBM 370 (1972), Intel VT, AMD-V, UltraSparc, and
    others.
•   Exemples: linux KVM, Vmware fusion, M$ VirtualPC, Xen, Virtual Box.
                     Hardware- assisted Virtualization
• Pros:
• Highly reduces (theoretically eliminates) the
  need to patch the guest OS.
• Theoretically optimal performance.
• Great Stability.
• Cons:
• Hardware restrictions.
                                  Tools for Virtualization
• Amazon EC2 (Elastic Compute Generation 2)
• VMware – vSphere (Platform)
• Nimbus( Infrastructure as a service)
• Open Nebula( Flexible Enterprise Cloud)
• Eucalyptus( S/w for building Amazon Web
  Services)
• O-virt (Free, Open source Virtualization
  Platform, founded by Red Hat as a community
  project)
                                                    Hypervisor
• Hypervisor runs above the supervisor mode.
• It runs in supervisor mode.
• It recreates a h/w environment.
• It is a piece of s/w that enables us to run one or more VMs on
  a physical server(host).
• Two major types of hypervisor
• Type -I
• Type-II
                                                                          Type-I Hypervisor
•     It runs directly on top of the                                Type I Hypervisor
      hardware.
•     Takes place of OS.
•     Directly interact with the ISA          Windows              Windows            Linux            Linux
      exposed by the underlying               virtual              virtual            virtual          virtual
      hardware.                               machine              machine            machine          machine
•     Also known as native virtual
      machine
•     Example: IBM CP/CMS
                                                                   Para virtualization drivers and
      hypervisor                                                                 tools
                                                      Hypervisor (VMware vSphere, Citrix XenServer, Microsoft
                                                                           Hyper-V
    **ISA-Internet security and acceleration server                 Host – Physical hardware
    **ABI-Application binary interface
                    Type-II Hypervisor
  •   It require the support of an
                                                                   Type II Hypervisor
      operating system to provide
      virtualization services.
  •   Programs managed by the OS.                  Window          Window            Linux           Linux
  •   Emulate the ISA of virtual h/w.              s virtual       s virtual         virtual         virtual
                                                   machine         machine           machine         machine
  •   Also called hosted virtual
      machine.
                                                                  Para virtualization drivers and
                                                                                tools
                                                   Hypervisor (Microsoft Virtual Server, VMware workstation)
                                                                    Host – Operating system
** ISA-Internet security and acceleration server                   Host – Physical hardware
**ABI- Application binary interface
                                   Virtual Machine Manager (VMM)
•   Main Modules                               Interpreter
                                             ✔ Consists of interpreter routines
     Dispatcher
                                             ✔ Executed whenever a VM executes a
     ✔ Entry Point of VMM                        privileged instruction.
     ✔ Reroutes the instructions issued by   ✔ Trap is triggered and the corresponding
       VM instance.                              routine is executed.
      Allocator
     ✔ Deciding the system resources to be
      provided to the VM.
    ✔ Invoked by dispatcher
Virtual Machine Manager (VMM)
                                             VMM Architecture
                                   SQL
                                                      Manageme
     App Controller                                   nt Console
                      Management
                        Server
 Hosts (1000 Per                   Library
Management Server)
                                              Criteria of VMM
• Equivalence – same behavior as when it is executed directly
  on the physical host.
• Resource control – it should be in complete control of
  virtualized resources.
• Efficiency – a statistically dominant fraction of the machine
  instructions should be executed without intervention from the
  VMM