Before cloud computing changed the world, virtualization paved the way. It’s really no secret that the former serves more or less as the backbone of the latter – the technology is a fundamental component of cloud computing. It equips cloud providers with the capacity to virtually partition and provision the data on their server, allowing them to give each client their own virtualized instance of the necessary software or hardware.
It’s not entirely surprising, then, that modern virtualization has found its primary home in the cloud. That isn’t to say that’s the only thing it’s good for these days – it’s an incredibly powerful technology in its own right. By making use of virtualization outside of the cloud, one can create a hardware-independent operating environment, a process which offers very real benefits, particularly in the development space.
Want to test an application in a native Windows environment? You can do that. Need to access virus-infected data or run old, incompatible apps? You can do that, too. Want to set up a local backup system or a sandboxed work environment? Again, virtualization’s the key.
Alright, so we’ve rambled a bit about how cool virtualization is, and how its a powerful, viable technology in its own right. It’s time we get to the point of today’s piece – a simple question, actually. Is there such a thing as an optimal hardware configuration from a virtualization standpoint?
Perhaps I should explain what I mean. As we’ve already said, virtualization allows one to make a hardware-independent virtual machine, but what of the system that’s running that machine? Is there a ‘sweet spot’ in terms of what hardware one should use, or is it simply a matter of providing enough resources to power the virtualization?
From a hosting perspective, the answer’s actually a bit more complicated than you might think. Although no ideal setup exists in terms of compatibility – most modern hardware doesn’t have any issue with a virtual environment – there are certain bottlenecks you’ll need to manage, especially if you’re hosting virtual machines for your clients. In order to make your system as well-suited for virtualization as possible, you’ll need to make sure you do something to address them.
Disk I/O And RAM
By far, the most important thing you’ll need to consider is how much memory your server’s got – and how powerful that memory is. If you don’t have enough RAM, then your users are going to end up dealing with high latency and slow performance – neither of which you want to foist on a client. The same is true if your hard disks don’t have a fast enough write-speed.
So…what can be done here?
First, make sure you’re slotting at least 32 GB of RAM in each socket of your server. Second, if it’s an option, go for solid state over traditional mechanical hard drives – the faster write speed will be well worth the additional cost.
Another, slightly less critical bottleneck involves storage space – and this is ultimately dependent on how much information you expect to manage (and how much data you allow your clients to store on your server). In this case, there’s really only one thing you can do – figure out how much storage space you need, and make sure your server’s got it. If budget is a concern, then making use of thin provisioning and linked clone disks can significantly cut down storage costs.
Last, but certainly not least, you’ve got your network. Unfortunately, there’s really no simple answer here as to how much bandwidth you should have, nor is there a definitive answer regarding your port speed. It all depends on what your clients are using their virtual machines to do – figure out what apps they’re going to be running, and carry out a few tests; monitoring your resource use as you do.
From there, it’s a simple matter of extrapolation.
Virtualization has always been one of the most powerful technologies in IT – and the advent of cloud computing has only made it mightier. Its greatest strength undoubtedly lies in its ability to be completely hardware independent. In short, there is no ‘optimal’ hardware setup. so long as you’ve the necessary resources and manage your bottlenecks properly, your virtual machines should run just fine.