pNFS server completed

Rick Macklem rmacklem at uoguelph.ca
Mon Apr 23 21:00:55 UTC 2018


Karli Sjöberg wrote:
>On Sun, 2018-04-22 at 21:18 +0000, Rick Macklem wrote:
>> Hi,
>>
>> I have now updated the projects/pnfs-planb-server subtree of svn with
>> what
>> I believe is a complete pNFS server. It now handles mirrored Data
>> Servers (DSs)
>> and recovery of a failed mirrored DS while the service is
>> operational.
>> It handle non-pNFS clients (such as NFSv3 mounts) via having the
>> MetaData
>> Server act as a proxy for Read/Write operations.
>> For pNFS capable NFSv4.1 clients, the Read/Write operations are done
>> directly
>> on the appropriate DS(s), avoiding the MetaData Server (which act
>> like a normal
>> NFS server except for pNFS capable clients).
>>
>> If you are interested in more information or doing testing, see:
>> http://people.freebsd.org/~rmacklem/pnfs-planb-setup.txt
>>
>> I hope that this should be ready for head/current with some
>> additional testing.
>> I will post here asking the "collective" about this when I think it
>> is ready.
>>
>> If there are any volunteers on the doc side  who would like to turn
>> the above
>> text file into a useful document, that would be greatly appreciated.
>>
>> Good luck with it, if you test it, rick
>
>Hi Rick!
>
>I think this sounds amazing to have a distributed file server natively
>in FreeBSD, awesome!
>
>One question that comes to mind is about the MDS: wouldn´t that be a
>SPOF? 
Yes, the MDS is just like a regular NFS server on FreeBSD. It is a single point
of failure.

>Maybe that has already been discussed and explained and I´ve just
>missed it, but would be nice to know. And if it is a SPOF, are there
>any plans of also mirroring MDS's as well? Perhaps a DS can be MDS to,
>something like that?
No plans w.r.t. mirroring the MDS. The pNFS client using Flexible File Layout
knows to write to both mirrors (and the MDS can do so acting as a proxy
for a client).

However, NFS clients don't know how to do NFS operations on multiple NFS servers. As such, any mirroring would have to be implemented "behind the
curtain" and I'll admit I don't know how to do that.

I did try using a clustered file system (GlusterFS) as a backend when I first
implemented a pNFS server two years ago, but that was a failure, due to
terrible performance. (Using a clustered file system as a storage backend would
make multiple NFS servers/MDSs more feasible, but it didn't work.)

rick


More information about the freebsd-fs mailing list