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 afsAsetkey 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