Thoughts on server and client virtualisation

Virtual Strategy magazine is a decent read for those interested in virtualisation in the workplace. A couple of recent articles caught my eye:

Solving Real-World IT Issues Through Client Virtualization
Dave Buchholz - Intel

Common Misconceptions of Server Consolidation
By Scott Feuless, Senior Consultant, Compass Americ

The Client virtualisation article is a little light on detail, but does set the scene for effective use of virtualisation technologies for testing new client applications, and also for enabling applications with different client requirements to co-exist.

The server consolidation article can read a little like a list of reasons not to consider virtualisation, however it is intendedto be read more as a checklist of considerations for when you are contemplating virtualisation in your environment. If you can answer all the hard questions then you know it’s right for you.

Virtualisation for SME’s

Nice article in Virtual Strategy magazine about how Small and Medium businesses can use virtualisation to improve their usage of hardware.

link

Home PBX thoughts

In researching my recent VoIP articles I have been playing around with a version of Asterisk designed specifically to run within a VMWare environment. I will expand on this is much more detail in part 3 of the Telephony article series, but I have been encountering what appears to be a common problem in this particular type of setup that seems difficult to resolve. Specifically, Asterisk in VMWare would appear to suffer from pretty bad audio playback problems to the point of making the audio almost unintelligible. Please note, though, that I am referring to pre-recorded audio such as the voicemail announcements, and not to any ‘live’ audio. Still very annoying and enough to cause someone to dump Asterisk.

However, there is a solution. Having tried all the usual angles that have been tried with varying degrees of success by many other people, such as amending grub.conf and setting the vmware process priority to high. I tried these and was not satisfied with the results, indeed found it difficult to discern a difference. I then remembered a problem I’d had with some older games on my shiny new (as it was then) dual-core AMD Athlon PC which had been resolved by setting the processor affinity. So I tried this hack with the relevant vmware-vmx.exe process (using Process Explorer from Sysinternals) and that seemed to do the trick.

However, I restart this PC on a regular basis as I don’t like to keep it running overnight, and the next time the PC was re-booted the audio problem returned. Of course, the processor affinity change doesn’t survive a reboot. However a little more exploring revealed that VMWare, in their wisdom, have included a means of excluding CPU’s from within the virtual machine’s configuration file - *.vmx  All you need to do is add the line

processorN.use = “FALSE”

where N is the number of the processor you wish to exclude that VM from using. I’m pretty sure you can have multiple line with different values for N, in case you have more than 2 virtual or physical CPUs. Having set this value, next time you fire up your PBX in a virtual machine it only uses the processor(s) you have not excluded. I would recommend only using a single processor, after all Asterisk is not a huge resource hog.

So if you are experiencing an audio judder issue with any of the Asterisk-based packages within a VMWare environment, and nothing else has worked, then give this a go. It might just do it. I’d love to hear if it has helped anyone.

Virtual desktops

I’ve been doing quite a bit of Virtual stuff recently, and apologies if that’s not your thing. Normal service will be resumed soon :)

Anyway, on the subject of virtualisation, I attended a demo of the new-ish VMWare Virtual Desktop Infrastructure (VDI) last Friday, and I must say it’s pretty impressive. Now I haven’t had a lot of exposure to Citrix, but from what I’ve seen it does have it’s limitations. High amongst those it the need to ensure that whatever application you’re serving by Citrix behaves itself in that environment. One rogue application can take down the server if you’re not careful, and that results in a lot of irate users.

VMWare’s answer to the server-based computing question is, not surprisingly, to run a complete version of your chosen OS (WinXP most likely, but it can be any OS that VMWare supports) for each user. So essentially, rather than have a box on your desktop that requires a reasonably hefty spec to run WinXP, say, you can have a pretty hefty server that runs multiple copies of WinXP. All you need to connect to your virtual desktop is a device that will wun RDP, or VNC or whatever other remote access solution you wish to use.

What really impressed me, though, was the number of desktops an ESX Server could run. Of course, it’s wise to take this with a pinch of salt, but a not unusually powerful server (2 x dual-core processors, 4GB memory) hooked up to a SAN can run between 25 and 40 WinXP desktops (single processor, 256MB - 384MB RAM). All of a sudden the ROI is very apparent !

Other vendors at the event included Wyse, who make some pretty nifty thin clients, and Leostream, who provide a virtual management system. This is essentially a server (which runs quite happily as a VM, by the way) sitting beytween the users and the VDI which allows you to divide your workforce and available VM’s into groups. For example you could have a group of sales people and a group of Sales VMs. Then requests for a Sales VM (based on the user id) are allocated an available Sales VM from the defined pool. VM’s can also be allocated on a ’sticky’ basis, so that, for instance, a developer gets the same VM every time.

If you’re looking into server-based desktop computing, then it’s certainly worth including VDI in the equation.

Test….virtually

Continuing on from my previous post on virtualisation, there is another relatively easy, but very effective way of using virtual machines in your organisation. But first, let me ask you a question.

How often have you made a change in your IT environment that either hasn’t been tested properly, or has not gone smoothly despite extensive testing?

I’m sure, like me, you have encountered more that one situation that fits those criteria. After all, IT is a hugely complex subject and you can’t predict everything, right ? Well, actually, I think it is possible, and indeed is becoming easier thanks to virtualisation technology. First of all, though, lets take a slightly closer look at the issue.

The goal of effective testing is, very obviously, to make sure that any changes to your live environment are subjected to sufficient tests before implementation to ensure that, when implemented, the predicted behaviour is actually achieved. Simple, eh? Well actually, it isn’t. There are a number of issues that form a barrier to effective testing. For a start, your test and live environments will always be different. How different will depend on how much investment you make in your test environment, but at the very least there will be data differences.

Now lets consider one of the characteristics of virtual machines, namely the isolation of the operating system from the underlying hardware. VMWare virtualisationSo instead of needing drivers for a particular make and model of CD-ROM drive, for example, each virtual machine on a physical server will use a standard virtual drive regardless of the physical drive. The story is the same for all the virtual components - CPU, memory, network card, hard drive, etc.

So now, instead of having to ensure there are no hardware differences between your live and test environment, you can go ahead and use pretty much any hardware you like, as long as it can cope with running a single virtual machine.

The other relevant feature of virtualisation technology is the ability to take a snapshot of the virtual machine at any point in time. (Note: this is a feature of VMWare software, and of many other virtualisation solutions. If your software won’t do this then you should probably change it.) So essentially you are taking a complete copy of your live server to do with what you will.

So effective testing is now a much simpler matter. Instead of having to maintain a test environment that stays completely aligned with you live environment, all you have to do now is take a snapshot of the live environment, make the chnages and carry out your testing. If the testing is successful, then you can go ahead and change your live environment with a high degree of confidence that the update will not fail. Indeed, if the live environment has not changed while testing is carried out, then you have the option of replacing the current live virual machine with the updated snapshot.

Don’t forget though, backups are your friend!

Do virtual machines and small business go together?

Over the last couple of years virtualisation has extended beyone the enterprise and entered the awareness of SME’s. I say ‘the awareness’ as I don’t believe many SME’s outside the IT sector actually utilise virtualisation software in their day-to-day activites. This is a shame because I believe that the are a number of advantages that virtualisation can bring to the growing company.

First of all, a quick overview of virtualisation. What I am referring to here is the ability to create one or more software environments on a hardware platform. In essence, run more than one operating system (all the same or a variety thereof) on a single PC or server. There are a number of alternatives on the market, the generally acknowledged best of which is VMWare’s range. However, Microsoft has also bought into the market and caused a bit of a shake-up when they started offering the PC and server products for free. VMWare quickly followed suit, creating a great opportunity for SME’s to get themselves on the virtualisation ladder without any initial financial outlay. For a full list of virtualisation services offerings, have a look here.

The most common use of virtualisation is to run a number of virtual servers on one physical server. Why ? Well a typical server is actually only utilised between 10% and 20% of it’s potential maximum. Obviously, therefore, there is scope for utilising that other 80%-plus. In the past, many people have run software that uses their spare CPU cycles for community projects, such as SETI@home or Cancer research. This is commonly refferred to as Grid Computing. And if you’re happy to donate computing resources like that, then that’s fine. But maybe you should consider using them as effectively as you can first, and then donating what’s left?

Disclaimer time. I have looked most extensively at VMWare, so will talk about their products here, but that does not mean that other solutions will not do the same thing, as always it’s worth spending a bit of time and effort looking at the alternatives for yourself.

So how can you utilise virtualisation within a company that doesn’t span continents ? Well, if you’ve got even a single server then it’s worth considering. With a single physical server, you are probably running all sorts of services that, in a larger organisation, would warrent separate servers. You are probably using it as a file server, print server, email server, domain controller and directory services. You might be using it as a web proxy, a firewall, or any of a number of different things. And wht happens if any one of those services causes the server to crash, or require a restart? You got it, everything is unavailable until the whole shebang is back up again.

Traditionally, the means of separating out these services has been to utilise any piece of hardware that’s available to run them. Typically, a domain controller or a print server or a file server doesn’t need to be a powerful box, so the PC that can’t run MS Office any more is pressed into service as a server. Now think about this. Your company is using a desktop PC that’s probably 4 or 5 years old minimum as a core part of the network infrastructure. It’s designed to be a reasonably reliable workhorse for your admin people, but disposable. If it stops working, the cheapest option is to chuck it away and buy a new one for £200 or £300. You scared yet? You should be!

This is where virtualisation comes in. Invest instead in a reasonably powerful server. Stick it in an air-conditioned environment. Haven’t got one, rent some space in a data centre, or rent a server from a hosting provider. Install a reliable, secure operating system, remember you can get Linux for free. Install your free verion of you favourite virtualsation product (VMWare server fits the bill). Install your guest operating systems - you might need Windows for your domain controller and directory services, but why not use Linux for file serving and print serving? And voila, you have a much more stable environment.

There is a lot more to consider in this scenario, obviously, and there are many other reasons why you might want to consider virtual machines. I will touch on these in future blog entries. Stay tuned!