I just read doug’s “the best free vm hypervisor” article, which refers to some other benchmark overview.
Summary: if you want to to run a medium-heavy DB server on a VM, don’t do it on Xen, but VirtualBox is good.
Well, I figure anyone that has done virtualization on a larger scale might spill their coffee on that summary alone. Virtualbox is really a great tool for your laptop, but nothing to run any server on.
Let me add a few little details on that:
- some people will use the backend mode “file:” for their VMs. The reasons may vary, but they share the same issue: The linux loopback driver is extremely bad. The one in Oracle VM is heavily patched for performance, but still it will be not comparable to the one in NetBSD! The stock linux one is definitely the worst around.
- Xen is the only linuxy platform that generally uses O_DIRECT for it’s file accesses. That means you’ll see lower performance numbers at the benefit of not losing your data. I dont have the source could digging mojo to simply proof that. I just figured it because all other platforms have no issue running on FUSE which doesn’t do O_DIRECT. Xen has issues with that, and this is a very strong indication that VirtualBox, VMWare Server 2.0 and KVM do _not_ avoid caching in the host.
Which, again, proves their high “a few vms on the desktop” focus.
Choosing anything like that for more than a DEV environment is something that may turn out OK for you. Or not.
I’ve already seen a whole OCFS2 test cluster go down when the host system died, all the filesystems in the VM were blocked. Things like that LVM and Multipath can’t handle barriers are just yet another reason to want a solution that ensures your host’s buffer cache is out of the path – even if it feels less snappy.
That aside, there’s surely enough work left in Xen with respect to better IO performance.