Advantages of Virtualization and VHDs
Using virtualization and VHDs has a number of advantages over standard operating system installations:
Better resource utilization—
One of the big issues in many companies, large and small, is buying too
many computers to perform multiple tasks. Virtualization essentially
eliminates this problem because you can buy a single computer and use it
to handle multiple requests. Need a separate server for your
financials? No problem. How about a separate server for your customer
database? Not a problem. Virtualization allows you to create these
servers on-the-fly, without having to buy and configure new hardware
each time a new request comes up.
Speed of deployment—
Creating a new virtual server is a simple task, taking only a few
minutes. You can go from “I need a new machine to do this task” to “it’s
done” in under 10 minutes, including the time to create the virtual
server, configure it, load a fully configured template, configure that
with specific information such as name and IP, and test it to make sure
that it’s ready for use. Compare that with having to buy a new PC,
configuring the new PC, and getting it up and running. In the time it
would take you to unpack your new machine from its boxes, you can have
your new virtual server up and running.
Lower operating costs—
Frankly, virtual systems are cheaper to run. They require less power
and don’t take as much effort to cool. Which means that in addition to
not having to buy a new machine each time, you don’t have to pay as much
to run it, either.
Upgrades and migration— Suppose
that you have a particular virtual server that is consuming an
expanding amount of resources—more RAM, more hard disk space, more
everything—and you need to upgrade it. If it were a physical server,
you’d have the problem of getting the new machine up, then moving
everything cleanly, then shutting down the old server and making sure
that the transition went smoothly. With a virtual machine, that problem
essentially goes away. Yes, you’ll need the new hardware, but by
transferring a copy of the virtual server across to the new machine, you
can migrate the entire operating environment in just a matter of
minutes. You can use the same technique for upgrades. Just shift your VM
from one machine to another and then take the old machine offline while
you perform your maintenance.
Deploying standard systems—
One issue we’ve always considered a real nuisance is deploying a
“standard” system image when we bring up a new computer. First you have
to load the operating system. Then you have to catch up all the system
patches. Next you have to run the entire checklist of “is this software
loaded,” and configure it for your company, and make sure that is all
up-to-date and patched. It can take hours. With VHDs, this becomes
incredibly easy. After you’ve created a template system, all you have to
do is copy the VHD for the template to some form of storage, such as a
DVD, a thumb drive, or a network drive. The next time you need to load a
system, you can bypass the bulk of your problem by loading the VHD
directly to the disk and launching it.
Backups—
Another aspect of virtualization that we’ve found to be tremendously
useful is in backing up systems after they’re configured. Because the
entire operating system image is a single file, it’s quite simple to
store a version of that entire file elsewhere, for easy recovery. This
is useful in a number of ways. First, it lets you keep a complete
snapshot of a system—for example, your desktop. Second, it’s also useful
when you have to set up and tear down systems on a regular basis—such
as when you need a test environment or if you need environments for a
training class.
Disadvantages of Virtualization and VHDs
There are, however, some disadvantages to virtualization:
Some apps require a dedicated PC—
Some applications still require dedicated physical resources. Take, for
example, a rendering machine for a small graphics shop. Rendering is a
process where processing time is highly dependent on the amount of
available RAM and CPU. So although you can create multiple virtual
rendering servers, they’re still working from the same pool of available
resources, meaning that there’s no net benefit—and in fact,
virtualization would be a bad idea because each virtual server consumes
some of those resources as well, leaving fewer resources for the actual
work at hand.
Licensing fees—
Watch out for licensing fees. IT professionals call this “license
creep.” If you let the number of virtual servers get out of hand, you
may find that you’re paying a lot more money than you should in
licensing fees. So pay attention to how your software licenses are
structured.
Better for server processes than desktops—
Be aware that virtualization is really most useful when dealing with
server processes; it can be less useful for dedicated desktops.
Virtualization and VHDs in Action
Following are a few
real-world examples of people we know who use virtualization, to
illustrate why it might be useful—and where it stops being such a great
idea.
As you will see,
virtualization is not for everyone, or for every situation. In many home
situations, virtualization doesn’t provide much benefit, even while it
adds to the complexity of your system. If, however, you are a power user
who needs the equivalent of several systems to do all your work, you
might find that virtualization has some significant benefits. Office
users also might benefit from virtualization, both in terms of enhanced
system security and for the ease with which the system environment can
be deployed.
Example 1: Garage-Based Manufacturer
The first example is a
manufacturer we know who builds small, specialized equipment for
performance cars (we’re going to refer to them simply as
widgets) out of a facility in his garage. He deals with an extensive
client base around the world, taking orders by mail order, by fax, and
over the Internet, and he keeps himself and his two employees busy. His
order entry/accounting system, though, runs on a total of three
computers: One houses his order-entry database; a second one houses his
accounting and shipment-processing software; and the third is his
working desktop, where he reads the incoming email orders, runs
spreadsheet calculations, and so on.
Our friend the
widget manufacturer wants to modernize a bit and get rid of the multiple
switches, monitors, and keyboards that he has to keep track of every
time he changes systems to perform another step in his order-delivery
process. He is an excellent candidate for virtualization because he
could virtualize both his accounting database and his order-entry
database, putting each in a separate virtual computer living on his
high-performance desktop system. Given the upgraded inventory database
he’s looking at investing in, virtualization might be a good idea.
Example 2: Freelance Graphic Artist and Publisher
The second example is a
freelance graphic artist, photographer, and small-press publisher. She
works from her home, working around her two daughters. During her
downtime, she lets the girls use the office computer for games and
schoolwork.
Because she wears
multiple hats, and they’re all “small business” hats, our friend the
publisher needs more than one system. She needs a high-performance
graphic arts/publishing system, an “office” desktop— and she’d like to
have a separate system for the kids to do their work on that protects
her work environment from being infected by viruses or running into
problems from games.
For her purposes,
virtualization is almost ideal. She can configure a common “basic”
desktop and then set up separate virtual systems for her graphic arts
work, for her office needs, and for the kids. This keeps any security
risks to a minimum and provides an easy method of backing up her artwork
and production environment—she can simply back up the appropriate
virtual system. It also provides a nearly impenetrable way to isolate
the effects of her kids’ web surfing from her office and work
environments.
Example 3: Multiple Home Users Under the Same Roof
One older family friend
has several people using his computer. Each uses it for different
things. He uses the computer for web surfing, email, and doing taxes. Someone else uses it for light office work, and the guest account uses it for web access.
In this case, there really
isn’t any point in using virtualization. Separate user accounts provide
all the access control needed, and there isn’t a significant gain to be
had from providing separate system environments.
Using Windows 7 Virtualization
Windows 7 includes a number
of new virtualization features that have not previously been available
in the desktop version of Windows—and in fact have only recently been
available in the Server editions aimed at large corporate data centers.
The two primary features in this are Virtual Hard Disks, used in
creating virtual systems, and the new Windows XP virtualization feature,
called Windows XP Mode.
Virtual Hard Disks
A VHD is a single file
that contains the complete contents and structure that represents a hard
disk drive. VHDs are frequently used to store multiple copies of
operating systems, their associated programs, and even local copies of
data in a single file that can be used by various virtualization
programs. A VHD lets you move back and forth between operating systems,
depending on the environment in which you want to run.
Virtual hard disks
are different from logical hard disks, which you may have run into in
the past. A logical hard disk is a single physical hard disk that has
been divided into two or more “logical” drives, each of which is
assigned its own drive letter. You might do this when you have a single
big drive and want to keep the contents of the logical drives separate,
such as when you’re sharing the contents to a group of users over a
network or if you want to keep one logical drive (the C: drive) for the
operating system and applications, and another (the D: drive, in this
example) for your working files. Properly speaking, you always
have a logical drive on your hard disk—usually, the physical drive is
configured with just one logical drive (the C: drive) so you don’t see
it split in two.
A virtual hard disk, in
contrast, resides on the same logical drive as any other file. It is,
however, a big file that contains an image of the contents of an entire
hard disk, including the operating system. Because it is a single file,
you can do a number of things easily with the virtual hard disk that
would be much more difficult to do with, for instance, a logical hard
disk.
Virtual hard disks are an easy way to deploy virtual versions of a system. After
you have created a single instance of a VHD, you can copy that file,
easily duplicating your virtual computer system. Because the information
is still stored in a single file, you can also easily back up the
entire system image by copying the entire file to a safe location.
The VHD Image file format is currently supported by a number of virtualization software packages, including the following:
Microsoft Windows Hyper-V (on Windows Server 2008)
Sun Microsystems VirtualBox
VMWare ESX Server
Citrix XenServer Hypervisor
Microsoft Windows 7