Далее "выключаем один диск на горячую" - ada3 (удалили устройство в virtualbox):
# zpool status pool: zroot state: DEGRADED status: One or more devices has been removed by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scan: resilvered 48K in 0 days 00:00:00 with 0 errors on Tue Dec 10 16:37:18 2019 config:
# ls /dev/ad* /dev/ada0 /dev/ada0p2 /dev/ada2 /dev/ada4 /dev/ada0p1 /dev/ada1 /dev/ada5
Поключили диск обратно (добавили существующий в virtualbox) Он автоматом определился:
# ls /dev/ad* /dev/ada0 /dev/ada0p2 /dev/ada2 /dev/ada4 /dev/ada0p1 /dev/ada1 /dev/ada3 /dev/ada5
Момент по поводу разметки, проще всего ее создать на новом диске по аналогии с каким-либо:
# gpart backup ada2
# gpart backup ada2 | gpart restore -F ada3
Перезагрузимся, диск автоматом станет на место:
# shutdown -r now
# zpool status pool: zroot state: ONLINE status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'. see: http://illumos.org/msg/ZFS-8000-9P scan: resilvered 8K in 0 days 00:00:00 with 0 errors on Tue Dec 10 16:48:40 2019 config:
Теперь некоторые команды, которые могут пригодиться при замене
Допустим диск умер, в корзине есть место, мы вставляем туда новый диск
В виртуалбосе убрали один диск, добавили новый
# zpool status pool: zroot state: DEGRADED status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'. see: http://illumos.org/msg/ZFS-8000-9P scan: resilvered 8K in 0 days 00:00:00 with 0 errors on Tue Dec 10 16:48:40 2019 config:
Если диск умер, можно попробовать перевести его в offline:
# zpool offline zroot ada2
# zpool status pool: zroot state: DEGRADED status: One or more devices has experienced an unrecoverable error. An attempt was made to correct the error. Applications are unaffected. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or replace the device with 'zpool replace'. see: http://illumos.org/msg/ZFS-8000-9P scan: resilvered 8K in 0 days 00:00:00 with 0 errors on Tue Dec 10 16:48:40 2019 config:
Делаем так, если заменяемый диск в автономном режиме:
# zpool replace zroot 7951700637655260405 ada2 Make sure to wait until resilver is done before rebooting.
If you boot from pool 'zroot', you may need to update boot code on newly attached disk 'ada2'.
Assuming you use GPT partitioning and 'ada0' is your new boot disk you may use the following command:
После выхода из строя диска ada0, массив переходит в состояние DEGRADED, система перестаёт загружаться
1. Выключаем машину, вынимаем сбойный диск, заменяем его на новый
2. Если BIOS настроен на загрузку с этого диска, то меняем приоритет загрузки в BIOS
3. И запускаем систему
Теперь, если посмотреть список дисков и разделов, то чётко видно, что ada0 чист:
# ls /dev/ad* ada0 ada1 ada1p1 ada1p2 ada1p3 ada2 ada2p1 ada2p2 ada2p3 ada3 ada3p1 ada3p2 ada3p3 ada4 ada4p1 ada4p2 ada4p3 ada5 ada5p1 ada5p2 ada5p3
# zpool status -v pool: zroot state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://illumos.org/msg/ZFS-8000-2Q scan: resilvered 1,24G in 0h2m with 0 errors on Sat Oct 24 15:52:02 2015 config:
Заставляем систему перечитать диск:
# true > /dev/ada0
Смотрим, что у нас появились gptboot0 и zfs0:
# ls /dev/gpt/ gptboot0 gptboot3 zfs0 zfs3 gptboot1 gptboot4 zfs1 zfs4 gptboot2 gptboot5 zfs2 zfs5
Замена диска в пуле
Смотрим идентификатор выпавшего диска в пуле:
# zpool status pool: zroot state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using 'zpool online'. see: http://illumos.org/msg/ZFS-8000-2Q scan: resilvered 1,24G in 0h2m with 0 errors on Sun Nov 8 21:03:23 2015 config:
Заменяем диск в ZFS командой zpool replace:
# zpool replace -f zroot 10165075366045259399 gpt/zfs0 Make sure to wait until resilver is done before rebooting.
If you boot from pool 'zroot', you may need to update boot code on newly attached disk 'gpt/zfs0'.
Assuming you use GPT partitioning and 'ada0' is your new boot disk you may use the following command:
Выполняем рекомендованную нам команду по установке загрузчика на диск:
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0 bootcode written to da0
Далее командой zpool status смотрим процесс пересборки массива:
# zpool status pool: zroot state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Sun Nov 8 21:50:01 2015 4,11G scanned out of 7,42G at 50,0M/s, 0h1m to go 701M resilvered, 55,33% done config:
По окночанию пересборки эта же команда zpool status, покажет что всё хорошо, все диски и дисковые пулы ONLINE:
# zpool status pool: zroot state: ONLINE scan: resilvered 1,24G in 0h2m with 0 errors on Sun Nov 8 21:52:36 2015 config: