共享的继承
当我们将 ZFS 文件系统共享为 NFS 时,其所有子项都继承 sharenfs 属性。
例如,如果我们共享 geekpool/fs1 :
# zfs set share=name=fs1,path=/fs1,prot=nfs geekpool/fs1 name=fs1,path=/fs1,prot=nfs # zfs set sharenfs=on geekpool/fs1
如果我们检查 geekpool/fs1/fs2 的 share sharenfs 属性,它是 fs1 的子数据集:
# zfs get sharenfs geekpool/fs1/fs2 NAME PROPERTY VALUE SOURCE geekpool/fs1/fs2 sharenfs on inherited from geekpool/fs1
取消共享
要使用 share-path 属性取消共享共享文件系统:
# zfs set -c share=path=/fs1 geekpool/data share 'geekpool_fs1' was removed.
要使用 share-name 属性取消共享文件系统:
# zfs set -c share=name=geekpool_fs1 geekpool/fs1 share 'geekpool_fs1' was removed.
ZFS 是 Solaris 11 的默认文件系统。
在 Solaris 11 中,Oracle 使将 ZFS 共享为 NFS 文件系统变得更加容易。
oracle 在 NFS 共享方面所做的主要变化是它删除了 /etc/dfs/dfstab 永久共享 NFS 的依赖项。
文件 /etc/dfs/dfstab 在 Solaris 11 中已过时,因此即使我们对其进行任何更改,它们也会被忽略。
Solaris 11 使用 SMF 服务在引导时自动共享 NFS 文件系统。
在 solaris 11 中,ZFS 文件系统通过 2 个步骤共享为 NFS:
第1步
通过为数据集名称属性分配一个值来命名共享:
# zfs set share=name=fs1,path=/fs1,prot=nfs geekpool/fs1
通过将 sharenfs 属性设置为“on”来发布共享
第2步
# zfs set sharenfs=on geekpool/fs1
无需编辑任何文件即可使共享永久化。
默认情况下,当我们打开 sharenfs 属性时,它会永久共享。
SMF 服务负责在引导时共享 NFS 文件系统。
显示共享
要显示有关共享 NFS 文件系统的信息,我们可以使用以下 2 个命令:
# zfs get sharenfs geekpool/fs1 NAME PROPERTY VALUE SOURCE geekpool/fs1 sharenfs on local
# zfs get share geekpool/fs1 NAME PROPERTY VALUE SOURCE geekpool/fs1 share name=geekpool_fs1,path=/fs1,prot=nfs local
传统 ZFS 共享语法(Solaris 10 方式)
仍然支持从 solaris 10 将 ZFS 文件系统共享为 NFS(使用 share 命令)的传统方式,而无需使用 /etc/dfs/dfstab。
相反,我们在 Solaris 11 中使用文件 /etc/dfs/sharetab。
# share -F nfs /fs1 # cat /etc/dfs/sharetab /fs1 - nfs rw