User-Mode Linux — my choice for virtualization
OpenVZ failed from the start, in that it had a single kernel for both host and guest. Because I intend to fool around (?) with the kernel, that was inadequate — I want to use a virtual environment exactly because I don’t want to screw up my whole setup when I experiment with kernel configuration and patches. Still, I am sure OpenVZ is not without its merits, it just didn’t serve my purpose.
Xen seemed an adequate choice, but required a whole empty-tree re-emerge. I started on it, but things (including kdm) stopped working after I emerged expat-2. The so name had changed, so I spent half a day recompiling various packages and using elinks to work my way through the instructions on the Gentoo forums. After this (which in fact had nothing to do with Xen), I proceeded to compile a kernel for Dom0. This proved so darn difficult for me (strange defaults), that I temporarily put Xen on hold until after I learn some more about the kernel. However, I must admit that Xen appealed to me the most, both in the way it handles guests and in that it can use Intel’s VT.
Of all these, User-mode Linux was the first I tried, and the one I am sticking with for now. It only runs linux and can’t use the Intel Virtualization Thingy, hence it is far inferior to Xen, but it also serves a different purpose. So I am sticking with dual-booting Vista for games momentarily.
After a few plain stupid mistakes, I got UML to work, started three machines and proceeded to build a bridge between the tap devices on my host. Much to my surprise, while experimenting with automating bridge creation, I noticed that networking between the three virtual instances (IPs 192.168.0.[1-3]) works without creating a bridge. It’s somewhat of a mystery to me why this happens, but then again I am short of clueless about networking.
Now I have three virtual linux instances (started on demand, of course) running the same kernel, with possibilities to expand to any number of such machines, study networking on them, change kernel configurations, perhaps even try a virtual cluster. Memory usage never jumped higher than 250 MiB, with Firefox, Thunderbird, Pidgin, KTorrent, and the three UML instances running at the same time. Of course, the latter were idle, but I am overall very satisfied with performance. It’s not like I’ll stress test my virtual environments — I will only play with them occasionally.