Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Oct 2012 19:56:48 -0400 (EDT)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Yamagi Burmeister <lists@yamagi.org>
Cc:        freebsd-fs@freebsd.org
Subject:   Re: Can not read from ZFS exported over NFSv4 but write to it
Message-ID:  <1319632362.2803236.1351123008648.JavaMail.root@erie.cs.uoguelph.ca>
In-Reply-To: <20121024213602.b727c557f0332f28a66f87cc@yamagi.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Yamagi Burmeister wrote:
> Hello
> 
> On Tue, 23 Oct 2012 17:55:15 -0400 (EDT)
> Rick Macklem <rmacklem@uoguelph.ca> wrote:
> 
> > > # ZFS
> > > /usr/home/yamagi
> > > # UFS
> > > /mnt
> > > V4: / -sec=sys 192.168.0.13
> > >
> > For ZFS, all volumes down to yamagi must be exported.
> > You don't show what your ZFS setup is, but you either
> > need to export "home" and "usr" if those are ZFS volumes.
> > (The above /etc/exports would be ok, only if /, /usr and
> > /home are all UFS volumes and /usr/home/yamagi is the root
> > of a ZFS volume.) For UFS, non-exported volumes can be
> > traversed by "mount", but for ZFS that is not the case.
> >
> > The only way I know of to fix this inconsistency is to
> > disable the traversal capability for UFS, but that would
> > be a POLA violation, so the inconsistency (caused by ZFS
> > checking exports itself instead of leaving to the VFS layer)
> > remains.
> >
> > OR
> > you can specify the root of V4 in the exported volume.
> > For example, you could:
> > # ZFS
> > /usr/home/yamagi
> > V4: /usr/home/yamagi -sec=sys 192.168.0.13
> >
> > And then the client mount would be:
> > a:/ on /mnt
> > since "/" would be at /usr/home/yamagi. (If you do this,
> > the /mnt UFS volume wouldn't be mountable via NFSv4.)
> 
> Okay, I didn't know that. What about adding a small notice to the
> nfsv4
> (4) manpage to put users into the right direction?
> 
Yep, both nfsv4(4) and exports(5) should be fixed for this. (The
current man pages were written for non-ZFS cases, because I didn't
realize ZFS would be different;-)

> A correct /etc/exports didn't solve the problem. So I took some
> tcpdumps, while analyzing them I noticed that packages send by client
> never arived at the server. After I changed the NIC (I was using a
> rather cheap age(4) onboard NIC) everything worked okay. Apparently
> NFSv4 exhibited a bug in the driver that never showed up before.

Yep, a majority of NFS issues that I've looked at (in particular ones
related to terrible performance) have been a network fabric problem
and most often the NIC/NIC driver.

One common area of difficulties is TSO, so if you wanted to, you
could try age(4) again, but with TSO disabled.

> I'm
> sorry that i've wasted your time.
> 
Not at all wasted, except that my suggestion didn't help;-)
Glad you figured it out and let us know.
Have fun with it, rick

> Thanks again,
> Yamagi
> 
> --
> Homepage: www.yamagi.org
> XMPP: yamagi@yamagi.org
> GnuPG/GPG: 0xEFBCCBCB



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1319632362.2803236.1351123008648.JavaMail.root>