Upload
simun3332000
View
222
Download
4
Tags:
Embed Size (px)
DESCRIPTION
Power point presentation
Citation preview
Virtualization and Virtual Machines (VM)Tom Gianos
3/29/06
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.” – www.vmware.com
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 concepts
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 variants: hardware-level virtualization operating system-level high-level language virtual
machines
Hardware Level Virtualization
Virtualization layer sits right on top of the real hardware
Since the VM presents a version the real machine, all software written for that hardware (x86) will run on that virtual machine
Original design from IBM in the 1960’s
Operating System Level Virtualization Virtualization layer sit between the
operating system and the application programs that run on the operating system
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
this? chrootReal Machine
OS
VMM
Virtual Machine
Application
Applications
High-level Language Virtual Machines The virtualization layer sits
as an application program on top of the operating system
Can run any programs written for that virtual machine abstraction regardless of the operating system hosting that virtual machine
Anyone have an example of this?
Java, Smalltalk
Real Machine
OS
JVM
Java Byte Code
Applications
Attributes of All Virtual Machines (1/2) 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
All software running on the virtual machine is contained within it and can’t affect other VM’s or processes
Attributes of All Virtual Machines (2/2) Encapsulation
Virtual machines provide a level of indirection. Any software running within them can be controlled and manipulated.
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 (100’skloc)
More Attributes
EncapsulationVMM manages both software and hardware thus
giving it the ability to manage the hardware resources as well as manipulate and control software stack
PerformanceOverhead 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 network
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 VMM
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
VMware
www.vmware.com Hosted VMM
Capable of extending modern operating system to support a virtual machine monitor that acts like a hardware level VMM
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
Workstation
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
sees 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 machine.
Integrated Google Search www.vmware.com/products/player/comparison.html
VMware Server
Free virtualization software for partitioning a physical host server into multiple virtual machines
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
www.vmware.com/products/server_comp.html
Xen
Open source VMM developed by University of Cambridge
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 paravirtualization
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
Paravirtualization
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 Platform” 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.” (searchopensource.techtarget.com)
Will also provide integration and support for Xen
QEMU
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
peripherals.
Seems far more complicated than VMware, but free
Countless Other Virtualization Technologies… SimOS Microsoft Virtual Server Mac-on-Linux Linux-VServer OpenVZ Microsoft Virtual PC See http://en.wikipedia.org/wiki/Comparison_of_virtual_machines
The Future
Hardware companies have taken notice of virtualizations growing popularity and advantages
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 support)
Questions?
Sources
www.wikipedia.org www.kernelthread.com/publications/virtualization/ acmqueue.com/modules.php?name=Content&pa=
showpage&pid=168&page=1 www.intel.com/business/bss/products/server/virtualizatio
n.htm www.linuxjournal.com www.vmware.com searchopensource.techtarget.com/originalContent/0,289
142,sid39_gci1172935,00.html www.redhat.com