The way of Xen
One of the bigger buzzwords in enterprise-level computing is virtualisation, the process of dividing up one large computer into multiple virtual machines, each of which runs its own instance of an operating system. So instead of buying, say, four servers for your business – two to run Windows Server 2003 and two to run Linux – you’d buy one hefty piece of hardware and virtualise it by running four virtual machines on the same physical kit. It still looks to end users as though you have four servers, but you know there’s only one box in the machine rack. For the price of four relatively cheap servers, you can buy one much more powerful machine with all the high-end features you need, such as multiple power supplies and remote terminal access. The single machine takes up much less space and uses less power than four individual boxes – something that’s becoming more and more important as companies strive to go as green as possible.
One of the biggest markets for virtualisation products is the ISP sector. Web-hosting providers have traditionally offered one of two types of hosting: a dedicated machine (with associated high cost) per customer, or shared hosting, where several customers have their accounts hosted on the same machine. However, anyone who’s experienced the latter service will have horror stories to tell about their website grinding to a halt, because some idiot sharing the same machine sucked up all the processing power thanks to badly written software. Cue virtualisation and virtual machine hosting…
What’s so great about virtualisation?
Where’s the advantage in running some kind of virtualisation program, as opposed to just giving multiple people separate accounts on the same machine? The answer is all to do with resource allocation. If multiple users all log into the same machine, they’re sharing the same processor, memory and so forth, so if one user starts running a processor-intensive program everyone suffers. If one user takes down the database server with some misconceived SQL query that takes hours to run, the database server isn’t available to anyone else. And so on.
Virtualisation solves this problem by allocating a fixed set of resources to each virtual machine (VM), so that the virtual machine can’t use any more resources than those it’s been allocated. Even if someone has a runaway process that’s gobbling up memory, it’s confined to gobbling up only the part of memory that particular VM has been allocated, and no more. If there are any spare CPU cycles – that is, if no-one else’s virtual machine is doing anything processor intensive – a VM may take advantage of those spare cycles, but if another user starts up a processor-intensive task on their VM, the first VM will automatically be scaled back so the second user isn’t penalised with reduced performance.
Hence, web-hosting providers are jumping onto the virtualisation bandwagon in droves, because it enables them to offer customers the equivalent of a dedicated machine at much lower cost than before. For instance, a twin-processor machine can be virtualised into the equivalent of two single-processor machines, with much lower purchase and running costs than two physically separate single-processor boxes. And now that dual-core, four- or eight-processor machines are becoming easily available, a single physical machine can be split into the equivalent of eight- or even 16 single-processor machines at dramatically lower cost.