there is a long list of features which shall be accomplished in virtualization softwares. A few i will try to list for you .
1 Scalable: it should be capable of adding more and more virtual servers and machines, by adding appropriate hardware.
2 facility to move VM easily to keep better up time.
3 facility to allocate resources for VMs like increase RAM, Processors and drive space.
4 Easy software deployment
5 Easy remote management and monitoring of VMs.
6 Capability to convert physical machine to VM.
and so on ...
There are many free softwares for VM but for enterprise it is always advised to go for standard softwares. VMware, mircosoft and Citrix and main player in Virtualization softwares.
what exactly does moving your VM for a better up time mean? are you referring to physically moving from one data center to another? what has that got to do with the software?