Große NFS Probleme

german

#1

Unsere NFS Probleme mit gemounteten /home Verzeichnissen äussern sich auf zwei Arten:

  1. Auf dem Univention BDC können sich Nutzer nach einer gewissen Zeit nicht mehr erfolgreich anmelden. Die Nachricht “Benutzerdefinierte Einstellungen werden geladen” steht dort bis der Server neu gestartet wird.
    Siehe auch dieser Forumsbeitrag: [url]Samba - Synchronisierung der home Verzeichnisse auf dem BDC]

  2. Auf einem normalen Ubuntu Rechner gibt es bei mehreren Programmen Probleme, wenn das /home Verzeichnis per NFS bezogen wird. Z. B. kann Firefox seine Benutzeroberfläche nicht richtig aufbauen. Bugeinträge deuten auf Locking-Probleme mit dem NFS-Server hin.

Das Samba Log mit Loglevel 3 auf dem Client beinhaltet:

[2008/11/01 21:33:36, 3] smbd/trans2.c:call_trans2setfilepathinfo(5831) call_trans2setfilepathinfo(8) windows-profiles/Win2k/Anwendungsdaten (fnum 10762) info_level=1004 totdata=40 [2008/11/01 21:33:36, 3] smbd/process.c:process_smb(1069) Transaction 12062 of length 45 [2008/11/01 21:33:36, 3] smbd/process.c:switch_message(927) switch message SMBclose (pid 5598) conn 0x849af80 [2008/11/01 21:33:36, 3] smbd/reply.c:reply_close(3329) close directory fnum=10762 [2008/11/01 21:33:36, 3] smbd/process.c:process_smb(1069) Transaction 12063 of length 158 [2008/11/01 21:33:36, 3] smbd/process.c:switch_message(927) switch message SMBntcreateX (pid 5598) conn 0x849af80 [2008/11/01 21:33:36, 3] smbd/dosmode.c:unix_mode(142) unix_mode(windows-profiles/Win2k/ntuser.ini) returning 0700 [2008/11/01 21:33:36, 2] smbd/open.c:open_file(391) hubert opened file windows-profiles/Win2k/ntuser.ini read=Yes write=Yes (numopen=1) [2008/11/01 21:33:36, 3] smbd/oplock_linux.c:linux_set_kernel_oplock(173) linux_set_kernel_oplock: Refused oplock on file windows-profiles/Win2k/ntuser.ini, fd = 29, dev = 13, inode = 2441696. (Die Ressource ist zur Zeit nicht verfügbar) [2008/11/01 21:33:36, 3] smbd/process.c:process_smb(1069) Transaction 12064 of length 75 [2008/11/01 21:33:36, 3] smbd/process.c:switch_message(927) switch message SMBlockingX (pid 5598) conn 0x849af80 [2008/11/01 21:33:36, 3] lib/util.c:fcntl_lock(2005) fcntl_lock: lock failed at offset 0 count 9223372036854775808 op 13 type 1 (Keine Berechtigung) [2008/11/01 21:33:36, 3] smbd/blocking.c:push_blocking_lock_request(172) push_blocking_lock_request: lock request length=75 blocked with expiry time (0 sec. 0 usec) (+-1 msec) for fnum = 10763, name = windows-profiles/Win2k/ntuser.ini [2008/11/01 21:33:46, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0 [2008/11/01 21:33:46, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (2014, 5019) - sec_ctx_stack_ndx = 0 [2008/11/01 21:33:46, 3] lib/util.c:fcntl_lock(2005) fcntl_lock: lock failed at offset 0 count 9223372036854775808 op 13 type 1 (Keine Berechtigung) [2008/11/01 21:33:46, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0 [2008/11/01 21:33:56, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0 [2008/11/01 21:33:56, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (2014, 5019) - sec_ctx_stack_ndx = 0 [2008/11/01 21:33:56, 3] lib/util.c:fcntl_lock(2005) fcntl_lock: lock failed at offset 0 count 9223372036854775808 op 13 type 1 (Keine Berechtigung) [2008/11/01 21:33:56, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0 [2008/11/01 21:34:06, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0 [2008/11/01 21:34:06, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (2014, 5019) - sec_ctx_stack_ndx = 0 [2008/11/01 21:34:06, 3] lib/util.c:fcntl_lock(2005) fcntl_lock: lock failed at offset 0 count 9223372036854775808 op 13 type 1 (Keine Berechtigung) [2008/11/01 21:34:06, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0 [2008/11/01 21:34:16, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (0, 0) - sec_ctx_stack_ndx = 0 [2008/11/01 21:34:16, 3] smbd/sec_ctx.c:set_sec_ctx(241) setting sec ctx (2014, 5019) - sec_ctx_stack_ndx = 0 [2008/11/01 21:34:16, 3] lib/util.c:fcntl_lock(2005)

Das Entscheidende ist, das der oplock nicht funktioniert hat.

dmesg auf dem PDC gibt folgenden Meldungen aus:

Installing knfsd (copyright (C) 1996 okir@monad.swb.de). NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory NFSD: starting 90-second grace period lockd_up: makesock failed, error=-98 lockd_up: no pid, 2 users?? lockd_up: no pid, 3 users?? lockd_up: no pid, 4 users?? lockd_up: no pid, 5 users?? lockd_up: no pid, 6 users?? lockd_up: no pid, 7 users?? lockd_up: no pid, 8 users??

rpcinfo -p auf dem PDC:

Program Vers Proto Port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100005 1 udp 32767 mountd 100005 1 tcp 32767 mountd 100005 2 udp 32767 mountd 100005 2 tcp 32767 mountd 100005 3 udp 32767 mountd 100005 3 tcp 32767 mountd 100024 1 udp 32782 status 100024 1 tcp 59233 status

Lockd ist nicht am Laufen.

/etc/exports auf dem PDC enthält:

"/home"  *(rw,no_root_squash,sync,no_subtree_check)

/etc/fstab auf dem Client:

gerlinde:/home /home nfs auto,timeo=21,retrans=9,nfsvers=3 0 0 (gerlinde = PDC)

Wie können genauere Logs von NFS erstellt werden?

Mit freundlichen Grüßen,

Mario Minati

PS:
Wie sieht es generell mit der Stabilität eines per Samba re-exportierten NFS-Share aus?
Volker Lendecke (sernet) rät davon ab: http://threebit.net/mail-archive/samba/msg11079.html


Samba - Synchronisierung der home Verzeichnisse auf dem BDC
#2

Hallo,

das Problem ist wohl jetzt leider nicht schnell zu lösen, daher zunächst zu den Freigaben für Windows. Sie können natürlich auch Samba direkt benutzen und müssen nicht den Umweg über NFS gehen. Dafür sollten die folgenden Univention Config Registry Variablen auf dem PDC und dem BDC entsprechend gesetzt sein (%U = Benutzername, %a Windows Architektur):

# PDC (master):
samba/homedirpath: %U
samba/homedirserver: master
samba/share/home: yes
samba/profilepath: %U\windows-profiles\%a
samba/profileserver: master

# BDC:
samba/homedirpath: %U
samba/homedirserver: master
samba/share/home: no
samba/profilepath: %U\windows-profiles\%a
samba/profileserver: master

# Variablen suchen
-> univention-config-registry search samba

# Variablen setzen
-> univention-config-registry set samba/profileserver=master

# nach dem Setzen der Variablen den samba Dienst neu starten
/etc/init.d/samba restart

Der “Server Variablen” sollten dann auf dem BDC auch auf den PDC verweisen, der BDC soll die home Freigaben aber nicht selbst anbieten (“samba/share/home: no”). Im Univention Directory Manager können dann im Benutzerobjekt auf dem Reiter “Linux/UNIX” die Angaben für die “Heimatverzeichnisfreigabe” und den “Pfad der Heimatverzeichnisfreigabe” wieder entfernt werden. Die Samba Freigabe für die home Verzeichnisse sollte standardmäßig vorhanden sein bzw. kann im Univention Directory Manager unter “Freigaben” angelegt werden.

Nun zu Linux. Wir habe das NFS Problem hier auch schon im Zusammenhang mit XEN bemerkt. Haben Sie auf dem Server oder dem Client einen XEN Kernel? Mit dem Befehl

-> uname -r

wird der aktuelle Kernel angezeigt. Wie sehen die Berechtigungen im Verzeichnis “/var/lib/nfs” aus?

ls -la /var/lib/nfs

Mit freundlichen Grüßen

Felix Botner


#3

Sehr geehrter Herr Botner,

vielen Dank für die Hinweise zur Samba-Konfiguration. So funktioniert es, das war mir schon bekannt - und habe ich jetzt auch wieder so eingerichtet - natürlich ohne remount des home Verzeichnisses auf dem BDC. :wink:

Wir verwenden kein XEN.

Hier die erbetenen Angaben des Master:

root@gerlinde:~# uname -r 2.6.18-ucs85-686 root@gerlinde:~# ls -la /var/lib/nfs insgesamt 32 drwxr-xr-x 6 statd root 4096 2008-11-01 20:20 . drwxr-xr-x 53 root root 4096 2008-03-31 10:24 .. -rw-r--r-- 1 root nogroup 1010 2008-11-01 19:54 etab -rw-r--r-- 1 root root 67 2008-11-04 07:48 rmtab drwxr-xr-x 7 root root 0 2008-10-31 09:51 rpc_pipefs drwxr-xr-x 2 statd root 4096 2007-10-21 15:29 sm drwxr-xr-x 2 statd root 4096 2007-10-21 15:29 sm.bak -rw------- 1 statd root 4 2008-11-01 15:39 state drwxr-xr-x 2 root root 4096 2007-10-21 15:29 v4recovery -rw-r--r-- 1 root root 0 2008-03-18 12:16 xtab

Der PDC hat entsprechende Daten:

root@hermine:~# uname -r 2.6.18-ucs85-686 root@hermine:~# ls -la /var/lib/nfs insgesamt 24 drwxr-xr-x 6 statd root 4096 2008-11-01 20:22 . drwxr-xr-x 50 root root 4096 2008-10-01 20:32 .. -rw-r--r-- 1 root root 0 2008-04-08 16:59 etab -rw-r--r-- 1 root root 0 2008-04-08 16:59 rmtab drwxr-xr-x 7 root root 0 2008-11-01 20:22 rpc_pipefs drwxr-xr-x 2 statd root 4096 2008-11-02 21:37 sm drwxr-xr-x 2 statd root 4096 2008-11-01 20:22 sm.bak -rw------- 1 statd root 4 2008-11-01 20:22 state drwxr-xr-x 2 root root 4096 2007-10-21 15:29 v4recovery -rw-r--r-- 1 root root 0 2008-04-08 16:59 xtab

Mit freundlichen Grüßen,

Mario Minati

Ergänzung:

Das home Verzeichnis liegt auf einem LVM:

/dev/mapper/vg_ucs-home on /home type ext3 (rw,acl,errors=remount-ro)

#4

Hallo,

Danke für die Informationen. Leider konnten wir den Fehler bis jetzt nicht reproduzieren, er ist aber in unserer internen Fehlerdatenbank vermerkt.

Um den Debug Level des NFS Client bzw. Server zu erhöhen, können folgende Kommandos benutzt werden.

-> sysctl -w sunrpc.nfs_debug=3
-> sysctl -w sunrpc.nfsd_debug=3

Die Debug Informationen sind dann in “/var/log/syslog” zu finden.

Mit freundlichen Grüßen

Felix Botner