跳过导航链接 | |
退出打印视图 | |
从 Oracle Solaris 10 转换到 Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library (简体中文) |
1. 从 Oracle Solaris 10 转换到 Oracle Solaris 11 发行版(概述)
Solaris Volume Manager 配置和 ZFS 配置对比
ZFS 使用池存储模型,其中存储设备都聚集到一个存储池中。存储池内的文件系统使用池中的所有存储。
以下各节提供了用于创建、监视 ZFS 存储池和对其进行故障排除的建议做法。
特定根池设备和引导磁盘要求
常规根池创建做法
根池必须作为镜像配置或单磁盘配置创建。不支持 RAID-Z 和条带化配置。不能使用 zpool add 命令添加其他磁盘以创建多个镜像顶层虚拟设备,但可以使用 zpool attach 命令扩展镜像虚拟设备。
根池不能有单独的日志设备。
在 AI 安装过程中,可以使用 pool_options 关键字语法设置池属性,但是根池不支持 gzip 压缩算法。
通过初始安装创建了根池后,请勿对根池重命名。重命名根池可能会导致系统无法引导。
由于根池磁盘对连续操作至关重要(特别是在企业环境中),因此对于生产系统请勿在 USB 存储器 (USB stick) 上创建根池。可以考虑将系统的内部磁盘用作根池,或至少使用与非根目录数据所要使用磁盘的质量相同的磁盘。此外,USB 存储器 (USB stick) 的空间可能不足以支持转储卷大小,转储卷大小至少为物理内存大小的 1/2。
请考虑将根池组件与非根池数据分开。
非根池创建做法-使用 d* 标识符创建由整个磁盘组成的非根池。不要使用 p* 标识符。
ZFS 在没有任何其他卷管理软件的情况下工作最佳。
为了获得更出色的性能,请使用单个磁盘,至少也要使用仅由少数几个磁盘组成的 LUN。通过使 ZFS 能够更好地洞悉 LUN 设置,ZFS 能够做出更好的 I/O 调度决策。
镜像存储池-占用更多磁盘空间,但通常情况下,对于小的随机读取,性能更好。例如:
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0
镜像存储池还更加灵活,因为您可以在池中分离、附加和更换现有设备。
RAID-Z 存储池-可以使用 3 个奇偶校验策略创建,其中奇偶校验等于 1 (raidz)、2 (raidz2) 或 3 (raidz3)。
RAID-Z 配置最大限度地利用了磁盘空间,通常情况下,在以大块(128K 或更大)写入和读取数据时性能良好。可以创建 3 磁盘 (2+1) 的单奇偶校验 RAIDZ (raidz) 配置。
RAIDZ-2 配置可提供更高的数据可用性,其性能与 RAID-Z 类似。与 RAID-Z 或双向镜像相比,RAIDZ-2 的数据丢失平均时间 (mean time to data loss, MTTDL) 要好得多。在 6 个磁盘 (4+2) 上创建双奇偶校验 RAID-Z (raidz2) 配置。
RAIDZ-3 配置最大限度地利用了磁盘空间并提供了极佳的可用性,因为它可以承受 3 个磁盘故障。可以创建 8 磁盘 (5+3) 的三重奇偶校验 RAID-Z (raidz3) 配置。
非冗余池-创建非冗余池时,您会看到类似于以下内容的消息:
# zpool create pond c8t2d0 c8t3d0 'pond' successfully created, but with no redundancy; failure of one device will cause loss of the pool
创建没有冗余的池是不可取的,因为一旦出现设备故障,这可能意味着数据不可恢复。请考虑创建具有冗余的 ZFS 存储池。例如:
# zpool create pond mirror c8t2d0 c8t3d0
为获得最佳性能,请确保池容量在 90% 以下。对池和文件系统空间进行监视以确保它们未满。考虑使用 ZFS 配额和预留空间,以确保文件系统空间不超过池容量的 90%。
定期运行 zpool scrub 以识别数据集成问题:
如果使用的是使用者质量的驱动器,请考虑制定每周清理计划。
如果使用的是数据中心质量的驱动器,请考虑制定每月清理计划。
在更换设备以确保所有设备当前都是可运转的之前,也应当运行清理。
每周使用一次 zpool status 来监视池和池设备的状态。此外,使用 fmdump 或 fmdump -eV 查看是否已出现任何设备故障或错误。
在 Oracle Solaris 11 中排除池问题与在 Oracle Solaris 10 发行版中对问题进行诊断类似,但请查看以下新的诊断说明和功能:
故障设备-检查 zpool status - l 输出以识别故障设备的物理位置并更换故障设备。有关更换故障磁盘的信息,请参见《Oracle Solaris 11.1 管理:ZFS 文件系统》中的"更换或修复损坏的设备"。
故障设备通知-可以配置 smtp-notify 服务以发送电子邮件通知来响应各种故障管理事件,例如在诊断出某个硬件组件发生故障时。有关更多信息,请参见 smf(5) 的“通知参数”部分。
缺省情况下,某些通知设置为自动发送给 root 用户。如果您作为 root 用户在 /etc/aliases 文件中为您的用户帐户添加了一个别名,则将收到类似以下内容的电子邮件通知:
-------- Original Message -------- Subject: Fault Management Event: tardis:SMF-8000-YX Date: Wed, 21 Sep 2011 11:11:27 GMT From: No Access User <noaccess@tardis.drwho.COM> Reply-To: root@tardis.drwho.COM To: root@tardis.drwho.COM SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Sep 21 11:11:27 GMT 2011 PLATFORM: Sun-Fire-X4140, CSN: 0904QAD02C, HOSTNAME: tardis SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: d9e3469f-8d84-4a03-b8a3-d0beb178c017 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device.
移动设备-如果设备驱动程序创建或虚构了设备 ID,则属于 ZFS 存储池的设备会包含一个设备 ID。和所有文件系统一样,ZFS 与其底层设备关系非常密切,因此,如果试图升级系统的固件、将池设备移到不同的控制器或更改设备的布线,可能要考虑首先导出池。如果设备 ID 不遵循设备更改,并且这可能是随非 Oracle 硬件发生的,那么池和池数据可能会变得不可用。通常,如果设备是在活动池下更改的,则 Oracle 的 Sun 硬件可以恢复,因为我们的驱动程序完全支持设备 ID,但是可能要考虑在进行任何硬件更改前导出池。
有关对池问题进行故障排除的完整说明,请参见《Oracle Solaris 11.1 管理:ZFS 文件系统》中的第 10 章 "Oracle Solaris ZFS 故障排除和池恢复"。