首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZFS池损坏

ZFS池损坏
EN

Server Fault用户
提问于 2022-01-25 20:39:36
回答 2查看 2.4K关注 0票数 2

我正在运行proxmox (7.1-10)和一些VM。我意外地被迫从proxmox导入一个由VM (truenas12.0-U7)使用的ZFS池,其中:

zpool import -f Pool-1

命令空白地返回,我以为我没事。

然后我重新启动Proxmox,池就不在那里了。当时我做了:

代码语言:javascript
复制
zpool import

pool: Pool-1
     id: 9292035031829486490
  state: FAULTED
status: The pool metadata is corrupted.
 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: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-72
 config:

    Pool-1        FAULTED  corrupted data
      mirror-0    FAULTED  corrupted data
        sdd2      ONLINE
        sdb2      ONLINE
      indirect-1  ONLINE
      indirect-2  ONLINE
      indirect-3  ONLINE

当时,我还没有意识到我所犯的错误,我又一次试图进口:

代码语言:javascript
复制
zpool import -f Pool-1

internal error: cannot import 'Pool-1': Invalid exchange
Aborted

那时,我意识到我输入了一个错误的池。我回到Truenas,游泳池离线了。我检查了特鲁纳斯是否能看到游泳池:

代码语言:javascript
复制
truenas# zpool import

   pool: Pool-1
     id: 9292035031829486490
  state: FAULTED
status: The pool was last accessed by another system.
 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: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
 config:

    Pool-1                                          FAULTED  corrupted data
      mirror-0                                      FAULTED  corrupted data
        gptid/f475cf25-9d3a-11eb-a1a4-0cc47a30748c  ONLINE
        gptid/f485d5c5-9d3a-11eb-a1a4-0cc47a30748c  ONLINE
      indirect-1                                    ONLINE
      indirect-2                                    ONLINE
      indirect-3                                    ONLINE

先试了一试:

代码语言:javascript
复制
truenas# zpool import Pool-1

cannot import 'Pool-1': pool was previously in use from another system.
Last accessed by proxmox (hostid=2e5301d3) at Tue Jan 25 16:21:58 2022
The pool can be imported, use 'zpool import -f' to import the pool.

然后:

代码语言:javascript
复制
truenas# zpool import -f Pool-1
internal error: cannot import 'Pool-1': Integrity check failed
Abort trap (core dumped)

因此,如果我试图从proxmox强制导入,就会得到“无效的exchange”,如果我试图强制从truenas导入,则会得到“完整性检查失败”。

有谁知道怎么解决这个问题吗?

谢谢,RG

注:池是用加密创建的。

EN

回答 2

Server Fault用户

发布于 2022-01-27 09:57:36

我继续用truenas# zpool import -f -FXn Pool-1

12个小时后我得到了:

代码语言:javascript
复制
Code:
Would be able to return Pool-1 to its state as of Tue Jan 25 16:18:53 2022.
Would discard approximately 3 minutes of transactions.

然后我和zpool import -f -FX Pool-1一起去了

我的游泳池现在安全了。

谢谢你的建议,RG

票数 1
EN

Server Fault用户

发布于 2022-01-26 04:19:11

请不要误解我,我不想成为一个虚假希望的来源。池很可能已经死了,但是你没有什么选择:

  • 尝试以只读模式导入池。
  • 如果您的zfs实现有-F恢复模式,请尝试导入该池
  • 尝试在具有最新zfs堆栈的系统上导入池,例如:夜间构建、不稳定的git修订版或开发人员分支中最近可用的提交。因为这个池是在Proxmox上创建的,所以我会跟它一起去。

无论如何,在外部OSes上导入池(比如在FreeBSD或Linux上创建的池等等)通常是个坏主意,应该非常谨慎。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1091146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档