Lokale Geräte unterhalb eines NFS-mounts lassen sich nicht umounten

From: Andreas Braml <netzwerk(at)98eins.de>
Date: Mon, 3 Apr 2006 13:03:14 +0200

Hallo!

Ich habe ein seltsames (und wohl auch seltenes, jedenfalls habe
ich bei der Suche im Listenarchiv und mit google nichts
gefunden) Problem.

Zunächst einmal die Situation:
Ich habe hier einen FreeBSD-Server, der /home via NFS für
192.168.1.0/24 freigibt. Die Clients (ebenfalls FreeBSD) hängen
das dann via /etc/fstab automatisch beim boot ein. (uname -a und
rc.conf s. ganz unten)

Seit etwa einer Woche kann ich devices, die unterhalb
von /home/<benutzer> eingehängt sind, also

/home/<benutzer/USB|CD-ROM|Floppy

nicht mehr umounten. Die Fehlermeldung ist:

umount: unmount of /home/<benutzer>/USB|CD-ROM|Floppy failed:
Device busy

Erst ein 'sync && umount -f' (autsch) tut. Wenn ich nun aber das
device unterhalb eines Knotens anhänge, der auf ein _lokales_
Gerät verweist (z. B. /tmp/USB), läuft alles wie gewünscht, also
keine Probleme mit umount. Danach funktioniert auch der
mount/umount unterhalb des NFS-Knotens, aber nur, solange der
Benutzer sich in der Zwischenzeit nicht ab- und wieder
angemeldet hat! Sobald er/sie das hat, wieder das alte
Verhalten.

Es scheint ein Fehler mit NFS (Locking?) zu sein. Ich hatte ein
(sehr entfernt) ähnliches Problem mal nach dem Wechsel FreeBSD
5.4 -> 6.0. Damals ging das locking via NFS nicht mehr
(KDE/Firefox etc. brauchen das aber). Damals hat geholfen, dass
ich zusätzlich zum DNS-Server in /etc/resolv.conf die Adresse
des NFS-Servers in /etc/hosts eingetragen habe.

Was ist in der Zwischenzeit, also zwischen dem Zeitpunkt als es
noch funktionierte und jetzt, am Umfeld hier passiert?

Ich habe den DNS-Server von der Maschine, die die Freigabe via
NFS verteilt, auf den Router umgezogen, da dort die Firewall
läuft. Die /etc/resolv.conf auf dem NFS-Server habe ich
entsprechend angepasst. Da das aber die Änderung
aller /etc/resolv.conf auf den Clients erforderlich gemacht
hätte (manchmal hilft es, vorher zu denken...), habe ich den
DNS-Server auf dem Router zum Cache degradiert, der für keine
zone zuständig ist, der NFS-Server ist jetzt wieder der master
für die lokale domain (habe nur den forwarders-Eintrag in der
named.conf angepasst).

Die Namensauflösung auf dem NFS-Server für interne und externe
Adressen klappt ('host google.com' oder 'host arbeitsplatz1'
z.B.). Und die /var/log/messages sowohl auf den Clients als auch
auf dem NFS-Server schweigen sich aus, sowohl was Probleme bei
der Namensauflösung als auch was Probleme mit nfs betrifft.

Bleibt mir nun nichts, als mal tcpdump anzusetzen wenn ich ein
Gerät im NFS-Knoten der Clients einhänge, um zu sehen, was
schief läuft?

Oder übersehe ich hier etwas wichtiges und habe mir schon den Fuß
löchrig geschossen?

Danke für jede Hilfe.

Andreas

'uname -a' für den Server:
FreeBSD reger.funkhaus.radio98eins.de 6.0-RELEASE FreeBSD
6.0-RELEASE #0: Mon Nov 14 13:54:29 CET 2005
root(at)reger.funkhaus.radio98eins.de:/usr/obj/usr/src/sys/LRZSERVER
i386

für die Clients (sind alle baugleich):
FreeBSD arbeitsplatz3.funkhaus.radio98eins.de 6.0-RELEASE-p1
FreeBSD 6.0-RELEASE-p1 #1: Sun Jan 29 20:07:23 CET 2006
root(at)arbeitsplatz3.funkhaus.radio98eins.de:/usr/obj/usr/src/sys/BLAUER_RECHNER
i386

/etc/rc.conf auf dem NFS-Server:
defaultrouter="192.168.1.1"
hostname="reger.funkhaus.radio98eins.de"
ifconfig_re0="inet 192.168.1.2 netmask 255.255.255.0"
keymap="german.iso"
keyrate="fast"
nfs_server_enable="YES"
rpc_lockd_enable="YES" # Run NFS rpc.lockd needed for
client/server.
rpc_statd_enable="YES" # Run NFS rpc.statd needed for
client/server.
rpcbind_enable="YES"
sshd_enable="YES"
ntpd_enable="YES" # Run ntpd Network Time Protocol
(or NO).
ntpd_flags=" -p /var/run/ntpd.pid"
linux_enable="YES"
nis_server_enable="YES"
nis_yppasswdd_enable="YES"
nisdomainname="radio-98eins"
smbd_enable="YES"
nmbd_enable="YES"
named_enable="YES"

auf den Clients (außer inet identisch):
hostname="arbeitsplatz3.funkhaus.radio98eins.de"
# Set this!
ifconfig_sis0="inet 192.168.1.5 netmask 255.255.255.0"

keymap="german.iso"
keyrate="fast"
font8x14="iso15-8x14"
font8x16="iso15-8x16"
font8x8="iso15-8x8"
linux_enable="YES"

defaultrouter="192.168.1.1" # Set to default gateway
(or NO).
sshd_enable="YES"
nfs_client_enable="YES"
nis_client_enable="YES" # We're an NIS client (or NO).
nisdomainname="radio-98eins" # Set to NIS domain if
using NIS (or NO).
rpcbind_enable="YES"
rpc_lockd_enable="YES" # Run NFS rpc.lockd needed for
client/server.
rpc_statd_enable="YES" # Run NFS rpc.statd needed for
client/server.
ntpdate_enable="YES" # Run ntpd Network Time Protocol
(or NO).
ntpdate_flags="-b 141.53.186.66" # Run ntpd
Network Time Protocol (or NO).
cupsd_enable="YES"

-- 
Andreas Braml
Netzwerk für radio 98eins
PGP: http://www.braml.org/radio.asc
Please avoid sending me Microsoft Office (e.g. Word, PowerPoint)
attachments. Use OpenDocument instead.
See http://www.fsf.org/philosophy/no-word-attachments.html

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 03 Apr 2006 - 13:24:56 CEST

search this site