https://onitroad.com 更多教程

共享的继承

当我们将 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.
如何在 Solaris 11 中将 ZFS 共享为 NFS

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
日期:2020-09-17 00:15:14 来源:oir作者:oir