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 文件系统(介绍)

ZFS 中的新增功能

改进了 ZFS 池设备消息

ZFS 文件共享改进

共享的 var 文件系统

对带 EFI (GPT) 标签的磁盘的引导支持

ZFS 命令使用方面的增强功能

ZFS 快照增强功能

ZFS 手册页更改 (zfs.1m)

改进的 aclmode 属性

按物理位置标识池设备

ZFS 影子迁移

ZFS 文件系统加密

ZFS 发送流增强功能

ZFS 快照差异 (zfs diff)

ZFS 存储池恢复和性能增强功能

ZFS 同步行为调优

改进了 ZFS 池消息

ZFS ACL 互操作性增强功能

分割镜像 ZFS 存储池 (zpool split)

ZFS iSCSI 更改

新 ZFS 系统进程

ZFS 重复数据删除属性

什么是 Oracle Solaris ZFS?

ZFS 池存储

事务性语义

校验和与自我修复数据

独一无二的可伸缩性

ZFS 快照

简化的管理

ZFS 术语

ZFS 组件命名要求

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

ZFS 文件系统粒度

ZFS 磁盘空间记帐

空间不足行为

挂载 ZFS 文件系统

传统卷管理

基于 NFSv4 的 Solaris ACL 模型

2.  Oracle Solaris ZFS 入门

3.  管理 Oracle Solaris ZFS 存储池

4.  管理 ZFS 根池组件

5.  管理 Oracle Solaris 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 文件系统的新增功能。

改进了 ZFS 池设备消息

Oracle Solaris 11.1zpool status 命令已进行了增强,可以提供有关设备故障的更多详细信息。本示例中的 zpool status 输出标识了一个池设备 (c0t5000C500335F907Fd0),该设备由于存在持久性错误而处于 UNAVAIL 状态,应该将其替换掉。

# zpool status -v pond
  pool: pond
 state: DEGRADED
status: One or more devices are unavailable in response to persistent errors.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or 'fmadm repaired', or replace the device
        with 'zpool replace'.
  scan: scrub repaired 0 in 0h0m with 0 errors on Wed Jun 20 15:38:08 2012
config:

        NAME                       STATE     READ WRITE CKSUM
        pond                       DEGRADED     0     0     0
          mirror-0                 DEGRADED     0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  UNAVAIL      0     0     0
          mirror-1                 ONLINE       0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335DC60Fd0  ONLINE       0     0     0

device details:

        c0t5000C500335F907Fd0    UNAVAIL          cannot open
        status: ZFS detected errors on this device.
                The device was missing.
           see: http://support.oracle.com/msg/ZFS-8000-LR for recovery


errors: No known data errors

ZFS 文件共享改进

Oracle Solaris 11.1:ZFS 文件系统共享已经改进,主要增强功能如下:

文件共享改进功能与池版本 34 相关。

有关更多信息,请参见共享和取消共享 ZFS 文件系统

共享的 var 文件系统

Oracle Solaris 11.1:安装 Oracle Solaris 11.1 时将自动创建一个 rpool/VARSHARE 文件系统,该文件系统挂载在 /var/share 下。此文件系统的作用是在整个引导环境中共享文件系统,从而减少所有 BE 在 /var 目录中所需的空间。例如:

# ls /var/share
audit  cores  crash  mail

这将自动创建从 /var 到以上所列各个 /var/share 组件的符号链接,以保证兼容性。此文件系统通常无需进行管理,除非是为了确保 /var 组件不会填满根文件系统。

如果是从 Oracle Solaris 11 系统更新到 Oracle Solaris 11.1 发行版,则可能需要一定的时间才能将原始 /var 目录中的数据迁移到 /var/share 目录中。

对带 EFI (GPT) 标签的磁盘的引导支持

Oracle Solaris 11.1:在大多数情况下,对于基于 x86 的系统,此发行版会为 ZFS 根池磁盘安装 EFI (GPT) 磁盘标签。例如:

# zpool status rpool
  pool: rpool
 state: ONLINE
  scan: none requested
config:

    NAME      STATE     READ WRITE CKSUM
    rpool     ONLINE       0     0     0
      c2t0d0  ONLINE       0     0     0

errors: No known data errors

ZFS 命令使用方面的增强功能

Oracle Solaris 11zfszpool 命令具有 help 子命令,可用来提供有关 zfszpool 子命令及其所支持选项的更多信息。例如:

# zfs help
The following commands are supported:
allow       clone       create      destroy     diff        get         
groupspace  help        hold        holds       inherit     list        
mount       promote     receive     release     rename      rollback    
send        set         share       snapshot    unallow     unmount     
unshare     upgrade     userspace   
For more info, run: zfs help <command>
# zfs help create
usage:
        create [-p] [-o property=value] ... <filesystem>
        create [-ps] [-b blocksize] [-o property=value] ... -V <size> <volume>
# zpool help
The following commands are supported:
add      attach   clear    create   destroy  detach   export   get      
help     history  import   iostat   list     offline  online   remove   
replace  scrub    set      split    status   upgrade  
For more info, run: zpool help <command>
# zpool help attach
usage:
        attach [-f] <pool> <device> <new-device>

有关更多信息,请参见 zfs(1M)zpool(1M)

ZFS 快照增强功能

Oracle Solaris 11:此发行版包含以下 ZFS 快照增强功能:

有关创建 ZFS 快照的更多信息,请参见第 6 章

ZFS 手册页更改 (zfs.1m)

Oracle Solaris 11zfs.1m 手册页已进行修订,核心 ZFS 文件系统功能保留在 zfs.1m 页面中,但是委托管理、加密以及共享语法和示例包含在以下页面中:

改进的 aclmode 属性

Oracle Solaris 11:每当在 chmod 操作期间修改文件的 ACL 权限时,aclmode 属性即会修改访问控制列表 (Access Control List, ACL) 的行为。已重新引入了 aclmode 属性,它具有以下属性值:

有关更多信息,请参见示例 7-14

按物理位置标识池设备

Oracle Solaris 11:在此 Solaris 发行版中,可以使用 zpool status -l 命令来显示 /dev/chassis 目录中包含的关于池设备的物理磁盘位置信息。此目录包含您系统上的设备的机箱、插口和插卡值。

此外,可以使用 fmadm add-alias 命令来引入磁盘别名,磁盘别名可帮助您识别磁盘在您的环境中的物理位置。例如:

# fmadm add-alias SUN-Storage-J4400.0912QAJ001 SUN-Storage-J4400.rack22

例如:

% zpool status -l export
  pool: export
 state: ONLINE
  scan: resilvered 492G in 8h22m with 0 errors on Wed Aug  1 17:22:11 2012
config:

 NAME                                                             STATE  READ WRITE CKSUM
   export                                                         ONLINE    0     0     0
     mirror-0                                                     ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__2/disk  ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__3/disk  ONLINE    0     0     0
     mirror-1                                                     ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__4/disk  ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__5/disk  ONLINE    0     0     0
     mirror-2                                                     ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__6/disk  ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__7/disk  ONLINE    0     0     0
     mirror-3                                                     ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__8/disk  ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__9/disk  ONLINE    0     0     0
     mirror-4                                                     ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__10/disk ONLINE    0     0     0
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__11/disk ONLINE    0     0     0
     spares
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__0/disk  AVAIL   
       /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__1/disk  AVAIL   

errors: No known data errors

zpool iostat 命令也已更新,可提供池设备的物理位置信息。

此外,diskinfoformatprtconf 命令也提供物理磁盘位置信息。有关更多信息,请参见 diskinfo(1M)

ZFS 影子迁移

Oracle Solaris 11:在此发行版中,可以将数据从旧的文件系统迁移到新的文件系统,同时允许在迁移过程中访问和修改新的文件系统。

在新的 ZFS 文件系统上设置 shadow 属性将触发较旧数据的迁移。可以将 shadow 属性设置为以下值之一,以便从本地系统或远程系统迁移数据:

file:///path
nfs://host:path

有关更多信息,请参见迁移 ZFS 文件系统

ZFS 文件系统加密

Oracle Solaris 11:在此发行版中,您可以加密 ZFS 文件系统。

例如,tank/cindy 文件系统是在启用了加密属性的情况下创建的。缺省的加密策略是提示您输入口令短语,口令短语的长度必须至少为 8 个字符。

# zfs create -o encryption=on tank/cindy
Enter passphrase for 'tank/cindy': xxx
Enter again: xxx

加密策略是在创建 ZFS 文件系统时设置的。文件系统的加密策略由后代文件系统继承,且不可删除。

有关更多信息,请参见加密 ZFS 文件系统

ZFS 发送流增强功能

Oracle Solaris 11:在此发行版中,您可以设置在快照流中发送和接收的文件系统属性。通过这些增强功能,可以灵活地将发送流中的文件系统属性应用到接收方文件系统,或确定接收时是否应忽略本地文件系统属性(如 mountpoint 属性值)。

有关更多信息,请参见向 ZFS 快照流应用不同的属性值

ZFS 快照差异 (zfs diff)

Oracle Solaris 11:在此发行版中,您可以使用 zfs diff 命令确定 ZFS 快照的差异。

例如,假定创建了以下两个快照:

$ ls /tank/cindy
fileA
$ zfs snapshot tank/cindy@0913
$ ls /tank/cindy
fileA  fileB
$ zfs snapshot tank/cindy@0914

例如,要确定两个快照之间的差异,请使用类似以下的语法:

$ zfs diff tank/cindy@0913 tank/cindy@0914
M       /tank/cindy/
+       /tank/cindy/fileB

在输出中,M 表示该目录已经过修改。+ 表示 fileB 存在于较新的快照中。

有关更多信息,请参见确定 ZFS 快照的差异 (zfs diff)

ZFS 存储池恢复和性能增强功能

Oracle Solaris 11:在此发行版中,提供了以下新增的 ZFS 存储池功能:

ZFS 同步行为调优

Oracle Solaris 11:在此发行版中,您可以使用 sync 属性决定 ZFS 文件系统的同步行为。

缺省同步行为是将所有同步文件系统事务写入意图日志,并刷新所有设备以确保数据稳定。建议不要禁用缺省同步行为。依赖于同步支持的应用程序可能会受影响,并可能发生数据丢失的情况。

sync 属性可以在创建文件系统之前或之后设置。无论何种情况,属性值都将立即生效。例如:

# zfs set sync=always tank/neil

在包含 sync 属性的 Oracle Solaris 发行版中,zil_disable 参数不再可用。

有关更多信息,请参见表 5-1

改进了 ZFS 池消息

Oracle Solaris 11:在此发行版中,您可以使用 -T 选项提供时间间隔和计数值,使 zpool listzpool status 命令显示更多的信息。

此外,zpool status 命令还提供更多的池清理和重新同步信息,如下所示:

以下语法使用时间间隔和计数选项显示正在进行的池重新同步的信息。您可以使用 -T d 值以标准日期格式显示信息,或使用 -T u 以内部格式显示信息。

# zpool status -T d tank 3 2
Thu Jun 14 14:08:21 MDT 2012

  pool: tank
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function in a degraded state.
action: Wait for the resilver to complete.
        Run 'zpool status -v' to see device specific details.
  scan: resilver in progress since Thu Jun 14 14:08:05 2012
    2.96G scanned out of 4.19G at 189M/s, 0h0m to go
    1.48G resilvered, 70.60% done
config:

        NAME                       STATE     READ WRITE CKSUM
        tank                       DEGRADED     0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  ONLINE       0     0     0
          mirror-1                 DEGRADED     0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335DC60Fd0  DEGRADED     0     0     0  (resilvering)

errors: No known data errors

ZFS ACL 互操作性增强功能

Oracle Solaris 11:在此发行版中,提供了以下 ACL 增强功能:

有关更多信息,请参见第 7 章

分割镜像 ZFS 存储池 (zpool split)

Oracle Solaris 11:在此发行版中,您可以使用 zpool split 命令拆分镜像存储池,从原镜像池中分离一个或多个磁盘,以创建另一个完全相同的池。

有关更多信息,请参见通过分割镜像 ZFS 存储池创建新池

ZFS iSCSI 更改

Oracle Solaris 11:在此发行版中,使用通用多协议 SCSI 目标 (Common Multiprotocol SCSI Target, COMSTAR) 目标守护进程替换了 iSCSI 目标守护进程。此更改还意味着,shareiscsi 属性不再可用(过去用于将 ZFS 卷作为 iSCSI LUN 共享)。可以使用 stmfadm 命令对 ZFS 卷进行配置并将其共享为 iSCSI LUN。

有关更多信息,请参见将 ZFS 卷用作 iSCSI LUN

新 ZFS 系统进程

Oracle Solaris 11:在此发行版中,每个 ZFS 存储池都有一个关联的进程 zpool-poolname。此进程中的线程是用来处理与池相关的 I/O 任务(如压缩和校验和验证)的池 I/O 处理线程。此进程的作用是使各存储池的 CPU 利用情况具有可见性。

使用 psprstat 命令可以查看有关这些运行进程的信息。这些进程仅在全局区域中可用。有关更多信息,请参见 SDC(7)

ZFS 重复数据删除属性

Oracle Solaris 11:在此发行版中,可以使用重复数据删除 (dedup) 属性从 ZFS 文件系统中删除冗余数据。如果文件系统启用了 dedup 属性,则会以同步方式删除重复的数据块。结果是仅存储唯一的数据,在文件之间共享通用组件。

可以按如下方式启用此属性:

# zfs set dedup=on tank/home

虽然重复数据删除是作为文件系统属性设置的,但是它在池范围内起作用。例如,您可以按如下方式确定重复数据删除比:

# zpool list tank
NAME  SIZE  ALLOC  FREE  CAP  DEDUP  HEALTH  ALTROOT
tank  556G  4.19G  552G   0%  1.00x  ONLINE  -

为支持重复数据删除属性,zpool list 输出已更新。

有关设置重复数据删除属性的更多信息,请参见dedup 属性

在检查以下注意事项之前,不要在驻留于生产系统上的文件系统上启用 dedup 属性:

有关这些注意事项的更多信息,请参见dedup 属性