zfsをnfsでexportするときにはまったことなど

なんかいろいろはまってしまったので、メモ

zfs の領域を nfs のために export するときには、/etc/exports に記述する必要は無く、

zfs set sharenfs=on tank/pub

でいい。

とはいえ、mountd は不要なわけじゃないので、/etc/rc.conf には mountd_enable="YES" が必要。

mountd が動いてないと

[udp] 192.168.0.19:/usr/pub: RPCMNT: clnt_create: RPC: Program not registered

って言われる。

zfs set sharenfs=on tank/pub

で、領域は mount_nfs 出来て、見ることはできるんだけど、書き込みできなかったりするので、sharenfs に /etc/exports と同じ書式でオプションをつける。

sun# zfs set sharenfs="-maproot=root -alldirs -network 192.168.0.0 -mask 255.255.255.0" tank/pub

とりあえずこんな感じ。 設定すれば mountd の再起動とかは必要なく、すぐにそのオプションは反映される。

確認は

sun# zfs get sharenfs
NAME      PROPERTY  VALUE     SOURCE
tank      sharenfs  on        local
tank/pub  sharenfs  on        local

という感じ