In an effort to get all my projects out in to the wild, I’ve pushed the XMC project out to github to mirror CSH’s local git repository server.

For those of you who don’t know what XMC is: Xen Management Console. About a year ago I began setting up a Xen “cluster” for CSH to use. With about 10 physical machines we needed a way to manage Xen and the VMs on them. We set up the hardware to be as dumb as possible by having them all PXE boot a nicely modified version of Gentoo that myself and Dan W. put together. These machines keep no state and have read-only root filesystems. Storage is on another system and shared via AoE (ATA over Ethernet) and a custom python server I wrote to manage the A0E exports. DNS/DHCP and are handled by another machine which is CSH’s central DNS/DHCP system as not to replicate services.

XMC allows for some fun things like drag and drop live migrations, basic load balancing when booting new VMs, and basic access permissions to allow users to boot/reboot/shutdown their own VMs.

The project was my first large scale working with Xen and python, so the code isn’t the prettiest you’ve ever seen. I hacked a lot of thing to “just work” and never had time to clean most of it up. Since I was concerned with making it work quickly I wrote some of the worst Javascript I have in a long time. I did use my jscore library, though, so that makes me a little happier.

At the moment the project is pretty dead and barely running due to hardware failures this past summer. Also, since I’ve moved on from school there seems to be some enterprising new CSH members who want to replace the system (hardware and all). Because of this I figure this project is probably dead, but maybe it’ll come in handy to someone, somewhere.

XMC on github