I need to subdivide EC2 (or perhaps other cloud provider) instances. I know you cannot run a full virtualization stack on another. For instance a Xen guest cannot host a VirtualBox guest. So this means I am left with operating system-level virtualization.
EC2 kernels are only publishable by select vendors, so you cannot upload the custom kernels required for OpenVZ or Vserver.
For Linux, I think this leaves me with lxc (on Ubuntu 9.10), User Mode Linux, or qemu. I'm having a hard time finding comparisons between them. Performance is a concern, as is the ability to provide SMP to the guests. I would also like to use COW/sparse roots to reduce guest provisioning.
My question is, what are the trade-offs between these options?