Einrichtung des AFS-Servers

Die Einrichtung wird an einem Beispiel gezeigt. In unserem Beispiel heisst der Server newseismo.ethz.ch und die AFS-Cell sed.ethz.ch.

Die AFS-Cell muss eingestellt werden (im Allgemeinen die Domain, in der die Server stehen, kann aber beliebig gewählt werden)

Zuerst müssen einige Zugriffsreche für die frisch angelegten Konfigurationsverzeichnisse korrigiert werden, sonst will der AFS-Server nicht starten:

chmod  755 /etc/openafs/server
chmod  770 /etc/openafs/server-local

In /etc/openafs/ThisCell steht nur der Name der Zelle:

sed.ethz.ch

In /etc/openafs/CellServDB steht eine Liste mit Zellen, die für den Client gebraucht werden sollen. An erster Stelle tragen wir unsere neue Zelle und den Serverein: (Die Einträge sind ev. schon von der Debian-Konfiguration erstellt worden, bitte zuerst prüfen, ob sie schon existieren.)

>sed.ethz.ch
129.132.17.20            # newseismo.ethz.ch
>grand.central.org      #GCO Public CellServDB 10 Oct 2004
18.7.14.88                      #grand-opening.mit.edu
128.2.191.224                   #penn.central.org
>wu-wien.ac.at          #University of Economics, Vienna, Austria
137.208.3.33                    #afsdb1.wu-wien.ac.at
137.208.7.4                     #afsdb2.wu-wien.ac.at
137.208.7.7                     #afsdb3.wu-wien.ac.at
# und so weiter...

Für den Server gibt es ebenfalls eine Datei CellServDB unter /etc/openafs/server/CellServDB. Dort muss unsere Zelle ebenfalls eingetragen werden:

>sed.ethz.ch    #Cell name
129.132.17.20    #newseismo.ethz.ch

AFS legt seine Daten in Unterverzeichnissen mit Namen /vicepa, /vicepb,... an. Eines soll nun erzeugt werden:

mkdir /vicepa

Es wird empfohlen, dafür eine eigene Partition anzulegen.

In Kerberos einen Principal[*] mit Namen afs anlegen

kadmin.local -q "ank -randkey afs"

Principal afs zur Keytabelle krb5.keytab.afs hinzufügen. Die Keytabelle wird benötigt, damit afs auf den Kerberos Server zugreifen kann ohne, dass jedesmal ein Passwort angegeben werden muss.

kadmin.local -q "ktadd -e des-cbc-crc:afs3 -k /etc/krb5.keytab.afs afs"

Asetkey ersetzt den AFS ''bos setkey'' Befehl. Die Zahl nach ''add'' ist die Zahl, die ktadd nach ``Key: vno'' ausgibt. Wurde ktadd schon früher ausgeführt und die Zahl ist nicht bekannt hilft getprinc:

kadmin.local -q "getprinc afs"
asetkey add 4 /etc/krb5.keytab.afs afs
Asetkey hat den Schlüssel jetzt in /etc/openafs/server/KeyFile abgelegt.

Nun kann der Basic OverSeer (BOS) Server gestartet werden. Er muss auf jedem Fileserver laufen, überwacht die AFS Serverprozesse, startet diese neu wenn sie abstürzen, verarbeitet bos-Befehle (Status abfragen, Prozesse starten und stoppen).

bosserver -noauth

Im Normalbetrieb (Start über /etc/init.d/) braucht der bosserver eine Authentifizierung für die folgenden Dienste. Falls Zugriffsfehler auftreten, den bosserver killen und mit bosserver -noauth wieder starten.

Testen, ob bosserver funktioniert und der Server in der CellServDB gefunden wird:

bos listhosts newseismo.ethz.ch -noauth

Als nächstes wird der Protection Server (ptserver) gestartet.

bos create -server newseismo.ethz.ch -instance ptserver -type simple \
  -cmd /usr/lib/openafs/ptserver -cell sed.ethz.ch -noauth

AFS Benutzer admin anlegen

bos adduser newseismo.ethz.ch admin -cell sed.ethz.ch -noauth

Zeige die Serververschlüsselungskeys aus /etc/openafs/server/KeyFile

bos listkeys newseismo.ethz.ch -cell sed.ethz.ch -noauth

Mit pts wird der Protection Server administriert. Es wird ein Benutzer admin erzeugt und in die Gruppe system:administrators eingetragen, und dann geprüft, ob der Eintrag funktioniert hat.

kadmin.local
Authenticating as principal root/admin@SED.ETHZ.CH with password. 
kadmin.local:  addprinc admin
WARNING: no policy specified for admin@SED.ETHZ.CH; defaulting to no policy
Enter password for principal "admin@SED.ETHZ.CH": 
Re-enter password for principal "admin@SED.ETHZ.CH": 
Principal "admin@SED.ETHZ.CH" created.
kadmin.local:  quit 
pts createuser -name admin -cell sed.ethz.ch -noauth
pts adduser admin system:administrators -cell sed.ethz.ch -noauth
pts membership admin -cell sed.ethz.ch -noauth

Nun soll der BOS Server alle Dienste neu starten

bos restart newseismo.ethz.ch -all -cell sed.ethz.ch -noauth

Nun soll der eigentliche Fileserver gestartet werden:

bos create -server newseismo.ethz.ch -instance fs -type fs \
  -cmd /usr/lib/openafs/fileserver \
  -cmd /usr/lib/openafs/volserver \
  -cmd /usr/lib/openafs/salvager \
  -cmd /usr/lib/openafs/vlserver  -cell sed.ethz.ch -noauth

Und der Test:

bos status newseismo.ethz.ch fs -long -noauth

Die Partition /vicepa wird exportiert:

vos create -server newseismo.ethz.ch -partition /vicepa \
  -name root.afs -cell sed.ethz.ch -noauth

bos shutdown newseismo.ethz.ch -wait -noauth

pkill bosserver

Jetzt wird der Openafs Fileserver ``normal'' gestartet

/etc/init.d/openafs-fileserver start
/etc/init.d/openafs-client start

Den Benutzer ``admin'' über den Kerberosserver authentifizieren lassen. Es wird ein Passwort abgefragt.

kinit admin

Kerberos-Informationen anzeigen

klist

Am AFS-Server anmelden. Aklog funktioniert nur, wenn man sich vorher mit kinit authentifiziert hat. Es wird deshalb auch nicht mehr nach einem Passwort gefragt.

aklog

tokens

fs checkvolumes

vos create newseismo.ethz.ch /vicepa root.cell

fs mkmount /afs/sed.ethz.ch root.cell

Leserechte für alle auf /afs/sed.ethz.ch setzen

fs setacl /afs/sed.ethz.ch system:anyuser rl

fs mkmount /afs/.sed.ethz.ch root.cell -rw

pts creategroup sed

mkdir /afs/sed.ethz.ch/home

Stefan Heimers 2011-02-25