给定 FreeBSD 10 上的 raidz1 vdev,其配置如下:
root@gw:~ # zpool status
pool: data
state: ONLINE
status: One or more devices are configured to use a non-native block size.
Expect reduced performance.
action: Replace affected devices with devices that support the
configured block size, or migrate data to a properly configured
pool.
scan: resilvered 26.1G in 0h43m with 0 errors on Sat Dec 21 07:07:41 2013
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ada1 ONLINE 0 0 0 block size: 512B configured, 4096B native
ada2 ONLINE 0 0 0
ada3 ONLINE 0 0 0 block size: 512B configured, 4096B native
errors: No known data errors
我想纠正块大小。是否可以在不关闭矿池的情况下更改块大小?我只是想知道这些是否是要执行的正确命令。我可以不问就尝试,但魔鬼从不睡觉……
zpool detach data ada1
zpool labelclear ada1
zpool attach data ada1
这是正确的做法吗?
更新-我尝试过的事情:
可以使用“zpool remove”删除 ada1,然后清除并再次添加。但“zpool remove”不支持 raidz vdevs。
“zpool replace --f ada1” 可用于强制重建 ada1,就像它是一个新的设备一样,但 zpool 不允许(甚至不是强制的)对已经是活动设备一部分的设备执行此操作
我相信我可以通过以下方式实现这一目标:
- 关闭系统
- 删除 ada1 并彻底清除其上的数据
- 放回 ada1
- 启动系统
- 然后发出“zpool replace data ada1”
这能行吗?但只有在完全关闭计算机后才行。:-(
答案1
我认为您正在寻找的命令是zpool offline
这样的:
zpool offline data ada1
zpool labelclear ada1
zpool replace data ada1 ada1
最后一个replace
可能不适用于指定第一个ada1
。如果不起作用,请使用zpool list
或zdb
获取磁盘 GUID。请参阅https://askubuntu.com/questions/305830/replacing-a-dead-disk-in-a-zpool