Wednesday, January 23, 2008

Post virtualization thoughts

I think that I have achieved my goal of reducing the number of machines on which my network runs. There is plenty of good about this: 

  • less power consumption therefore a greener planet.
  • less hardware to maintain.
  • an ability to tune the RAM for each virtual to exactly what I want. Thus, if the web server is using 203MB then I can set up a virtual machine with say 233MB of RAM and use the remaining ( you'd normally have to put 256MB physically into a machine so I can scrimp 23MB for another virtual machine) somewhere else.
  • I get better utilization out of my hardware (ie things like the processor are now running at 50-60% instead of 5-6%).
  • I can 'freeze' each virtual PC rather than having to completely shut down the machine If I need to do maintenance.
  • I can copy/backup a virtual machine by simply copying files. Sure they are big files but now if I want to migrate to faster hardware I do a simply copy and then fire up the virtual PC on the bigger, better, faster machine - upgrade done.
  • I can quickly isolate a virtual PC from the network by removing the mapping of the virtual network card from the physical network card. This is great for maintenance tasks that may affect the network.

There are obviously some bad things as well:

  • Disk performance is slower since all machines share a single physical disk which gets thrashed more.
  • If I get a corrupt virtual PC image then I lose the whole virtual PC.
  • I have a single piece of hardware that can still fail and if it does ALL my virtual machines are out of action.
  • Virtual technology doesn't give as good performance as physical machines.
  • Converting physical machines to virtual machines does take some fiddling.
  • Working with virtual PC files requires much greater transfer times since the files are GB's in size. A simply cut and paste can take 10 minutes.

Some other comments I'd make on the process I took:

  • Sure I could have used Windows Virtual Server but Virtual PC is quicker and doesn't require IIS. Also the virtual PC images are more easily moved. Not being an expert in Virtual Server I'm sure eventually that the virtual PC images will end up in Virtual server, my thinking is that if machines are already virtual PC's then they are going to be easier to move to virtual server should I choose.
  • VMware conversion is something that needs more research, I have done it very successfully with workstation images using Shadowprotect but servers appear to be a different kettle of fish.
  • Virtual PC's don't like non-Windows environments. Shadowprotect boots in virtual PC but man is the network transfer slow.
  • If you are migrating a production environment spend the time and do it properly, don't try and do it off the top of your head. You'll make mistakes and the conversion process will take twice as long. Sit down and define the steps you can take and what the roll back is.

In conclusion, I have no doubt that virtualization is the way of the future, it has too many advantages to ignore. Virtualization can work in an SMB environment but there are still some considerations to take into account (eg speed). Now that everything is converted I'll keep posting what I find as I'm sure I'm bound to uncover some more interesting lessons.