We use virtual machines a great deal at my company, Hyper-V mainly but we have also dabbled with ESXi plus vCenter. Besides the traditional advantage of being able to consolidate many physical machines onto one server, we find the ease of management and provisioning extremely compelling features. The high availability and DR stuff are far less important.

We often have to install our applications on a machine we had only some influence in picking, so the hardware can vary a good bit. This time the vendor is HP, the next time it may be Dell. Blade servers or not, etc. The application is complex to install, involving several (up to 30) machines sometimes. It is so nice being able to install the base hypervisor, copy a few files, and be up and running. It saves us an enormous amount of time.

Running on VMs also has its disvantages too. It is one more layer of stuff to work with. Admins may not be familiar with them. VMware's licensing model seems to punish companies with lots of servers, but only one or two VMs per server (very expensive just for management tool). Often the hypervisor puts limitations on the VMs that really matter to our application. Hyper-V's limit of 4 CPU cores leaps to mind as really annoying to us since our application will use any CPU power you give it. That ease of provisioning almost always wins out though, since we are a development shop and are constantly building and rebuilding servers for ourselves and customers.

So my general question is: if you have at least some power over picking your hardware and are working with Windows-based OSes, what should you do to be able to rubber-stamp out similar machines without resorting to virtualization with the least pain possible? Additional points for solutions that allow migrating to a different hardware configuration with minimal pain. Or is this just asking too much and should we keep going with VMs?


Well, for Windows based, bare-metal machines you should use the AIK. As for migrating systems between hardware, you will need a tool like Acronis or ShadowProtect that allows for applying an image to different hardware, especially storage controllers.

  • Been using Acronis for a few years now. Love the product. – RateControl May 9 '11 at 23:37

I can't think of anything that doesn't involve other licensing pain, like Altiris or Ghost. Look at it this way : The machines - do you own them, or does your customer? If it's the customer, there isn't much you can do. I mean, even aside from Ghost or VMware licenses, what about the Windows licenses? If you start imaging their hardware with your MSDN-keyed servers, everyone's going to have a bad day.

The best thing to do might be to write a very smart installer that can remotely connect to other machines and do remote installs of the other components. I've seen AV and backup software that does this - you start the MSI on Server A, and you can tell it to install the master on A, the reporting server on B, the agents on C-G. You need open ports and valid Windows creds of course, but you would anyway.

  • Excellent points. Do you know if we could change the MSDN keys to retail (or some other license)? Or maybe clone an unactivated server? – Jeremy May 10 '11 at 15:15
  • No no no no no no no no no no. – mfinni May 10 '11 at 15:24
  • Trying to dick around like that will get you in trouble, is what I'm saying. If the customer owns them, they almost definitely bought them with a Windows license attached. If I was your customer and you wanted to reimage my machines to install your product, I'd push back on you. You really should get in the room with some IT guys (not developers) and work out a sensible install architecture. – mfinni May 10 '11 at 15:26
  • Thanks for the advice! These servers are bought (or would be bought) specifically to run our application, almost like appliances, so we have a lot of say on the OS configuration. I agree that improving the installation process would help a lot. I was just curious if it was even possible to take a server you had built from MSDN and then buy a retail license and convert it. But this is not a licensing site, right? :) – Jeremy May 10 '11 at 15:49

Others have provided some good pointers for the capability you've asked for. My sense though is that you'll find any of those solutions is more work and more complexity than virtualizing the machines. Obviously you'll want to check this out for yourself but this is one of the key reasons people virtualize.

  • You may well be right. The only (slight) downfall is virtualization forces me to use multiple VMs (and multiple OS licenses) in order to fully utilize the resources of the machine. We want to keep that CPU busy :) – Jeremy May 10 '11 at 15:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.