Published on

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Allows for multiple virtual machines to run different operating systems on the same hardware side by side
  • IBM had provided an IBM 704 computer, a series of upgrades (such as to the 709, 7090, and 7094), and access to some of its system engineers to MIT in the 1950s. It was on IBM machines that the Compatible Time Sharing System (CTSS) was developed at MIT. The supervisor program of CTSS handled console I/O, scheduling of foreground and background (offline-initiated) jobs, temporary storage and recovery of programs during scheduled swapping, monitor of disk I/O, etc. The supervisor had direct control of all trap interrupts.
  • Disappeared through most of the 80’s and 90’s even with the emergence of Java as a popular programming language, now making a comeback
  • - Give root to an untrusted user (e.g., student) to a virtual machine rather than the physical one - Many VMMs can save the state of a virtual machine (checkpoint) which means the virtual machine can be stopped and restarted. This allows for the real OS to be interrupted (shut down, upgraded, etc.) while long-running jobs on the virtual machine will be able to continue later.       - Some VMMs can move that state to other physical machines. So imagine you have a big real system with lots of virtual machines.  Some of those VMs are getting busy, and your big system is now overloaded.  You can install an additional real machine, and move some of those VMs to the new real machine transparently.
  • We now have Windows XP running on the Intel-based Macintosh — as a guest operating system under the Linux version of VMware . This is quite exciting and promising, especially since the performance of Windows XP seems quite amazing (based on our limited test run so far) — mind you, the kernel and the environment we are using are experimental and unoptimized, so it would not be unreasonable to expect even better performance.
  • The Xen 2.0 system that was used at OLS 2004. We're running KDE in domain 0 (which is a Redhat 9.0 install), with VNC connections to 4 other domains visible. The other domains are running SuSE (top left), Fedora Core 1 (top right), Knoppix (bottom left) and Fedora Core 2 (bottom right).
  • Puppy Linux running in QEMU running in FreeBSD running in QEMU running in Windows XP
  • 19-Virtualization.ppt

    1. 1. Virtualization and Virtual Machines (VM) Tom Gianos 3/29/06
    2. 2. What is it? <ul><li>Virtualization is a framework or methodology of dividing the resources of a computer into multiple execution environments, </li></ul><ul><ul><li>Done by applying one or more concepts or technologies such as: </li></ul></ul><ul><ul><ul><li>hardware and software partitioning, </li></ul></ul></ul><ul><ul><ul><li>time-sharing, </li></ul></ul></ul><ul><ul><ul><li>partial or complete machine simulation, </li></ul></ul></ul><ul><ul><ul><li>emulation, </li></ul></ul></ul><ul><ul><ul><li>quality of service, </li></ul></ul></ul><ul><ul><ul><li>and many others. </li></ul></ul></ul><ul><li>“ Virtualization is an abstraction layer that decouples the physical hardware from the operating system to deliver greater IT resource utilization and flexibility.” – www.vmware.com </li></ul>
    3. 3. A Brief History <ul><li>Not a new concept </li></ul><ul><li>1960’s at IBM: </li></ul><ul><ul><li>M44/44X Project, the goal of which was being to evaluate the then emerging time sharing system concepts </li></ul></ul><ul><ul><li>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) </li></ul></ul><ul><li>IBM and MIT headed research through the years and eventually developed the idea of a Virtual Machine Monitor (VMM) </li></ul>
    4. 4. Different Types of Virtual Machines <ul><li>Modern computer systems are composed of various hardware and software layers </li></ul><ul><li>Virtualization inserts a software layer (VMM) at different points in this architecture, comes in three variants: </li></ul><ul><ul><li>hardware-level virtualization </li></ul></ul><ul><ul><li>operating system-level </li></ul></ul><ul><ul><li>high-level language virtual machines </li></ul></ul>
    5. 5. Hardware Level Virtualization <ul><li>Virtualization layer sits right on top of the real hardware </li></ul><ul><li>Since the VM presents a version the real machine, all software written for that hardware (x86) will run on that virtual machine </li></ul><ul><li>Original design from IBM in the 1960’s </li></ul><ul><li>More on this later… </li></ul>
    6. 6. Operating System Level Virtualization <ul><li>Virtualization layer sit between the operating system and the application programs that run on the operating system </li></ul><ul><li>Virtual Machine runs applications, or sets of applications written for the operating system but in a controlled environment </li></ul><ul><ul><li>use host OS API </li></ul></ul><ul><li>FreeBSD jails act like this. What have we seen in lab that acts like this? </li></ul>chroot Real Machine OS VMM Virtual Machine Application Applications
    7. 7. High-level Language Virtual Machines <ul><li>The virtualization layer sits as an application program on top of the operating system </li></ul><ul><li>Can run any programs written for that virtual machine abstraction regardless of the operating system hosting that virtual machine </li></ul><ul><li>Anyone have an example of this? </li></ul>Java, Smalltalk Real Machine OS JVM Java Byte Code Applications
    8. 8. Attributes of All Virtual Machines (1/2) <ul><li>Software Compatibility </li></ul><ul><ul><li>VM provides compatible abstraction so all software written for the machine that VM is virtualizing will run on it </li></ul></ul><ul><ul><li>Java: “write once, run anywhere” </li></ul></ul><ul><li>Isolation </li></ul><ul><ul><li>All software running on the virtual machine is contained within it and can’t affect other VM’s or processes </li></ul></ul>
    9. 9. Attributes of All Virtual Machines (2/2) <ul><li>Encapsulation </li></ul><ul><ul><li>Virtual machines provide a level of indirection. Any software running within them can be controlled and manipulated. </li></ul></ul><ul><ul><li>Can act like putting a filter on a print service to monitor content or perform additional book keeping. </li></ul></ul><ul><ul><ul><li>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 </li></ul></ul></ul><ul><li>Performance </li></ul><ul><ul><li>Any new software layer adds overhead to system </li></ul></ul>
    10. 10. Hardware Virtual Machine Monitors <ul><li>Virtual machines are exported by thin layer of software, the VMM </li></ul><ul><li>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 </li></ul>
    11. 11. Main Concern of the VMM <ul><li>Biggest problem faced by the VMM is to present the hardware to the VM in a “safe, transparent and efficient way” </li></ul><ul><li>Safe </li></ul><ul><ul><li>whatever the VM does, it should not be able to affect other VM’s or the VMM </li></ul></ul><ul><li>Maintain illusion by tricking the software into thinking it has the hardware to itself and by hiding the true state of the hardware </li></ul>
    12. 12. Hardware Level VMM Attributes <ul><li>Software Compatibility </li></ul><ul><ul><li>Only needs to match the hardware interface which evolves much slower than software interfaces </li></ul></ul><ul><li>Isolation Capability </li></ul><ul><ul><li>Use the hardware (MMU amongst others) of the system to control access of the software running on the VM’s </li></ul></ul><ul><ul><li>Isolation is often comparable to if you were actually running separate physical machines </li></ul></ul><ul><ul><li>Isolation code of VMM much more manageable (10kloc) than that of modern operating system (100’skloc) </li></ul></ul>
    13. 13. More Attributes <ul><li>Encapsulation </li></ul><ul><ul><li>VMM manages both software and hardware thus giving it the ability to manage the hardware resources as well as manipulate and control software stack </li></ul></ul><ul><li>Performance </li></ul><ul><ul><li>Overhead is generally transparent for most workloads, only slowdowns occur for isolation or maintain the transparent illusion of hardware usage levels </li></ul></ul>
    14. 14. Possible uses/benefits for using a hardware level VMM as a system administrator?
    15. 15. Some I Had… <ul><li>Program testing and development </li></ul><ul><li>Accelerated application deployment </li></ul><ul><ul><li>Using pre-configured virtual machines </li></ul></ul><ul><li>Data isolation </li></ul><ul><ul><li>One VM access secure data, one on a public network </li></ul></ul><ul><li>Server consolidation </li></ul><ul><li>Used to run non trustworthy applications </li></ul>
    16. 16. More uses/benefits… <ul><li>Test patches or modification to OS or server configurations </li></ul><ul><li>Help maintain backward compatibility or legacy systems while also implementing and testing new systems to replace these </li></ul><ul><li>Implement resource monitoring within the VMM </li></ul><ul><li>Reduce hardware costs </li></ul>
    17. 17. Even more uses/benefits <ul><li>Give root to an untrusted user (e.g., student) in a virtual machine rather than the physical one </li></ul><ul><li>Many VMM’s can save the state of a virtual machine (checkpoint) which means the virtual machine can be stopped and restarted </li></ul><ul><li>Some VMM’s can move that state to other physical machines </li></ul>
    18. 18. VMware <ul><li>www.vmware.com </li></ul><ul><li>Hosted VMM </li></ul><ul><ul><li>Capable of extending modern operating system to support a virtual machine monitor that acts like a hardware level VMM </li></ul></ul><ul><li>Available for Windows or Linux as host OS </li></ul><ul><li>Several different products </li></ul><ul><ul><li>Player (free) </li></ul></ul><ul><ul><li>Workstation </li></ul></ul><ul><ul><li>Server (free) </li></ul></ul><ul><ul><li>Etc. </li></ul></ul>
    19. 19. VMware Workstation <ul><li>Runs on Linux and Windows machines </li></ul><ul><li>Allows you to create and run your own virtual machines </li></ul><ul><li>$189 </li></ul><ul><li>Free 30 day evaluation period </li></ul>
    20. 20. Workstation
    21. 21. Creating a New VM (1/3)
    22. 22. Creating a New VM (2/3)
    23. 23. Creating a New VM (3/3)
    24. 24. Starting Your Virtual Machine
    25. 25. Starting Up…
    26. 26. Looks Familiar
    27. 29. Even More Nerdy Fun
    28. 30. The Virtual Machine
    29. 31. Experience Notes So Far <ul><li>Couldn’t install FC5 or Solaris 10 </li></ul><ul><li>Performance doesn’t seem to be an issue at all </li></ul><ul><li>Easy to use keyboard shortcuts make navigating in and out of VM’s easy </li></ul><ul><li>Can easily alter the “real machine” the guest OS sees </li></ul><ul><li>One time VMware started blowing up in my CPU usage on the host OS, don’t know why </li></ul>
    30. 32. An example on Mac Hardware
    31. 33. VMware Player <ul><li>Free </li></ul><ul><li>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. </li></ul><ul><li>Features: </li></ul><ul><ul><li>Copy and paste </li></ul></ul><ul><ul><ul><li>Copy text and files between the virtual machine and the host PC. </li></ul></ul></ul><ul><ul><li>Drag and drop </li></ul></ul><ul><ul><ul><li>Drag and drop files between a Windows host PC and a Windows virtual machine. </li></ul></ul></ul><ul><ul><li>Integrated Google Search </li></ul></ul><ul><li>www.vmware.com/products/player/comparison.html </li></ul>
    32. 34. VMware Server <ul><li>Free virtualization software for partitioning a physical host server into multiple virtual machines </li></ul><ul><li>Target Uses: </li></ul><ul><ul><li>Streamline software development and testing </li></ul></ul><ul><ul><li>Evaluate software in ready-to-run virtual machines </li></ul></ul><ul><ul><li>Re-host legacy operating systems </li></ul></ul><ul><ul><li>Simplify server provisioning </li></ul></ul><ul><ul><li>Leverage pre-built, ready-to-run virtual appliances </li></ul></ul><ul><li>www.vmware.com/products/server_comp.html </li></ul>
    33. 35. Xen <ul><li>Open source VMM developed by University of Cambridge </li></ul><ul><li>Designed to be able to run 100 instances of OS’s at the same time </li></ul><ul><li>OS must be modified to run within Xen, due to paravirtualization </li></ul><ul><li>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 </li></ul>
    34. 36. Paravirtualization <ul><li>Presenting a software interface that doesn’t exactly match that of the underlying hardware </li></ul><ul><li>Need to port the OS to use the Xen API </li></ul><ul><li>So far NetBSD, FreeBSD, Linux and Plan 9 have been ported </li></ul>
    35. 38. VMware vs. Xen <ul><li>VMware can run any x86 OS unmodified </li></ul><ul><li>Xen provides better performance (usually 2% on benchmark tests vs. 20%) </li></ul><ul><li>Xen doesn’t support Windows yet since it is illegal to modify Windows, more on this later </li></ul><ul><li>Xen takes more work to get it up and running </li></ul><ul><li>Xen is free and is being supported by the Linux community including Red Hat (Fedora) </li></ul>
    36. 39. Red Hat’s “Integrated Virtualization Platform” <ul><li>Going to build virtualization technology right into Red Hat beginning with Fedora Core 5.0 </li></ul><ul><li>“ 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.” (searchopensource.techtarget.com) </li></ul><ul><li>Will also provide integration and support for Xen </li></ul>
    37. 40. QEMU <ul><li>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) </li></ul><ul><li>Two operating modes: </li></ul><ul><ul><li>User Mode Emulation </li></ul></ul><ul><ul><ul><li>QEMU can launch Linux processes compiled for one CPU on another CPU. </li></ul></ul></ul><ul><ul><li>System Mode Emulation </li></ul></ul><ul><ul><ul><li>QEMU emulates a full system, including a processor and various peripherals. </li></ul></ul></ul><ul><li>Seems far more complicated than VMware, but free </li></ul>
    38. 42. Countless Other Virtualization Technologies… <ul><li>SimOS </li></ul><ul><li>Microsoft Virtual Server </li></ul><ul><li>Mac-on-Linux </li></ul><ul><li>Linux-VServer </li></ul><ul><li>OpenVZ </li></ul><ul><li>Microsoft Virtual PC </li></ul><ul><li>See http://en.wikipedia.org/wiki/Comparison_of_virtual_machines </li></ul>
    39. 43. The Future <ul><li>Hardware companies have taken notice of virtualizations growing popularity and advantages </li></ul><ul><li>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 </li></ul><ul><li>This support will allow Xen to support unmodified unprivileged OS’s (hello Windows support) </li></ul>
    40. 44. Questions?
    41. 45. Sources <ul><li>www.wikipedia.org </li></ul><ul><li>www.kernelthread.com /publications/virtualization/ </li></ul><ul><li>acmqueue.com/modules.php?name = Content&pa = showpage&pid =168&page=1 </li></ul><ul><li>www.intel.com/business/bss/products/server/virtualization.htm </li></ul><ul><li>www.linuxjournal.com </li></ul><ul><li>www.vmware.com </li></ul><ul><li>searchopensource.techtarget.com/originalContent/0,289142,sid39_gci1172935,00.html </li></ul><ul><li>www.redhat.com </li></ul>