Das FAI Projekt feiert seinen 10. Geburtstag

Vor genau zehn Jahren, am 21. Dezember 1999, wurde die Version 1.0 von FAI (Fully Automatic Installation) auf der Mailingliste debian-admintool von Thomas Lange angekündigt[1].

Das Projekt wurde Anfang 1999 ins Leben gerufen, nachdem ein Lehrstuhl für Informatik an der Uni Köln ein kleines Beowulf Cluster gekauft hatte und der Autor zu faul war, die Rechner per Hand zu installieren. Die Hardware bestand aus 16 Rechnern mit je zwei Pentium II 400MHz und je 256 MB RAM[2].

Die erste offizielle Präsentation der FAI Software fand schon am 8. September 1999 auf dem 6. Linux Kongress in Augsburg statt. Dort gab es ein Tutorium mit Vortrag und einen Praxisteil, bei dem die Teilnehmer die Software direkt ausprobieren konnten.

Version 1.0 wurde als einfaches Tarball verteilt und nutzte Debian 2.1 (slink) und die Kernelversion 2.0.36. Gebootet wurde meist noch von einer Floppy disk. Schon in der ersten Version war Punkt 1 der ToDo-Liste, dass auch andere Linux Distributionen (RPM basierte) unterstützt werden sollten. Zwar gab es im Januar 2000 den ersten Versuch mit FAI4RPM[3], das einige Teile von FAI in Python implementierte, jedoch dauerte es noch viele Jahre bis FAI endlich ohne große Probleme RPM basierte Distributionen unterstützte.

Anfang 2000 wurde das zweite offizielle Release 1.0.1 veröffentlicht.

Nachdem zuvor auf anderen Listen über FAI diskutiert worden war, gab es am 19. April 2000 das erste Posting[4] auf der neuen Mailingliste linux-fai. Diese Liste ist das wichtigste Kommunikationsmittel, wenn es um Diskussionen und Ankündigungen rund um FAI geht.

Das erste Debian Paket beinhaltete Version 1.1beta1 und erschien im Juni 2000 nachdem der Autor offizieller Debian Developer (DD) geworden war.

Eine Woche später wurde dann ein Fork von FAI angekündigt. Ein kleiner Schock, da die zwei Studenten, die an FAI mitgearbeitet hatten, nun ein eigenes Projekt starteten. Aber dieses Projekt war nur eines von zigtausend kurzzeitigen Sternschnuppen auf Sourceforge und ist seit langem verglüht.

Zur Zeit gibt es noch das Projekt lucie[5], das Teile von FAI 3.2.17 nutzt, und einige FAI Teile neu in Ruby implementiert, indem es einfach Shell Kommandos aus einem Ruby Skript heraus aufruft.

Nach einem Vortrag auf der DebConf 1 in Bordeaux 2001, folgten viele weitere Vorträge von Thomas Lange[6], anderen Entwicklern[7] und Nutzern über FAI. Außerdem war FAI auf einigen Konferenzen und Messen mit einem Stand vertreten, auf dem die Besucher den Ablauf einer Installation direkt beobachten und sich bei den Entwicklern über FAI informieren konnten.

2005 startete das Wiki[8] für FAI. Es beinhaltet viele zusätzliche Informationen von Benutzern zu FAI.

In den letzten Jahren wurde FAI immer weiter verbessert und erweitert. Das Kommando zum Erzeugen der bootbaren FAI CD (mit nfsroot und Paketdepot) wurde erstmals mit Version 2.7 im Jahre 2005 ausgeliefert und kann seit 2007 auch bootbare USB Sticks erzeugen. Mit Version 3.0 wurde im September 2006 die Funktionalität hinzugefügt chroot Umgebungen zu erzeugen. Seit 2008 nutzt das Projekt grml[9] (ein Debian-basiertes Live-System für Systemadministratoren) diese Funktion zum Bauen der verschiedenen CD/DVD Varianten. Somit ist es nun möglich täglich aktuelle ISO Dateien automatisch zu erzeugen.

Seit Version 3.2 arbeitet FAI mit dem Standard Debian Kernel mit initrd. Dies erleichtert die Anpassung an neue Hardware, da kein speziell gebauter Kernel mehr benötigt wird.

Nachdem schon einige Jahre lang die Idee bestand das Festplatten Partitionierungstool neu zu schreiben um Software-RAID und LVM Unterstützung zu ermöglichen, wurde das neue Tool setup-storage[10] endlich im Juni 2008 in FAI eingebaut. Dies ermöglicht nun auch Festplatten mit mehr als 2 TB zu partitionieren.

In den 10 Jahren wurde FAI auf fast allen Hardwarearchitekturen eingesetzt. Neben den weit verbreiteten Architekturen wurden auch alte Alpha Rechner, ein Itanium Cluster, PowerPC und SPARC Rechner unter Solaris mit FAI installiert und gewartet. Selbst Mainframes sind mit zwei zSeries z10 Rechnern vertreten auf denen FAI ca. 260 Debian Instanzen installiert hat.

FAI wird für sehr unterschiedliche Hardware genutzt aber auch in sehr unterschiedlichen Projekten. Dies ist eine der Stärken von FAI im Gegensatz zu vielen anderen Installations- und Konfigurationstools, die meist auf ein bestimmtes Nutzungsszenario und eine bestimmte Linux Distribution festgelegt sind. FAI hingegen arbeitet distributionsübergreifend. Es kann Debian, Ubuntu, SuSE, CentOS, Red Hat und Mandriva installieren und wurde auch schon für Solaris auf SPARC genutzt.

Um detaillierte Rückmeldungen von FAI Anwendern zu erhalten, wurde der FAI Fragebogen entworfen. Die erste Antwort im Juni 2001 berichtete noch davon, das wegen Kinderkrankheiten kein Rechner installiert wurde. Mittlerweile gibt es aber über 220 Antworten, in denen die Nutzer von kleinen und großen Installationen mit bis zu 3000 Rechnern berichten. Dies gibt einen sehr guter Überblick in welchen verschiedenen Bereichen FAI eingesetzt wird[11].

Einige Beispiele von FAI Anwendern sind: Opera Software (300 Cluster Knoten), Stadtverwaltung München (ca. 2000 Arbeitsplätze, geplant 14.000), BUF Compagnie (ca. 1000 Arbeitsplätze, Rendering und Storage Knoten), Albert Einstein Institut (1725 HPC Knoten), Mathworks (1000 Arbeitsplätze), Zivit (260 Rechner auf IBM zSeries Z10), Spotify (Musik Anbieter, 450 Server für verschiedene Dienste), ein anonymes Webportal (3000 Server), mobile.de (600 verschiedene Web-, Mail-, Datenbank- und Anwendungsserver). Ebenso verwenden viele Universitäten und Forschungseinrichtungen FAI zur Administration ihrer Rechner.

FAI wurde auf dem 100 Roboter Projekt Centibots eingesetzt. Viele Dutzend Cluster für verschiedene Anwendungen wurden mit FAI aufgesetzt. Einige dieser Cluster schafften es sogar in die Top500.org Liste, die Liste der schnellsten Computer der Welt. Eine Firma installierte weit in Deutschland verteilt Miniserver mit CF Speicher. Auch einige Schulungsräume werden mit FAI verwaltet, sodass sie vor Beginn einer Schulung automatisch neu installiert werden. Web- und Hosting-Provider profitieren häufig von FAI, da sie eine große Anzahl von ähnlichen Servern installieren müssen.

FAI in Zahlen: Zur Zeit besteht FAI aus 12.000 Zeilen Code (meist Perl und Shell) und 1300 Zeilen Konfigurationsbeispielen. Die Dokumentation ist 5500 Zeilen lang. In 10 Jahren wurden mehr als 5600 Änderungen im Sourcecode vorgenommen, das bedeutet mehr als 1.5 Commits pro Tag. Im Bug Tracking System gab es insgesamt über 500 Fehlerberichte, die gelöst wurden. Somit wurde ungefähr ein Fehler pro Woche behoben. Derzeit gibt es noch ca. 30 nicht behobene Fehler. Die meisten sind jedoch Wünsche, neue Funktionen einzubauen.

Neben dem technischen Aspekt ist in den letzten Jahren der Austausch der Entwickler und Nutzer immer wichtiger geworden. So gab es von 2005 bis 2008 jährlich ein FAI Entwicklertreffen, bei denen meist im Linuxhotel[12] ein Wochenende lang mit bis zu einem Dutzend Leuten an FAI gearbeitet wurde. Diese Treffen waren sehr produktiv und wir hoffen, dass auch 2010 wieder ein Treffen stattfindet. Daneben gibt es regelmäßig Arbeitstreffen auf der DebConf (Debian Entwickler Konferenz).

Anfang Dezember 2009 wurde dann endlich das Layout der FAI Webseiten[13] auf ein zeitgemäßes Design umgestellt. Nun fehlt immer noch ein Logo für das Projekt, aber das sollte in den nächsten 10 Jahren auch fertig werden ;-)

FAI ist ein klassisches OpenSource Projekt, das davon lebt, dass die Benutzer durch Rückmeldungen, Fehlerberichte und Patches helfen, die Software zu verbessern.

Herzlichen Dank an alle, die mitgeholfen haben die Software FAI zu entwickeln[14] und zu verbessern! Nur mit eurer Unterstützung ist FAI so gut geworden.

Es gibt immer noch viele Ideen für Erweiterung und Neuerungen. So wird auch in den nächsten 10 Jahren genügend zu tun sein im FAI Projekt.

Thomas Lange

[UPDATE]: 27 Sep 2010: Nutze neuen Domain Namen des FAI Projekts