Server sprawl is a compelling reason for organizations to look
into virtualization. Running many virtual machines on the same hardware
can save money and reduce administration overhead. But there's a catch.
Because virtual machines (VMs) are so easy to build, duplicate and
deploy, many organizations end up trading server sprawl for VM sprawl.
Also,
it's not unusual that users learn of virtualization and end up building
and deploying VMs without the knowledge of their IT departments,
resulting in a plethora of unregulated systems. In this article, I'll
describe some of the problems that this can cause and offer suggestions
on how IT departments can rein and manage virtual machines.
Benefits of VM standardization
With the rise in popularity of virtualization products for both
workstations and servers, users can easily build and deploy their own
VMs. Often, these VMs don't meet standards in the following areas:
- Consistency: End-users rarely have the expertise (or
inclination) to follow best practices, such as enabling only necessary
services and locking down their system configurations. The result is a
wide variety of VMs that are deployed on an ad-hoc basis. Supporting
these configurations can quickly become difficult and time-consuming.
- Security: Practices such as keeping VMs up-to-date and
applying the principal of least privilege will often be neglected by
users who deploy homegrown VMs. Often, the result is VMs that are a
security liability and that might be susceptible to viruses, spyware
and related problems that can affect machines throughout the network.
- Manageability: Many IT departments include standard
backup agents and other utilities on their machines. Users generally
won't install this software unless it's something that they
specifically need.
- Licensing: In almost all cases, operating systems and
applications require additional licenses. Even when end-users are
careful, situations that involve client access licenses can quickly
cause a department to become noncompliant.
- Infrastructure capacity: Resources such as network
addresses, host names and other system settings must be coordinated
with all of the computers in an environment. When servers that were
formerly running only a few low-load applications are upgraded, they
tend to draw more power (and require greater cooling). IT departments
must be able to take all of this information into account, even when
users are creating their own VMs.
Creating a VM library
One method by which organizations can address VM sprawl is to create
a fully supported set of base virtual machine images. These images can
follow the same rigorous standards and practices that are used when
deploying physical machines. Security software, configuration details
and licensing should all be taken into account. Procedures for creating
new virtual machines can be placed on an intranet, and users can be
instructed to request access to virtual hard disks and other resources.
Enforcement is an important issue, and IT policies should
specifically prohibit users from creating their own images without the
approval of IT. This will allow IT departments to keep track of VMs,
along with their purposes and functions. Exceptions might be made, for
example, when software developers or testers need to create their own
configurations for testing.
Designing base VM images
The process of determining what to include in a base VM image can be
a challenge. One goal should be to minimize the number of base images
that are required, in order to keep things simple and manageable.
Another goal is to try to provide all of the most commonly used
applications and features in the base image. Often, these two
requirements are at odds with one another. Figure 1 provides an example
of some typical base images that might be created. Base images will
need to be maintained over time, either through the use of automated
update solutions or through the manual application of patches and
updates.
Figure 1: Sample base VM images and their contents.
Supporting image duplication
With most virtualization platforms, the process of duplicating a
virtual machine image is as simple as copying one or a few files. But
there's more to the overall process. Most operating systems will
require unique host names, network addresses, security identifiers and
other settings. IT departments should make it as easy as possible for
users to manage these settings, because conflicts can cause major havoc
throughout a network environment.
One option is for IT departments to manually configure these
settings before handing over a VM image to a user. Another option is to
use scripting or management software to make the changes. The specific
details will be specific to the operating system, but many operating
systems offer tools that can be used to handle the deployment of new
machines. One example is Microsoft's Desktop Deployment Center,
which includes numerous utilities for handling these settings (note
that most utilities should work fine in virtual machines, even if
support for virtualization is not explicitly mentioned).
Building disk hierarchies
Many server virtualization platforms support features that allow for
creating virtual hard disks that are based on other virtual hard disks.
Remembering that the goal is to minimize the number of available images
while still providing as much of the configuration as possible, it's
possible to establish base operating systems and then add on options
that users might require. Figure 2 provides an example for a
Windows-based environment.
Figure 2: An example of a virtual hard disk hierarchy involving parent and child hard disks.
Keep in mind that technical restrictions can make this process less
than perfect. For example, a base virtual hard disk cannot be modified,
so if you need to add on service packs, security updates or new
software versions, you'll need to do that at the child level.
Summary
Overall, by using virtual machine libraries, IT departments can make
the process of creating and deploying virtual machines much easier on
end-users. Simultaneously, they can avoid inconsistent and out-of-date
configurations, just as they would with physical computers. The end
result is a win-win situation for anyone looking to take advantage of
virtualization.