恢复导入时出现错误的 ZFS 池

恢复导入时出现错误的 ZFS 池

我有一台机器,由于一些坏的 RAM 而出现了问题。在我诊断并移除有问题的 RAM 后,机器中的 ZFS 池试图使用错误的设备名称访问驱动器。我只是导出了池并重新导入它来纠正这个问题。但是我现在得到了这个错误。

存储池不再自动挂载

sqeaky@sqeaky-media-server:/$ sudo zpool status
no pools available

常规导入表示其已损坏

sqeaky@sqeaky-media-server:/$ sudo zpool import
  pool: Storage
    id: 13247750448079582452
 state: UNAVAIL
status: The pool is formatted using an older on-disk version.
action: The pool cannot be imported due to damaged devices or data.
config:

    Storage                 UNAVAIL  insufficient replicas
      raidz1                UNAVAIL  corrupted data
        805066522130738790  ONLINE
        sdd3                ONLINE
        sda3                ONLINE
        sdc                 ONLINE

特定导入表明 vdev 配置无效

sqeaky@sqeaky-media-server:/$ sudo zpool import Storage
cannot import 'Storage': invalid vdev configuration

无法脱机或分离驱动器,因为无法启动/导入池

sqeaky@sqeaky-media-server:/$ sudo zpool offline Storage 805066522130738790
cannot open 'Storage': no such pool
sqeaky@sqeaky-media-server:/$ sudo zpool detach Storage 805066522130738790
cannot open 'Storage': no such pool

无法强制导入

sqeaky@sqeaky-media-server:/$ sudo zpool import -f Storage 
cannot import 'Storage': invalid vdev configuration

我的 ZFS 池中应该有 4 个设备:

/dev/sda3
/dev/sdd3
/dev/sdc
/dev/sdb

我不知道 805066522130738790 是什么,但我打算进一步调查。我还想弄清楚如何使用 zdb 获取有关池认为正在发生的事情的更多信息。

供参考 之所以这样设置,是因为在设置这台机器/池时,它需要某些 Linux 功能,而 Linux 尚不支持从 ZFS 启动。分区 sda1 和 sdd1 位于操作系统的 raid 1 中,而 sdd2 和 sda2 位于交换的 raid1 中。

关于如何恢复这个 ZFS 池有什么线索吗?

编辑 - 状态更新 我搞清楚了 805066522130738790 是什么。这是 ZFS 无法用来识别 /dev/sdb 的一些 guid。当我物理移除 /dev/sdb 时,池会挂载并联机。但我仍然无法换出磁盘。我想我会将文件备份到外部媒体,然后销毁整个池,因为它太损坏而无法继续运行。我应该从一开始就做好备份……

答案1

看起来您在 FUSE 上使用 ZFS?无论如何,我并不指望它会稳定下来。

我会将奇怪的驱动器脱机,然后重新添加它,看看是否有帮助。您也可以尝试强制重新导入池。 http://docs.huihoo.com/opensolaris/solaris-zfs-administration-guide/html/ch04s04.html

答案2

如果您需要真正的调试帮助,请转到 zfs-discuss 列表:

http://mail.opensolaris.org/mailman/listinfo/zfs-discuss http://opensolaris.org/jive/forum.jspa?forumID=80

(相同的列表,只是接口不同。)

相关内容