ZFS filesystem: export for more than one subnet

Jeremy Chadwick koitsu at FreeBSD.org
Mon Sep 8 09:10:54 UTC 2008


On Mon, Sep 08, 2008 at 11:21:48AM +0400, Dmitry Morozovsky wrote:
> On Sun, 7 Sep 2008, Jeremy Chadwick wrote:
> JC> That said, what happens if you edit /etc/zfs/exports by hand, then run
> JC> "zfs list -o sharenfs"?  Does it show the changes you put in place?  If
> JC> so, then great -- it means there's two ways a person can edit the
> JC> NFS-exported ZFS shares (by editing the file directly, or using "zfs").
> 
> Nope, ZFS does not track /etc/zfs/export, hence "Do not edit!" comment in it.

Understood.  Then using "zfs" is the only option.

> JC> If not (e.g. mountd rejects it, or only the first network is used), then
> JC> this would indicate a problem with the exports file syntax / problem
> JC> with mountd, and not with ZFS.
> 
> It is of course FreeBSD' mountd problem (more than it does not understand CIDR 
> slashed notation):
> 
> marck at beaver:~# cat /etc/zfs/exports
> # !!! DO NOT EDIT THIS FILE MANUALLY !!!
> 
> /FreeBSD        -ro -alldirs -network 195.54.192.0 -mask 255.255.255.192
> 255.255.255.192
> marck at beaver:~# zfs get sharenfs bv/FreeBSD
> NAME        PROPERTY  VALUE                                                     SOURCE
> bv/FreeBSD  sharenfs  -ro -alldirs -network 195.54.192.0 -mask 255.255.255.192  local
> marck at beaver:~# zfs set sharenfs="ro,alldirs,network=195.54.192.0/26,192.168.39.0/24" bv/FreeBSD
> marck at beaver:~# zfs get sharenfs bv/FreeBSD
> NAME        PROPERTY  VALUE                                               SOURCE
> bv/FreeBSD  sharenfs  ro,alldirs,network=195.54.192.0/26,192.168.39.0/24  local
> 
> Sep  8 11:18:18 beaver mountd[25992]: can't get address info for host 192.168.39.0/24
> Sep  8 11:18:18 beaver mountd[25992]: bad host 192.168.39.0/24, skipping
> Sep  8 11:18:18 beaver mountd[25992]: network/host conflict
> Sep  8 11:18:18 beaver mountd[25992]: bad exports list line /FreeBSD    -ro -alldirs -network

It does support CIDR, and the output mountd gave you even shows that
it does (look closely at what "bad host" it's giving you -- that isn't
the first host in the exports list!).

You changed the syntax of what I gave you as an example.  Look closely:

# zfs set sharenfs="ro,network=aaa/xx,network=bbb/yy,network=ccc/zz" some_fs

Here's what you typed in:

# zfs set sharenfs="ro,alldirs,network=195.54.192.0/26,192.168.39.0/24" bv/FreeBSD

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-fs mailing list