AFS

Aus Physik
Zur Navigation springen Zur Suche springen

Informationen zur Installation von Kerberos und AFS und dem Zugriff auf unsere AFS-Zelle findet Ihr unter Linux AFS, AFS für Windows und AFS für Apple Macintosh.

Grundlagen

AFS ist ein verteiltes Dateisystem, bei dessen Entwurf besondere Aufmerksamkeit auf effizienten Datenzugriff sowohl in lokalen als auch weitverteilten Netzen gelegt wurde.

AFS wurde ursprünglich im Information Technology Center an der Carnegie-Mellon University entwickelt und später von der Firma Transarc vermarktet und weiterentwickelt. Nach dem Kauf von Transarc durch IBM wurde es unter der Bezeichnung OpenAFS als OpenSource freigegeben. AFS ist als Dateisystem in vielen Großforschungsinstitutionen im Einsatz (Argonne National Laboratory, CERN, Jet Propulsion Laboratory, MIT, ...)

Weitere Informationen zu AFS findet Ihr in der AFS-FAQ, dem AFS User Guide und dem AFS-Wiki.

Technologie

AFS arbeitet nach dem Client-Server Modell, bei dem alle Daten auf einem oder mehreren Servern gespeichert sind und bei Bedarf auf die Clients kopiert werden. Die Daten werden auf den Clients gecacht; wenn der Server ausfallen sollte, können Lesezugriffe in vielen Fällen weiter aus dem Cache bedient werden, erst Schreibversuche blockieren solange, bis der Server wieder verfügbar ist.

Die meisten benutzerrelevanten Funktionen findet Ihr unter dem Sammelbefehl fs ; bitte konsultiert die Onlinehilfe mit fs help oder den AFS User Guide.

  • Zelle Eine Gruppe von Servern und Clients unter einheitlicher Verwaltung bilden eine AFS Zelle; der Zellenname bei uns ist itp.tugraz.at. Die Dateien haben für alle AFS-Clients weltweit den gleichen Namen, dieser Name beginnt mit /afs/<zelle>/; mein Homedirectory am Institut findet man z.B. unter /afs/itp.tugraz.at/user/ahi/.
  • Volume: Zusammgehörige Dateien (z.B. alle Dateien eines Benutzers) werden innerhalb AFS in einem Volume gespeichert; Volumes werden über mount points in den Dateibaum aufgenommen. Der Vorteil von Volumes ist, daß diese während des Betriebs verschoben werden können; nur in der Endphase des Transfers ist für wenige Sekunden kein Schreibzugriff möglich. Diese Eigenschaft wird verwendet, um Server und Festplatten gleichmäßig auszulasten bzw. einzelne Server vor einem Austausch freizuspielen.
  • Quota: Die Größe eines Volumes ist durch ein Quota beschränkt. Ihr könnt die Größe eines Quotas mit dem Befehl fs listquota betrachten.
[ahi@faeppc48 ~]$ fs listquota ~ahi ~ftp ~flash
Volume Name                Quota      Used %Used   Partition
user.ahi                 3000000   2048002   68%         38%  
common.ftp.readonly      8000000   5629668   70%         33%  
fs: You don't have the required access rights ....
  • Token: Zum Zugriff auf eine AFS-Zelle benötigt man ein Token, das beim Einloggen gemeinsam mit dem Kerberos-Ticket erzeugt wird und mit dem Befehl tokens kontrolliert werden kann:
[ahi@faeppc48 ~]$ tokens
Tokens held by the Cache Manager:
User's (AFS ID 997) tokens for afs@itp.tugraz.at
                                      [Expires Feb 22 15:05]
  --End of list--

Sie erkennen an der Ausgabe des Tokens, daß der Benutzer mit der UID 997 in der AFS-Zelle itp.tugraz.at angemeldet ist. Pro Zelle kann man maximal ein Token besitzen.

Unterschiede in der Benutzung

Die wesentliche Unterschiede zwischen der gewohnten UNIX-Semantik bei Dateizugriffen und AFS sind:

  • Zugriffsberechtigungen: Die mode bits werden weitgehend ignoriert; Rechte auf Dateien werden über access control lists (ACL) gesteuert. Diese Listen beziehen sich immer auf ein Verzeichnis.
  • Benutzergruppen: Jeder Benutzer kann eigene Gruppen anlegen und verwalten (protection service, PTS). Mitgliedern dieser Gruppen können über ACLs Zugriffsberechtigungen gegeben werden.
  • Hard links: Hard links sind nur zu Dateien im selben Verzeichnis möglich, um die Sicherheit durch die ACLs nicht zu gefährden.
  • Save on close: Die Dateien werden beim Aufruf der Funktion write() nur im lokalen Cache gespeichert; nur wenn die Datei mit close() oder fsync() geschlossen wird, wird der neue Inhalt auch zum Server geschickt. Die meisten Anwendungen (vi, emacs, ...) führen den Befehl close() nach dem Speichern von Änderungen aus, Sie müssen den Editor daher nicht beenden, um sicher zu sein, daß Ihre Daten wirklich gespeichert werden.
  • Dateizeiten: Es gibt nur eine Dateizeit, die erst bei einem Schreibzugriff am Server (close() und fsync()) aktualisiert wird - der Zeitpunkt des letzten Lesezugriffs wird nicht protokolliert.
  • Read only volumes: Wenn Kopien von Volumes ohne Schreibberechtigung vorhanden sind, werden nur diese verwendet - Änderungen im Volume werden nicht automatisch an die Kopien weitergereicht, sondern müssen explizit freigegeben werden (release).
    Üblicherweise verwendet man zum Zugriff auf das beschreibbare Volume einen mount point mit vorgesetztem Punkt: /afs/itp.tugraz.at/common/.ftp/.


ACL - acces control lists

PTS - protection service

Woher kommen Ticket und Token?

Am Institut und im Computerraum

Darüber muß nicht viel gesagt werden, der Ablauf funktioniert durch die Systemkonfiguration von selbst. In Notfällen (kein gültiges Token, zu testen mit tokens) kann durch die Kombination

$ kinit -f; aklog 

ein gültiges Token erzeugt werden.

Externer Zugriff

Eventuell muß am Server zuerst die entsprechende Zelle gemounted werden; Sie können dies durch ls /afs/ prüfen - bitte kontaktieren Sie zum Anbinden fremder Zellen den jeweils zuständigen Administrator.

$ kinit ahi@ITP.TUGRAZ.AT
$ klist
$ aklog
$ tokens
$ ls ~ahi/
...
$ kdestroy; klist; tokens

Spezialfälle

Die Notwendigkeit ein gültiges Token für den Dateizugriff zu besitzen bereitet in einigen Fällen Probleme. Sie gehen diesen am besten aus dem Weg, indem sie auf lokale vorliegende Dateien oder netzwerkbasierenden ACLs zurückgreifen.

Lange Berechnungen

Wenn Ihre Berechnungen länger als die voreingestellte Dauer von einem Tag benötigen, muß auch Ihr Token diese Lebenszeit haben; sie ist in jedem Fall auf 31 Tage beschränkt. Es gibt im wesentlichen 2 Möglichkeiten:

  • Sie verlängern aus Ihrem Programm das Token regelmäßig - diese Lösung ist komplizierter und erfordert den regelmäßigen Aufruf von kinit -R; aklog.
  • Sie fordern vor dem Programmstart Ticket und Token mit langer Lebensdauer an: kinit -l 4d; aklog

CRON- oder Condor-Jobs

Diese Programme werden vom System automatisch gestartet; die Passworteingabe ist nicht möglich.

  • Sie holen beim Start des Programms ein Ticket; dazu müssen wir eine keytab-Datei erzeugen, die ihre verschlüssseltes Passwort enthält; danach können sie mit kinit -k -t <keytab>; aklog Ticket und Token erzeugen. Die keytab-Datei muß natürlich ohne Token zu erreichen sein und daher auf der lokalen Festplatte gespeichert werden.