JVDS FreeBSD Servers Technology Guide
Background
The basic setup we supply is comprised of a system image contained within a vnode disk. This is then mounted and a jail command run on top of this. The system images we supply come from a pre-built image to allow quick deployment of new servers. Information for each customers machine is kept in a database which is read at boot time to initiate the jails in order.
Implementation
The way the service itself is implemented through a database that contains the vnode id, IP address, and hostname. The system images themselves are stored as the IP address to allow easy identification. At boot time, each image is assigned its vnode, fsck as appropriate and then mounted. After being mounted, the jail command is run to actually start all the user defined startup scripts including SSH. It is then possible for you to connect to your server.
Current Issues
We have found FreeBSD jails to be a good system, however they do have a few limitations:
» Inability to send ICMP (ping + traceroute) packets.
» Shared Memory Access is turned off making some applications unable to run.
» Only one IP address can be allocated per jail.
Within the 5.x branch of FreeBSD, these issues are being addressed. When in the official tree we will offer the functionality.

