Date: Fri, 24 Nov 2023 15:35:41 -0800 From: Rick Macklem <rick.macklem@gmail.com> To: Mike Karels <mike@karels.net> Cc: Konstantin Belousov <kostikbel@gmail.com>, Alexander Leidinger <Alexander@leidinger.net>, Rick Macklem <rmacklem@freebsd.org>, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: f5f277728ade - main - nfsd: Fix NFS access to .zfs/snapshot snapshots Message-ID: <CAM5tNy5%2BKgsHo4Q7Eth1pU5M1SJzWcnRK%2BRGvHipyf_rHHQJGA@mail.gmail.com> In-Reply-To: <CAM5tNy47MLeWdPEhV9LgVH84KB7Gmwpqmzxb62OET52Pn7pWJA@mail.gmail.com> References: <202311231525.3ANFPBo6039293@gitrepo.freebsd.org> <987d4593d50b9cbffb9b6443d3825499@Leidinger.net> <ZWCe8k_lxWSpDA1L@kib.kiev.ua> <F4EB20B7-5AB8-4448-84BB-462BC7C37398@karels.net> <CAM5tNy5zLnDwxWuJ_u87k-c6WPwwp=MNjvDVto0=A9mwpyWc=g@mail.gmail.com> <CAM5tNy47MLeWdPEhV9LgVH84KB7Gmwpqmzxb62OET52Pn7pWJA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Nov 24, 2023 at 8:16=E2=80=AFAM Rick Macklem <rick.macklem@gmail.co= m> wrote: > > On Fri, Nov 24, 2023 at 7:58=E2=80=AFAM Rick Macklem <rick.macklem@gmail.= com> wrote: > > > > On Fri, Nov 24, 2023 at 5:18=E2=80=AFAM Mike Karels <mike@karels.net> w= rote: > > > > > > CAUTION: This email originated from outside of the University of Guel= ph. Do not click links or open attachments unless you recognize the sender = and know the content is safe. If in doubt, forward suspicious emails to ITh= elp@uoguelph.ca. > > > > > > > > > On 24 Nov 2023, at 7:02, Konstantin Belousov wrote: > > > > > > > On Fri, Nov 24, 2023 at 08:50:22AM +0100, Alexander Leidinger wrote= : > > > >> Am 2023-11-23 16:25, schrieb Rick Macklem: > > > >>> The branch main has been updated by rmacklem: > > > >>> > > > >>> URL: https://cgit.FreeBSD.org/src/commit/?id=3Df5f277728adec4c5b3= e840a1fb16bd16f8cc956d > > > >>> > > > >>> commit f5f277728adec4c5b3e840a1fb16bd16f8cc956d > > > >>> Author: Rick Macklem <rmacklem@FreeBSD.org> > > > >>> AuthorDate: 2023-11-23 15:23:33 +0000 > > > >>> Commit: Rick Macklem <rmacklem@FreeBSD.org> > > > >>> CommitDate: 2023-11-23 15:23:33 +0000 > > > >>> > > > >>> nfsd: Fix NFS access to .zfs/snapshot snapshots > > > >>> > > > >>> When a process attempts to access a snapshot under > > > >>> /<dataset>/.zfs/snapshot, the snapshot is automounted. > > > >>> However, without this patch, the automount does not > > > >>> set mnt_exjail, which results in the snapshot not being > > > >>> accessible over NFS. > > > >>> > > > >>> This patch defines a new function called vfs_exjail_clone() > > > >>> which sets mnt_exjail from another mount point and > > > >>> then uses that function to set mnt_exjail in the snapshot > > > >>> automount. A separate patch that is currently a pull request > > > >>> for OpenZFS, calls this function to fix the problem. > > > >> > > > >> May the same/similar fix like for ZFS be needed / useful for nullf= s mounted > > > >> stuff? > > > >> > > > >> I have a ZFS dataset which is mounted via nullfs into a jail. This > > > >> nullfs-mount is then exported via samba. In samba I have the shado= w-copy > > > >> stuff enabled, but it doesn't work, as the jails can't access the = snapshot. > > > > > > > > Jails cannot access snapshots because, as I understand, snapshots > > > > are mounts. Nullfs does not provide an option to recursively bypass > > > > into mounts. The patch you responded to does not automatically moun= ts > > > > snapshots on clients, it only allows them to mount if wanted. > > > > > > It works for me, with main and this change, or 13.2 without a patch. > > > I don't know the mechanics, but it doesn't use nullfs, and the snapsh= ot > > > does not show up as a separate filesystem with the mount command. > > Yes. ZFS essentially does an automount of the snapshots under .zfs/snap= shot. > > (As I understand it, there are non-default ZFS options that allow these= to be > > mounted manually instead.) > > I can now see that these automounts are 'real mounts" in the > > mountlist. The only reason > > they are not visible is that they have MNT_IGNORE set on them. > Oh and I forgot to mention that this automount is for some weird in > memory file system that does just enough so you can see the snapshots. > Once you "cd <some-snapshot>", the vnodes are associated with the ZFS > mount (dataset) and not this weird snapshot fs. (That is why it doesn't n= eed to > be exported, but did need mnt_exjail to be set properly.) > > I might be able to test a nullfs over ZFS case later to-day and will > post if I do so. Yes, it is broken in a similar way. With a nullfs mount on top of a ZFS mou= nt that is exported to an NFS client, you can access the snapshots under .zfs/snapshot if the mnt_exjail checks are commented out. However, if the checks are done, they fail. So, yes, something similar to what ZFS will do is needed for nullfs. Now I have to figure out how/when it can be done. I will play with it to-da= y, but it probably won't get fixed until late Dec. Again, sorry for the breakage, rick > > rick > > > > > Now, as for what happens when nullfs is on top of ZFS, I do not know. > > What Kostik says about nullfs recursing into mounts suggests it will no= t work. > > I will look at it, but since I am headed to Florida for a few weeks, it= may > > not happen until the end of the year. > > > > If someone can test this case and determine if there is no NFS client a= ccess > > for snapshots under .zfs after applying the patch that is an > > attachment in PR#275200 > > when nullfs is over the ZFS file system, that would be appreciated. > > > > rick > > > > > > > > Mike > > > > > > > You might try to set up something with autofs, no idea if it could = be made > > > > to work usefully. > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM5tNy5%2BKgsHo4Q7Eth1pU5M1SJzWcnRK%2BRGvHipyf_rHHQJGA>