De NFS nachtmerrie:
Ik heb hier staan:
- een linux servertje met debian en 2.4.20-wolk4.1s, deze exporteert via NFS mijn /home
- een FreeBSD 5.1 machine, deze mount /home op de linux server
UIDmapping gaat via nss_ldap (wel experimenteel op FreeBSD, maar het werkt wel
)
Alles leuk en aardig, draait allemaal leuk, snel zat over 100Mbit. Totdat ik evolution op de FreeBSD machine zet:
Error while 'Storing folder 'home/jan/evolution/local/Inbox'':
Failed to get lock using fcntl(2): Operation not supported
Tja, locking he
Op de server draait nfs-kernel-server en ik zie dat [lockd] draait. Op de client zie ik niets van locking draaien, maar als ik mijn mount opdracht zo bekijk met mount_nfs, zou dat ding volgens de manpage wel degelijk locking moeten doen. Tussen linux en linux zou het geen probleem moeten zijn: op school gebruiken we ook linux als NFS server en linux als NFS client, daar werkt Evolution wel gewoon zonder geflikker.
Wel degelijk locking lijkt mij. Vanaf de FreeBSD machine dezelfde output.
Inmiddels een vuile workaround gevonden die werkt:
Wat deze mountopties uitvreten: Locking niet aan de server doorgeven, maar lekker alles lokaal uitzoeken. Ik ben toch niet 2x als dezelfde user ingelogd op 2 verschillende machines, dus ik heb hier geen problemen mee. Een echte oplossing zou natuurlijk mooi zijn.
Ik heb hier staan:
- een linux servertje met debian en 2.4.20-wolk4.1s, deze exporteert via NFS mijn /home
- een FreeBSD 5.1 machine, deze mount /home op de linux server
UIDmapping gaat via nss_ldap (wel experimenteel op FreeBSD, maar het werkt wel
Alles leuk en aardig, draait allemaal leuk, snel zat over 100Mbit. Totdat ik evolution op de FreeBSD machine zet:
Error while 'Storing folder 'home/jan/evolution/local/Inbox'':
Failed to get lock using fcntl(2): Operation not supported
Tja, locking he
Op de server draait nfs-kernel-server en ik zie dat [lockd] draait. Op de client zie ik niets van locking draaien, maar als ik mijn mount opdracht zo bekijk met mount_nfs, zou dat ding volgens de manpage wel degelijk locking moeten doen. Tussen linux en linux zou het geen probleem moeten zijn: op school gebruiken we ook linux als NFS server en linux als NFS client, daar werkt Evolution wel gewoon zonder geflikker.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| jan@ck408323-a:~$ rpcinfo -p localhost
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 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100021 1 udp 32770 nlockmgr
100021 3 udp 32770 nlockmgr
100021 4 udp 32770 nlockmgr
100021 1 tcp 32774 nlockmgr
100021 3 tcp 32774 nlockmgr
100021 4 tcp 32774 nlockmgr
100005 1 udp 32771 mountd
100005 1 tcp 32775 mountd
100005 2 udp 32771 mountd
100005 2 tcp 32775 mountd
100005 3 udp 32771 mountd
100005 3 tcp 32775 mountd
100024 1 udp 32863 status
100024 1 tcp 60946 status |
Wel degelijk locking lijkt mij. Vanaf de FreeBSD machine dezelfde output.
Inmiddels een vuile workaround gevonden die werkt:
code:
1
| mount -t nfs -o nfsv3,tcp,intr,rdirplus,-r=32768,-w=32768,-L 192.168.0.1:/home /home |
Wat deze mountopties uitvreten: Locking niet aan de server doorgeven, maar lekker alles lokaal uitzoeken. Ik ben toch niet 2x als dezelfde user ingelogd op 2 verschillende machines, dus ik heb hier geen problemen mee. Een echte oplossing zou natuurlijk mooi zijn.
[ Voor 11% gewijzigd door _JGC_ op 22-06-2003 15:09 ]