220 likes | 365 Views
Yin Yunqiao yunqiao.yin@hp.com 2007-08-31 HP. A Brief Introduction To Virtualization Technologies. Virtualization. In computing, virtualization is a broad term that refers to the abstraction of computer resources. Platform virtualization Resource virtualization. Platform Virtualization.
E N D
Yin Yunqiao yunqiao.yin@hp.com 2007-08-31 HP A Brief Introduction To Virtualization Technologies
Virtualization • In computing, virtualization is a broad term that refers to the abstraction of computer resources. • Platform virtualization • Resource virtualization
Platform Virtualization • Emulation or simulation • Native virtualization and full virtualization • Hardware enabled virtualization • Partial virtualization • Paravirtualization • Operating system-level virtualization • Application Virtualization
Emulation or simulation • allowing an unmodified "guest" OS for a completely different CPU to be run. • Examples: • Bochs • PearPC • VirtualPC • QEMU(without acceleration)
Native and Full Virtualization • the virtual machine simulates enough hardware to allow an unmodified "guest" OS (one designed for the same CPU) to be run in isolation. • Examples: • VirtualBox • Virtual PC • Vmware • QEMU • Win4Lin • XEN/Virtual Iron
Hardware enabled virtualization • the virtual machine has its own hardware and allows a guest OS to be run in isolation. • Intel VT (IVT) • AMD virtualization (AMD-V) • Examples: • VMware Fusion • Parallels Desktop for Mac • Parallels Workstation
Partial virtualization • the virtual machine simulates multiple instances of much (but not all) of an underlying hardware environment, particularly address spaces.
Paravirtualization • the virtual machine does not necessarily simulate hardware, but instead (or in addition) offers a special API that can only be used by modifying the "guest" OS. • Terminologies • Hypervisor, hypercall • Enomalism • Examples: • XEN, KVM, Win4Lin 9x
Operating system-level virtualization • virtualizing a physical server at the operating system level, enabling multiple isolated and secure virtualized servers to run on a single physical server. • Examples: • Parallels Workstation • Linux-VServer, Virtuozzo • OpenVZ, Solaris Containers • FreeBSD Jails • Chroot ?
Application Virtualization • typically for the purpose allowing application binaries to be portably run on many different computer architectures and operating systems. • http://en.wikipedia.org/wiki/Comparison_of_Application_Virtual_Machines • Examples: • .NET CLR • JVM • Script Languages:Python,Ruby,Javascript...
Resource Virtualization • RAID • SAN • Channel bondings • VPN/NAT • Multiprocessor and multi-core • Cluster and Grid computing • Partitioning
Virtualization Under Linux(1) • UML (User Mode Linux) • http://user-mode-linux.sourceforge.net/ • KVM (Kernal-based Virtual Machine) • From Linux-2.6.20 • http://kvm.qumranet.com/kvmwiki • XEN • http://xen.xensource.com/
Virtualization Under Linux(2) • QEMU • http://fabrice.bellard.free.fr/qemu/ • QEMU Accelerators • KQEMU • QVM86 • VirtualBox (released in January 2007) • KVM with QEMU
Virtualization Under Linux(3) • Bochs (GPLed, very slow) • A portable x86 and AMD64 PCs emulator mostly written in C++ and distributed as free software under GPL. • http://bochs.sourceforge.net/ • VirtualBox(commercial&open source, fast) • http://www.virtualbox.org/ • VMWare (Workstation,Server,Player)
Virtualization Under Linux(4) • SWSOFT Virtualizations • http://www.swsoft.com • http://www.parallels.com/ • http://openvz.org/ • Linux-VServer • http://linux-vserver.org/ • Compare with: • FreeBSD Jail • Solaris Containers (Zones)
Linux Virtualization in Windows(1) • VMWare • Virtual PC • VirtualBox • Bochs • QEMU
Linux Virtualization in Windows(2) • CoLinux Cooperative Linuxhttp://www.colinux.org/ • Topologilinuxhttp://www.topologilinux.com
Linux Virtualization in Windows(3) • MinGW Minimalist GNU for Windows • Cygwin • GNUWIN32 • GNUWINII • UnxUtils • UWIN • SFUMicrosoft Windows Services for UNIX,aka Interix
Comparison of virtual machines • http://en.wikipedia.org/wiki/Comparison_of_virtual_machines
History of virtualization development 2005 Intel VT 2006 AMD VT 2005 XEN 2006 VMWare Server 2006 Virtual PC 2006 2006 HP IVM Version 2.0 2006 Virtual Iron 3.1 2007 InnoTek VirtualBox 2007 KVM in Linux Kernel 2007 XEN in Linux Kernel • 1965 IBM M44/44X paging system • 1965 IBM System/360-67 virtual memory hardware • 1967 IBM CP-40 (January) and CP-67 (April) time-sharing • 1972 IBM VM/370 run VM under VM • 1997 Connectix First version of Virtual PC • 1998 VMWare U.S. Patent 6,397,242 • 1999 VMware Virtual Platform for the Intel IA-32 architecture • 2000 IBM z/VM • 2001 Connectix Virtual PC for Windows • 2003 Microsoft acquired Connectix • 2003 EMC acquired Vmware • 2003 VERITAS acquired Ejascent • 2005 HP Integrity Virtual Machines
References • Wikipedia for any virtualization Terminologies • Virtual Linux:An overview of virtualization methods, architectures, and implementations http://www-128.ibm.com/developerworks/linux/library/l-linuxvirt/
Questions • Q&A