如何 NFSv4 在 FreeBSD 上共享 ZFS 文件系统?

San*_*dra 9 linux freebsd zfs nfs

使用 FreeBSD 9,并像这样创建了一个 ZFS 文件系统

zfs create tank/project1
zfs set sharenfs=on tank/project1
Run Code Online (Sandbox Code Playgroud)

网上有很多关于在 FreeBSD 上设置 NFSv3 的方法,但我找不到任何一个 NFSv4 以及何时使用 ZFS 完成 NFS 共享。

例如,这个怎么说我必须通过 重新启动(NFSv3)nfsd -u -t -n 4,但我什至没有nfsd.

当我做

# echo /usr/ports/*/*nfs*
/usr/ports/net-mgmt/nfsen /usr/ports/net/nfsshell /usr/ports/net/pcnfsd /usr/ports/net/unfs3 /usr/ports/sysutils/fusefs-chironfs /usr/ports/sysutils/fusefs-funionfs /usr/ports/sysutils/fusefs-unionfs
#
Run Code Online (Sandbox Code Playgroud)

我没有看到任何 NFSv4 服务器,我可以使用pkg_add.

如何安装和设置 NFSv4,以便我可以从 Linux 主机等挂载共享?

Val*_*ami 9

NFSv4 内置于 FreeBSD(8.x 中的实验支持,9.x 和 lter 中的生产质量)。
nfsd 应该位于/etc/rc.d/nfsd

您应该首先在 rc.conf 文件中启用它或运行 /etc/rc.d/nfsd onestart

1) 启用 nfs
echo nfs_server_enable="YES" >> /etc/rc.conf

对于 NFSv4,您还需要以下内容:

echo nfsv4_server_enable="YES" >> /etc/rc.conf (启用 NFSv4)
echo nfsuserd_enable="YES" >> /etc/rc.conf (v4 所需的 NFS 用户/组信息)

2)创建目录并导出

# mkdir -p /mnt/{dir1,dir2}
# vi /etc/exports 
Run Code Online (Sandbox Code Playgroud)

(将以下行添加到/etc/exports文件中)

/mnt/dir1  -alldirs  192.168.1.x/24
/mnt/dir2  -alldirs  192.168.1.x/24
Run Code Online (Sandbox Code Playgroud)

3)使用/etc/rc.d/nfsd restart 或 重新启动nfsdservice nfsd restart

有关更多信息,请参阅FreeBSD 手册中处理 NFS 的部分

  • 这与 BSD FFS / UFS 完美配合。但它并没有回答 ZFS 的问题,除非我错了。 (2认同)