Re: [PATCH 0/3] Handling NFSv3 I/O errors in knfsd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2019-08-28 at 15:12 +0000, Rick Macklem wrote:
> J. Bruce Fields wrote:
> > On Wed, Aug 28, 2019 at 10:16:09AM -0400, Jeff Layton wrote:
> > > For the most part, these sorts of errors tend to be rare. If it
> > > turns
> > > out to be a problem we could consider moving the verifier into
> > > svc_export or something?
> > 
> > As Trond says, this isn't really a server implementation issue,
> > it's a
> > protocol issue.  If a client detects when to resend writes by
> > storing a
> > single verifier per server, then returning different verifiers from
> > writes to different exports will have it resending every time it
> > writes
> > to one export then another.
> 
> Well, here's what RFC-1813 says about the write verifier:
>          This cookie must be consistent during a single instance
>          of the NFS version 3 protocol service and must be
>          unique between instances of the NFS version 3 protocol
>          server, where uncommitted data may be lost.
> You could debate what "service" means in the above, but I'd say it
> isn't "per file".
> 
> However, since there is no way for an NFSv3 client to know what a
> "server" is,
> the FreeBSD client (and maybe the other *BSD, although I haven't been
> involved
> in them for a long time) stores the write verifier "per mount".
> --> So, for the FreeBSD client, it is at the granularity of what the
> NFSv3 client sees as
>      a single file system. (Typically a single file system on the
> server unless the knfsd
>      plays the game of coalescing multiple file systems by
> uniquifying the I-node#, etc.)
> 
> It is conceivable that some other NFSv3 client might assume
> "same server IP address --> same server" and store it "per server
> IP", but I have
> no idea if any such client exists.
> 

The patchsets we've been discussing should all be compatible with
FreeBSD, as they implement a per-server boot verifier (as in different
containers representing different knfsd servers on different networks
are allowed to have different boot verifiers, but each server applies
their boot verifier globally to all exported filesystems).

We could make these boot verifiers be per filesystem to reduce the
frequency of these 'server reboots' but the expectation is that
filesystem errors on COMMIT are rare.

-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@xxxxxxxxxxxxxxx






[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux