Ich betreibe einen kleinen Server für unsere WG. Es ist meistens ein Dateiserver mit einigen Zusatzleistungen. Die Clients sind Linux-Maschinen (meistens Ubuntu, aber auch einige andere Distros) und einige Mac(-Book)s dazwischen (sind aber für die Frage nicht wichtig). Auf dem Server wird Ubuntu 11.10 ausgeführt (Oneiric Ocelot) „Server Edition“, das System, von dem aus ich meine Einrichtung und Tests durchführe, führt die 11.10 „Desktop Edition“ aus. Wir haben unsere Freigaben eine ganze Zeit lang mit Samba (mit dem wir besser vertraut sind) betrieben, sind dann aber auf NFS umgestiegen (weil wir keine Windows-User im LAN haben und es ausprobieren wollen) und bisher alles bestens .
Jetzt möchte ich das automatische Mounten mit autofs einrichten um die Dinge zu glätten (bisher mountet jeder die Freigaben bei Bedarf manuell). Das automatische Mounten scheint auch zu funktionieren. Das Problem ist, dass unser „Server“ nicht rund um die Uhr läuft, um Energie zu sparen (wenn jemand etwas vom Server braucht, schaltet er ihn ein und fährt ihn danach herunter, sodass er nur ein paar Stunden am Tag läuft). Aber seit dem Autofs-Setup hängen die Clients oft auf, wenn der Server nicht läuft.
-
Ich kann alle Clients problemlos starten, auch wenn der Server nicht läuft.
-
Aber wenn ich ein Verzeichnis anzeigen möchte (in Terminal oder Nautilus), das symbolische Links zu einer Freigabe unter
/nfs
enthält während der Server nicht läuft, hängt er für mindestens zwei Minuten (weil autofs keine Verbindung zum Server herstellen kann, aber es immer wieder versucht, nehme ich an).- Gibt es eine Möglichkeit, das zu vermeiden? Damit das Mounten verzögert wird, bis in das Verzeichnis gewechselt wird oder auf Inhalte dieses Verzeichnisses zugegriffen wird? Nicht, wenn Sie einen Link zu einer Freigabe unter
/nfs
„ansehen“. ? Ich denke nicht, aber vielleicht ist es möglich, so lange nicht darauf zuzugreifen? Und gib mir einfach ein leeres Verzeichnis oder ein "can't find / connect to this dir" oder so ähnlich.
- Gibt es eine Möglichkeit, das zu vermeiden? Damit das Mounten verzögert wird, bis in das Verzeichnis gewechselt wird oder auf Inhalte dieses Verzeichnisses zugegriffen wird? Nicht, wenn Sie einen Link zu einer Freigabe unter
-
Wenn der Server läuft, funktioniert alles einwandfrei.
-
Aber wenn der Server heruntergefahren wird, vorher eine Freigabe wurde ausgehängt, Tools (wie
df
oderll
) hängen (angenommen, weil sie denken, dass die Freigabe noch aktiv ist, aber der Server nicht mehr antwortet).- Gibt es eine Möglichkeit, Freigaben automatisch abzumelden, wenn die Verbindung unterbrochen wird?
-
Außerdem werden die Clients nicht heruntergefahren oder neu gestartet, wenn der Server heruntergefahren ist und sie noch Freigaben gemountet haben. Sie hängen (wie es scheint unendlich lange) daran, „verbleibende Prozesse zu töten ” und nichts scheint zu passieren.
Ich denke, es kommt alles auf ordentliche Timeout-Werte für das Mounten und Unmounten an. Und vielleicht, um alle Freigaben zu entfernen, wenn die Verbindung zum Server unterbrochen wird.
Siehe auch:`$XAUTHORITY` erscheint aus dem Nichts auf su+tmux?
Daher meine Frage:Wie geht man damit um? Und als Bonus:Gibt es eine gute Möglichkeit, /nfs
zu verlinken? ohne die Notwendigkeit, die echten Freigaben zu mounten (eine autofs-Option oder vielleicht die Verwendung eines Pseudo-FS für /nfs
die ersetzt wird, wenn das Mounten passiert oder so)?
Mein Setup
Die NFS-Einstellung ist ziemlich einfach, hat uns aber bisher gute Dienste geleistet (unter Verwendung von NFSv4 ):
/etc/default/nfs-common
NEED_STATD=
STATDOPTS=
NEED_IDMAPD=YES
NEED_GSSD=
/etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
/etc/exports
/srv/ 192.168.0.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
Unter dem Exportstammverzeichnis /srv
Wir haben zwei Verzeichnisse mit bind
:
/etc/fstab (Server)
...
/shared/shared/ /srv/shared/ none bind 0 0
/home/Upload/ /srv/upload/ none bind 0 0
Der erste ist meistens nur lesbar (aber ich erzwinge das durch Dateiattribute und Eigentumsrechte anstelle von NFS-Einstellungen) und der zweite ist rw für alle. Hinweis:Sie haben keine zusätzlichen Einträge in /etc/exports , das separate Mounten funktioniert aber.
Auf der Client-Seite werden sie in /etc/fstab
eingerichtet und bei Bedarf manuell gemountet (morton
ist der Name des Servers und wird gut aufgelöst).
/etc/fstab (Kunde)
morton:/shared /nfs/shared nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
morton:/upload /nfs/upload nfs4 noauto,users,noatime,soft,intr,rsize=8192,wsize=8192 0 0
Für die autofs-Einrichtung Ich habe die Einträge aus /etc/fstab
entfernt auf den Clients und richten Sie den Rest so ein:
/etc/auto.master
/nfs /etc/auto.nfs
Zuerst habe ich die mitgelieferte ausführbare Datei /etc/auto.net
eingebunden (Sie können es sich hier ansehen), aber es wird nichts automatisch für mich gemountet. Dann schreibe ich eine /etc/auto.nfs
basierend auf einigen HowTos, die ich online gefunden habe:
/etc/auto.nfs
shared -fstype=nfs4 morton:/shared
upload -fstype=nfs4 morton:/upload
Und es funktioniert irgendwie… Oder würde funktionieren, wenn der Server rund um die Uhr laufen würde. Wir bekommen also Aufhänger, wenn ein Client startet, ohne dass der Server läuft, oder wenn der Server herunterfährt, während Freigaben noch verbunden sind.
Akzeptierte Antwort:
Wenn Sie ein Mount-System verwenden, möchten Sie Situationen vermeiden, in denen Nautilus das Verzeichnis auflistet, das einen Mount enthält, der gemountet werden kann oder nicht. Erstellen Sie also mit autofs keine Mounts beispielsweise in /nfs. Wenn Sie Nautilus verwenden, um das „Dateisystem“ aufzulisten, wird es versuchen, alle Mounts zu erstellen, die in /nfs vorhanden sein sollten, und wenn diese Mount-Versuche fehlschlagen, dauert es Minuten, bis Sie aufgeben.
Also habe ich auto.master geändert, um die Mounts in /nfs/mnt.
zu erstellenDies hat das Problem für mich behoben. Ich erhalte nur eine lange Verzögerung, wenn ich versuche, den Inhalt von /nfs/mnt aufzulisten, was ich leicht vermeiden kann.