From: Jeff Garzik <jeff@garzik.org>
To: nfsv4@linux-nfs.org, NFS list <linux-nfs@vger.kernel.org>
Subject: A new NFSv4 server...
Date: Thu, 03 Jan 2008 07:16:49 -0500 [thread overview]
Message-ID: <477CD231.30603@garzik.org> (raw)
In case some developers are interested... I'm poking at a from-scratch
userland NFSv4 server, as a side project.
In my personal opinion, version 4 of NFS is a quantum-leap improvement
over previous versions. While I used NFS v3 extensively, I always felt
it was a crappy protocol, and unworthy of serious development effort.
That changed with v4.
I chose to use NFSv4 as the basis for experiments (hopefully yielding
production software) that I've long wanted to do in reliable
filesystems, distributed filesystems, and other fun areas.
In the first step down this long path, I've created an NFSv4 userland
server from scratch. Currently it merely serves data straight from RAM,
but the long term goal is to permit modular storage backends. Thus you
could implement a simple RAM backend, an sqlite-based backend or a
complex distributed storage backend.
As this is a first-mention developer-only announcement, I didn't bother
to create source tarballs. Here is the git repo:
git://git.kernel.org/pub/scm/daemon/nfs/nfs4-ram.git
This is the home page, but it's mainly a stub pointing to the git repo:
http://linux.yyz.us/projects/nfsv4.html
The server will
* serve data from RAM, with NFSv4 persistent filehandles and FILE_SYNC4
* destroy all data, when the process exits
* pass 97% of the useful pynfs tests (cvs latest)
* pass fsx-linux stress testing, with Linux NFSv4 client (2.6.recent)
* pass kernel build stress testing, with Linux NFSv4 client (2.6.recent)
It will not, at the present time,
* store any data or metadata in stable storage
* do RPCSEC_GSS (thus, not yet RFC-compliant)
* do delegations (thus, with reduced caching and increased
revalidations, can be slower than disk-based storage)
At this point, I'm quite interested to hear feedback on how the server
works with other NFSv4 clients. I'm interested in making sure the
server is portable to FreeBSD and other OS's, even though it was
developed and tested only on Linux. I also intend to use some
Linux-specific syscalls, most notably sync_file_range(2) and
sendfile/tee/splice/vmsplice, so that will have to be glossed over by
portability code.
Finally, this is a spare time project, something I've mostly been poking
at while having idle time on a not-Internet-connected laptop.
Technically its sponsored by Red Hat, since RH pays my salary for all my
open source work, but this is largely a personal project done for
personal reasons. I just hope others find it interesting or useful, as
it progresses.
Jeff
next reply other threads:[~2008-01-03 12:16 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-03 12:16 Jeff Garzik [this message]
2008-01-03 16:32 ` A new NFSv4 server J. Bruce Fields
2008-01-04 5:32 ` Jeff Garzik
2008-01-04 6:24 ` Greg Banks
[not found] ` <477DD11B.40909-cP1dWloDopni96+mSzHFpQC/G2K4zDHf@public.gmane.org>
2008-01-04 7:04 ` Jeff Garzik
2008-01-04 9:07 ` Benny Halevy
2008-01-04 15:49 ` Jeff Garzik
2008-01-04 19:51 ` Benny Halevy
2008-01-05 1:46 ` Greg Banks
2008-01-05 7:56 ` Benny Halevy
2008-01-04 17:47 ` J. Bruce Fields
2008-01-04 19:55 ` Benny Halevy
2008-01-04 9:15 ` Peter Åstrand
2008-01-04 10:05 ` Neil Brown
[not found] ` <Pine.LNX.4.64.0801040954070.5004-K9BqGu7AvB3wj5YHdwD3Ga2PxDmRETKR@public.gmane.org>
2008-01-04 13:50 ` Frank van Maarseveen
2008-01-04 16:41 ` Jeff Garzik
2008-01-04 20:03 ` Peter Åstrand
[not found] ` <Pine.LNX.4.64.0801042030380.18738-K9BqGu7AvB3wj5YHdwD3Ga2PxDmRETKR@public.gmane.org>
2008-01-06 23:54 ` James Morris
2008-01-04 20:31 ` Muntz, Daniel
2008-01-04 9:15 ` Peter Åstrand
2008-01-04 16:14 ` Jeff Garzik
2008-01-04 19:58 ` Peter Åstrand
-- strict thread matches above, loose matches on Subject: below --
2008-01-04 15:28 Rick Macklem
[not found] ` <200801041528.KAA18776-bYVALtacgsT800Iu1Vt84J3p9npsUQCG@public.gmane.org>
2008-01-04 17:21 ` J. Bruce Fields
2008-01-04 18:03 ` Tom Haynes
[not found] ` <477E750A.2030905-8AdZ+HgO7noAvxtiuMwx3w@public.gmane.org>
2008-01-04 18:21 ` J. Bruce Fields
2008-01-04 19:50 ` Jeff Garzik
2008-01-04 19:57 ` Peter Åstrand
[not found] ` <Pine.LNX.4.64.0801042055490.18738-K9BqGu7AvB3wj5YHdwD3Ga2PxDmRETKR@public.gmane.org>
2008-01-05 0:43 ` Jeff Garzik
2008-01-04 15:48 Rick Macklem
[not found] ` <200801041548.KAA18953-bYVALtacgsT800Iu1Vt84J3p9npsUQCG@public.gmane.org>
2008-01-04 17:15 ` J. Bruce Fields
2008-01-05 2:32 ` Greg Banks
2008-01-04 17:11 Rick Macklem
[not found] ` <200801041711.MAA19577-bYVALtacgsT800Iu1Vt84J3p9npsUQCG@public.gmane.org>
2008-01-05 0:51 ` Jeff Garzik
2008-01-04 17:28 Rick Macklem
[not found] ` <200801041728.MAA19743-bYVALtacgsT800Iu1Vt84J3p9npsUQCG@public.gmane.org>
2008-01-04 17:42 ` J. Bruce Fields
2008-01-04 17:45 ` Trond Myklebust
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=477CD231.30603@garzik.org \
--to=jeff@garzik.org \
--cc=linux-nfs@vger.kernel.org \
--cc=nfsv4@linux-nfs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox