kvm cons:
performance-penalty (io and cpu)
more resources needed for the host pros:
easy and fast (live-) migration with external storage
usability of new kernel
flexible - you can migrate a virtual machine also to real hardware, or to another virtualisation platform and vice versa.
openvz cons:
only "old" kernel 2.6.18 and 2.6.24
only local storage
migration to other platforms (true hardware, kvm...) not easy - it's a new install with transfer the config and data-files
no kernel-modules can be loaded by the guest pros:
good performance
less resources needed for the host
Typically I prefer to use OpenVZ for everything because it has the best native speed, especially for hard drive access and great RAM/space sharing system. Unfortunately OpenVZ can not run everything: Windows, Java, complicated iptables firewall and etc., that's where KVM comes in. Isnt obvious?
i was confused while trying to run some applications (mainly java) when using openVZ; but after moving the applications to a KVM system, it is working fine.