Workshops / Hintergrundberichte / Buchvorstellungen
---------------------------------------------------
1. Workshop: Verteilte Dateisysteme - Teil 2 (von Uwe Pannecke)
Der Amiga als NFS-Client und -Server
Teil 2 - NFS-Server Amiga
Das ursprünglich von SUN Microsystems entwickelte Network File System (rfc
1094), kurz auch als NFS bezeichnet, erlaubt mehreren Rechnern, Ressourcen
zusammen- zufassen und gemeinsam über ein TCP/IP-Netzwerk zu nutzen. Mit
installiertem NFS wird es so möglich, von beliebiger Stelle des Netzes auf
installierte Programme zuzugreifen oder für alle beteiligten Rechner
erreichbar an zentraler Stelle Datenbestände wie Dokumentationen,
Bildersammlungen, Lexika u.ä. abzulegen. In der Unix/Linux-Welt ist das NFS
ein gängiges Verfahren, um Verzeichnisse entfernter Rechner in den lokalen
Verzeichnisbaum einzubinden und selbige so benutzen zu können, als wären
sie auf dem eigenen Rechner vorhanden.
Nachdem im ersten Teil des Workshops der Amiga als Client in ein Network
File System integriert wurde, soll diesmal der Amiga seine Festplatten-
Ressourcen zur Verfügung stellen.
1. NFS Daemon
Um dem Amiga die Möglichkeit zu geben, Verzeichnisse anderen Netzwerk-
Teilnehmern bereitzustellen, muss ein NFS-Server her. Vor diesem Problem
stand auch Joseph Walton, der seinen Amiga mit einem PC gekoppelt hatte
und mit seinem Amiga-NFS-Clienten leider nur in einer Richtung problemlos
Daten transferieren konnte. Da keine Abhilfe in Sicht war, griff er zu
DiceC und dem MiamiSDK und programmierte kurz entschlossen einen Amiga-NFS-
Server. Er nannte ihn schlicht "nfsd" und stellte ihn freundlicherweise
unter die GPL und damit allen interessierten Usern auf seiner Homepage [1]
kostenlos als Binary und Source zur Verfügung. Klasse.
1.1 Installation
Zum Testzeitraum war die Version vom 14. Oktober 2000 verfügbar und mit
einem Umfang von knapp 20 KByte als LZX-Archiv in wenigen Augenblicken
herunter geladen. Neben dem eigentlichen Daemon "nfsd" enthält das Paket im
"nfsd"-Verzeichnis eine Readme-Datei sowie eine Beispielkonfiguration und
"nfsd.inode". Das komplette Verzeichnis könnt Ihr an einen beliebigen Platz
kopieren. Einzige Bedingung ist eine Schreibberechtigung für dieses
Verzeichnis.
Screenshot:
Da in unserem Fall "nfsd" gemeinsam mit Miami verwendet werden soll, habe
ich die Schublade kurzerhand ins Miami-Verzeichnis verfrachtet.
1.2 Konfiguration
Entscheidend für eine erfolgreiche Freigabe von Laufwerken und/oder
Verzeichnissen ist die Datei "nfsd.config". Selbige könnt Ihr in einem
beliebigen Editor Euren Erfordernissen anpassen. Die Einträge folgen einem
einheitlichen Schema: Das lokale Laufwerk bzw. Verzeichnis mit komplettem
Pfad folgt der Name, unter dem dieses Laufwerk/Verzeichnis exportiert
werden soll. Dem schließt sich eine Definition der zugriffsberechtigten
IP-IDs sowie Attributen zu User-ID und Gruppen-ID mit den gewünschten
Zugriffs-Rechten. Konstruieren wir zur Veranschaulichung einige Beispiele:
A)
Das lokale Verzeichnis "Work2:maildaten/" wird als Verzeichnis "/amiga"
exportiert werden. Auf dieses Verzeichnis darf lediglich der Rechner mit
der IP-ID 192.168.1.101 Zugriff erhalten. Eigner soll der User mit der ID
500 sein, dieser User gehört zur Gruppe mit der ID 100. Es werden Rechte
zum Lesen, Schreiben und Ausführen der Daten im Verzeichnis für Eigner,
Gruppe und Sonstige vergeben. Der passende Eintrag lautet
Work2:Maildaten /amiga 192.168.1.101 RW UID=500 GID=100 PERM=777
FORCEALL
B)
Das Verzeichnis "Ram:" soll als "/amigaram" für alle Rechner des lokalen
Netzwerkes (hier alle Rechner mit einer IP-ID 192.168.1.x) exportiert
werden. Die Dateien sollen "root" gehören und nur mit Leserechten versehen
sein. Der passende Eintrag lautet diesmal
Ram: /amigaram 192.168.1.0/255.255.255.0 UID=0 GID=0 PERM=444 FORCEALL
C)
Die Festplatte "Work:" soll mit Lese- und Ausführungsrechten als
Verzeichnis "/daten" freigegeben und allen Rechnern unabhängig von ihrer
IP-ID zugänglich sein. Die Daten gehören dem User mit der ID 600. Die
zugehörige Gruppen-ID ist 200.
Work: /daten - UID=600 GID=200 PERM=555 FORCEALL
Für einen detaillierten Einstieg zur Vergabe der Dateirechte auf
Unix/Linux- Systemen sei an dieser Stelle auf das im O'Reilly Verlag
bereits in dritter Auflage veröffentlichte und auch online verfügbare [2]
Buch "Linux - Wegweiser zur Installation & Konfiguration" von M. Welsh, M.
Dalheimer und L. Kaufmann verwiesen.
Speichert abschließend die Euren Wünschen entsprechend geänderte
Konfiguration unter einem aussagekräftigen Namen ab.
2. TCP/IP-Stack
Hier habt Ihr die Qual der Wahl. Neben AmiTCP und Genesis ist gleichermaßen
auch Miami geeignet. Da bei Miami etwas mehr Aufwand zu treiben ist, soll
an dieser Stelle für die Konfiguration eben jener TCP/IP-Stack [3] als
Beispiel dienen. Sinngemäß lassen sich die Aussagen auch auf die beiden
anderen Vertreter übertragen.
2.1 Miami
Ist Miami gestartet, solltet Ihr überprüfen, ob unter "Datenbank/Dienste"
die Einträge
Name ID Protokoll
sunrpc 111 tcp
sunrpc 111 udp
vorhanden sind und gegebenenfalls ergänzen.
Screenshot:
3. Der Deamon
Da "nfsd" ein RPC-Dienst ist, benötigt der Server zwingend einen laufenden
Portmapper. In der Miami-Distribution werdet Ihr einen solchen Portmapper
jedoch vergeblich suchen. Doch keine Panik- auch hier können die
Kontrahenten AmiTCP bzw. Genesis aushelfen. Bereits in den Demoversionen
[4] und [5] ist im Verzeichnis "BIN:" mit "portmap" das passende Programm
enthalten. Kopiert dieses z.B. in das C-Verzeichnis. In einer Shell könnt
Ihr dann den Portmapper, nachdem Miami auf "Online" gesetzt ist, durch
Eingabe von "portmap" starten. Ob der Portmapper auch wirklich aktiv ist,
verrät das Tool "rpcinfo", welches ebenso wie "portmap" im "BIN:"-
Verzeichnis von AmiTCP bzw. Genesis zu finden ist. Tauchen in der
"rpcinfo"-Ausgabe der Port 111 und die Protokolle tcp und udp auf, war der
Start erfolgreich.
Screenshot:
Jetzt kann der NFS-Server endlich zum Zug kommen. Bei seinem Aufruf
übergeben wir ihm die zu verwendende Konfigurationsdatei.
Ist alles nach Plan gelaufen, teilt uns "nfsd" seinen aktiven Zustand mit
der Shell-Ausgabe "Serving." mit. Zusätzlich können wir seine
Arbeitsbereitschaft mit erneutem Aufruf von "rpcinfo" überprüfen.
Screenshot:
4. Die Linux-Seite
Ich gehe davon aus, dass wie im ersten Teil beschrieben, die NFS-
Unterstützung der jeweiligen Linux-Distribution bereits installiert ist.
Somit bleiben für die Einbindung der freigegebenen Amiga-
Laufwerke/Verzeichnisse nur noch wenige Handgriffe. Unter Linux setzt man
zu mountende Geräte und damit auch Laufwerke sowie Verzeichnisse auf ein
im Linux-Dateisystem vorhandenes Verzeichnis, dem Mountpoint, auf.
Entweder Ihr erstellt ein gewünschtes Verzeichnis zu diesem Zweck oder aber
Ihr benutzt das auf den meisten Systemen zu findende "/mnt"- Verzeichnis.
Der eigentliche Mount-Befehl besitzt folgendes Format:
mount -t typ gerät mount-point
Konstruieren wir wieder zwei konkrete Beispiele:
A)
Für das freigegebene Amiga-Verzeichnis soll im Wurzelverzeichnis eine
eigene Schublade mit dem Namen "amiga" erstellt werden. Dies gelingt in
einer Shell im Handumdrehen und als Superuser mit der Kommandofolge "mkdir
/amigadaten". Nun kann das auf dem Amiga als "/amiga" freigegebene
Verzeichnis "Work2:Maildaten" (wiederum als Superuser) mit Hilfe der
Eingabe
mount -t nfs 192.168.1.102:/amiga /amigadaten
in das lokale Dateisystem eingehängt werden. Ab sofort könnt Ihr nun von
Linux aus auf das Amiga-Verzeichnis mit den fest- gelegten Rechten
zugreifen.
B)
Soll die weiter oben als "/amigaram" freigegebene RAM-Disk unter "/mnt"
ein- gebunden werden, sorgt der Befehl
mount -t nfs 192.168.1.102:/amigaram /mnt
für das gewünschte Ergebnis.
Screenshot:
Wollt Ihr nicht nur als "root" oder "su", sondern auch als normaler
Benutzer den Befehl "mount" ausführen, solltet Ihr den betreffenden
Gerätenamen für das Amiga-Verzeichnis mit einem entsprechenden Eintrag
in der Datei "/etc/fstab" auflisten.
5. Fazit
Wenn man sich erst einmal mit dem für Amiga-Verhältnisse ungewöhnlichen
Aspekten von Eigentümerschaft und Gruppenzugehörigkeit der Dateien auf dem
einzubindenden Dateisystem vertraut gemacht hat, bietet das Network File
System auch dem Amiga eine transparente und zugleich elegante Möglichkeit,
Dateien netzwerkweit verfügbar zu machen.
[1] http://www.pr0n.freeserve.co.uk/nfsd.html
[2] http://www.oreilly.de/german/freebooks/rlinux3ger/linux_wegIVZ.html
[3] ftp://de.aminet.net/pub/aminet/comm/tcp/Miamixxx.lha
[4] ftp://de.aminet.net/pub/aminet/comm/tcp/AmiTCP-demo-40.lha
[5] ftp://de.aminet.net/pub/aminet/comm/tcp/gendemo104.lha
Uwe Pannecke <Uwe.Pannecke@t-online.de>
|