Unfortunately out in the real world, people want to mix POSIX and Microsoft
semantics…
So we do the best we can.
I wonder how much of the multi-protocol use falls into two camps:
1. Simple file sharing, for example, I run Virtual Box on a Windows
machine to get Linux VMs. I mount my Windows “My Documents” into the Linux VM
so I can easily pass files back and forth. Share reservations work and prevent
Linux from trampling things if Microsoft Word happens to have a file open.
2. Some kind of database application with clients on multiple platforms.
Such application will use appropriate synchronizing operations including byte
range locks in a way that does not depend on any of the peculiarities of POSIX
or Microsoft semantics.
Yea, we can try to make things like delete of open files work as best as
possible, but either of those two use cases won’t have any really big surprises
if the integration for a peculiarity like deleting an open file isn’t perfect.
Now one use case that may not go so well is an application that uses lock files
to indicate which client or process is active…
I’ve seen folks paranoid that POSIX byte range locks are only advisory, but
outside of a program bug, if a POSIX app and a Windows app are both using byte
range locks to protect records they are changing, it doesn’t matter that POSIX
thinks they are only advisory… Of course a server CAN enforce the range locks
(and NFS v4 even supports this idea), and yea, that will break a POSIX app that
thought it didn’t actually need to respect the locks.
I think overall Ganesha does a pretty good job. There are places where it can
do better.
While talk of having an SMB front end to Ganesha are fun, I doubt we will ever
do that, and I don’t think it’s necessary to have sufficiently good integration
to cover 99.9% of the possible multi-protocol use cases.
Frank
From: DENIEL Philippe [mailto:philippe.den...@cea.fr]
Sent: Wednesday, March 7, 2018 6:28 AM
To: Pradeep <pradeeptho...@gmail.com>; nfs-ganesha-devel
<nfs-ganesha-devel@lists.sourceforge.net>
Subject: Re: [Nfs-ganesha-devel] Multiprotocol support in ganesha
Hi,
from a "stratospheric" point of view, I see a potentially big issue ahead for
such a feature : FSAL has been designed to be quite close to POSIX behavior,
CIFS follows the Microsoft File System semantics, which is pretty different
from POSIX.
My experience with 9p integration in Ganesha shows some issues in POSIX corner
cases (like "delete on close" situations), I can't imagine what integrating a
CIFS support would mean.
Years ago, Tom Tapley came to bake-a-thon (this was a few months after he
joined Microsoft Research) and he talked about issues met by Microsoft to
implement a NFSv4 support, because of Microsoft semantics. He found many, but
was quite optimistic. Current state : Windows has no NFS support and code
developed at CITI (e.g. NFSv4 clients for Windos) were not pushed to Windows.
Microsoft is not POSIX and POSIX is not Microsoft. They live in two very
different worlds, and it's probably better so ;-)
Regards
Philippe
On 03/06/18 18:20, Pradeep wrote:
Hello,
Is there plans to implement multiprotocol (NFS and CIFS accessing same
export/share) in ganesha? I believe current FD cache will need changes to
support that.
Thanks,
Pradeep
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
<mailto:Nfs-ganesha-devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel