zpool import 失败:我可以恢复数据吗?

zpool import 失败:我可以恢复数据吗?

我的个人 zpool 服务器出现故障,我想知道是否有办法恢复我拥有的数据。我的大部分关键数据(照片、税费等)都备份到了 OneDrive,所以我基本没问题,但如果可能的话,我想恢复其余数据。

我观看了有关 ZFS 维护/数据丢失的 LTT 视频,发现我也从未进行过清理,因此我运行了它,遇到了一堆校验和错误,几个读取错误。因此,我计划从 3+1 2TB 驱动器升级到 3+1 6TB 驱动器,现在有了驱动器。我关闭了服务器,放入了一个 4TB 驱动器来备份所有内容(只有 ~1.5TB ZFS 已满),我认为我的所有问题都是由此引起的,因为至少 zpool 已启动,现在它甚至无法再启动了……

当我运行时zpool import,我收到以下报告:

   pool: raid
     id: 12795258809798297580
  state: FAULTED
 status: One or more devices contains corrupted data.
 action: The pool cannot be imported due to damaged devices or data.
        The pool may be active on another system, but can be imported using
        the '-f' flag.
   see: http://zfsonlinux.org/msg/ZFS-8000-5E
 config:

        raid        FAULTED  corrupted data
          raidz1-0  DEGRADED
            sdc     ONLINE
            sdc     FAULTED  corrupted data
            sde     ONLINE
            sdf     ONLINE

现在,这显示了一个问题,sdc 出现了两次,而 sdd 丢失了。当我运行 时lsblk,我看到了以下内容:

...
sdb      8:16   0   3.7T  0 disk
├─sdb1   8:17   0    16M  0 part
└─sdb2   8:18   0   3.7T  0 part
sdc      8:32   0   1.8T  0 disk
├─sdc1   8:33   0   1.8T  0 part
└─sdc9   8:41   0     8M  0 part
sdd      8:48   0   1.8T  0 disk
sde      8:64   0   1.8T  0 disk
├─sde1   8:65   0   1.8T  0 part
└─sde9   8:73   0     8M  0 part
sdf      8:80   0   1.8T  0 disk
├─sdf1   8:81   0   1.8T  0 part
└─sdf9   8:89   0     8M  0 part

sdb 将是我要备份到的驱动器。sdc、sde 和 sdf 是 zfs 恢复的一部分,但看起来 sdd 现在已经消失/失败了。

有没有办法让我重新启动并运行 zpool 以恢复我可以恢复的任何数据?我认为 raidz1 的全部意义在于任何 1 个驱动器都可能发生故障,并且仍然可以恢复...zpool import -f raid失败并显示:

cannot import 'raid': I/O error
        Destroy and re-create the pool from
        a backup source.

PS:重建注意事项...我认为我需要zpool export在运行新的 ZFS 阵列时执行此操作。此外,我应该通过 ID 而不是 devid 来引用磁盘。

答案1

如果您想备份 zpool,您可以使用键“zfs 快照”进行更多研究,现在您可以使用 2 个外部工具(我使用它们进行备份和恢复)

https://www.zfsnap.org/

https://github.com/someone1/zfsbackup-go

拍摄名为“music-pool”的 zpool 快照,并在 3 天后推出

./zfsnap.sh snapshot -rv -a 3d music-pool

完整备份快照至外部存储

#List
zfs list -t snapshot

#Do store backup to path /backup/
./zfsbackup-go send music-pool@FULL--3d file://backup/

增量备份快照至外部存储

zfs list -t snapshot
./zfsbackup-go send -i music-pool@FULL--3d music-pool@FULL_inc001--3d file://backup/

从完整恢复

./zfsbackup-go receive -F -d music-pool@FULL--3d file://backup/ music-pool

如果有增量,则进行恢复(执行上述命令以完全恢复,然后进行增量恢复)

./zfsbackup-go receive -d -F -i music-pool@FULL--3d music-pool@FULL_inc001--3d file://backup/ music-pool

相关内容