How to fill in the fsid for file systems?

Rick Macklem rmacklem at uoguelph.ca
Fri Nov 2 21:23:04 UTC 2018


Warner Losh wrote:
>Konstantin Belousov wrote:
[stuff snipped]
>>
>> I believe userspace nfs server implementations exist, and they have to use
>> fhopen(2).
>>
Yes, I had not thought of these, but it makes sense that they would use fhopen(2).
NFS-Ganesha is quite widely used on Linux and is being integrated with GlusterFS,
which could result in a largely scalable NFS server (which supports NFSv4.1 and pNFS).
My experience with GlusterFS performance wasn't good, but I think that was
because I was using fuse and the kernel based NFS server (lots of userspace/kernel
boundary crossings, context switches, etc).
Unfortunately NFS-Ganesha dropped their FreeBSD port when they went to
version 2 (because they started using very Linux specific thread primitives, if I
recall correctly). However, maybe someone will step up to get it ported again?
Also, Isilon has some kind of proprietary NFS/SMB server that runs in userspace,
I think. No idea if it uses fhopen(2)?

>You are correct. NFS is the reason these interfaces exist because it has
>historically (or at least initially) been implemented in userspace.

Well, I guess my grey hair is showing...
I believe the first open source (although it predated that term) NFS server implementation was the code I did that was first released in 4.3BSD Reno. (Admittedly it didn't get "open sourced" until the Networking-2 release came out.)
It was always kernel based and helped a few small startups like Netapp to get
going. (Just to be clear, I'm not suggesting that the current Ontap has any of
that code in it, but I think they used it in the early days.)

Most early NFS servers for unix-like systems were kernel based, using the
proprietary Sun Reference port.

The first NFS server for Linux was userspace, from what I recall.

rick


More information about the freebsd-fs mailing list