A new approach to performance testing and capacity management is needed in a data center which has been
"Virtualized" by software such as
- EMC's
VMWare ESXServer suite,
- Microsoft's Virtual Server 2005,
- open source projects QEMU, and
- Xen, started at the University of Cambridge and adopted by Linux distributions,
including Novell's SuSE Linux Enterprise Server.
The Virtual Desktop Infrastructure Alliance
Virtualized machines run as a guest OS operating on top of the host OS.
In a virtualized data center, nothing is "static".
In one given moment, an application can be running on dozens or hundreds of machines,
with data on several other machines (typically over a SAN).
In another moment, they vanish.
EMC's VMotion™ technology lets virtual machines -- while it's running --
be moved "dynamically" from one host to another while maintaining continuous service availability.
That's the whole point of virtualization -- to make computing power available as needed,
then reclaim that power for others when it's no longer used.
Rather than having lots of machines with a different set of reserve capacity sitting idle,
computing power and storage is pooled for sharing.
This is good news for functional testers becuase ESX Server software now
requires a moveable working environment for development to occur,
testers no longer have to beg for test machines and test time, since application instances
can be easily created.
Now that with virtualization managers don't have to make sure that an app is running on the right
size machines, does the need for load testing go away?
Maybe not. Since there is always a point where demand can exceed capacity,
the job of measuring capacity and performance shifts to a central console,
just as hundreds of servers can be managed from a single EMC VirtualCenter console.
Capacity management includes a dynamic moment-by-moment activity rather than being
just a long project with phases.
To stay ahead of the game, analysis of performance
need to be modeled rather than measured using a purely empirical approach
running apps on a static set of servers.
But before that, there is a need to validate the claims of vendors.
New AMD and Intel CPU architectures have hardware virtualization capabilities called
"para-virtualization" which modify the host operating system to support low-level calls
needed by the guest OSes. Xen and User-mode Linux (UML) use this approach.
Currently the VMware Virtual Center server provides a web page to expose status at any given point in time,
but not over time.
So people have to do things like write a MIB to query and send out SMNP notifications for a collector.
Or buy
nWorks SPI for VMWare to publish XML that is consumed by an nWorks Windows server
such as MOM.
Microsoft's Virtual Server 2005 R2 supports new Intel and AMD virtualization extensions
and for Windows' Volume Shadow Copy Service.
Open Nebula's front-end on UNIX uses XML-RPC API to remotely accesses machines
managed by a Hypervisor running Xen, KVM and on-demand access to Amazon EC2.