Project goals

This an updated version of the initial post that went out to the UML mailing lists.

As many of you already know, a group of individuals and I have run a shared server named Zaphod with each of us having our own UML virtual machine for just under two years. The setup is described at . I recently added a "Lessons learned" section and will add some comments from users of the system at some point.

The project has been a success on a number of levels, largely because of Jeff's efforts and assistance. We've identified some bugs and bottlenecks, put out some documentation on how to run a shared server more efficiently, run a number of services on 25+ virtual machines, tested 2.4 and 2.6 kernels and tried all manner of patches. The users have generally been quite happy with the way the server has performed.

Jeff Dike has recently had some good luck with running UML on the AMD64 bit architecture (used on Opteron and Athlon64 chips). The code holds promise, but like all code will need some exercising to shake out the bugs. The architecture will also have performance improvements, configuration issues, and quirks that will need to be documented or worked around.

For this reason, I'm considering starting a similar project on a 64 bit architecture. People interested in taking part would split the cost of a 64 bit machine and the ongoing hosting costs. In exchange, we'd all get virtual machines on the box, with the ability to run services and host users. (For more details on the process, see the above paper). I expect we'd have ready-to-run Fedora Core 2 and Debian virtual machines, but certainly allowing other VM types if the user supplies the root filesystem.

This email is a preliminary call for interest. I expect the purchase price for the system would run between $250 (US) and $400 per participant (and I expect the project will offer half-shares; half-price for half the ram, disk, and bandwidth, running at a nice level of 10).

As for ongoing costs, it appears that there may be an ISP willing to offer cohosting at no cost. There may also be a member willing to provide a system. I'll provide more details here when I have them.

Taking part will also involve taking part in some aspect of the project, such as: documentation, new user setup, hardware purchase, setup and maintenance, bug reporting, root filesystem generation, performance tuning, testing advanced features, kernel features, kernel debugging, kernel updates, finances, team communication, etc. See below for an updated list.

Taking part

If you have interest in taking part in an early 64 bit CPU test of UML, please take a look at the list of potential projects below and think about what kind of contribution you'd like to make. Sign up for the mailing list, and send in a quick note of introduction saying who you are and what you might like to do with the project - feel free to suggest things not on this list.


The people listed below have expressed some interest in the project. Please let me know if you'd like me to include more or less information about you.

Alex Olson
Brian Maples
Chris Carella
Douglas Wheet
Jeff DikeKernel Developer
Jonas Meyer
Matt Fearnow
Matthew Bloch
Peter Hovorka
Pete (Bytemark)
Pui Yong
Staf Verhaegen
Tyler Mitchell
William Stearnswstearns@pobox.comhttp://www.stearns.orgOrganizer

Project components

Names in parentheses are people who have expressed interest in contributing to that aspect. That doesn't mean a task is closed - multiple people can certainly work together.

Largely covering 64 bit issues and new features not mentioned in uml-coop.current.html . (Jonas Meyer)
New participant setup
Participants, special purpose VM's, and scratch vms for testing code. (Pui Yong)
Hardware purchase
Finding vendors of rack mount Athlon 64 boxes, choosing specs, comparing quotes, planning for growth, purchasing upgrades. (Jonas Meyer)
Hardware setup and maintenance
Both Brian Maples and Matthew Bloch have offered to host the server - thanks!
Bug reporting
Liason with 64 bit kernel developers 64 bit distributions, and Jeff Dike. Reporting problems and testing fixes. gdb
Root filesystem generation
At least Fedora core 2 (most recent test) and Debian. Others as requested. (Jonas Meyer for Debian, Pui Yong for Whitebox)
Performance tuning
Including benchmarks of applications on bare metal and inside a VM. (Pui Yong)
Testing advanced kernel features
/dev/anon, mmap, O_DIRECT, IPv6, IPSec
Kernel updates
Regular kernel updates when new kernel released. (Pui Yong)
Coordinating initial purchase and any ongoing costs. Collecting and distributing money.
Team communication
Jabber, AIM, conference calls, project wiki, and IRC channel. Mailing list (all set up, see below and please sign up. --Bill)
Promotion and finding participants
Advertising, web pages, banner icon and text to place on UML sites
(Brian Maples and Matthew Bloch)
Co-op structure and agreement, system policies
Docs covering: ownership, end-of-project, bandwidth utilization, spam, portscanning, warez, porn and other disallowed activities, excess CPU/memory/disk usage (and what hours that might be allowable), new participants, participants leaving, participants selling their share, reduced rate participants, voting policies, conditions for asking a participant to leave.
Custom VM's for special tasks
http proxy (squid + privoxy), secondary DNS VM, second web server VM, secondary MX VM, Mirror publishing VM (via http, ftp, rsync, smb, nfs), Mirror pulling VM. Offering and coordinating cron-mirrored Open Source project web sites.
System monitoring, host system administration
package updates, kernel updates, regular system monitoring and alerting, bandwidth monitoring
Regular backups and recovery procedures, as well as catastrophic failure procedures

Taking part

A mailing list will be ready for the project within a day or so. Please go to to sign up.

I can be reached at . (Last updated 4/5/2004)