replaceZFS池中恢复的硬盘

我有一个处于UNAVAL状态的池(“一个或多个设备无法打开,池没有足够的副本继续运行”),因为最近发生了磁盘故障。

我打算修复失败的磁盘(即数据恢复服务),以便将池重新联机到足够长的时间来迁移它,但是有一个问题,我不知道如何解决。

我的池中的设备名称使用我的磁盘序列号(/ dev / disk / by-id / style)。 我这样做是因为我有很多磁盘,并且每次启动时/ dev / sd *名称都会移动,这当然会对池造成严重破坏。 然而,在这种情况下,因为我打算将“相同的”磁盘(数据而不是硬件)重新在线,但使用不同的设备名称,我不认为它会自动识别它,而且我不确定“replace”命令是如何处理新磁盘的。 也许它只是工作,但基于文档,它可能会将新磁盘视为“空白”,而不是使用它来修复池(或者也许ZFS看磁盘的内容,并作出相应的行为,我只是不确定)。

简而言之,我想借助其硬件设备名称来注册池中的脱机磁盘,将其复制到另一个物理磁盘,然后将新磁盘replace为原来的在线磁盘。

我正在用非生产设备进行一些实验,以了解这一点,但是对于那些了解ZFS“底层”或者有这种恢复经验的人们的任何想法,我们都非常感激! 此外,如果有文件,文档等进入这个调整的水平,我也很乐意研究它们。

为了清楚起见,这不是一个长期的configuration,只是为了排空arrays的内容,所以我不反对那些不适合长期/生产环境的解决scheme。

看起来像一个简单的符号链接是答案:

  1. 停止ZFS
  2. ln -s / dev / disk / by-id / new-disk-id / dev / disk / by-id / old-disk-id
  3. 启动ZFS
  4. 游泳池应该回到在线状态

谢谢Unix!