在 Oracle® Solaris 11.2 中管理 ZFS 文件系统

退出打印视图

更新时间: 2014 年 12 月
 
 

确定 ZFS 存储池的问题

以下各节介绍如何确定并解决 ZFS 文件系统或存储池中的问题:

可以使用以下功能来确定 ZFS 配置所存在的问题:

  • 使用 zpool status 命令可以显示 ZFS 存储池的详细信息。

  • 通过 ZFS/FMA 诊断消息报告池和设备故障。

  • 使用 zpool history 命令可以显示以前修改了池状态信息的 ZFS 命令。

  • 使用 zpool import –D 命令可以恢复意外销毁的 ZFS 存储池,但是必须快速恢复该池,否则可能会重用或意外覆盖该池。有关更多信息,请参见恢复已销毁的 ZFS 存储池。没有类似功能可以恢复 ZFS 文件系统或数据。务必保留高质量备份。

大多数 ZFS 故障排除工作都会涉及到 zpool status 命令。此命令对系统中的各种故障进行分析并确定最严重的问题,同时为您提供建议的操作和指向知识文章(用于获取更多信息)的链接。请注意,虽然池可能存在多个问题,但是此命令仅确定其中的一个问题。例如,数据损坏错误一般意味着一台设备发生故障,但更换故障设备可能无法解决所有数据损坏问题。

此外,ZFS 诊断引擎也会诊断和报告池故障和设备故障。另外还会报告与这些故障关联的校验和、I/O、设备和池错误。fmd 报告的 ZFS 故障在控制台上以及系统消息文件中显示。在大多数情况下,fmd 消息会指示您查看 zpool status 命令的输出,以便获得进一步的恢复说明。

基本的恢复过程如下所示:

  • 如果合适,请使用 zpool history 命令错误情况出现以前的 ZFS 命令。例如:

    # zpool history tank
    History for 'tank':
    2012-11-12.13:01:31 zpool create tank mirror c0t1d0 c0t2d0 c0t3d0
    2012-11-12.13:28:10 zfs create tank/eric
    2012-11-12.13:37:48 zfs set checksum=off tank/eric

    在此输出中可以看到,对 tank/eric 文件系统禁用了校验和。建议不要使用此配置。

  • 通过在系统控制台上或 /var/adm/messages 文件中显示的 fmd 消息来确定错误。

  • 使用 zpool status -x 命令查找进一步的修复说明。

  • 排除故障涉及到以下步骤:

    • 更换不可用设备或缺少的设备,并使其联机。

    • 从备份恢复故障配置或损坏的数据。

    • 使用 zpool status –x 命令验证恢复情况。

    • 备份所恢复的配置(如果适用)。

本节介绍如何解读 zpool status 输出,以便诊断可能出现的故障类型。尽管大多数工作是由命令自动执行的,但是准确了解所确定的问题以便诊断故障是很重要的。后续部分将介绍如何解决可能遇到的各种问题。