Was ist InstantAFS und wofür ist es gut?
Kurzfassung
InstantAFS ist
keine AFS-Implementation. Es ist ein Konstrukt aus Skripten, Konzepten und Dokumentation zur Erleichterung der Arbeit und Installation von
OpenAFS unter
Debian GNU/Linux.
Schnelle Installation und Einarbeitung
AFS ist zweifelsfrei ein extrem mächtiges Netzwerkdateisystem. Allerdings ist es mit hohen Hürden für Einsteiger verbunden. Das macht dem bastelbegeisterten Privatnutzer u.U. nicht viel aus, kostet jedoch Zeit. Zeit, die z.B. ein Administrator, der mehrere Möglichkeiten, Dateien über Netzwerke zur Verfügung zu stellen, evaluieren will, vielleicht nicht hat und sich vielleicht nur deshalb für ein anderes System entscheidet.
An dieser Stelle setzt
InstantAFS an. Es besteht aus mehreren Teilen:
- einem Crashkurs über AFS, der auf wenigen Seiten das Prinzip von AFS erklärt, was es leistet und was es prinzipiell nicht leisten kann
- verschiedene DebianPakete zur einfachen Installation unter Debian GNU/Linux (WarumDebian)
- einer interaktiven Setup-Routine, die nach Angaben von einigen Daten (Name der Zelle, zu benutzende Rechner, Passwörter) eine komplette Zelle arbeitsfähig aufsetzt. Dabei hat man zwei Möglichkeiten:
- Die Zelle kann über mehrere Maschinen hinweg aufgesetzt werden, um redundante Serverprozesse zu haben und Last zu verteilen.
- Die Zelle kann auch auf einer einzelnen Maschine installiert werden - die perfekte Lösung, um AFS "mal schnell zu testen".
- einer Dokumentation dazu, wie man die Möglichkeiten von AFS sinnvoll für sich einsetzen kann
- Hilfestellungen zu Problemen, die unter AFS/OpenAFS/InstantAFS auftreten können
InstantAFS kümmert sich hauptsächlich um die Konfiguration der Server, kann aber auch Clients konfigurieren.
AFS im allgemeinen und
OpenAFS im speziellen ist für sehr viele Plattformen verfügbar. Es ist deshalb problemlos möglich, AFS-Clients unter anderen Linux-Distributionen, anderen Unix-Varianten (Solaris, True64, ...) zu betreiben - selbst Windows wird unterstützt. Allerdings werden die
InstantAFS-Features nicht auf Plattformen ausserhalb der Debian-Betriebssysteme unterstützt.
Die unkomplizierte Installation ist das Primärziel von
InstantAFS - daher auch das
Instant vorm
AFS . Es soll jeder Person mit etwas Hintergrundwissen zu Systemadministration möglich sein, eine AFS-Zelle aufzusetzen. Kerberos- oder AFS-Knowhow ist explizit
keine Vorraussetzung.
Skripte zur Vereinfachung täglicher Arbeiten
Zahlreiche Skripte unterstützen den Administrator einer
InstantAFS-"kompatiblen" Zelle bei täglichen Arbeiten.
Backup
InstantAFS unterstützt derzeitig ein dreistufiges Backup-Modell, das ausschliesslich auf AFS-Bordmittel setzt. Es gibt Pläne, weitere Backup-Modelle (insbesondere das das
TU-Chemnitz) zu unterstützen.
Die 3 Stufen des Backups:
- Das Backup für Benutzer (per Update von Backup-Instanzen). Dieses Backup ist rein logisch und schützt nicht gegen Server- oder Plattencrash.
- Physisches Backup per RO-Instanz-Synchronisation
- Physisches Backup auf Platte. Es ist möglich, dieses Backup auch direkt auf Band durchzuführen - das Backup auf Platte ist eigentlich eine Sicherung auf virtuelle Bänder.
Ein Programmaufruf genügt, um einen Backupserver (ein Server, der Plattenkapazität für die 3. Backup-Stufe bereitstellt) einzurichten. An zentraler Stelle (im AFS) definiert eine Konfigurationsdatei, welche Daten (Muster vom Volumes) zu sichern sind. Das Backup selbst wird über
cron -Jobs gesteuert. Die Anzahl der Backup-Server ist nur durch die maximale
butc -Portanzahl von
OpenAFS begrenzt.
Informationen über die Zelle
Interessante Daten über die AFS-Zelle lagern an sehr vielen verschiedenen Orten: in der VLDB, auf jedem einzelnen Fileserver, in den UBIK-Prozessen, im Bos-Server.
InstantAFS bringt diverse Skripte und eine Infrastruktur mit, die alle Informationen der Zelle erschliessen und leichter auswertbar machen und teilweise selbst schon auswerten.
Das Skript
instantafs.servercheck analysiert z.B. die UBIK-Prozesse, das DNS und kann so diverse (auch potentielle) Fehlerquellen ausmachen, die entweder zum Ausfall von Zellenfunktionen oder zu
merkwürdigen Effekten führen.
Das Skript
instantafs.cellcheck analysiert nach vom Administrator vorzugebenden Regeln, ob die Daten der Zelle redundant genug gespeichert sind, überwacht nebenbei das Backup-System und warnt, wenn Fileserver überlaufen. Auch können diverse Parameter von Partition wie die prozentuale Überbuchung (mit Quota) oder der Füllstand von einzelnen Volumes überwacht werden.
Für alle Zugriffe zum Einholen von Informationen werden AFS-Boardmittel verwendet. Alle
InstantAFS-Skripte und -Bibliotheken besitzen einen Verbose-Mode, in dem sie ausführlich Rechenschaft über aufgerufenen Kommandos u.ä. ablegen.
Probleme
Ein komplett zerstörter Fileserver kostet den
InstantAFS-Administrator nur ein müdes Lächeln. Skripte kümmern sich um die manuell getriggerte und automatisch durchgeführte Ersetzung von defekten Fileservern. Bei richtig verteilten Daten (1) kann z.B. der Zustand des Vortages
unabhängig von der Datenmenge in kürzester Zeit (Sekunden!) wiederhergestellt werden.
(1) Richtig verteilt heisst:
- Daten sind redundant gespeichert und zwischen den Kopien bestehen keinen Single-Points-of-Failure
- Es ist prinzipiell nicht möglich, Daten automatisch richtig zu verteilen. InstantAFS prüft aber die Einhaltung von Regeln, in die z.B. vom Administrator zu definierende Single-Points-of-Failure der Zelle einbezogen werden.
- Der InstantAFS-Admin-Guide läßt sich darüber genauer aus.
- In der DemoZelle sind Zellendesign-Entscheidungen, die mit redundanter Speicherung und Ausfallsicherheit zu tun haben, genauer erklärt.
Benutzerverwaltung
Für
InstantAFS ist kein LDAP/Hesiod/NISPlus/... nötig. Ein NSS-Modul kann - muss aber nicht - diese Aufgabe übernehmen. Die Benutzerverwaltung ist im
InstantAFS verankert - eine einfache ncurses-Oberfläche dient als Demonstration, wie man die Benutzerverwaltung (die komplett nicht-interaktiv steuerbar ist) in ein bestehendes Netzwerk integrieren kann.
Sicheres RPC
Ein Kerberos-basiertes einfaches RPC-Konzept (
acall ) ermöglicht Funktionsaufrufe normaler Benutzer auf Servern. Damit ist die kontrollierte Zuweisung von Privilegien an Benutzer
ohne Änderungen an den AFS-Server-Superuserlisten möglich. Durch dieses Konzepte ergibt sich z.B. die Möglichkeit, auf sichere Weise Volumes durch einfache Benutzer anlegen zu lassen.
Das MPI/CBS benutzt dieses Konzept z.B. für rein benutzergesteuerte Verwaltung von Datenintensiven Studien, die teilweise aus mehreren tausend Volumes bestehen.
Dokumentation in druckbarer Form
Neben dem Wiki gibt es eine druckbare Dokumentation, die beim AFS-Administrator in spe kein Kerberos- oder AFS-Wissen vorraussetzt.
Anderes kurz zusammengefasst
- Alle InstantAFS-Funktionen sind über Perl-Bibliotheken und -Klassen in eigene Perl-Skripte integrierbar.
- Es sollte selbstverständlich sein aber: Alles ist dokumentiert :
- Alle Perl-Klassen sind mit englischem POD durchzogen
- Alle Skripte hören auf
--help
- Im Zweifelsfall wurde das weniger abenteuerliche aber verständlichere Perl-Konstrukt benutzt.
- Alle Konfigurationsfiles haben eine englische
man -Page
- Anhand einer DemoZelle werden Designentscheidungen diskutiert. Man sollte sich diese Zelle unbedingt vor dem Aufsetzen einer Produktivzelle ansehen - einige Entscheidungen lassen sich nur sehr schwer rückgängig machen oder ändern.
[Zurück zum Start]