如何将 zfs 池中的驱动器引用从 /dev/sdX 更改为 /dev/disk/by-id (ata-XXXXXX)

Gre*_*reg 9 linux zfs zfsonlinux ubuntu-16.04

在下面的示例中,如何更改第二个镜像中的设备,以便它们引用而/dev/disk/by-id不是/dev/sdX

user@pc:~$ sudo zpool status
  pool: storage
 state: ONLINE
  scan: scrub repaired 0 in 8h30m with 0 errors on Sun May 28 08:54:48 2017
config:

    NAME                                  STATE     READ WRITE CKSUM
    storage                               ONLINE       0     0     0
      mirror-0                            ONLINE       0     0     0
        ata-ST2000AS0002-1NA12Z_Z840MHWP  ONLINE       0     0     0
        ata-ST2000AS0002-1NA12Z_Z840MHTQ  ONLINE       0     0     0
      mirror-1                            ONLINE       0     0     0
        sdd                               ONLINE       0     0     0
        sde                               ONLINE       0     0     0
Run Code Online (Sandbox Code Playgroud)

sho*_*hok 6

您只需使用不同的设备默认搜索目录(-d选项)导出并重新导入池。

例如:

zpool export storage
zpool import storage -d /dev/disk/by-id
Run Code Online (Sandbox Code Playgroud)


qua*_*cky -1

我不熟悉 linux 上的 ZFS(我猜这是 linux 特有的问题,Solaris 和 FreeBSD 不会有这种设备名称精神分裂症......),但您可以尝试将驱动器作为磁盘分离并重新连接-by-id(确保每次都完全重新同步)

zpool detach mirror-1 sdd
zpool attach mirror-1 /dev/disk/sdd-by-id
<wait until zpool status shows it's rebuilt...>
Run Code Online (Sandbox Code Playgroud)

等等...