The 10-minute crash course in virtualisation
16th Aug 2009 | 11:00
A whistle-stop tour of a tech we all need to understand
What is virtualisation?
From OS/2 Warp to the dotcom bubble, revolutions come and go. We're willing to bet, though, that virtualisation isn't just a flash in the pan. It's a real revolution that's already changing – and will continue to change – the world of computing for good.
That means that, unlike some of the concepts that flourish for a while but then disappear from view, we all need to know about it. Although it's a term you've doubtless heard, a concept you may have grappled with and maybe even a technology you've toyed with in-depth, there's always more to learn.
As you read on, we'll give your knowledge of this burgeoning technology an essential boost. If you're looking for a simple description, virtualisation is a means of creating software versions of physical hardware components. Despite being the hot topic on the tech cognoscenti's lips, virtualisation encompasses a wide range of techniques that seem like they've been around forever.
Even partitioning your disk can be seen as a kind of virtualisation, as can emulators such as DOSBox, which enable users to enjoy old classics like Wolfenstein 3D on their ultra-modern kit. Similarly, programmers have been enjoying the fruits of virtualisation since the 1990s with development tools like QEMU and Bochs, which allow developers to test and debug their code on emulated architectures.
3D REVOLUTION:Popular virtualisation tools now incorporate experimental support for 3D apps and games
Virtualisation isn't just about programming and old-school gaming: it can also save you cash. Let's take an example. Suppose you want to run an old Windows app that's no longer maintained and will only run on Windows 95. Dedicating a whole machine to running that app is a waste of time, hardware and money. This is where virtualisation tools specialising in a particular environment come into play.
Apps like Win4Lin or Win4Solaris will let you run Windows inside a virtual machine on a Linux or a Solaris box, saving you having to buy hardware and an OS. It's not just about Windows apps, though. Virtualisation is driving plenty of convergence between different hardware standards.
Virtualisation applications create virtual platforms and hardware that will run on all your physical machines, irrespective of the operating system. Parallels and VMware both have competing desktop virtualisation tools available for Windows, Linux and Mac users. The time when virtualisation was an esoteric technology of interest only to corporations' IT departments or die-hard techno-geeks is over.
First stop – the law
The hardware created by virtualisation apps might be virtual for you, but to the OS (and, more importantly, software vendors), the virtual machines – VMs – are as real as the physical host that's powering them. If you're planning to run a proprietary OS or a proprietary app inside the machine, you'll still have to get a licence.
Some OSes and programs, especially those designed for servers, will let you run a fixed number of virtual instances of the app, and some will prohibit you from running any. Before deciding on a proprietary OS or app for your VM, make sure you read the fine print.
It's all about the money
One of the reasons for virtualisation becoming so pervasive is its low cost of entry. Freeware and open-source options such as VirtualBox, Qemu and Xen compete head-to-head with proprietary tools. Taking the free option doesn't always mean compromising on quality.
VirtualBox is owned by Sun, which has recently been taken over by Oracle, the second largest software company in the world. Even Microsoft has a free virtualisation product for Windows called VirtualPC. Depending on your needs, these tools might cover all the bases.
One key benefit of virtualisation is its ability to consolidate hardware. Cutting down on the number of computers you've got in your setup does require some serious planning, though. The easiest and most popular way to reduce your hardware outlay is to use VMs to replace low-powered, behind-the-scenes hardware such as routers and firewalls.
The good thing is that you don't need a lot of juice on the physical machine to power VMs that will replace these devices, as they're just running a handful of services and can be remotely managed. Replacing machines running more demanding applications will be much trickier. Test before you buy When you mix a VM with real software you get a virtual appliance.
Thanks to the ease of packaging and distribution, there's no shortage of specialised apps (for running firewalls, routers and the like) available as virtual appliances. These days, many software vendors make their apps into virtual appliances to enable prospective users to explore apps and OSes. The best place to hunt for virtual appliances is VMware's Virtual Appliance Marketplace.
CROSS APPLICATION:It's possible to minimise the guest OS and seamlessly run VM apps on the host
The website stocks freely available appliances as well as those that bundle proprietary apps or are certified for enterprise deployments that you have to pay for. You can also create your own appliances with rPath.
Once you're used to the flexibility provided by VMs, you'll also appreciate the fact that you can migrate VMs from one physical machine to another running a totally different OS. For example, you could migrate a Solaris VM from a single-core physical host machine running Windows to a dual-core box running Linux as the host OS.
Uses for your virtual machine
Using virtual networks
Virtualisation isn't limited to creating a one-off VM; you can also run multiple VMs simultaneously. You will, of course, need adequate resources to power the VMs – if you don't, you run the risk of bogging down the host. One reason for running a bunch of VMs is to test network software before deploying it on your real network.
To help you with that, most virtualisation apps will let you create a virtual network environment. It also serves as a great way to demo network-based software without deploying it on a real network.
Traditionally, if you want to deploy an app across several platforms, you have to develop multiple platform-specific versions of it. With virtualisation you can run the app inside a VM on any platform. Tools such as VMware Thinapp, Novell ZENworks Application Virtualisation, Microsoft App-V and Symantec Endpoint Virtualisation Suite take this one step further and just let you run any app on any platform.
The apps contain just enough virtualisation magic to encapsulate them from the host OS, which is why you can also simultaneously run two apps that would normally conflict.
Get a time machine
There's no shortage of methods by which you can bring down a machine. Trojans, viruses and even untested and unstable apps can crash your PC and lose you valuable time and data. Running your OS on a VM doesn't insulate you from these issues, but you do have the ability to run multiple states of the machine.
So you can have one snapshot of your newly installed machine and one with all the apps that you need, allowing you to instantly bring your computer back to a usable state if it does go down with an infection.
Blurring the boundaries
The fact you can run foreign OSes inside each other is cause enough for jubilation. But if all you need is a couple of apps, recent releases of popular virtualisation tools such as VirtualBox, VMware Workstation and Win4Lin let you run apps from inside the VM along with apps on your host.
In this case, the guest OS inside the VM sits in the background, and the apps appear as if they are part of the host OS.
For an increasing number of software projects and computer trainers, a screencast is an ideal replacement for the static screenshot. Some virtualisation apps let you record action inside a VM and create a moving presentation, or screencast. There are lots of screencasting tools, and you can run them inside the VM to capture all the action.
For a fantastic introduction to the concept, visit screencasts.ubuntu.com. Using virtualisation has the benefit of running the screencasting app on the physical hardware directly, which makes it faster.
Remote control PCs
You don't need a powerful machine to access a VM. You could run a VM inside a highspec computer and access it from a thin client anywhere on your network (and beyond). To enable this, VMware bundles a VNC server that pipes the VM to another machine.
VirtualBox comes with a Remote Desktop Protocol server that gives you more control over the VM, including the ability to log out and reboot it. You can also plug USB devices into your thin client and have them show up in a VM running on a remote machine.
Since the virtual machine runs independently of the host OS and is totally portable, you can carry it around on a USB stick. With virtualisation apps such as Kidara's ToGo (now owned by Microsoft) and MokaFive, you can carry VMs on USB devices and plug them into any machine to boot into your VM.
MOKAFIVE:Virtualisation makes machines so portable that you can even run them off USB drives
This is especially useful for corporations that want to run secure, corporate-approved environments on unsecured or public computers.
Optimising the hardware
While virtualisation apps create virtual hardware for VMs, they're increasingly able to squeeze as much juice as possible out of the host hardware. Most popular virtualisation apps, including VirtualBox, support advanced power management such as the ACPI standard, and can show the levels of the host machine's battery (if that applies). They can also make guest OSes span over multiple monitors if you have such a setup.
Virtual machines can also use the host machine's network card to connect to the router via Network Address Translation or bridged configurations, and virtualisation tools can also make VMs that can take over more than one processor core.
In fact, there are already processors from both Intel and AMD that have special virtualisation capabilities built in to the hardware.
Bringing down the wall
The ability to exchange information between different proprietary devices seamlessly – a concept known as 'interoperability' in the industry – is a nice buzzword, but there's little evidence of it actually becoming particularly widespread. Until recently, this information apartheid was true of virtualisation.
Different vendors created VMs in their own format, making it impossible to switch a VM between virtualisation tools. That's until various vendors collaborated and created a standard known as Open Virtualisation Format (OVF). Happily, OVF is slowly gaining traction.
In addition, the Jumpbox project produces virtual appliances that can run on any virtualisation tool – VMware, Parallels or Virtual PC.
Don't expect Firewire
Unfortunately, if you have a device connected via Firewire to your host machine (like most camcorders, for example), the guest inside the VM won't be able to see it. This is true for all virtualisation tools on all platforms. However, this doesn't include storage devices connected via Firewire, which can still be accessed.
In the early days of desktop virtualisation, Firewire support wasn't given priority because VMs didn't have the resources needed to process video, but now that things have changed, it's high time that this situation was addressed.
Most VMs are not ideal for gaming, but they are improving fast. VMware now lets you run apps that use DirectX 9 accelerated graphics with shaders up to Shader Model 2.0. VirtualBox has also introduced an experimental OpenGL driver that tunnels the 3D requests from the VM to the host.
Another option is VMGL, which lets OpenGL apps running inside a VM take advantage of the graphics hardware acceleration on the host. This works with all ATI, Nvidia and Intel cards, and across virtualisation platforms, but is still a little complicated to set up.
First published in PC Plus Issue 284
Liked this? Then check out How to virtualise or dual-boot Windows 7
Sign up for TechRadar's free Weird Week in Tech newsletter
Get the oddest tech stories of the week, plus the most popular news and reviews delivered straight to your inbox. Sign up at http://www.techradar.com/register