zfs更改块大小而不会脱机

在这个configuration下给出一个在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”可以用来强制重buildada1,就像它是一个新的devide一样,但zpool不允许这个(甚至不是强迫)已经是active的一部分的设备

我相信我可以通过以下方式达到这个目的:

  • closures系统
  • 删除ada1并完全擦除数据
  • 放回ada1
  • 启动系统
  • 然后发出“zpoolreplace数据ada1”

这可以工作吗? 但是只有在完全closures电脑之后。 🙁

我认为你正在寻找的命令是zpool offline ,像这样:

 zpool offline data ada1 zpool labelclear ada1 zpool replace data ada1 ada1 

最后的replace可能无法指定第一个ada1 。 如果不是,请使用zpool listzdb来获取磁盘GUID。 见https://askubuntu.com/questions/305830/replacing-a-dead-disk-in-a-zpool