Test Optimization Using Software Virtualization Frank Pacelli
Agenda Problem illustration Virtualization defined 4 virtualization approaches Virtualized test platforms Virtualization product options Other options
What is Virtualization? Multiple OS or "Virtual Machines" installed on one physical machine. VMs run in parallel to one another VMs don't realized they are virtualized Each VM is isolated from the others The host simulates a hardware environment for each VM 'Guest' OS may vary in type Limited only by hardware The host may be an OS, special hardware, or special software
Virtualization Approaches Full system virtualization Paravirtualization Native virtualization OS level virtualization
Full-System Virtualization Virtualization is transparent to virtual machine Sophisticated software simulates hardware 3 levels above hardware
Paravirtualization Underlying virtualization software exposes API 'Guest' OS must be modified significantly to use this API instead of actual hardware 3 levels above hardware In other words, virtualization is not transparent to guest OS.
Native Virtualization Virtualization is transparent to virtual machine Hardware handles routing of instructions to/from virtual machine 1 level above hardware
OS-level Virtualization Only 1 OS actually installed OS is capable of partitioning itself so it looks as if there are multiple instances 1 level above hardware
Virtualized Test Platforms Virtualization can be used in countless configurations to optimized testing Host OS is irrelevent
Virtualization Products Emulation - simulates hardware that doesn't exist on that physical machine. Simulate a 486 processor on a non 486. Hypervisor - virtual machine monitor. Can be installed on top of hardware, or on top of host OS. Full system simulation - similar to emulation except that the exact behavior of the hardware is mimiced, not just the minimum to make the software run.
Other Options Simulation Attempt to model real behavior/data Can only be used for unit testing Partially real test setup hybrid approach partial real hardware/software partial simulators partial stubs
Summary Virtualization is multiple OS sharing the resources of one machine 4 approaches Full system virtualization Paravirtualization Native virtualization OS level virtualization Many different configurations can be used to create the optimum test environment Open source and commercial solutions available Virtualizatiion reduces costs, energy consumption, testing complexity, and required rack space
References Swaminathan Seetharaman, Krishna Murthy B.V.S., "Test Optimization Using Software Virtualization" IEEE Software. Sep/Oct, 2008. Page(s) 66-69 http://www.vmware.com/virtualization/ http://wiki.openvz.org/Introduction_to_virtualization