我有一个这样的池(在 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 以达到正确的所需布局。
该设置没有其他选项。