So far I had used:
- schroot to create a 32-bit play area on a 64-bit machine
- fakechroot to perform debian builds without root access.
- vservers to create the gamut of web servers that provide the different web based services at IMSc.
- user-mode-linux to teach people things about file systems and operating systems.
- qemu to build programs for slower machines on faster machines
This week, I was given a "desktop" machine. In these days of computer power profligacy this means a fast Intel Core 2 machine or equivalent. I had already decided that this machine would function as:
- a desktop machine for me and others who used my office.
- a server for me when I am away from my office.
- a testbed for other things that I may want to try out.
Moreover, these services should not interfere with each other. In particular, the most valuable portion was the server which should be remotely restartable and yet have reasonably secure data.
It seemed clear that Xen is the only solution which fits the bill. (Actually, there is kvm but that seems a little too much like qemu. I want to learn something different at the same time.)
There was the additional challenge of switching to 64-bit architecture from an existing installation of 32-bit. I want to do this without re-booting more than necessary and without using the CD drive. This was possible with only two boots (one to switch to the 64-bit kernel with 32-bit userspace and another to switch from 64-bit kernel to 64-bit Xen hypervisor and kernel) thanks to the wonderful work of Debian people especially those who maintain the kernel, Xen, debootstrap and xen-tools.
One of the tricky things was to get the desktop domU run X applications. The solution I have currently adopted is to run the X server on dom0 and have it query the domU for xdm logins.