Virtualisation – What does it all mean and do I need it?

You may have heard about Virtualisation, perhaps on the Web, maybe from an technology supplier. maybe even me! It’s sounds exciting but what exactly is it and is it something you need or even want? It’s a slightly complex thing to understand but I’ll try and explain it in simple terms.

Typically, you get a computer, with a processor, a hard drive and some memory. The operating system is installed on the hard disk, you load up your software in to the operating system and off you go (whether a laptop, desktop or server).

In the “olden days”, servers were usually tasked with one main task, such as Email, File storage or Database. As processing power became cheaper over time it became worthwhile to look at consolidating some of these services (which led to the release of Microsoft Small Business Server). As server technology became even more powerful the next stage was to look at physical server consolidation hence the birth of Virtualisation.

Virtualisation creates a layer where the client operating system (be it Windows Desktop or Server) is run on a Virtual Machine sitting on some kind of host server. So this leads to the next questions, what is a Virtual Machine? And what is a host server.

We’ll start with the host server as this is the foundation that everything sits on.

A host machine will typically this will be a relatively powerful machine, with large amounts of processing power, lots of disk space and ram. On this we install a base Operating system. The big names in Virtualisation are VMWare and Microsoft. Both offer a free (essentially unsupported) or paid for versions of the software (Microsoft offer it as a component within Windows Server 2008 and 2012) and as a stand-alone product (Hyper-V). We won’t look at licensing here as it’s outside the scope of this article.

Once we have the base Operating system installed and configured, we have something called a Hypervisor, which is the system that allocates and manages resources on the base server for the virtual machines.

Virtualization concept

So what is a virtual machine?

Essentially a Virtual Machine is a collection of settings, such as number of processors, size of disks, how much ram etc. The beauty of this is that physical hardware is now abstracted from the operating system, meaning that a standard (and consistent) set of components are supplied to the virtual machine which makes it hardware independent.

VMWare LogoApple Mac users have been using some of this technology for some time with software such as Parallels and VMWare which allowed them to run a Virtual Windows desktop on their Mac so they can run Windows Applications within their Mac. Microsoft brought it in to the mainstream with Windows 7 Professional and the XP mode which was provided to give some compatibility respite for older applications.

Here at The Engine Room we now use visualisation on almost all of our server implementations. With Windows Server 2012 Microsoft made it possible to run one physical and two virtual machines with one license, thus reducing the cost of having a virtualised environment. This means that with a single license you can have two servers running separate applications, such as one with Microsoft Exchange and run with File and Print services, all for the cost of one Server license! We also like using it because (most of the time) the server Operating system is quite reliable and it’s the hardware that can cause headaches. By removing the hardware from the equation reliability improves as will the process of managing upgrades (such as increasing capacity and performance).

Hyper-V-logo

So should you be using it? Server side it makes sense as it faciliates the use of additional servers without always needing new hardware (disk space and memory excepted) and an easy migration path to newer or different server hardware. Desk side it can make sense although really if you need to be using different platform applications I would seriously consider whether you are on the right platform or set up a dedicated machine in that function so you are not trading off performance or capacity for compatibility (see Roman’s article about that here).