[Beowulf] Parallel Development Tools

Tim Cutts tjrc at sanger.ac.uk
Thu Oct 18 01:39:55 PDT 2007

On 18-Oct-07, tegner at nada.kth.se wrote:
> Thanks, didn't know about the preseeding method. Also, there seems to be a
> kickstart, at least for ubuntu. Has anyone compared FAI to kickstart (for
> ubuntu/debian)?

The fundamental approach is rather different.  As I understand it,
kickstart basically runs a normal network install, but with your
kickstart configuration file providing the various answers you'd
normally have done manually, such as how to partition the hard disks,
what packages to install, and what configuration options to supply to
the packages as they install.

Debian preseeding is much the same.

FAI is different.  It's a bit more complicated, but rather more
flexible.  It tries to work things out for itself, especially with
regard to hard disk partitioning, and so is particularly useful if
you're installing a wide variety of hardware types, since you don't need
separate configurations for all of your hardware (although of course you
can make specific changes for specific hardware types if you want).

Basically, what happens in a FAI install is this:

1) NFS root is booted (if you can't do NFS root, there's also fai-cd,
which creates a CD ROM to do the same thing)

2) SSH server is started (so from this point on an admin can get in and
watch the install proceeding remotely - this is *amazingly* useful)

3) The FAI configuration files are obtained (either over NFS, or via

4) Scripts run which probe the hardware and set class variables
according to what they find.  You can supply custom scripts to do this
according to whatever policy you have.  For example, I wrote one which
runs dmidecode and sets the machine's hostname according to what it
finds in the machine's Asset Tag field, or, in the case of HP c-Class
blades, what chassis it's in and slot number.  I also automatically
detect fibre channel cards for SAN-attached machines.

All subsequent stages can use these classes to modify FAI's default
behaviour for a particular type of machine.

5) The hard disks are partitioned, mounted, and a minimal install
tarball is unpacked on the machine's disk.

6) Packages are installed according to the classes that are set;
debconf answers can be set in the configuration for various classes

7) Once all the packages are installed, arbitrary shell or other scripts
can be run to modify the system, according to the set classes.  For
example, on machines where a fibrechannel card was detected, multipath
is automatically configured at this point.  Because
you're running in a more or less full Debian NFS root system, the sky's
the limit in terms of what you can do here.  I typically run a few
network config tweaking scripts, and then kick off the machine's first
cfengine run to update the config from our central policy server.

8) Optionally, the machine then reboots automatically, having stored the
complete log of the install either on your central installation server,
or locally on the node in /var/log/fai.

On one of our cluster nodes, the entire install process typically takes
about 5 minutes.  Our desktops take a lot longer, more like 25 minutes,
but that's because they have much more software installed.

The real killer advantages of FAI, for me, are the SSH server so I can
monitor the install remotely, and the detailed logging.  Both of these
are invaluable for diagnosing installation problems.

Typically, I restrict FAI class-specific stuff to what's needed to get a
particular bit of hardware working.  Configuration to the ultimate
purpose of the machine I leave to cfengine.


Dr Tim Cutts
Informatics Systems Group
Wellcome Trust Sanger Institute, Hinxton, Cambridge, CB10 1SA, UK

 The Wellcome Trust Sanger Institute is operated by Genome Research 
 Limited, a charity registered in England with number 1021457 and a 
 company registered in England with number 2742969, whose registered 
 office is 215 Euston Road, London, NW1 2BE. 

More information about the Beowulf mailing list