If you search for virtualization
products using your favorite search engine, you’ll get dozens of results
for different products, and many opinions about which is best. While
it’s true that the virtualization marketplace is crowded, there are
still only a handful of vendors that offer production-ready server
virtualization products. Developers, testers, and DBAs may already be
familiar with a wider range of virtualization products, such as Oracle’s
Virtual Box and VMware Workstation, but VMware and increasingly
Microsoft have the lion’s share of the virtualized data center
marketplace. This section looks at the primary server virtualization
products available, and some of the virtualization support that hardware
vendors have built into their products in recent years.
VMware
Regardless of what any other
virtualization vendor’s marketing department may tell you, in my
experience more businesses currently use VMware for their server
virtualization platforms than any other. In my view, the main reason for
this is because for a long time, VMware was almost the only vendor
selling production grade virtualization software, and they also created
the features that today, we expect every virtualization vendor to
provide by default.
VMware’s current server virtualization product
set, vSphere, consists of two components: the VMware vSphere Hypervisor,
also known as ESXi, and the enterprise virtual environment management
platform, vSphere.
VMware’s basic hypervisor software is available
free of charge, even for production environments, and it supports
running and managing a reasonable number of virtual servers on it — not
bad for a free product. However, its feature set and manageability are
quite limited when compared to capabilities of the VMware tools designed
for the enterprise; for example, it supports only 32GB of memory in the
physical host server. Nonetheless, for smaller environments or those
new to virtualization, this product is often sufficient and can
significantly reduce the deployment costs associated with VMware’s
larger vSphere product.
To provide an enterprise-scale and feature-rich
virtualization solution, VMware couples its hypervisor with the vSphere
management platform. This not only provides significantly more
management and reporting functionality, but also increases scalability
and availability. The other major difference is that groups of physical
host servers running the VMware hypervisor are managed collectively,
blurring the boundaries between individual server resources and a
cluster of host servers as VMware refers to it.
While production environments can be deployed
using just VMware’s hypervisor, most of the businesses I work with have
invested in the vSphere infrastructure to get the fuller feature set not
available in the standalone hypervisor. The software is often expensive
and it requires a strong commitment to virtualization, but it has been
successful enough to make VMware the size of company it is today. That
said, however, Microsoft is offering ever-increasing levels of
virtualization functionality in the Windows operating system, and VMware
will be forced at some point to reconsider the cost models and feature
sets of its products.
NOTE
VMware was
the first vendor to adopt a licensing model based on memory size for its
products, having decided that the traditional “per-CPU” model
traditionally used by the industry was becoming outdated in 2011. Such a
bold move wasn’t entirely successful, however, and subsequent tweaking
was needed to appease a surprised marketplace.
Microsoft Hyper-V
Until very recently most of us probably
didn’t think of Microsoft as a virtualization software vendor although
they have in fact produced desktop virtualization software, such as
VirtualPC and Virtual Server, for a number of years now. Sadly for
Microsoft, my experience showed they were the kind of products that were
loved by those who used them but unknown to everyone else.
First released as a role within Windows Server
2008, Hyper-V was intended to bring Microsoft’s new server
virtualization capabilities to the massive Windows Server marketplace.
This was an excellent product marketing decision, as anyone new to and
curious about server virtualization now had the technology bought and
paid for in their server operating system. No longer would they have to
research, select, and download a product before installing it — more
often than not on a dedicated physical server.
Hyper-V is more than just a software feature which
gets installed within Windows though, it’s a component which sits deep
within the operating system itself, and in some areas is closer to the
physical hardware than Windows itself is once Hyper-V is enabled. It’s
this low-level code that allows Hyper-V to schedule all of the different
CPU requests its virtual servers make and allocate them CPU time so
they can run.
Not all of the reaction to Hyper-V’s initial
release was good for Microsoft though. The first version suffered from
the usual inadequacies of v1.0 software we’ve become used to. In fact,
it wouldn’t be unfair to say that the version that shipped with Windows
Server 2008 was unsuitable for most production workloads. However,
progress was made in making people aware that Microsoft was entering the
server virtualization market.
Significant improvements were made to Hyper-V in
Windows Server 2008 R2 and again with Service Pack 1. Live migration,
dynamic storage, Dynamic Memory, and enhanced processor feature support
made deploying Hyper-V in a busy production environment a reality. It is
likely that many of the people who have chosen to adopt Hyper-V have
done so because of Microsoft’s dominance and reputation with other
applications, along with the pricing model.
In the same way that VMware offers a hypervisor
product and an enterprise management platform, vSphere, so does
Microsoft. System Center Virtual Machine Manager is a suite of
management tools designed to manage large Hyper-V environments, as well
as deploy, orchestrate, and monitor private clouds. Known sometimes as
just VMM, it’s not as widely adopted as vSphere, but I suspect that will
change as Hyper-V is adopted by more and more enterprise-scale
customers. System Centre Virtual Machine Manager 2012 has been released
with many private cloud management capabilities built into it and will
be core to Microsoft’s server products strategy over the next few years.
Windows Server 2012 enhances Hyper-V’s
capabilities with a compelling update of the feature. Its virtual
servers will support up to 32 virtual CPUs and 1TB of memory each, while
support for replication of virtual servers will offer new high
availability capabilities.
Xen
Of the three server virtualization
products covered in this section, XEN is undoubtedly the rarest and
least widely adopted. Xen was the output of a research project by the
University of Cambridge in the early 2000s, and its legacy was an
open-source hypervisor. Although the open-source version still exists, a
number of commercial versions are also available. Citrix Systems now
owns and sells a commercial version of it known as XenServer, while the
technology has also been adopted by vendors such as Sun and Oracle. Of
more interest, however, is its adoption by a number of cloud service
providers such as Amazon and Rackspace, demonstrating that cloud
technology does not differ fundamentally from on-premise technology.
Hardware Support for Virtualization
While we can very easily see and
interact with the virtualization software we install on our servers,
what we can’t see is that the CPUs inside our servers now have
components built into them to assist with virtualization. In the same
way that CPUs had specific logic and components added to them to support
floating-point and multimedia operations, they now have similar
features built into them to help make virtualization software run
faster. For example, Intel’s Extended Page Tables feature provides
support for second-level address translation (SLAT). SLAT helps optimize
the translation of a virtual server’s memory addresses to physical
server memory addresses through the use of cached lookup tables.
Both AMD and Intel provide these features but with
different names. AMD’s CPUs have feature sets called AMD-V and Rapid
Virtualization Indexing (RVI) now built-in, while Intel’s CPUs have
built-in features called VT-x and EPT. Although it isn’t necessary to
know the specific roles of these components, a SQL Server professional
should understand that the latest generations of virtualization software
work only on server’s with these CPU features available. However, that
shouldn’t be a problem, as I haven’t seen a server for a few years now
that doesn’t have them built-in.