Getting Started With Virtualization


Published on

Using Virtual Machines in the software testing environment.

  • Be the first to comment

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

No notes for slide
  • Virtual Appliances can be virtual machines that have been built to perform a specific function. The operating system and other software needed to perform this has already been installed. The virtual machine can then be shared and deployed as needed. Examples include backup servers (to perform data deduplication), enterprise LAMP servers, or email servers (and spam filtering). Virtual appliances are everywhere. Many are free to use and require little or no setup or maintenance. For more info… Storage virtualization is the separation of the logical storage from the physical device/media. This is commonly used to aggregate the space available from a heterogeneous mixture of storage devices (possibly from different hardware vendors). Memory virtualization is similar to Storage virtualization, where the memory pool that is made available to one or more computer systems can be physically located on the RAM installed in multiple machines. This can then be shared across the systems as needed. Platform or Full virtualization is commonly achieved by using software to emulate the physical computer hardware. This can be used to run a variety of Operating Systems, and any software needed can be installed and runs within the virtual machine.
  • For Server Consolidation, there are industry guidelines that suggest it is possible to run up to 100 virtual machines per physical server. This depends on the load that would be placed on the physical hardware. Server consolidation is rapidly being applied to enterprise datacenters, where hundreds of physical servers are being converted to virtual machines. This has the effect of dramatically reducing the power consumption and cooling requirements for the installation Full virtualization can be used in any situation where there is a desire to share a computer resources among many users, and there is a need for the sharing to occur in isolation for security and reliability.
  • Most virtualization software includes the ability to take “snapshots” of the virtual machine. These can be used to recover from a test failure, or to restore the machine to a known state when the testing has been completed. Usually, multiple snapshots are supported and a graphical UI is available to allow the user to start the VM from any desired point.
  • There are many platform virtualization solutions available. Comparison pages such as this one on Wikipedia help to sort out the most appropriate one to use for your needs and situation. There are also “bare metal” virtualization solutions available. Examples of these include Xen (, and Microsoft Hyper-V (requires Windows Server 2008). Bare metal solutions (hypervisors) are designed to be the first software installed on the physical platform. The hypervisor is then used to partition the hardware resources so they can be used by one or more virtual instances.
  • VirtualBox is freely available as open source software under the GNU General Public License (GPL). Since it is free, there is no reason not to give it a try. However, before you install any software on a “work” computer – check with your IT department to ensure this does not violate any company policies. They may also be able to give some help with VM configuration to enable them to work on your network, or on a separate sub-network.
  • Getting Started With Virtualization

    1. 1. Getting Started with Virtualization Bill Kalarness ASQ-CMQ/OE, ASQ-CSQE
    2. 2. Overview <ul><li>This presentation will explain the concept of Virtualization and will focus on Virtual Machines. </li></ul><ul><ul><li>How they can be leveraged to create efficient testing environments. </li></ul></ul><ul><ul><li>Points to consider as you begin preparing your plan to introduce virtual machines into your testing strategy. </li></ul></ul><ul><li>This presentation is best suited for Software QA and Test managers, QA engineers, or others who have heard about Virtualization and want to know more about it. </li></ul>
    3. 3. What is Virtualization? <ul><li>Virtualization refers to the abstraction of computer resources. </li></ul><ul><li>Virtualization can be applied to many computing areas: </li></ul><ul><ul><li>Applications - encapsulating applications so they can run on different operating systems (e.g., using Wine to run Windows programs on Linux, or Rosetta to run PowerPC programs on Intel Mac systems). </li></ul></ul><ul><ul><li>Storage – a pool of storage is created, which is shared across multiple systems. </li></ul></ul><ul><ul><li>Memory – the RAM from multiple systems is used to create a pool that is shared among the systems, depending on their need. </li></ul></ul><ul><ul><li>Platforms –Virtual Machines (VMs), where system hardware is fully virtualized. </li></ul></ul>
    4. 4. Full Virtualization via Virtual Machines <ul><li>There are many reasons to use fully virtualized VMs. </li></ul><ul><ul><li>Each physical machine can host one or more guest machines. </li></ul></ul><ul><ul><li>Each guest VM is isolated from any others, this helps to ensure reliability and promotes security for data and the network. </li></ul></ul><ul><li>Server Consolidation is a popular technique for reducing hardware costs while increasing utilization of existing resources. Also allows the migration of legacy systems and data to newer, more efficient hardware platforms. </li></ul><ul><ul><li>Enterprises are using Server Consolidation to reduce their hardware footprint of their datacenter(s), which can reduce their energy and cooling requirements and simplify IT administration. </li></ul></ul>
    5. 5. Virtual Machines <ul><li>Within Software QA/Testing – Virtual Machines are tremendously useful! </li></ul><ul><ul><li>Each VM represents an environment in a known state that can easily be restored during or after testing. </li></ul></ul><ul><ul><ul><li>Can use “Snapshot” features to record restore points to easily recover from a system software upgrade or patch. </li></ul></ul></ul><ul><ul><li>Can be automated to reduce the time spent tediously installing software or testing installations. </li></ul></ul><ul><ul><li>Can be used to quickly assemble testing networks. </li></ul></ul>
    6. 6. Virtual Machines – Network example <ul><li>Example showing virtual machines networked to host machine. </li></ul>
    7. 7. Virtual Machines – Network example 2
    8. 8. Common Virtualization Platforms <ul><li>VMware </li></ul><ul><ul><li>Windows – VMware Workstation, VMware Server, VMware ESXi, and others. </li></ul></ul><ul><ul><li>Mac – VMware Fusion </li></ul></ul><ul><li>VirtualBox (Sun) </li></ul><ul><ul><li>Cross-platform, can be run on Windows, Linux, Macintosh, and OpenSolaris hosts. </li></ul></ul><ul><ul><li>Supports BSD, Linux, OpenSolaris, and Windows guest Operating Systems. </li></ul></ul><ul><li>Parallels </li></ul><ul><ul><li>Windows – Parallels Workstation </li></ul></ul><ul><ul><li>Mac – Parallels Desktop for Mac </li></ul></ul><ul><li>Many others… </li></ul><ul><ul><li>Microsoft, Virtual Iron, Win4Lin, and Xen. </li></ul></ul>
    9. 9. Prepare Your Plan <ul><li>VM Naming Convention – include a description within the virtual machine. </li></ul><ul><li>Storage and Backup of VMs </li></ul><ul><ul><li>Sparseimage disks or fully allocated? Need to know this to determine the best storage location. Engage your IT folks! </li></ul></ul><ul><ul><li>Networked library of VMs… Where? Who has access? VM Checkin/Checkout? Engage your IT folks! (Not a typo.) </li></ul></ul><ul><li>“ Standard” software to be installed (Antivirus & security software – to be installed off-line). </li></ul><ul><li>Operating Systems (ensure compliance with licensing requirements, also applies to any other installed software.) </li></ul>
    10. 10. Prepare Your Plan – Example <ul><li>Example - Naming convention and storage. </li></ul>
    11. 11. Building your VMs <ul><li>You will have the opportunity to configure the following aspects of each VM: </li></ul><ul><ul><li>Number of virtual processors to use. There is typically support for 1, 2,or 4. </li></ul></ul><ul><ul><li>System memory (RAM) that the VM will consume during use. </li></ul></ul><ul><ul><li>Hard disk settings </li></ul></ul><ul><ul><ul><li>Hard disk space that the VM will consume – Sparseimage or allocate all space at once. </li></ul></ul></ul><ul><ul><ul><li>Depending on the virtualization platform you are running, you may be able to connect your VM to a physical disk for better performance. </li></ul></ul></ul>
    12. 12. Building your VMs - Continued <ul><ul><li>Network settings – NAT, Bridged, Host-Only, or none. (Can be altered at any time.) </li></ul></ul><ul><ul><ul><li>Advanced Settings enable you to define/assign your own MAC address. </li></ul></ul></ul>
    13. 13. Building your VMs - Continued <ul><ul><li>Add/Remove devices – Might want to add/remove a floppy, Serial, or Parallel port. You can add additional Hard Disks, CD/DVD, Network interfaces… </li></ul></ul>
    14. 14. Building your VMs – Continued <ul><li>Create clones to minimize the time required to set up multiple identical or related VMs. </li></ul><ul><ul><li>Simply a copy of an existing VM. </li></ul></ul><ul><ul><li>Changes made to the clone will not affect the parent and vica-versa. </li></ul></ul>
    15. 15. VM Storage and Backup <ul><li>VMs exist as files on the host systems </li></ul><ul><li>Backup can be as simple as making a copy of the VM files to a central location </li></ul><ul><li>You could consider backup deduplication. </li></ul><ul><ul><li>Hardware based backup/deduplication devices claim to achieve a 200:1 data compression ratio with deduplication. </li></ul></ul><ul><ul><li>Most of the VM contents will not change during the normal backup interval – mostly OS files. Deduplication of these backups can save massive amounts of disk space. </li></ul></ul>
    16. 16. References <ul><li>Virtualization Platforms </li></ul><ul><ul><li>VMware: </li></ul></ul><ul><ul><li>VirtualBox: </li></ul></ul><ul><ul><li>Microsoft: </li></ul></ul><ul><ul><li>Xen: </li></ul></ul><ul><ul><li>Lists: Platform Virtualization – top 25 providers (hardware, software, combined) </li></ul></ul><ul><ul><li>Wikipedia: Virtualization </li></ul></ul><ul><li>Operating Systems </li></ul><ul><ul><li>Ubuntu Linux: </li></ul></ul><ul><ul><li>Open Solaris: </li></ul></ul><ul><ul><li>Redhat Linux: </li></ul></ul><ul><ul><li>Linux: </li></ul></ul><ul><ul><li>Lists: Free and open source operating systems </li></ul></ul><ul><li>Backup & Deduplication </li></ul><ul><ul><li>Exagrid: </li></ul></ul><ul><ul><li>EMC: </li></ul></ul><ul><ul><li>Symantec: </li></ul></ul>
    17. 17. Readings <ul><li>FierceHealthIT: surveyresults_Virtualization_in_Hospitals.pdf </li></ul><ul><li>Virtualized Datacenter – Real-World IT Optimization (VMintel_pbk09.pdf) </li></ul><ul><li>AMD: Putting Server Virtualization to Work </li></ul><ul><li>HP Whitepapers & Case Studies </li></ul><ul><li>Microsoft Virtualization Product Portfolio – virtualization white papers: </li></ul><ul><li>ITBusinessEdge: The Benefits of Using Virtualized Testing with SOA </li></ul><ul><li>Application Development Trends: Software Testing Gets Virtualized </li></ul><ul><li>Technometria: Using Virtualization in Software Testing (Jan 2005 Dr. Dobbs Journal) </li></ul><ul><li>Dr. Dobb’s Journal: Q&A: Software Testing in a Virtualized World | November 28, 2009 </li></ul>