Document Sample
Virtualization Powered By Docstoc
					Virtualization and
Virtual Machines
Tom Gianos
What is it?
   Virtualization is a framework or methodology of dividing the
    resources of a computer into multiple execution environments,
        Done by applying one or more concepts or technologies such as:
             hardware and software partitioning,
             time-sharing,
             partial or complete machine simulation,
             emulation,
             quality of service,
             and many others.

   “Virtualization is an abstraction layer that decouples the physical
    hardware from the operating system to deliver greater IT resource
    utilization and flexibility.”            –
A Brief History
   Not a new concept
   1960’s at IBM:
     M44/44X   Project, the goal of which was being to
      evaluate the then emerging time sharing system
     The architecture was based on virtual machines: the
      main machine was an IBM 7044 (M44) and each
      virtual machine was an experimental image of the
      main machine (44X)
   IBM and MIT headed research through the years
    and eventually developed the idea of a Virtual
    Machine Monitor (VMM)
Different Types of Virtual Machines
   Modern computer systems are
    composed of various hardware
    and software layers

   Virtualization inserts a
    software layer (VMM) at
    different points in this
    architecture, comes in three
      hardware-level virtualization
      operating system-level
      high-level language virtual
Hardware Level Virtualization
   Virtualization layer sits
    right on top of the real
   Since the VM presents a
    version the real machine,
    all software written for
    that hardware (x86) will
    run on that virtual
   Original design from IBM
    in the 1960’s
   More on this later…
Operating System Level
   Virtualization layer sit between the     Application
    operating system and the
    application programs that run on       Virtual Machine
    the operating system
                                               VMM              Applications
   Virtual Machine runs applications,
    or sets of applications written for
    the operating system but in a
    controlled environment
      use host OS API
   FreeBSD jails act like this. What
    have we seen in lab that acts like            Real Machine
High-level Language Virtual
   The virtualization layer
                               Java Byte Code
    sits as an application
    program on top of the           JVM
    operating system
   Can run any programs
    written for that virtual
    machine abstraction                      OS
    regardless of the
    operating system hosting
    that virtual machine             Real Machine
   Anyone have an example
    of Java, Smalltalk
Attributes of All Virtual Machines
   Software Compatibility
     VM   provides compatible abstraction so all
      software written for the machine that VM is
      virtualizing will run on it
     Java: “write once, run anywhere”

   Isolation
     Allsoftware running on the virtual machine is
      contained within it and can’t affect other VM’s
      or processes
Attributes of All Virtual Machines
   Encapsulation
     Virtualmachines provide a level of indirection. Any
      software running within them can be controlled and
     Can act like putting a filter on a print service to
      monitor content or perform additional book keeping.
          Java VM for example can perform run time error checking
           and garbage collection that C++ compiled code can’t do
           running directly on the hardware
   Performance
     Any   new software layer adds overhead to system
Hardware Virtual Machine Monitors

   Virtual machines are exported by thin layer
    of software, the VMM

   The hardware level VMM runs directly on
    the hardware and can export multiple VM’s
    that look exactly like or similar to the real
    hardware the hardware
Main Concern of the VMM
   Biggest problem faced by the VMM is to present
    the hardware to the VM in a “safe, transparent
    and efficient way”
   Safe
     whatever the VM does, it should not be able to affect
      other VM’s or the VMM
   Maintain illusion by tricking the software into
    thinking it has the hardware to itself and by
    hiding the true state of the hardware
Hardware Level VMM Attributes
   Software Compatibility
     Only needs to match the hardware interface which
      evolves much slower than software interfaces
   Isolation Capability
     Use  the hardware (MMU amongst others) of the
      system to control access of the software running on
      the VM’s
     Isolation is often comparable to if you were actually
      running separate physical machines
     Isolation code of VMM much more manageable
      (10kloc) than that of modern operating system
More Attributes
   Encapsulation
     VMM   manages both software and hardware
      thus giving it the ability to manage the
      hardware resources as well as manipulate
      and control software stack
   Performance
     Overhead   is generally transparent for most
      workloads, only slowdowns occur for isolation
      or maintain the transparent illusion of
      hardware usage levels
Possible uses/benefits
for using a hardware
level VMM as a
system administrator?
Some I Had…
 Program testing and development
 Accelerated application deployment
     Using   pre-configured virtual machines
   Data isolation
     One VM access secure data, one on a public
 Server consolidation
 Used to run non trustworthy applications
More uses/benefits…
 Test patches or modification to OS or
  server configurations
 Help maintain backward compatibility or
  legacy systems while also implementing
  and testing new systems to replace these
 Implement resource monitoring within the
 Reduce hardware costs
Even more uses/benefits
   Give root to an untrusted user (e.g., student) in a
    virtual machine rather than the physical one
   Many VMM’s can save the state of a virtual
    machine (checkpoint) which means the virtual
    machine can be stopped and restarted
   Some VMM’s can move that state to other
    physical machines
   Hosted VMM
       Capable of extending modern
        operating system to support a
        virtual machine monitor that
        acts like a hardware level
   Available for Windows or Linux
    as host OS
   Several different products
     Player (free)
     Workstation
     Server (free)
     Etc.
VMware Workstation
 Runs on Linux and Windows machines
 Allows you to create and run your own
  virtual machines
 $189
 Free 30 day evaluation period
Creating a New VM (1/3)
Creating a New VM (2/3)
Creating a New VM (3/3)
Starting Your Virtual Machine
Starting Up…
Looks Familiar
Even More Nerdy Fun
The Virtual Machine
Experience Notes So Far
   Couldn’t install FC5 or Solaris 10
   Performance doesn’t seem to be an issue at all
   Easy to use keyboard shortcuts make navigating
    in and out of VM’s easy
   Can easily alter the “real machine” the guest OS
   One time VMware started blowing up in my CPU
    usage on the host OS, don’t know why
An example on Mac Hardware
VMware Player
   Free
   Run any virtual machine created in Workstation or other VMware
    products such as GSX Sever, ESX Server or downloaded from BEA,
    IBM Software, MySQL, Novell, Oracle, Red Hat, etc.
   Features:
        Copy and paste
             Copy text and files between the virtual machine and the host PC.
        Drag and drop
             Drag and drop files between a Windows host PC and a Windows virtual
     Integrated Google Search
VMware Server
   Free virtualization software for partitioning a
    physical host server into multiple virtual
   Target Uses:
     Streamline  software development and testing
     Evaluate software in ready-to-run virtual machines
     Re-host legacy operating systems
     Simplify server provisioning
     Leverage pre-built, ready-to-run virtual appliances
   Open source VMM developed by University of
   Designed to be able to run 100 instances of
    OS’s at the same time
   OS must be modified to run within Xen, due to
   Xen runs by having one OS in a privileged state
    called Domain-0 which is booted on start up and
    is then used to start all other unprivileged OS’s
    in Xen
 Presenting a software interface that
  doesn’t exactly match that of the
  underlying hardware
 Need to port the OS to use the Xen API
 So far NetBSD, FreeBSD, Linux and Plan
  9 have been ported
VMware vs. Xen
   VMware can run any x86 OS unmodified
   Xen provides better performance (usually 2% on
    benchmark tests vs. 20%)
   Xen doesn’t support Windows yet since it is
    illegal to modify Windows, more on this later
   Xen takes more work to get it up and running
   Xen is free and is being supported by the Linux
    community including Red Hat (Fedora)
Red Hat’s “Integrated Virtualization
   Going to build virtualization technology right into
    Red Hat beginning with Fedora Core 5.0
   “This summer, Red Hat will make available
    Virtualization Migration and Assessment
    Services along with an Enterprise Virtualization
    beta. Red Hat Enterprise Linux 5, which the
    company scheduled for general availability by
    the end of 2006, is expected to feature fully
    integrated virtualization.”
   Will also provide integration and support for Xen
   Free software that acts similar to VMware, but is said to
    be faster on x86, supports more architectures as well
    (SPARC, MIPS, PowerPC, PowerMac, ARM)
   Two operating modes:
       User Mode Emulation
            QEMU can launch Linux processes compiled for one CPU on
             another CPU.
       System Mode Emulation
            QEMU emulates a full system, including a processor and various
   Seems far more complicated than VMware, but free
Countless Other Virtualization
 SimOS
 Microsoft Virtual Server
 Mac-on-Linux
 Linux-VServer
 OpenVZ
 Microsoft Virtual PC
 See
The Future
   Hardware companies have taken notice of
    virtualizations growing popularity and
   Intel (called Virtualization Technology or VT-X
    Vanderpool) and AMD (Pacifica) are releasing
    processors that have built in software
    virtualization support that try to eliminate
    emulation costs
   This support will allow Xen to support
    unmodified unprivileged OS’s (hello Windows