JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:ZFS 文件系统     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  Oracle Solaris ZFS 文件系统(介绍)

2.  Oracle Solaris ZFS 入门

3.  Oracle Solaris ZFS 与传统文件系统之间的差别

4.  管理 Oracle Solaris ZFS 存储池

5.  管理 ZFS 根池组件

6.  管理 Oracle Solaris ZFS 文件系统

管理 ZFS 文件系统(概述)

创建、销毁和重命名 ZFS 文件系统

创建 ZFS 文件系统

销毁 ZFS 文件系统

重命名 ZFS 文件系统

ZFS 属性介绍

ZFS 只读本机属性

used 属性

可设置的 ZFS 本机属性

canmount 属性

casesensitivity 属性

copies 属性

dedup 属性

encryption 属性

recordsize 属性

sharesmb 属性

volsize 属性

ZFS 用户属性

查询 ZFS 文件系统信息

列出基本 ZFS 信息

创建复杂的 ZFS 查询

管理 ZFS 属性

设置 ZFS 属性

继承 ZFS 属性

查询 ZFS 属性

查询用于编写脚本的 ZFS 属性

挂载 ZFS 文件系统

管理 ZFS 挂载点

自动挂载点

传统挂载点

挂载 ZFS 文件系统

使用临时挂载属性

取消挂载 ZFS 文件系统

共享和取消共享 ZFS 文件系统

传统的 ZFS 共享语法

新的 ZFS 共享语法

显示 ZFS 共享信息

ZFS 共享继承

更改 ZFS 共享

删除 ZFS 共享

非全局区域中的 ZFS 文件共享

新 ZFS 共享和传统共享命令摘要

解决 ZFS 共享问题

ZFS 共享迁移/转换问题

设置 ZFS 配额和预留空间

设置 ZFS 文件系统的配额

在 ZFS 文件系统中设置用户和组配额

设置 ZFS 文件系统的预留空间

加密 ZFS 文件系统

更改已加密的 ZFS 文件系统的密钥

委托 ZFS 密钥操作权限

挂载已加密的 ZFS 文件系统

ZFS 压缩、重复数据删除和加密属性之间的交互

加密 ZFS 文件系统的示例

迁移 ZFS 文件系统

如何将文件系统迁移到 ZFS 文件系统

ZFS 文件系统迁移故障排除

升级 ZFS 文件系统

7.  使用 Oracle Solaris ZFS 快照和克隆

8.  使用 ACL 和属性保护 Oracle Solaris ZFS 文件

9.  Oracle Solaris ZFS 委托管理

10.  Oracle Solaris ZFS 高级主题

11.  Oracle Solaris ZFS 故障排除和池恢复

12.  归档快照和根池恢复

13.  建议的 Oracle Solaris ZFS 做法

A.  Oracle Solaris ZFS 版本说明

索引

共享和取消共享 ZFS 文件系统

在此 Solaris 发行版中,您可以按以下方式创建 ZFS 文件系统共享并发布该共享:

使用单独的命令创建共享将提供以下功能:

已定义的共享与 sharenfssharesmb 属性之间的交互如下所示:

本节详细介绍了新共享语法和传统共享语法之间的差异。

新共享的主要差异如下:

传统的 ZFS 共享语法

传统的共享语法仍受支持。

  1. 可以使用 share 命令共享文件系统。

    例如,要共享某个 ZFS 文件系统:

    # share -F nfs /tank/zfsfs
    # cat /etc/dfs/sharetab
    /tank/zfsfs        -       nfs     rw

    上面的语法与共享 UFS 文件系统的语法完全一致:

    # share -F nfs /ufsfs
    # cat /etc/dfs/sharetab
    /ufsfs  -       nfs     rw      
    /tank/zfsfs     -       nfs     rw      
  2. 在设置 sharenfs 属性之前,无法使用 zfs shar 命令初始共享某个文件系统。

    # zfs share rpool/data
    cannot share 'rpool/data': legacy share
    use share(1M) to share this filesystem, or
    set the 'share' property and set [sharenfs|sharesmb] property on
    # zfs set sharenfs=on rpool/data
    # cat /etc/dfs/sharetab
    /rpool/data     -       nfs     rw     

所有方法都会立即发布文件系统共享。

新的 ZFS 共享语法

新的 zfs set share 命令用于通过 NFS 或 SMB 协议共享 ZFS 文件系统。除非在文件系统上也设置了 sharenfs 属性,否则不会发布共享。

使用 zfs set share 命令可创建 ZFS 文件系统的 NFS 或 SMB 共享,还可以设置 sharenfs 属性。

# zfs create rpool/fs1
# zfs set share=name=fs1,path=/rpool/fs1,prot=nfs rpool/fs1
name=fs1,path=/rpool/fs1,prot=nfs

sharenfssharesmb 属性设置为 on 之前,不会发布共享。例如:

# zfs set sharenfs=on rpool/fs1
# cat /etc/dfs/sharetab
/rpool/fs1      fs1     nfs     sec=sys,rw

可以按以下方式创建公共 NFS 共享:

# zfs set share=name=pp,path=/pub,prot=nfs,sec=sys,rw=*,public rpool/public
name=pp,path=/pub,prot=nfs,public=true,sec=sys,rw=*
# zfs set sharenfs=on rpool/public
# cat /etc/dfs/sharetab
/pub    pp      nfs     public,sec=sys,rw 

通过使用类似以下内容的语法,还可以创建新创建的 ZFS 文件系统的共享:

# zfs create -o mountpoint=/ds -o sharenfs=on rpool/ds

在创建 ZFS 文件系统的 NFS 共享时,必须提供以下共享组件:

share=name

标识您的共享的名称。最大共享名称为 80 个字符。

path=pathname

标识在要共享的文件系统或目录中必须存在的 NFS 共享的路径。

prot=nfssmb

将协议标识为 NFS 或 SMB。

pool/filesystem

标识要共享的 ZFS 文件系统。

其他共享选项如下:

description=string

提供可以帮助识别共享的文本。说明中的空格或逗号必须括在引号 (" ") 中。

rw= or ro=

标识共享将以读/写还是只读形式提供给所有客户机。您也可以指定包含主机名、IP 地址或网络组的逗号分隔列表。

root=

标识某个指定主机的超级用户或具有超级用户权限的主机的列表。缺省情况下,没有主机拥有根访问权限。

sec=

标识 NFS 服务器安全模式,例如 sysdhkrb5,等等。有关支持的安全模式信息,请参见 nfssec(5)

以下 NFS 属性必须在 prot=nfs 之后但在任何 sec= 属性之前指定。

以下可选的 SMB 属性必须在 prot=smb 属性之后指定:

有关 NFS 和 SMB 共享属性的详细说明,请参见 share_nfs(1M)share_smb(1M)

显示 ZFS 共享信息

与以前的发行版一样,可通过使用 zfs get sharenfs 属性或使用 zfs get all 命令语法来显示 sharenfs 属性的值。

# zfs get sharenfs rpool/fs1
NAME       PROPERTY  VALUE     SOURCE
rpool/fs1  sharenfs  on        local

可通过使用 zfs get share 命令获取新共享信息。

# zfs get share rpool/fs1
NAME       PROPERTY  VALUE  SOURCE
rpool/fs1  share     name=rpool_fs1,path=/rpool/fs1,prot=nfs  local

zfs get all 命令语法不能获取新共享信息。

如果要创建新创建的 ZFS 文件系统的共享,请使用 zfs get share 命令标识 share-name 名称或 share-path 名称。例如:

# zfs create -o mountpoint=/data -o sharenfs=on rpool/data
# zfs get share rpool/data
NAME                                     PROPERTY  VALUE  SOURCE
rpool/data                               share     name=data,path=/data,prot=nfs  local

ZFS 共享继承

对于 zfs share 属性以及 sharenfssharesmb 属性的继承,其作用方式如下:

更改 ZFS 共享

在更改共享属性值时,必须指定名称和协议属性。

例如,可按如下方式创建一个 NFS 共享:

# zfs create -o mountpoint=/ds -o sharenfs=on rpool/ds
# zfs set share=name=ds,path=/ds,prot=nfs rpool/ds
name=ds,path=/ds,prot=nfs

然后,添加 SMB 协议:

# zfs set share=name=ds,prot=nfs,prot=smb rpool/ds
name=ds,path=/ds,prot=nfs,prot=smb

删除 SMB 协议:

# zfs set -c share=name=ds,prot=smb rpool/ds
name=ds,path=/ds,prot=nfs

删除 ZFS 共享

可以使用 zfs set -c 命令删除现有的共享。例如,标识共享名称。

# zfs get share
NAME         PROPERTY  VALUE  SOURCE
rpool/ds     share     name=ds,path=/ds,prot=nfs  local

然后,通过标识 share-name 名称删除共享。例如:

# zfs set -c share=name=ds rpool/ds
share 'ds' was removed.

如果某个共享是在创建文件系统时通过创建缺省共享来建立的,则可以通过 share-name 名称或 share-path 名称删除该共享。例如,为此共享提供了缺省的 share-name 名称 data 和缺省的 share-path 名称 /data

# zfs create -o mountpoint=/data -o sharenfs=on rpool/data
# zfs get share rpool/data
NAME         PROPERTY  VALUE  SOURCE
rpool/data  share     name=data,path=/data,prot=nfs  local

通过标识 share-name 名称删除共享。例如:

# zfs set -c share=name=data rpool/data
share 'data' was removed.

通过标识 share-path 名称删除共享。例如:

# zfs set -c share=path=/data rpool/data
share 'data' was removed.

非全局区域中的 ZFS 文件共享

在以前的 Solaris 发行版中,无法在 Oracle Solaris 非全局区域中创建和发布 NFS 或 SMB 共享。在此 Solaris 发行版中,通过将 zfs set share 命令和传统的 share 命令用于非全局区域,可以创建和发布 NFS 共享。

例如,/export/home/data/export/home/data1 文件系统在 zfszone 中可用。

zfszone# share -F nfs /export/home/data
zfszone#  cat /etc/dfs/sharetab
/export/home/data     export_home_data      nfs     sec=sys,rw
zfszone# zfs set share=name=data1,path=/export/home/data1,prot=nfs 
tank/zones/export/home/data1
zfszone# zfs set sharenfs=on tank/zones/export/home/data1
zfszone# cat /etc/dfs/sharetab
/export/home/data1      data1   nfs     sec=sys,rw 

新 ZFS 共享和传统共享命令摘要

此表介绍了新的 ZFS 文件系统共享语法和传统的共享语法。

表 6-5 ZFS 共享和传统共享命令摘要

ZFS 共享任务
传统共享语法
新共享语法
通过 NFS 共享 ZFS 文件系统。
sharenfs 属性设置为 on。
# zfs set sharenfs=on tank/fs1
  1. 创建 NFS 共享。
    # zfs set share=name=fs1,path=/fs1,
    prot=nfs tank/fs1
  2. sharenfs 属性设置为 on。

    # zfs set sharenfs=on tank/fs1
通过 SMB 共享 ZFS 文件系统。
sharesmb 属性设置为 on。
# zfs set sharesmb=on tank/fs2
  1. 创建 SMB 共享。
    # zfs set share=name=fs2,path=/fs2,
    prot=smb tank/fs2
  2. sharesmb 属性设置为 on。

    # zfs set sharesmb=on tank/fs2
取消共享 ZFS 文件系统。
sharenfs 属性设置为 off。
# zfs set sharenfs=off tank/fs1
sharenfs 属性设置为 off。
# zfs set sharenfs=off tank/fs1
sharesmb 属性设置为 off。
# zfs set sharesmb=off tank/fs2
sharesmb 属性设置为 off。
# zfs set sharesmb=off tank/fs2
向现有共享添加共享选项。
重置 sharenfs 属性。
# zfs set sharenfs=nosuid tank/fs1
以其他属性重置共享。
# zfs set share=name=fs1,prot=nfs,
nosuid rpool/fs1
name=fs1,path=/rpool/fs1,prot=nfs,
nosuid=true
创建永久性 NFS 共享。
sharenfs 属性设置为 on。
# zfs set sharenfs=on tank/fs1

对于传统的 share 命令语法,必须编辑 /etc/dfs/dfstab 文件才能创建永久性共享。

sharenfs 属性设置为 on。
# zfs set sharenfs=on tank/fs1

此 Solaris 发行版中不再提供 /etc/dfs/dfstab 文件。

创建永久性 SMB 共享。
sharesmb 属性设置为 on。
# zfs set sharesmb=on tank/fs2

或者,通过 sharemgr 创建 SMB 共享。

# sharemgr create -P smb fssmb
# sharemgr add-share -r fs-smb -s /tank/fs2 fssmb
sharesmb 属性设置为 on。
# zfs set sharesmb=on tank/fs2

此 Solaris 发行版中不再提供 sharemgr 功能。

解决 ZFS 共享问题

ZFS 共享迁移/转换问题

在本节中识别任何转换问题。