What's the friendliest virtualization solution?
I'd recommend VirtualBox, if you're just getting started. (apt-get install virtualbox-ose
) It's intended for running a virtual machine on a desktop (or laptop) computer, so that you can use both the virtual (guest) computer and the real (host) computer together. It gives you a nice GUI that you can use to create virtual machines and alter their settings. You can start and stop the virtual machine, so that if you need extra processing power for some task you're running on the host, the guest doesn't have to get in the way.
The names you gave in your question are more high-level, I think. They're the kinds of things I hear about in connection with virtual private server (VPS) companies, which are web hosting companies that use virtualization to provide several people with servers using one physical computer. They're probably somewhat more complicated to set up and maintain, and typically when you use something like Xen, the host computer isn't intended to do much besides serving as a "base" for the VPS's.
VirtualBox is probably the most friendly if you only need to run 1 or 2 VMs at a time.
If you need to simultaneously run many different Linux environments (10 or more per host) then OpenVZ is the way to go. It's like chroot but provides completely isolated Linux environments (containers) with the ability to control resources, do check-pointing, and live migration. I'm using it for already more then 2 years for many different sysadmin tasks at work (a 400 user Bioinformatics center at a large university).
OpenVZ has almost no overhead. It's the only one of it's kind (operating system level virtualization). It handles well Linux applications of any proportion from a web reverse-proxy to an I/O intensive backup system processing 30TB a day. Having 30 or more containers per server is normal. Another big advantage is that from the hardware node (equivalent to Dom0 in Xen) you have all the file systems of the Linux containers mounted directly - no NFS required. Also, you can see all the processes of your Linux containers from the head node with the ability to strace, kill, etc...
You can safely delegate containers with ssh access to your friends and let them be root.
You would need to be comfortable with Linux and the command-line. Being able to edit start-up scripts would be helpful (quickly give you a lot of control). For more advanced setups, may need to learn some networking.
Apart from Virtualbox, KVM along with virt-manager as front end is a pretty good virtualization solution in my experience.
If you intend to use the host (computer that you install the VM-software on) for any thing other than to be at VM-host then you should keep to VirtualBot and qemu (or vmware if you like burning monies liberties).
I can recommend taking a look at qemu (install), it is a bit hard to setup (afaik no of the gui-tools really works well) since it is a commandline tool. But one of the main features of qemu is that you can emulate other CPU targets that the one your on. I often use it to boot a test-root-image of for my phone (Which in effect is a 500MHz ARM computer running Maemo Linux.)
When qemu runs on a x86-64 it can use KVM for x86-64, when on ia32 it can use KVM on ia32, when on PPC 440 it can use KVM for PPC 440 ect..