PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : nfs-client hat keine Online-Verbindung!?



micha97
06.11.04, 12:16
Hallo liebe Fachleute!
Die Vernetzung zwischen meinem PC und dem Laptop hat ausgezeichnet geklappt! - Nur es gelingt mir nicht mit dem nfs-Client (Laptop) online zu gehen!?

Wer kann mir diesbezüglich helfen!

Vielen Dank im voraus!

Gruß micha

pibi
06.11.04, 14:07
Wer kann mir diesbezüglich helfen!Ich, sobald meine Glaskugel aus der Reparatur zurueck ist. Ansonsten fehlt eine gewaltige Menge an Input von Dir.

Gruss Pit.

PS: Wieso eigentlich das "!"-Zeichen nach Deiner Frage? Hint: Es gibt eine "Vorschau-Funktion", in der man sich seine eigene Mail nochmals durchlesen kann, bevor man sie abschickt....

/edit:
Sehe ich erst jetzt: Nach >1100 Beitraegen solltest Du eigentlich wissen, wie man fragt (und antwortet). Sorry, couldn´ t resist;-)

micha97
06.11.04, 14:40
Also, nach folgender Anleitung bin ich vorgegangen und wie gesagt, alles haut hin bis eben auf die Internetverbindung per client (früher hat es schon mal funktioniert!)

Wie erstelle ich meinen eigenen Server (NFS)

[root@miraculix /root]# rpcinfo -p

program vers proto port

100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper

Eine andere Möglichkeit wäre der Befehl

[root@miraculix /root]# ps -aux | grep portmap

Dieser RPC Portmapper ist dafür zuständig, die verschiedenen Anfragen von Clients den NFS-Daemons 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

[root@miraculix /root]# 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 (freigeben in den services nicht vergessen!) und mit /etc/rc.d/init.d/portmap start aktivieren.

Ein weiterer Ansatzpunkt ist das oben beschriebene /etc/services, in dem alle Daemons mit zugehörigen Ports definiert sind, dort könnt ihr sehen, ob der Daemon auskommentiert ist.

Dieser portmapper (oder rpc.portmap) wird durch den init-Daemon beim booten gestartet und sollte deshalb auch unter /etc/rc.d/rcX.d und unter /etc/rc.d/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-util bereits bei der Installation mit aufgespielt und könnt gleich ins nächste Kapitel.
Alle anderen müssen nun noch dieses nfs-util-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/init.d/nfsserver status kann der aktuelle Status des Daemons eingesehen werden. Normalerweise ist er nach der Installation gestoppt und inaktiv, was sich jedoch mit /etc/init.d/nfsserver start schnell beheben läßt. Nun sollte bei allen Aufrufen ein "OK" gestanden 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 eines jeden 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 die Datei /etc/hosts vergessen zu pflegen, sonst könnte es hierbei Schwierigkeiten bezüglich der Namensauflösung geben.

So nun habt ihr erst mal Eurem Server die Verzeichnisse beigebracht, die er exportieren soll.

((8)) Noch ein kleiner Test

So nachdem die Konfiguration erledigt ist, wollen wir die Server-Konfiguration abschließen und 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 und -r zum kompletten Neueinlesen der /etc/exports (...man exportfs...)

Den Client einrichten

((1)) Vorwort

Ihr wollt nun also das Verzeichnis oder die Verzeichnisse auf dem Server in Euer Client-System integrieren. Das geht über den Mount-Befehl oder noch einfacher über das File /etc/fstab.

NFS hat den Vorteil, daß man an jedem Rechner im Netzwerk die gleiche Umgebung wiederfinden kann.

((2)) Vorbereitung

Auf der Client-Seite benötigen wir ebenfalls das nfs-client-Paket. Dies könnt ihr euch als einzelnes Paket besorgen oder ihr nehmt die nfs-utils, in der das Paket auch integriert ist.

Meiner Meinung nach wird hierbei viel zu viel installiert, was wir nicht benötigen, aber egal...

((3)) Mounten von NFS-Systemen

Nach Installation des Paketes könnt ihr den Befehl showmount benutzen um den Server abzuchecken. Da mein Server miraculix heißt, lautet bei mir der Befehl

[root@miraculix /root]# showmount miraculix

Nun werden alle Clients angezeigt, die Verzeichnisse vom Server importieren dürfen. Mit

[root@miraculix /root]# showmount miraculix -e

werden die einzelnen Verzeichnisse angegeben und die Hosts, die darauf zugreifen dürfen.
=> /Server voyager
=> /downloads (everyone)

Um nun ein Verzeichnis zu mounten, wird der normale Mount-Befehl verwendet, der hat folgende Syntax hat:

mount server:/verzeichnis /importverzeichnis [-t nfs]

[root@miraculix /root]# mount miraculix:/Server /mnt/import -t nfs

Nun lassen wir das Mounten einfach automatisch passieren, durch die Datei fstab:

# begin of /etc/fstab
#
miraculix:/Server /mnt/imports nfs auto,user 1 1
# eine weitere Möglichkeit
miraculix:/downloads /downloads nfs noauto,user 1 1
# hier könnt ihr dann mounten (auch als User) mit: mount /downloads
#
# end of file

Wenn diese Einträge vorhanden sind, dann wird es in den meisten Fällen funktionieren.

Mit diesem Befehl müßte es geklappt haben. Falls eine Fehlermeldung mit "...keine Berechtigung" erscheint, müßt ihr nochmals in der /etc/exports des Servers nachsehen ob alles richtig ist! Jetzt könnt ihr euch das Verzeichnis bewegen, als ob es zu eurem Dateisystem gehört.

((4)) Tipps

Um den nfs-Daemon beim Booten zu starten, müßt ihr einen Link in das Runlevel legen (bspw. ln -s /etc/rc.d/init.d/nfs /etc/rc.d/rc3.d/S12nfs) Ihr solltet mit Links arbeiten. Legt euch ein Verzeichnis /export an und setzt in diesem Links auf alle anderen Verzeichnisse, die ihr exportieren wollt. Spart eine Menge an Tiparbeit (und ich bin sehr faul ;-)

((5)) Ich habe keine Schreibrechte, was nun?

Naja, es ist einfach, warum ihr nicht schreiben könnt, ihr habt eben die Rechte nicht. Auf dem Server ist das Verzeichnis als root angelegt und es wurde nichts geändert. Es kann jetzt nur root auf das Verzeichnis zugreifen. Da aber der root am Client nicht root auf dem Server ist geht das auch nicht.

Optionen und weitere Möglichkeiten

((1)) Vorwort

So nun kommen wir zum echten Wissen, jedoch ist das hier ist immer noch Grundlage. Ich spreche hier also die erweiterten Optionen an, die man aber normalerweise auch braucht, um seinen Server anständig zu konfigurieren. Ihr könnt euch auch bei den Tips zum Netzwerk weiter informieren.

((2)) NFS Export Optionen

Es gibt noch mehr Optionen beim Exportieren von Verzeichnissen als nur ro und rw. Hier ein paar :
1. Ein Client root soll auch root auf dem Server sein:

/Server *.starfleet(rw,no_root_squash)

Die Option no_root_squash erzwingt dies. Das Gegenstück wäre root_squash und das ist auch zu erreichen durch keine Angabe.


2. Die User IDs abgleichen lassen

/Server *.starfleet(rw,no_root_squash,map_daemon)

Wenn gewünscht wird, daß die User-IDs auf dem Server und dem Client gleich sind, kann man eine Umsetzungstabelle generieren lassen. Es muß aber der Daemon ugidd gestartet sein, damit das funktionieren kann.
3. Zugriffsschutz auf Unterverzeichnisse

/Server *.starfleet(rw,noaccess)

Diese Option dient dazu, bei größeren Verzeichnisbäumen den Zutritt zu Unterverzeichnissen zu sperren. Das ist hervorragend dazu geeignet, beispielsweise das /var-Verzeichnis mit seinen vielen Unterverzeichnissen freizugeben, anstatt etliche Unterverzeichnisse explizit zum mounten freizugeben.

((3)) Rechte für das Export - Verzeichnis

Ihr habt Probleme mit dem Scheiben oder Erstellen? Das ist normal, wenn die Rechte nicht richtig konfiguriert wurden. Ich werde kurz erklären, was ich machen würde, um die Rechte optimal zu vergeben.

Ich würde alle, die auf den Server zugreifen müssen, in eine Gruppe stecken. Ein normaler User, z.B. michael ist in der Gruppe users. Ihr könnt jetzt auch eine neue Gruppe erstellen, z.B. serverusers. Dann weist ihr michael die Gruppe serverusers zu. Lest dazu auch unsere Konsolen-Tips!

Nun ändern Sie mit chgrp die Gruppe des Verzeichnisses. Sie müssen als root angemeldet sein um Rechte für Verzeichnisse zu ändern, die root gehören. Geben Sie also ein:

chgrp -R serverusers *

dann ändern Sie noch den Eigentümer:

chown -R michael *

Dann ändern Sie noch die Zugriffsrechte so, dass die ganze Gruppe Zugriff hat. Das müssen Sie ständig machen, wenn Sie eine Datei erstellen.

chmod 775 *

Sie können statt dem * auch den Dateinamen angeben.

((4)) Optionen für den Mount-Befehl

Da Unix/Linux ein sehr flexibles System ist, gibt es beim mount-Befehl auch noch diverse Optionen, die ihr mitgeben könnt.

mount -o rw,ro,bg,wsize,rsize Server:/Server /mnt/import -t nfs

Die Parameter rw und ro dürften mittlerweile bekannt sein. bg bedeutet, dass der Mount-Prozeß in den Hintergrund gestellt wird, was vor allem bei Netzstörungen oder Netzbelastung interessant ist, und dort weiter sein Glück versucht.
wsize und rsize geben die Anzahl der Bytes an, die als Block über das Netz geschrieben und gelesen werden. Diese Option wirkt sich stark auf die Performance aus, daher wird der Wert 8192 für beide empfohlen (Standard ist 1024).

Gruß micha