Using Virtualization to Improve Testing

Download Report

Transcript Using Virtualization to Improve Testing

Anil Desai
IEEE Computer Society, Austin Chapter
April 18th, 2007

Anil Desai
◦ Independent consultant (Austin, TX)
◦ Author of virtualization books and articles
 Managing / Scripting Microsoft Virtual Server
 SearchServerVirtualization.com
 The Definitive Guide to Virtual Platform Management
◦ Info: http://AnilDesai.net or [email protected]
I.
An Overview of Virtualization Technology
II.
Virtualization Features & Scenarios
III.
Virtualization Benefits for Dev/Test
IV.
Comparing Virtualization Approaches
V.
Using Virtualization Features for Dev/ Test
VI.
Managing and Optimizing Virtualization

Virtualization abstracts the underlying
physical structure of various technologies
◦ Examples:
 Storage virtualization
 Network virtualization

Server virtualization
◦ Creates multiple isolated environments
◦ Allows multiple OS’s and workloads to run on the
same physical hardware
◦ Solves the problem of tight coupling between OS’s
and hardware






Simplified administration
Hardware
independence/portability
Increased hardware
utilization
Server consolidation
Decreased provisioning
times
Improved security
Virtualization Features





Software Development
Testing / Quality
Assurance
Product evaluations /
demonstrations
Training
Disaster Recovery
Virtualization Scenarios
Component
Specifications
Chipset
Intel 440BX
CPU
Based on the host CPU (single CPU only)
BIOS
AMI BIOS
Video
S3 Trio 32/64 with 4MB of video memory
Memory
Up to 3.6GB
Input Devices
PS/2 Mouse and Keyboard
Floppy Drives
Up to two 1.44MB 3.5” floppy drives
Communications
Ports
2 Serial Port
1 Parallel Port
IDE Controllers
Two channels, each of which supports up to two devices each (up to four IDE total
devices)
SCSI Controllers
Up to four Adaptec 2940 SCSI Controllers (each supports up to 7 devices; 28
devices total)
Network Interfaces
Up to four Intel 21140 10/100Mb network interface cards
Planning
•Determining hardware requirements
•Coordination with business leaders
Purchasing
•Hardware selection
•Approvals processes
•Budgeting
Physical Deployment
•Finding rack space
•Physical "racking"
•Network and power connections
Server Configuration
•OS Settings
•Application installation
•Network Settings

Getting Started
◦ Migrate existing apps / physical machines
◦ Create new virtual machines from scratch

Virtualization may not work well for:
◦ Resource-intensive applications
 VMs may have RAM/CPU/SMP limitations
◦ Performance testing
◦ Hardware compatibility testing
◦ Specific hardware requirements
 USB
 Custom hardware devices

Conversion of an existing physical machine
into a virtual machine
◦ Operating system, settings, and all data




Simplified Administration
Duplicating / recreating intermittent
problems
Quick Deployment
Portability (Moving / Copying VMs)
◦ For troubleshooting and recreating defects
◦ Load-balancing


Standardized hardware configuration
State management for virtual machines

Setting up a complex test lab
◦ Testing multi-tier applications
◦ Isolated networks
◦ Simulating multiple clients

Rapid setup and tear-down of test
environments
◦ Consistent configurations
◦ Ability to easily roll-back changes
◦ Automation of VM setup and software installation


Can revert virtual machines
to their initial state
Can create “snapshots” after
changes
◦ Can roll back to a particular
snapshots




Number of VMs
Estimated memory
per VM
Estimated disk
space per VM
Resource usage
estimates
VM Name
CPU
Memory
Disk
Network
WebApp01
Low
Low
Medium
High
WebApp02
Low
High
Low
Low
WinXPTest
Low
Low
Medium
Low
FileServer01
Low
Medium
High
High
Approach:
Categorize VMs based on resource utilization
Combine VMs that have “compatible” workloads
Workload
CPU Util.
Memory Util.
Disk Util.
Network Util.
Public Web
Server
Low
Low
Low
High
Web Application
Server
Medium
Medium
Low
Medium
Middle-Tier
Server (CRM
Application)
Medium
High
Low
Low
Database Server
(CRM
Application)
High
High
High
Medium
Applications
• Server applications
• Office productivity applications
Operating System
• Device Drivers
• Services
Hardware
• CPU, Memory, Disk, Network hardware
• Other peripherals
Virtual Machines
Virtualization
Layer
Operating System
Hardware
• Supported guest OS's
• Windows XP, Windows Server 2003, Linux, etc.
• Microsoft Virtual Server 2005 R2
• Windows Server 2003 R2
• Device Drivers
• CPU, Memory, Disk, Network
• Peripherals
Application-Layer Virtualization
• Citrix, Microsoft SoftGrid, Terminal Services
Server Virtualization
• VMware Server, Microsoft Virtual Server
Hardware-Level Virtualization
• VMware ESX Server, XEN, Microsoft Hypervisor (“Viridian”)
Desktop Virtualization
• Virtual PC 2007, VMware Workstation, Parallels Workstation








Improved performance
(multi-threaded)
Web-Based
Administration
Scripting and automation
support (COM API)
Improved security
Advanced networking
Manageability
SCSI Device Support
Reliability/availability
features (clustering)
Virtual Server 2005





Optimized for one or a
few concurrent VMs
(single-threaded)
Simplified
administration
Sound card emulation
Easier file sharing
Automatic client
desktop resizing
VirtualPC
Workload
Virtualization
Recommendation
Notes
Datacenter Server
Consolidation
Hardware-Level or
Server-Level
 Performance is a key
factor
 Server applications are
typically complex
Software Development and
Testing Environments
Server-Level
 Manageability is a key
requirement.
 Users must be able to
change hardware settings
and OS levels.
Sharing End-User Productivity
Applications
Application-Level or
Remote Application Execution
 Scalability is important.
 Applications are less
complex.

Create overall test plans and requirements
◦ OS and version requirements
◦ Service Packs / updates, etc.
◦ Hardware configurations for VMs
 CPU, Memory, Disk Space, Network configuration



Create a naming convention for VMs
Create base images
Create network address conventions
◦ IP address ranges and subnets
◦ Support for multi-tier applications
◦ Multiple networks (host-only, routed, NATs, etc.)

Goals:
◦ Minimize the number of base images
◦ Include as much functionality as possible
Base Client
Base Server
Database Server
• Windows XP
Professional Ed.,
SP2
• Windows Server
2003 R2
• Backup Agents
• All Base Server
Components,
plus:
• Backup Agents
• Anti-malware
utilities
• SQL Server
2005 SP1
• Security settings
• Database
security
configuration
• Anti-malware
utilities
• Security settings
Windows Server
2003
Windows Server
2003 R2
SQL Server 2000
SP4
SQL Server 2005
SP2
Web Server (IIS
6.0 enabled)
Web Server with
SQLExpress
database

Media-based deployments
◦ Automatic mounting of ISOs

Network-based installations
◦ Automated OS Deployment
 Image-based or PXE Booting
◦ Application Deployment
 OS Startup Scripts and Network shares

Third-party software distribution tools
Presentation Servers
Application Servers
Data Access Layers
Database Servers
Operating System / Network Services


Common
operations can
be scripted or
automated
Test Lab
Management
Applications
◦ Web-based
◦ Client-based



Establish a base library of images
◦ Ensures consistency
◦ Helps in troubleshooting
◦ Prepare VMs for duplication (SysPrep)
Create a Library of ISO files
Manage virtual machines as if they were physical
machines
◦ Security updates
 Automatic Updates (if supported in Guest OS)
 Microsoft Baseline Security Analyzer (MBSA)
 Windows Server Update Services (SUS)
◦ Patches
◦ Corporate security standards

Configure anti-spyware / anti-malware exceptions
◦ *.vhd, *.vud, *.vsv, *.iso

Profile your applications
◦ Windows System Monitor
◦
◦
◦
◦
◦

 Counter Logs
Event Viewer
Task Manager
Windows Management Instrumentation (WMI)
Microsoft Operations Manager (MOM)
Systems Management Server (SMS)
Monitoring Approach:
◦ Host Server: Aggregate performance data
◦ Guest OS: Detailed resource usage

Backup and Recovery
◦ Option 1:
 Shut down/save state of the VM
 Copy all required files.
 Resume the VM
◦ Option 2:
 Use Backup Agents within the Guest OS.

Automating backups:
◦ Build scripts/applications to automate virtual machine
backup and recovery:
 1) Save state of the virtual machine
 2) Copy all related files
 3) Resume the virtual machine


Backup VM files from the host file system
Host-Level Backup Options:
Cold Backups
Warm Backups
• Stop VM &
copy files
• Pause VM &
copy files
• Can be
scripted
• Minimal
downtime
• Longest
downtime
Hot Backups
• Backup while
VM is
running
• File system
snapshots
• Can be risky

Resources from Anil Desai
◦ Web Site (http://AnilDesai.net)
◦ E-Mail: [email protected]
◦ Keystone Learning Course:
“Microsoft SQL Server 2005:
Implementation and Maintenance
(Exam 70-431)”
◦ The Rational Guide to Managing
Microsoft Virtual Server 2005
◦ The Rational Guide to Scripting
Microsoft Virtual Server 2005
Q & A, Discussion