Ende 1999 wurde Version 1.0 der Software FAI (Fully Automatic Installation) veröffentlicht. 10 Jahre später wird das Projekt immer noch aktiv weiterentwickelt und hat sich einen festen Platz in der Systemadministration geschaffen.
FAI begann als automatisierter Netzwerkinstaller für Debian, der schon von Anfang an ein eigenes Klassenkonzept beinhaltete. Mit den Jahren sind viele Erweiterungen eingeflossen, sodass FAI mittlerweile auch das ganze Konfigurationsmanagement übernehmen kann und nicht mehr auf eine bestimmte Linux Distribution festgelegt ist. Ebenso können neben realer Hardware auch virtuelle Rechner installiert und konfiguriert werden und unterschiedliche Installationsmedien genutzt werden.
Der Vortrag gibt einen kurzen Rückblick auf 10 Jahre Entwicklung des Projekts und zeigt die neuesten Features der aktuellen FAI Version 3.3.3.
Deployment von Entwicklungsumgebungen eines TYPO3-Intranets mit Vagrant
OSDC 2010 | FAI - ein Projekt wird 10 Jahre alt by Thomas Lange
1. FAI – Ein Projekt wird 10
Jahre alt
Open Source Data Center Conference 2010
Thomas Lange, Universit¨at zu K¨oln
lange@informatik.uni-koeln.de
p.1/51
2. Agenda
Wie alles begann
Wie funktioniert FAI?
Nachteile der Automatisierung
10 Jahre FAI
Erfahrungen mit FAI
p.2/51
3. finger
whoami
Diplominformatiker, Uni Bonn
Systemadministrator an der Uni Köln seit über 18 Jahren
SunOS 4.1.1 auf SPARC, Solaris Jumpstart
Debian Entwickler seit 2000
Vorträge und Tutorials auf zahlreichen Konferenzen:
Linux Kongress, Linuxtag, DebConf, SANE, LCA,
FOSDEM, SUCON, CeBit, FFG
p.3/51
4. Wie alles began
Wir schreiben das Jahr 1999...
Das Jahrhundert in dem man noch per CD installierte
16 Rechner, je zwei Pentium II 400Mhz, 256 MB, 4GB
256 MB RAM, nicht L2 Cache
4GB Festplatte, nicht RAM
Aufgabe: Baue ein Beowulf Cluster und administriere es
Ich bin faul!
Sehr faul!!!
Es gibt keine fertige Lösung :-(
Also programmieren wir etwas Eigenes
p.4/51
5. Man nehme
Zwei Studenten als Hilfe
Debian Linux
Standardtechnik: PXE, TFTP, NFS
Shell und Perl
Ein paar Ideen von Solaris Jumpstart
p.5/51
6. Kochrezept
Einige Monate bei mittlerer Flamme,... = Entwicklungszeit
Achte auf Flexibilität
Garniere mit Klassenkonzept nach Ideen von Casper Dik
Erste Präsentation: Linux Kongress September 1999, Augsburg
Hands-on Tutorial
p.6/51
10. Kinderjahre
21. Dezember 1999: Version 1.0
Tarball
Debian 2.1 (slink)
Kernel 2.0.36
1700 Zeilen Shell und Perl
Davon 900 Zeilen Partionierungstool
Technical Report als Handbuch
Aber es gab einige mutige Benutzer!
p.10/51
11. TODO
TODO list for FAI, december 20, 1999
1. Most people wish that we would support other Linux distributions
(redhat, Suse)
2. Booting a kernel with pcmcia support for automatic installation of
notebooks and laptops
3. Cleanup the code of some perl scripts
4. install/class/S*.{pl,sh} scripts should check and resolve
dependencies
5. Make some change in rcS to run with Debian 2.2 and futher releases
6. class/S*.source: define variabel tftplink which is the name of the
link created in /tftplink. At present it’s always clusterimage
p.11/51
13. Wert eines Computers
Was ist der Wert ihrer Computer?
Was beinhalten ihre Rechner?
Kundendaten
Services
Applikationen
Eigenes Know-How
Was passiert, wenn ihre Rechner einen Tag lang nicht laufen?
Eine gute Computerinfrastruktur ist so wichtig wie ...?
Wie sichern Sie diese Werte?
Ist damit wirklich alles gesichert?
p.13/51
14. Der Crashtest
Wählen Sie zufällig einen Rechner (ohne
Backup vorher)
Werfen sie den Rechner aus dem 10.Stock
(oder dd if=/dev/zero of=/dev/hda)
Stellen Sie alle Arbeit des Sysadmin innerhalb von 10 Minuten
wieder her
Schaffen Sie das? Und ihr Praktikant?
p.14/51
15. Manuelle Installation
Dauert viele Stunden
Viele Fragen
Wiederholende Arbeit ist stupide => Fehler
Dokumentation fehlt, Reproduzierbarkeit?
Jede Installation ist ungewollt einzigartig
Eine Installation per Hand skaliert nicht !
p.15/51
16. Warum voll automatisch?
”No simple sysadmin task is fun more than twice”
Ist schnell
Disaster recovery
Garantiert identische Installationen
Automatische Dokumentation
Spart sehr viel Arbeit (= Zeit = Geld). ROI
Macht mehr Spaß
p.16/51
17. Was ist FAI ?
FAI macht alles, was ihr Systemadministrator zu tun hat, bevor der
Benutzer das erste Mal auf einem neuen Rechner arbeiten kann
Deployment- und Config Management von OS und
Anwendungsprogramme
Skriptgesteuerte vollautomatische Installation
Kein Master Image
Modular durch Klassensystem
Erweiterbar und flexibel durch hooks
Es kann die Installation nicht planen :-(, aber
Plane deine Installation und FAI installiert deinen Plan! :-)
p.17/51
18. Wie funktioniert FAI ?
local
hard disk
provided via HTTP, FTP or NFS
./class
./disk_config
./package_config
./scripts
./files
Debian mirror
mounted by install kernel
NFS, CVS, svn or HTTP
install clientinstall server
./hooks
/target/
/target/var
.../fai/config/
/var
/bin
/usr
/
/target/usr
nfsroot
config space
Die Konfiguration liegt auf dem Install server
Die Installation läuft auf dem Klienten
p.18/51
19. Was braucht FAI?
Installserver mit DHCP, NFS und TFTP
Client bootet via PXE, CD-ROM, USB Stick
Optional: Lokaler Spiegel von Debian (NFS, FTP oder HTTP)
Plattenplatz auf dem Server:
FAI Paket <1 MB Skripte, Konfigurationdateien
nfsroot 380 MB erzeugt mit make-fai-nfsroot
Debian Spiegel <22 GB Debian 5.0 (lenny, nur i386)
Alle Install Clients nutzen die gleichen Verzeichnisse
Konstanter Plattenplatz
p.19/51
20. Ablauf einer Installation I
Plane deine Installation!
Booten via PXE und Kernel mit initrd via TFTP holen
Rechner startet als Diskless Client
Hardwareerkennung und Kernel Module laden
p.20/51
21. Ablauf einer Installation II
Klassen und Variablen definieren
Festplatten partitionieren
Dateisysteme erzeugen und mounten
Software Pakete installieren
Betriebssystem und Anwendungen konfigurieren
Protokolldateien lokal und auf Install Server speichern
Neu installiertes System booten
p.21/51
22. Das Klassenkonzept
Ein Rechner gehört zu mehreren Klassen
Priorität von niedrig nach hoch
Beispiel: DEFAULT FAIBASE GRUB GNOME demohost LAST
Alle Teile der Installation nutzen das Klassenkonzept
Konfiguratitonsdateien werden anhand der Klassennamen
ausgewählt
Erfahrener Admin kreiert die Klassen
Junior Admin ordnet die Klassen den Rechnern zu
PC installiert sich selber
p.22/51
33. Installationszeiten
Host RAM in MB Software in MB Time
Pentium 4 2.6 GHz 512 190 2 min
Pentium 4 2.6 GHz 512 750 7 min
Pentium 4 2.6 GHz 512 2600 15 min
Intel Core2 Duo 2048 3000 14 min
Pentium 4 2.80 GHz 1024 948 5 min
Athlon XP1600+ 896 1000 6 min
AMD-K7, 500MHz 320 780 12 min
PentiumPro 200MHz 128 800 28 min
Knoten Sekunden
1 337
5 340
10 345
20 379
12% mehr Zeit bei 20 Rechnern.
p.33/51
34. Noch ein Beispiel
Top500: 58th in 6/2008, 1340 nodes, 5376 cores, Xeon 2.4 GHz
Max Planck Institute for Gravitational Physics
p.34/51
35. FAI Benutzer
City of Munich, >3000, (14.000 hosts planed)
BUF, digital visual effects company, 1000 hosts
Opera Software, 300 hosts
Spotify, 300 physical, 150 virtual hosts
Albert Einstein Institute, Germany, 800+ hosts
ComBOTS, 700 Blades, 650 Server (16GB RAM, 8TB disk)
Spotify, 300 physical and 150 virtual hosts
Netways, 160 hosts
Host Europe, 250 hosts
HPC2N, 2 clusters listed in top500.org, 192 dual Opteron, 120 dual Athlon
Electricité de France (EDF), France, 200 hosts
MIT Computer science research lab, 200 hosts
Stanford University, 450 hosts
University of New Orleans, 72 node Beowulf cluster
Brown University, Dep. of Computer Science, 300+ hosts
University of West Bohemia, Czech Republic, 180+
Netcologne, MPI Meteorologie, DESY, Genua, taz, thomas-krenn.com, mc-wetter.de
p.35/51
36. Nachteile der Automatisierung
Kann oder soll alles automatisiert werden?
Fehler werden auch verteilt
Weniger aber höher qualifiziertes Personal notwendig
Man muss erstmal Zeit und Arbeit investieren
Bereitschaft für Veränderungen?
Sysadmin wird zum sauberem Arbeiten gezwungen
Manuelle Änderungen an einzelnen Rechner sind verboten!
p.36/51
37. Entwicklung
2000: eigene Mailingliste, erstes Debian Paket
Fork: NAIS
2001: grub support, fcopy, hooks, softupdate, Fragebogen
2003: fai-chboot
2004: DHCP nun default, statt BOOTP
2005: Wiki, IRC, fai-cd
2005: fai-server, fai-client, fai-doc, fai-nfsroot
2006: chroot Umgebung aufsetzen (nutzt GRML seit 2008), ainsl
2007: Kernel mit initramfs, faimond-gui, booten von USB-Stick
2008: setup-storage, Namen in Changelog
2009: fai-guide in asciidoc, Tests, setup-storage Verbesserungen
2010: Beschleunigung durch Ramdisk
p.37/51
46. Dokumentation, Werbung
40 Seiten Handbuch
Über 50 Vorträge, Paper, Artikel
Mehrere Projekte zum Fachinformatiker, Diplomarbeit
Übersetzungen (leider nicht mehr aktuell)
Flyer, Poster
Fast alles auf der Webseite
Messepräsenz
Artikel in aktueller UpTimes
p.46/51
47. Gut gemacht
Früh Vorträge gehalten
Flexibel gehalten und KISS (ASCII Dateien)
Klassensystem
Partitionierungstool
Support für viele Distributionen
FAI Fragebogen
p.47/51
49. Zukunft
Fortschrittsbalken auf dem Client
Automatische Tests
Feste Releasezyklen?
Zielgruppe erweitern?
Konfigurationsmanagement Tool?
System Management? RH Network Satellite? Cobbler?
Logo
p.49/51
50. Fazit
Gute Software entwickeln macht Spaß
Technik ist nicht alles
Planen und Kontinuität mit Freiwilligen ist schwer
Feedback von Firmen sehr mühsam
User Feedback ist wie Applaus
p.50/51