Firstly you need to consider the difference between VM (virtual machine) and HV (hardware virtualization). Hardware virtualization is what allows multiple OS's (not always different types) to run on one hardware node side by side. A virtual machine simply allows software built for one OS to execute within another.
The two are completely different concepts. Which one you need, I have no idea.
Any decent (efficient) virtualization needs to be done at the kernel level and hence, needs to run the same OS within each container as that of the host. (consider Xen or OpenVZ)