Could you at least post the export /var/lib/nfs/etab
It would seem like the most obvious cause for touble. Also,
(a) did you use the exact same options when testing ext[234]?
(b) what happens when you test with another fuse-fs? [i.e. is this a
fuse issue?]
(c) what happens if you add/remove the
-o default_permissions
-o debug
fuse mount options?
(HINT: -o debug results in libfuse debug output when in foreground)
NFS exporting works to some extent on all fuse filesystems, but not perfectly. This is due to the stateless nature of the protocol, the server has no way of knowing whether the client is keeping a reference to a file or not, and hence that file may be removed from the server's cache. In that case there has to be a way to look up that object using the inode number, otherwise an ESTALE error will be returned.
Which call, which params and what supposed return value(s)?
PS. congratulations on Spain's victory in the world cup!
--
To post to this group, send email to zfs-...@googlegroups.com
To visit our Web site, click on http://zfs-fuse.net/
Well you wouldn't have an easier way than building a 150 Gb mp3 collection ? Because mine must be 10 times smaller for now, or even more than 10 times !
I regularly use nfsv3 on zfs but just for reading, no writes at all, never noticed any estale, and it wouldn't make sense anyway : fuse uses the inode numbers directly from zfs, so it can't forget them. The only problem is when there is more than 1fs in a subtree, in this case the fsid parameter becomes mandatory to isolate them.
Anyway, I'll experiment with this auditd thing (tonight !), but I don't think it will find anything unusual.2010/8/1 Manuel Amador (Rudd-O) <rud...@rudd-o.com>
You didn't confirm well. ESTALE is a situation that only happens randomly (basically when the kernel drops the metadata cache on the inode). If you want to confirm this, what you have to do is have like a really really large music collection, 150 GB or so, exported through NFS and mounted on another machine. Then scan your collection using Amarok. Enable auditd with these rules:
--
To post to this group, send email to zfs-...@googlegroups.com
To visit our Web site, click on http://zfs-fuse.net/
Please tell me what happened to you (nfs only, samba is not supported
anyway). The way I see it,
* nfs4 has usability issues, not integrity issues
* nfs3 might have integrity issues, but I'm not sure I understand. A
real-life example would help
If you say you found out about silent data loss, could you provide a
summary of what happened/how you found out?
Once we can explain this, I will put up a notice on the site
Seth
Bottom line, if you want to share ZFS file systems:
- upgrade to latest 2.6.35 vanilla kernel
- use either UNFSD in the server, or SAMBA in the server
- in SAMBA clients, use explicit mount option serverino or use Windows
Ironically, SAMBA works, which means that SAMBA ought to be supported, and NFS
ought NOT to be supported.
----------------------------------
This is my report:
----------------------------------
Server: vanilla 2.6.35 kernel
Client: vanilla 2.6.35 kernel
NFSv4:
- creation of a file using cp or any other tool that opens files with
O_EXCL causes the file to be created with mode 000, and the app to get
a Permission Denied reply from the creat() syscall
- Problem exclusive to ZFS-FUSE and other FUSE filesystems exported
via NFS -- above problem is not reproducible in tmpfs and ext4
filesystems exported via NFS
NFSv3:
- stale file handles, a LOT of them. Run find /mountpoint or use
something like amarokcollectionscanner on a big disk mounted via
NFSv3, and enable auditd with a rule to trap return status -113 and
check the audit log, you will see massive amounts of ESTALE errors.
- Problem exclusive to ZFS-FUSE and other FUSE filesystems exported
via NFS -- above problem is not reproducible in tmpfs and ext4
filesystems exported via NFS
NFSv2:
- same problems as NFSv3
- additional limitations: maxfilesize 2G
SAMBA:
- inodes are reused for mountpoints in ZFS file systems that contain
children ZFS file systems mounted atop of them. this will inevitably
lead to impossible-to-diagnose data loss scenarios. one such scenario is
easy to verify: run find /mountpoint once, then run it again, and you will see
the two finds return different lists of files.
- the only way to make SAMBA work is with explicit serverino mount option, and
this has only been tested with kernel 2.6.35 on both client and server
UNFSD
- works.
- INCREDIBLY SLOW.
Changing mount options like proto tcp proto udp, whatnot, or ZFS-FUSE
options like fuse mount options, fuse entry timeout / attr timeout,
disable page cache, M A K E S N O D I F F E R E N C E.
------------------------------------
To visit our Web site, click on http://zfs-fuse.net/
To visit our Web site, click on http://zfs-fuse.net/