Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

What technical criteria do people use when ascertaining an applications suitability for virtualisation? I know things have moved on a bit since a few years ago so I would like peoples experiences and methodology when looking at techincal suitability. For reference I am looking at both legacy and new build applications.

Size
Load
I/O
etc...

Cheers Mark

share|improve this question
add comment

3 Answers

Much as I hate buzzwords I have to advocate that you take the Holistic approach, rather than attempting to establish baseline metrics on which to categorize your workloads for virtualization.

In the vaguest of terms, the kind of basic determining factors you can use are:

  • Support - Will the OS in question even run in a virtual environment? Do your Apps depend on anything that can't operate properly in a VM environment (e.g. license dongles). Do the vendors of your OS' and Apps provide support for the systems if it's on a virtual platform?
  • Licensing - Does the vendor have a compatible license agreement for running in your virtual environment? Will there be additional licensing costs due to the increased specs of the host server?
  • CPU Usage - What's the characteristic of the CPU use on a given server? Does it max out the CPU for an hour every day because it's generating a massive report? Would it actually cause a problem if it took 2 hours instead?
  • Disk Usage - See CPU Usage
  • RAM Usage - See CPU Usage
  • Network Usage - See CPU Usage

Also beware The Perils Of Methodology. Virtualizing a businesses environments takes skill, experience and a bit of creative thinking to pull off properly, and you'll have to thoughtfully pair-up the environment you can provide, with the workloads you need to support, while weaving in a whole bunch of business requirements and opportunistic infrastructure improvements along the way. You can write a manual for this stuff, but the outcome of that approach will not deliver the best value to the business.

share|improve this answer
    
In our case many of the applications we run on internal servers cannot be virtualised because the vendors simply will not support it. This is causing us some major headaches in terms of thermal load in the data centre, but there is not much we can do about it. –  wolfgangsz Oct 5 '10 at 10:33
add comment

Generally there isn't necessarily a line in the sand that you cross and suddenly one solution is better than another. There are pros and cons of both virtualizing and not, and if so whether to do it in the cloud or at home.

You really need to take a specific use case, find out the pros and cons of each solution relative to that use case, then prioritize each of the pros/cons for your customer and choose a solution. There isn't an exact formula for this because the same pro might be a life saver for one client while the same pro for the same application might not matter to another. The same with cons, a deal breaker for one company might not matter to another.

Of course the suitability of an application matters, but when both routes are an option, it's more about prioritizing advantages and disadvantages than any magic IO/CPU/Load numbers.

share|improve this answer
    
Thanks for your responses so far (keep em coming). I've been asked the question by management and I wanted to avoid the 'it depends' answer if possible. I agree with the points so far around nothing prescriptive but was looking for more guidleines or rule of thumb etc... –  user56149 Oct 5 '10 at 10:44
add comment

First off, I would agree that you need to make sure vendors support, or even allow, virtualization of their applications. We have one pretty important application that allows virtualization but reserves the right to make us load the application onto a physical server if troubleshooting requires it. We have other apps that do not support virtualization at all.

Second, what kind of virtualization host hardware are you looking at? If you have enough horsepower, you can virtualize just about anything, but if you are underpowered, you can cause major performance issues.

Third, are you OK with mission-critical software being virtualized? You may want to consider having either a cluster or more than one virtual host so that if a lone host goes down, it doesn't take down half your infrastructure.

Finally, and the biggest criterion for us on non-mission critical apps, how overpowered is the hardware the application is currently on? We had several beefy servers doing one small thing that we were well-served by virtualizing. Also, replacing old hardware is a big one here. There is a tool on Sysinternals called disk2vhd that will create a vhd file (if you are using Hyper-V or Virtual Server) from a physical disk and we have had very good luck with virtualizing existing physical instances with this.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.