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

文档信息

前言

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

2.  Oracle Solaris ZFS 入门

3.  管理 Oracle Solaris ZFS 存储池

4.  管理 ZFS 根池组件

5.  管理 Oracle Solaris ZFS 文件系统

管理 ZFS 文件系统(概述)

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

创建 ZFS 文件系统

销毁 ZFS 文件系统

重命名 ZFS 文件系统

ZFS 属性介绍

ZFS 只读本机属性

used 属性

可设置的 ZFS 本机属性

canmount 属性

casesensitivity 属性

copies 属性

dedup 属性

encryption 属性

recordsize 属性

share.smb 属性

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 压缩、重复数据删除和加密属性之间的交互

加密 ZFS 文件系统的示例

迁移 ZFS 文件系统

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

ZFS 文件系统迁移故障排除

升级 ZFS 文件系统

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

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

8.  Oracle Solaris ZFS 委托管理

9.  Oracle Solaris ZFS 高级主题

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

11.  归档快照和根池恢复

12.  建议的 Oracle Solaris ZFS 做法

A.  Oracle Solaris ZFS 版本说明

索引

管理 ZFS 属性

数据集属性通过 zfs 命令的 setinheritget 子命令来管理。

设置 ZFS 属性

可以使用 zfs set 命令修改任何可设置的数据集属性。或者,也可以使用 zfs create 命令在创建数据集时设置属性。有关可设置的数据集属性的列表,请参见可设置的 ZFS 本机属性

zfs set 命令采用 property=value 格式的属性/值序列,然后是数据集名称。zfs set 的每次调用只能设置或修改一个属性。

以下示例将 tank/homeatime 属性设置为 off

# zfs set atime=off tank/home

此外,任何文件系统属性均可在创建文件系统时设置。例如:

# zfs create -o atime=off tank/home

可以使用以下易于理解的后缀(按大小递增顺序)指定数字属性值:BKMGTPEZ。其中任一后缀都可后跟可选的 b,用于表示字节,但 B 后缀除外,因为它已表示了字节。以下四个 zfs set 调用是等效的数字表达式,在 users/home/mark 文件系统中将 quota 属性设置为值 20 GB:

# zfs set quota=20G users/home/mark
# zfs set quota=20g users/home/mark
# zfs set quota=20GB users/home/mark
# zfs set quota=20gb users/home/mark

如果尝试在 100% 全满的文件系统上设置属性,则会显示类似于以下内容的消息:

# zfs set quota=20gb users/home/mark
cannot set property for '/users/home/mark': out of space

非数字属性的值区分大小写,并且必须为小写字母,但 mountpoint 例外。该属性的值既可以包含大写字母,也可以包含小写字母。

有关 zfs set 命令的更多信息,请参见 zfs(1M)

继承 ZFS 属性

除非已对后代文件系统显式设置了配额或预留空间,否则除了配额和预留空间外,所有可设置的属性都从父文件系统继承各自的值。如果没有祖先为继承的属性设置显式值,则使用该属性的缺省值。可以使用 zfs inherit 命令清除某个属性值,从而促使从父文件系统继承该值。

以下示例使用 zfs set 命令为 tank/home/jeff 文件系统启用压缩。然后,使用 zfs inherit 清除 compression 属性,从而使该属性继承缺省值 off。由于 hometank 都未本地设置 compression 属性,因此会使用缺省值。如果两者都启用了压缩,则使用最直接的祖先中设置的值(在本示例中为 home)。

# zfs set compression=on tank/home/jeff
# zfs get -r compression tank/home
NAME                  PROPERTY     VALUE     SOURCE
tank/home             compression  off       default
tank/home/eric        compression  off       default
tank/home/eric@today  compression  -         -
tank/home/jeff        compression  on        local
# zfs inherit compression tank/home/jeff
# zfs get -r compression tank/home
NAME                  PROPERTY     VALUE     SOURCE
tank/home             compression  off       default
tank/home/eric        compression  off       default
tank/home/eric@today  compression  -         -
tank/home/jeff        compression  off       default

如果指定了 -r 选项,则会以递归方式应用 inherit 子命令。在以下示例中,该命令将使 tank/home 以及它可能具有的所有后代都继承 compression 属性的值:

# zfs inherit -r compression tank/home

注 - 请注意,使用 -r 选项会清除所有后代文件系统的当前属性设置。


有关 zfs inherit 命令的更多信息,请参见 zfs(1M)

查询 ZFS 属性

查询属性值的最简单方法是使用 zfs list 命令。有关更多信息,请参见列出基本 ZFS 信息。但是,对于复杂查询和脚本编写,请使用 zfs get 命令以定制格式提供更详细的信息。

可以使用 zfs get 命令检索任何数据集属性。以下示例说明如何在数据集中检索单个属性值:

# zfs get checksum tank/ws
NAME             PROPERTY       VALUE                      SOURCE
tank/ws          checksum       on                         default

第四栏 SOURCE 表示此属性值的来源。下表定义可能的源值。

表 5-3 可能的 SOURCE 值 (zfs get 命令)

源值
说明
default
从来不为数据集或其任何祖先显式设置此属性值。使用的是该属性的缺省值。
inherited from dataset-name
该属性值继承自 dataset-name 所指定的父数据集。
local
使用 zfs set 可为此数据集显式设置该属性值。
temporary
该属性值是使用 zfs mount -o 选项设置的,并且仅在挂载期间有效。有关临时挂载点属性的更多信息,请参见使用临时挂载属性
-(无)
此属性为只读。其值由 ZFS 生成。

可以使用特殊关键字 all 检索所有数据集属性值。以下示例使用 all 关键字:

# zfs get all tank/home
NAME       PROPERTY              VALUE                  SOURCE
tank/home  aclinherit            restricted             default
tank/home  aclmode               discard                default
tank/home  atime                 on                     default
tank/home  available             66.9G                  -
tank/home  canmount              on                     default
tank/home  casesensitivity       mixed                  -
tank/home  checksum              on                     default
tank/home  compression           off                    default
tank/home  compressratio         1.00x                  -
tank/home  copies                1                      default
tank/home  creation              Fri May 11 10:58 2012  -
tank/home  dedup                 off                    default
tank/home  devices               on                     default
tank/home  encryption            off                    -
tank/home  exec                  on                     default
tank/home  keysource             none                   default
tank/home  keystatus             none                   -
tank/home  logbias               latency                default
tank/home  mlslabel              none                   -
tank/home  mounted               yes                    -
tank/home  mountpoint            /tank/home             default
tank/home  multilevel            off                    -
tank/home  nbmand                off                    default
tank/home  normalization         none                   -
tank/home  primarycache          all                    default
tank/home  quota                 none                   default
tank/home  readonly              off                    default
tank/home  recordsize            128K                   default
tank/home  referenced            43K                    -
tank/home  refquota              none                   default
tank/home  refreservation        none                   default
tank/home  rekeydate             -                      default
tank/home  reservation           none                   default
tank/home  rstchown              on                     default
tank/home  secondarycache        all                    default
tank/home  setuid                on                     default
tank/home  shadow                none                   -
tank/home  share.*               ...                    local
tank/home  snapdir               hidden                 default
tank/home  sync                  standard               default
tank/home  type                  filesystem             -
tank/home  used                  8.54M                  -
tank/home  usedbychildren        8.49M                  -
tank/home  usedbydataset         43K                    -
tank/home  usedbyrefreservation  0                      -
tank/home  usedbysnapshots       0                      -
tank/home  utf8only              off                    -
tank/home  version               6                      -
tank/home  vscan                 off                    default
tank/home  xattr                 on                     default
tank/home  zoned                 off                    default

通过 zfs get-s 选项,可以按源类型指定要显示的属性。通过此选项可获取一个逗号分隔列表,用于指明所需的源类型。仅会显示具有指定源类型的属性。有效的源类型包括 localdefaultinheritedtemporarynone。以下示例显示了已在 tank/ws 上本地设置的所有属性。

# zfs get -s local all tank/ws
NAME     PROPERTY              VALUE                  SOURCE
tank/ws  compression           on                     local

以上任何选项均可与 -r 选项结合使用,以便以递归方式显示指定文件系统的所有子级的指定属性。在以下示例中,以递归方式显示了 tank/home 中所有文件系统的所有临时属性:

# zfs get -r -s temporary all tank/home
NAME             PROPERTY       VALUE                      SOURCE
tank/home          atime          off                      temporary
tank/home/jeff     atime          off                      temporary
tank/home/mark     quota          20G                      temporary

可以在不指定目标文件系统的情况下使用 zfs get 命令查询属性值,这意味着该命令对所有池或文件系统有效。例如:

# zfs get -s local all
tank/home               atime          off                    local
tank/home/jeff          atime          off                    local
tank/home/mark          quota          20G                    local

有关 zfs get 命令的更多信息,请参见 zfs(1M)

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

zfs get 命令支持为编写脚本而设计的 -H-o 选项。可以使用 -H 选项省去标头信息并用 Tab 字符替换空格。使用一致的空格可使数据便于解析。可以使用 -o 选项以如下方式定制输出:

以下示例说明如何使用 -zfs get-Ho 选项来检索单个值:

# zfs get -H -o value compression tank/home
on

-p 选项会将数字值报告为精确值。例如,1MB 将报告为 1000000。此选项可按如下方式使用:

# zfs get -H -o value -p used tank/home
182983742

可以结合使用 -r 选项与前述任何选项,以递归方式为所有后代检索请求值。以下示例使用 -H-o-r 选项为 export/home 及其后代检索文件系统名称和 used 属性值,同时忽略标题输出:

# zfs get -H -o name,value -r used export/home