On Tue, Nov 01, 2016 at 05:49:14PM +0100, Tomasz Torcz wrote:
On Tue, Nov 01, 2016 at 12:00:01PM -0400, J. Bruce Fields wrote:
> On Tue, Nov 01, 2016 at 08:25:26AM -0400, Stephen Gallagher wrote:
> > On 11/01/2016 08:15 AM, Jon Stanley wrote:
> > > On Tue, Nov 1, 2016 at 7:55 AM, Stephen Gallagher
<sgallagh(a)redhat.com> wrote:
> > >> I also spoke with David Lehman on IRC yesterday who noted that
storaged is
> > >> looking at adding API for dealing with NFS shares. He indicated that
if there's
> > >> a strong desire for that, we should let them know so they can
prioritize it.
> > >
> > > I honestly think that would obviate the need for any of this (other
> > > than the Cockpit UI to actually configure it), and would make for a
> > > more integrated user experience. Unfortunately, I'm not a C developer
> > > and could probably not provide direct code contributions to teach it
> > > NFS (would be more than willing to test/provide input/etc)
> >
> > For the record, the Cockpit interaction is in JavaScript and the storaged API
is
> > D-BUS (a language-agnostic protocol). So if there's anyone out there with
some
> > JavaScript skills who would like to implement this, give a holler!
>
> For what it's worth, I believe the Ganesha folks designed a D-BUS
> interface to their userland NFS server. It might be worth looking at as
> a starting point to configure knfsd as well? Frank, is this the right
> reference?:
>
>
https://github.com/nfs-ganesha/nfs-ganesha/wiki/Dbusinterface
>
> I'm not very familiar with it so don't necessarily endorse the idea, but
> maybe it's worth looking into.
Speaking of which, why bother with knfsd? I suggest we can provide
Ganesha-NFS as a core of NFS role. It has a DBUS API and it seem to
be used in entepris filers.
Re-adding Frank to the cc so he can keep me honest. (He maintains
Ganesha, I maintain knfsd).
There's currently a lot of work being done on Ganesha to export large
scale-out filesystems (Gluster, Ceph). But knfsd will usually work
better for local filesystems. In some more detail:
Ganesha advantages:
- Ganesha is in userspace, making development easier in some
ways.
- Ganesha is easier to integrate with filesystems that live
primarily in userspace (like Ganesha and Ceph); otherwise
they'd have to go through FUSE.
- probably some more features I don't know about since I pay
less attention to Ganesha (better statistics-gathering? D-BUS
interface?)
knfsd pros:
- knfsd is more mature and more widely used.
- knfsd has more complete protocol support (e.g., I believe
NFSv4.1 and 4.2 implementation are further along).
- knfsd has better integration with the kernel vfs. We've done
some work here to make things easier for Ganesha (e.g. on
system calls to support filehandle lookup from userspace), but
there's more to do.
I suspect that the first target for this initiative is single-server
exports of local filesystems, in which case we'll want to start with
knfsd.
--b.