“重命名” ZFS 池中的驱动器?

“重命名” ZFS 池中的驱动器?

因此,我正在研究最终将成为文件服务器的 ZFS,并且我设法使自己进入这种状态:

  pool: storage
 state: DEGRADED
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: scrub in progress since Wed Oct 18 17:55:08 2017
    272G scanned out of 665G at 512M/s, 0h13m to go
    8K repaired, 40.92% done
config:

        NAME                                      STATE     READ WRITE CKSUM
        storage                                   DEGRADED     0     0     0
          raidz2-0                                DEGRADED     0     0     0
            ata-Hitachi_HUA723020ALA641_YFH0ZXHA  ONLINE       0     0     0
            ata-Hitachi_HUA723020ALA641_YFH2808B  ONLINE       0     0     0
            ata-Hitachi_HUA723020ALA641_YGGLAUJA  ONLINE       0     0     0
            ata-Hitachi_HUA723020ALA641_YGGN6B7A  ONLINE       0     0     0
            sdf                                   OFFLINE      0     0     2  (repairing)

errors: No known data errors

我通过构建一个 5 驱动器 raidz2 池,然后故意损坏其中一个磁盘,然后以某种方式移除/替换它来实现此目的。但我认为在某个时候我使用 sdX 标签而不是我想要的“by-id”标签添加了磁盘。

数组在这种状态下工作,但如果是生产的话,我更愿意保持命名的一致性,而且在某种程度上,我只是想更好地理解它。

有哪些可能的方法来“重命名”这个最后的设备?(除了彻底摧毁池!)

答案1

所以我不确定我是否以正确的方式或最佳的方式做到了这一点,但唯一能让它工作的方法是用不同的磁盘替换该磁盘,然后用我想要的新名称/ID 替换原来的磁盘。我 99% 确定这是因为 ZFS 不允许您替换标记为正在使用的磁盘,并且上面的“sdf”的 UUID 在 ZFS 数据库中作为活动设备。因此,即使将标签/元数据归零也无济于事,因为当您尝试添加/替换时,该磁盘仍然存在于数据库中。

如果您用具有不同 ID 的磁盘替换此磁盘,则替换完成后,它会从 zdb 中清除 ID。然后,您可以用原始磁盘“重新替换”该磁盘(因为不再存在冲突)。

我相当确定,如果您可以手动编辑 ZFS 数据库,您可能就可以解决这个问题,但我还没有走那么远……

相关内容