Учитывая raidz1 vdev на FreeBSD 10 с такой конфигурацией:
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 не позволяет этого (даже не принудительно) для устройства, которое уже является частью активного
Я считаю, что смогу добиться этого следующим образом:
Может это сработать? Но только после полного выключения компьютера. :-(
Я думаю, что вам нужна команда 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