无法导入 Zpool

无法导入 Zpool

我们的一个 Solaris/ZFS 文件服务器出现故障。硬件无法启动,我们并不担心服务器,但数据非常宝贵。我们从 raidz2 池中取出一组 8 个驱动器,并将它们连接到另一台 Solaris 机器上。阵列被识别,数据在 6 小时内完好无损,但 6 小时后池在中途变得不可用。我们关闭了机器的电源,但没有成功。

如果您能帮助我们恢复数据,我将不胜感激。

使用 **zpool import命令我们得到以下错误:

zpool import
  pool: p1z2
    id: 16004911417686972288
state: UNAVAIL
status: One or more devices are unavailable.
action: The pool cannot be imported due to unavailable devices or data.
        The pool may be active on another system, but can be imported using the '-f' flag.
config:
        p1z2                       UNAVAIL  corrupted data
          raidz2-0                 DEGRADED
            c0t5000C500959EC8DFd0  UNAVAIL  cannot open
            c0t5001B4D04D00A816d0  ONLINE
            c0t5001B4D04D1E6803d0  ONLINE
            c0t5000C50083375403d0  UNAVAIL  cannot open
            c0t5001B4D04D1F0807d0  ONLINE
            c0t5001B4D04D101812d0  ONLINE
            c0t5001B4D04D101817d0  ONLINE
            c0t5001B4D04D233806d0  ONLINE

device details:
        c0t5000C500959EC8DFd0    UNAVAIL          cannot open
        status: ZFS detected errors on this device.
                The device was missing.
        c0t5000C50083375403d0    UNAVAIL          cannot open
        status: ZFS detected errors on this device.
                The device was missing.

iostat -en

  ---- errors ---
  s/w h/w trn tot device
    0   0   0   0 c0t5001B444A4E76FA2d0
    0   0   0   0 c0t5001B4D04D090800d0
    0   0   0   0 c0t5001B4D04D08D801d0
    0   0   0   0 c0t5001B4D04D233802d0
    0   0   0   0 c0t5001B4D04D1E6803d0
    0   0   0   0 c0t5001B4D04D080804d0
    0   0   0   0 c0t5001B4D04D101805d0
    0   0   0   0 c0t5001B4D04D233806d0
    0   0   0   0 c0t5001B4D04D1F0807d0
    0   0   0   0 c0t5001B4D04D080810d0
    0   0   0   0 c0t5001B4D04D080811d0
    0   0   0   0 c0t5001B4D04D101812d0
    0   0   0   0 c0t5001B4D04D00B813d0
    0   0   0   0 c0t5001B4D04D080814d0
    0   0   0   0 c0t5001B4D04D1E6815d0
    0   0   0   0 c0t5001B4D04D00A816d0
    0   0   0   0 c0t5001B4D04D101817d0

答案1

我不会在不了解您的池状态的情况下尝试提供答案。我建议针对池运行 ZFS 调试实用程序。它应该提供其他信息,可帮助确定主机拒绝导入降级池的原因(尽管它告诉您数据已损坏,但您仍可以回退到可以恢复的点)。

免责声明:zdb 本质上是 Oracle 技术支持的内部支持工具。在不了解其影响的情况下使用其各种选项可能会使情况变得更糟。

在下面的例子中,“-e”选项告诉它在当前未导入的池上进行操作。

zdb -e p1z2 | tee /tmp/zdb.log

请注意,这可能需要很长很长很长运行时间取决于你的池的大小和利用率。我刚刚针对一个健康-但导出了 1.4TB 池,我将其用于 Solaris 10U10(+ 最新 CPU 补丁)系统。此池的 79% 被数据利用,而 zdb仍然在 40 分钟后运行元数据校验(我今天快结束了,所以不想再等着看结果了)。输出结果可能非常多,所以我建议您使用 tee 将其记录到文件中。

相关内容