ZFS:用 raidz2 替换条带池的 raidz1 成员

ZFS:用 raidz2 替换条带池的 raidz1 成员

我有一个这样的池(在 Ubuntu 20 LTS 中):

# zpool status
  pool: zpool_test
 state: ONLINE
  scan: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    zpool_test  ONLINE       0     0     0
      raidz2-0  ONLINE       0     0     0
        sdb     ONLINE       0     0     0
        sdc     ONLINE       0     0     0
        sdd     ONLINE       0     0     0
        sde     ONLINE       0     0     0
      raidz1-1  ONLINE       0     0     0
        sdf     ONLINE       0     0     0
        sdg     ONLINE       0     0     0
        sdh     ONLINE       0     0     0
      sdi     ONLINE       0     0     0
      raidz2-2  ONLINE       0     0     0
        sdj     ONLINE       0     0     0
        sdk     ONLINE       0     0     0
        sdl     ONLINE       0     0     0
        sdm     ONLINE       0     0     0

errors: No known data errors

在创建这个 zpool 时,我犯了一个拼写错误,不小心将 raidz2 误加成了 raidz1。(参见 raidz1-1)我在这个 zpool_test 中重现了这种情况。创建命令:

# zpool create zpool_test -o ashift=12 -f \
raidz2 \
 /dev/sdb \
 /dev/sdc \
 /dev/sdd \
 /dev/sde \
raidz1 \
 /dev/sdf \
 /dev/sdg \
 /dev/sdh \
 /dev/sdi \
raidz2 \
 /dev/sdj \
 /dev/sdk \
 /dev/sdl \
 /dev/sdm

我现在想用 raidz2 集替换这个 raidz1 集。我尝试用普通条带集替换它;我可以使用 zpool replace zpool_test /dev/disk1 /dev/disk4(例如)它们立即成为条带集的成员。但现在 raidz1 当然是成员(包含磁盘)。

感觉这只是一个语法问题,但我到目前为止还没有成功 :-) 有人知道吗?显然我有 4 个可用磁盘:/dev/sdn /dev/sdo /dev/sdp /dev/sdq

答案1

不幸的是,您必须重建并配置 zpool 以达到正确的所需布局。

该设置没有其他选项。

相关内容