Skip to topic | Skip to bottom
Instantafs.InstantAFSr1.1 - 27 Dec 2005 - 15:59 - TWikiGuest? [Zum Ende]

Start of topic | Direkt zum Menü

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]

Aktuelle Wiki-Seite: Instantafs > InstantAFS

[Zurück zum Start]