Von Michael
Flaig
1.
Vorwort
Die erste Version dieses Workshops wurde bereits 1999 von
Michael Flaig geschrieben und veröffentlicht. Seit dieser Zeit
hat sich doch einiges geändert und die Installationen sind
noch einfacher geworden (wenn man weiß wie!).
Ich selbst habe den Workshop ausprobiert und bin auf einige
Probleme gestoßen, die ich hier nun gleich mit Lösungen
einbringen möchte. Da Michael und ich die Installation und
Konfiguration auf verschiedenen Distributionen durchgeführt
haben, läßt sich auch sagen, daß es (fast) überall laufen muß!
2.
Testumgebung
Meine Testumgebung besteht aus fünf Rechnern, von denen
hier zwei benutzt wurden. Auf einem (Pentium, 233 MHz, 64 MB,
20 GB HDD, Red Hat 7.0) wird der NFS-Server installiert und
auf dem anderen (486 DX4/100, 16 MB, 800 MB HDD, Red Hat 6.2)
soll der Client entstehen. Beide sind über ein 10 MBit-Netz
miteinander verbunden.
3. Vorgeschichte und
erste Hürden
Auf dem Server hatte ich bereits eine Red Hat-Version am
Laufen und wollte hier nur noch das Server-RPM installieren.
Ich wußte, daß es damals (vor einigen Jahren) ein RPM gab
namens nfs-server-xxx.i386.rpm
und eines namens nfs-server-client-xxx.i386.rpm
und begab mich auf die Suche danach. Da ich auf den CDs nicht
fündig wurde, suchte ich bei Red Hat selbst, doch auch hier
war bei meinen Versionsnummern nichts zu finden. Endlich wurde
ich bei http://www.rpmfind.net/
fündig. Allerdings machte mich stutzig, daß ich lediglich eine
Beta für Red Hat 5.2 fand als neueste Version. Bei näherer
Betrachtung fand ich ein weiteres Paket (nfs-utils), das, wie
sich später herausstellte, alle nötigen Pakete in sich
beherbergte (nfs-util, nfs-server und nfs-client).
4. Was ist
NFS?
Was heißt eigentlich NFS?
NFS bedeutet Network File System und wurde als Verbindung
von Unix-Rechnern in den Achtziger Jahren von SUN Microsystems
entwickelt (dies bedeutet auch, daß ihr mit euren
Windows-Kisten keine Chance habt - dafür ist Samba zuständig)
und zur Verfügung gestellt. Mittlerweile befindet sich das
Protokoll in seiner 3. Version und hat an seinen
Schwachpunkten, wie Geschwindigkeit, sehr gearbeitet. Das
Schöne an diesem Protokoll ist, das es statuslos ist, d.h. das
Verzeichnis hängt sich erst bei einem Zugriff wieder ein und
danach wieder aus - sehr bedarfsorientiert - und verursacht
dadurch sehr wenig Traffic auf den Leitungen. Im Internet gibt
es sehr viele NFS-Server (z.B. Red Hat und SuSE), die ihr
mounten könnt und sogar ganze Distributionen von dort
installieren könnt. Aber aufgepaßt. NFS gilt als sehr unsicher
und ihr solltet euch dessen immer bewußt sein, um nicht euch
und/oder euer System zu gefährden. So, genug geschrieben.
Lasset die Taten sprechen...
5. Wichtige Programme
für den Betrieb
Ich gehe der Einfachheit halber davon aus, das nur
grundlegende Dienste und Programme installiert wurden und der
NFS-Dienst noch komplett aufgespielt werden muß (alle anderen
steigen einfach irgendwo ein). Das heißt auch, daß eure
Netzwerkkarte funktioniert, ihr einen Rechnernamen vergeben
und sämtliche Rechner in die Datei /etc/hostseingetragen
habt. Bei SuSE könnt ihr das Ganze über YaST bei der
Installation sehr schnell abarbeiten, jedoch möchte ich das
ganze Old-Style zeigen, damit ihr auch wißt, wo ihr einmal
nachzusehen habt, wenn etwas nicht läuft.
Zuerst sollte man schnell mal nachsehen, ob der RPC
Portmapper installiert und gestartet wurde. In meinem Fall war
er gestartet und belegte die Ports 111 von TCP und UDP. Um zu
sehen, ob er läuft, könnt ihr den Befehl rpcinfo -p benutzen. Nun müßten
diese oder ähnliche Zeilen auftauchen:
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
| |
Eine andere Möglichkeit wäre der Befehl ps aux | grep portmap.
Dieser RPC Portmapper ist dafür zuständig, die
verschiedenen Anfragen von Clients den NFS-Daemonen zuzuordnen
und weiterzuleiten, eine kleine Poststelle. Sollten die beiden
Befehle kein positives Ergebnis bringen, so besteht die
Möglichkeit, daß er noch nicht installiert ist. Dies findet
ihr am besten mit rpm -q -a | grep
port heraus.Solltet ihr jetzt "Hilfe" schreien, da
kein Portmapper zu finden ist, dann kann ich nur sagen:
"don't panic!!!". Mit Hilfe des neuesten
Paketes portmap-X.i386.rpm könnt
ihr ihn nachträglich installieren und mit /etc/init.d/portmap start
aktivieren.
Der Portmapper (oder rpc.portmap) wird durch
den init-Daemon beim Booten gestartet und sollte deshalb auch
unter /etc/rc2.d
und unter /etc/init.d stehen. Nach
Installation des nfs-util-Paketes sollten beim obigen Aufruf
nun auch der nfs-Daemon und der mount-Daemon sichtbar sein.
Bei manchen wird beim Aufruf von rpcinfo -p eventuell noch etwas
mehr ausgegeben, wie oben dargestellt, wie etwa ein
mount-Daemon und nfs-Daemon, dann habt ihr die nfs-utils
bereits bei der Installation mit aufgespielt und könnt gleich
ins nächste Kapitel. Alle anderen müssen nun noch das
nfs-utils-Paket per rpm -Uvh
nfs-util-XXX.i386.rpm in das System einbinden.
Wenn nun keine Fehler mehr auf dem Display erschienen sind,
könnt ihr nochmals den Infobefehl starten und alles müßte
erscheinen.
6.
Testaufruf
Natürlich wollen wir jetzt auch mal testen, ob der
nfs-Daemon überhaupt läuft. Durch den Aufruf /etc/rc.d/init.d/nfs status kann
der aktuelle Status des Daemons eingesehen werden.
Normalerweise ist er nach der Installation gestoppt und
inaktiv, was sich jedoch mit /etc/rc.d/init.d/nfs start
schnell beheben läßt. Nun sollte bei allen Aufrufen ein "OK"
erschienen sein und beim Status-Aufruf ein ...is running stehen.
7. Die Verzeichnisse zum
Export festlegen
Nachdem diese Hürde mit Bravour genommen wurde, kommen wir
nun zur eigentlichen Konfiguration des NFS-Servers. Im Prinzip
ist es ganz einfach, Verzeichnisse auf dem Server für andere
Unix- oder Linux-Rechner zur Verfügung zu stellen. Es gibt
eine Konfigurationsdatei, die /etc/exports heißt. In
dieser Datei müssen alle Ordner eingetragen sein, um darauf
zugreifen zu können. Schauen wir doch mal hinein.
# Begin of /etc/exports ( Beispiel 1 )
#
# Meine Dateien auf dem Server:
#
/Server voyager(rw) yorktown(ro)
#
# Ich exportiere das Verzeichnis /Server mit Leserechten (ro) auf
# voyager und yorktown. Voyager bekommt zusätzlich
# Schreibrechte (rw).
#
# end of file
| |
Ihr könnt auch Rechner-Gruppen angeben:
# Begin of /etc/exports ( Beispiel 2 )
#
# Meine Dateien auf dem Server:
#
/Server *.starfleet(rw)
#
# Ich exportiere hier das Verzeichnis /Server auf alle Rechner
# mit der Domain starfleet mit Schreib- und Lese-Rechten.
#
# Nun exportiere ich mein downloads-Verzeichnis noch:
/downloads *(rw)
#
# end of file
| |
Denkt daran, daß jeder Rechner mit der Domain starfleet auf
das Verzeichnis zugreifen kann. Es ist also nicht so sicher
wie die Angabe jedes Rechners, der zugreifen darf.
Das Ganze geht auch mit IP-Nummern, z.B.:
#
# Begin of /etc/exports ( Beispiel 3 )
# Die Verzeichnisse werden exportiert:
/Server 192.168.1.*(ro)
/downloads 192.168.6.3(rw)
#
# Wie gesagt, es geht auch mit IP-Nummern. Aber immer an die
# Sicherheit denken!
#
# end of file
| |
Achtung: nicht vergessen, die Datei /etc/hosts zu pflegen,
sonst könnte es hierbei Schwierigkeiten bezüglich der
Namensauflösung geben. In größeren Netzen - oder auch zuhause,
wenn man will - umgeht man dieses Problem mit einem Nameserver.
So, nun habt ihr erst mal eurem Server die Verzeichnisse
beigebracht, die er exportieren soll.
8. Noch ein kleiner
Test
Nachdem die Konfiguration erledigt ist, wollen wir uns dem
Client zuwenden. Mit dem Befehl exportfs kann man nun sehen,
welche Verzeichnisse aktuell freigegeben werden. Hier sollte
nun /Server und
/downloads<world>
stehen. Weitere Optionen für den Befehl sind
- -a Hinzufügen neuer
Verzeichnisse in die Datenbank
- -r zum kompletten
Neueinlesen der /etc/exports
(...man exportfs...)
Weiter
geht's mit den Clients...
Überarbeitet von Bernd
Reimann
Copyright (C) Michael Flaig Erschienen auf Pro-Linux, letzte Änderung
2001-08-13
|