小编ind*_*ter的帖子

ZFS:使不可用池中的磁盘联机

我有一台使用 FreeBSD 和 ZFS 的家庭服务器,它在过去 5 年中运行良好,并且有几次我成功地更换了有故障的磁盘。

然而,今天发生了一个小灾难,我希望找到解决办法。

我有一个由 3 个 vdev 组成的顶级池,每个池都是一个 raidz1 池,因此最多 3 个磁盘可能会出现故障——假设它们都属于不同的 vdev——并且数据完整性完好无损。

昨天,我注意到 1 个 vdev 中的 1 个磁盘报告了很多错误。从以往的经验来看,这通常表明磁盘即将发生故障,所以我做了我通常做的事情:

  1. 脱机盘:zpool offline tank gpt/ta4
  2. 物理更换磁盘
  3. 用gpart设置新磁盘,然后zpool替换tank gpt/ta4

但是,这一次在第 2 步和第 3 步之间发生了灾难:安装新驱动器后,当我打开服务器电源时,我闻到了烧焦的味道,并且我的 HBA 指示其中4个驱动器不可用!由于令人难以置信的厄运,一定是出现了一些电压浪涌,因为同一个 vdev (gpt/ta2) 中的另一个驱动器现在完全死机了,目视检查显示 PCB 上的一个 MOSFET 被烧毁。

所以现在gpt/ta2是UNAVAIL,gpt/ta4是OFFLINE,所以很明显vdev,也就是raidz1,也是UNAVAIL。

我的问题是:1) 有没有办法让 gpt/ta4 重新上线?当我尝试发出“zpool online tank gpt/ta4”时,它告诉我该池不可用,因此我无法这样做。我可以理解为什么会这样,但我认为 gpt/ta4 尽管遇到了一些读取错误,但在离线之前基本上仍然是 raidz1 池的“好”成员(zpool status 报告说没有已知数据错误)。有没有办法实现这一目标?

2) 否则,有没有办法至少使我的顶级池(由 3 个 raidz1 vdevs 组成)的其余部分联机?其他 2 个 vdev 完全没问题。

请帮忙,我有很多宝贵的数据:-)

提前致谢。

zfs

5
推荐指数
1
解决办法
7281
查看次数

标签 统计

zfs ×1