Страница 1 из 2
ZFS + Hotspare
Добавлено: 2009-11-26 19:17:03
Alex_hha
У кого нибудь работает автоматическая замена hotspare при вылете одного из винтов в пуле?
Код: Выделить всё
# zpool status
pool: storage
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://www.sun.com/msg/ZFS-8000-9P
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
storage DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
da0 OFFLINE 0 188 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
spares
da3 AVAIL
errors: No known data errors
из описания hotspare, da3 автоматом должен заменить da0 и должен начаться ребилд массива, но этого не происходит.
Re: ZFS + Hotspare
Добавлено: 2009-11-26 19:32:40
angelas_
А что говорит эта команда?
Кстати, по умолчанию этот параметр установлен в off.
Вот тут есть немного инфы:
http://docs.sun.com/app/docs/doc/817-2271/gfifk?a=view

Re: ZFS + Hotspare
Добавлено: 2009-11-26 19:51:52
Alex_hha
Про этот параметр знаю, он включен.
Код: Выделить всё
# zpool get autoreplace storage
NAME PROPERTY VALUE SOURCE
storage autoreplace on local
Re: ZFS + Hotspare
Добавлено: 2009-11-26 20:46:00
angelas_
Тогда действительно странно. Надо будет и мне поиграться на работе завтра с этим.
Re: ZFS + Hotspare
Добавлено: 2009-11-27 0:47:26
Alex_hha
Делал на виртуалке, FreeBSD 8.0-RELEASE. Отпишись о результатах
Re: ZFS + Hotspare
Добавлено: 2009-11-30 12:38:38
Alex_hha
Может это связанно с тем, что диск в hotspare никак не размечен? Например на линухе, если использовать mdadm и такую же связку, raid 5 (3 диска) + 1 hotspare, то автоматическое добавление диска в массив и его ребилд начинается, после команд
# sfdisk -d /dev/da1 | sfdisk /dev/da3
Кстати, а есть ли аналог этой команды под фряху?
Re: ZFS + Hotspare
Добавлено: 2009-11-30 20:52:19
angelas_
Alex_hha писал(а):Может это связанно с тем, что диск в hotspare никак не размечен? Например на линухе, если использовать mdadm и такую же связку, raid 5 (3 диска) + 1 hotspare, то автоматическое добавление диска в массив и его ребилд начинается, после команд
# sfdisk -d /dev/da1 | sfdisk /dev/da3
Кстати, а есть ли аналог этой команды под фряху?
Под фряху есть тот же самый fdisk, на семёрке ещё есть gpt, gpart, на восьмёрке gpart (gpt убрали).
Под фряху официально на GEOM классах реализация 5 рейда есть только в gvinum. A graid5 только неофициальные есть (2 или 3 реализации). Я правда ни gvinum, ни graid5 не использовал, так что немогу сказать. Посмотрел graid3, там нету такой возможности как hot-spare.
У меня тут есть 3 проприетарных сервачка. База - линукс, конечно переделанный. Там это всё дело реализованно на LSI GPT контроллере с кучей подключённых внешных стораджей на 12 хардов каждый. Так там стоит LVM поверх mdadm. Ну так там сколько бывало что диск вылетал - автоматом подцеплялся hot-spare диск.
Re: ZFS + Hotspare
Добавлено: 2009-11-30 21:06:43
angelas_
Alex_hha писал(а):Делал на виртуалке, FreeBSD 8.0-RELEASE. Отпишись о результатах
Ну вот, попробовал. Только я думаю это немного не то. Вот что получилось:
Контроллер HP P400 SATA/SAS, полностью хардверный рейд, т.е. ОС не может видеть напрямую диск. Первые 2 диска SATA по 250 гигов каждый в хардверном рейде в зеркале (da0). Остальные 10 дисков по 2TB, сконфигурированные каждый отдельно под свой рейд 0 уровня. В итоге имеем 10 дисков по 2TB (da1-da10):
Код: Выделить всё
mercury:~# camcontrol devlist
<COMPAQ RAID 1 VOLUME OK> at scbus0 target 0 lun 0 (pass0,da0)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 1 lun 0 (pass1,da1)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 2 lun 0 (pass2,da2)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 3 lun 0 (pass3,da3)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 4 lun 0 (pass4,da4)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 5 lun 0 (pass5,da5)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 6 lun 0 (pass6,da6)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 7 lun 0 (pass7,da7)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 8 lun 0 (pass8,da8)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 9 lun 0 (pass9,da9)
<COMPAQ RAID 0 VOLUME OK> at scbus0 target 10 lun 0 (pass10,da10)
mercury:~#
Вытаскиваем диск. Контроллер грязно выругался:
Код: Выделить всё
Nov 30 18:25:11 mercury kernel: ciss0: *** Hot-plug drive removed, Port=1I Box=1 Bay=10
Nov 30 18:25:11 mercury kernel: ciss0: *** Physical drive failure, Port=1I Box=1 Bay=10
Nov 30 18:25:11 mercury kernel: ciss0: *** State change, logical drive 8
Nov 30 18:25:11 mercury kernel: ciss0: logical drive 8 (da8) changed status OK->failed, spare status 0x0
Nov 30 18:25:11 mercury kernel: (da8:ciss0:0:8:0): lost device
Nov 30 18:25:11 mercury kernel: (da8:ciss0:0:8:0): removing device entry
Ну и конечно пул:
Код: Выделить всё
angelas@mercury:~> zpool status
pool: storage
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://www.sun.com/msg/ZFS-8000-9P
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
storage DEGRADED 0 0 0
raidz1 ONLINE 0 0 0
label/disk03 ONLINE 0 0 0
label/disk04 ONLINE 0 0 0
label/disk05 ONLINE 0 0 0
label/disk06 ONLINE 0 0 0
label/disk07 ONLINE 0 0 0
raidz1 DEGRADED 0 0 0
label/disk08 ONLINE 0 0 0
label/disk09 ONLINE 0 0 0
label/disk10 REMOVED 0 30 0
label/disk11 ONLINE 0 0 0
label/disk12 ONLINE 0 0 0
errors: No known data errors
angelas@mercury:~>
Вставляем диск обратно. Сканируем:
Код: Выделить всё
mercury:~# camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
mercury:~#
Контроллер подтвердил, что увидел:
Код: Выделить всё
Nov 30 18:28:57 mercury kernel: ciss0: *** Hot-plug drive inserted, Port=1I Box=1 Bay=10
Nov 30 18:28:57 mercury kernel: ciss0: *** Media exchanged detected, logical drive 8
Nov 30 18:28:57 mercury kernel: ciss0: logical drive 8 () media exchanged, ready to go online
Nov 30 18:28:57 mercury kernel: ciss0: *** State change, logical drive 8
Nov 30 18:28:57 mercury kernel: ciss0: logical drive 8 (probe8) changed status failed->OK, spare status 0x0
Nov 30 18:28:57 mercury kernel: da8 at ciss0 bus 0 scbus0 target 8 lun 0
Nov 30 18:28:57 mercury kernel: da8: <COMPAQ RAID 0 VOLUME OK> Fixed Direct Access SCSI-5 device
Nov 30 18:28:57 mercury kernel: da8: 135.168MB/s transfers
Nov 30 18:28:57 mercury kernel: da8: Command Queueing enabled
Nov 30 18:28:57 mercury kernel: da8: 1907697MB (3906963632 512 byte sectors: 255H 32S/T 65535C)
Ну и смотрим пул:
Код: Выделить всё
mercury:~# zpool status
pool: storage
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://www.sun.com/msg/ZFS-8000-9P
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
storage DEGRADED 0 0 0
raidz1 ONLINE 0 0 0
label/disk03 ONLINE 0 0 0
label/disk04 ONLINE 0 0 0
label/disk05 ONLINE 0 0 0
label/disk06 ONLINE 0 0 0
label/disk07 ONLINE 0 0 0
raidz1 DEGRADED 0 0 0
label/disk08 ONLINE 0 0 0
label/disk09 ONLINE 0 0 0
label/disk10 REMOVED 0 93 0
label/disk11 ONLINE 0 0 0
label/disk12 ONLINE 0 0 0
errors: No known data errors
mercury:~#
Ну и после чистки пула он сделал ресильвер:
Код: Выделить всё
mercury:~# zpool clear storage
mercury:~# zpool status
pool: storage
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Mon Nov 30 18:32:49 2009
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1 ONLINE 0 0 0
label/disk03 ONLINE 0 0 0
label/disk04 ONLINE 0 0 0
label/disk05 ONLINE 0 0 0
label/disk06 ONLINE 0 0 0
label/disk07 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
label/disk08 ONLINE 0 0 0 7.50K resilvered
label/disk09 ONLINE 0 0 0 8.50K resilvered
label/disk10 ONLINE 0 0 0 8.50K resilvered
label/disk11 ONLINE 0 0 0 7.50K resilvered
label/disk12 ONLINE 0 0 0 7K resilvered
errors: No known data errors
mercury:~#
Только как я уже говорил, это не совсем то. Надо попробовать с md дисками поиграться.

Re: ZFS + Hotspare
Добавлено: 2009-11-30 21:55:44
angelas_
Поигрался я с файлами. Как только делаешь
сразу выпадает в осадок... Пробуем по другому

Re: ZFS + Hotspare
Добавлено: 2009-11-30 22:37:53
angelas_
Ну вот, ещё один эксперимент.
Имеем 7 фаилов по 100МБ каждый:
Код: Выделить всё
mercury:/dsk# ls -la
total 717364
drwxr-xr-x 2 root wheel 512 Nov 30 19:58 .
drwxr-xr-x 20 root wheel 512 Nov 30 19:58 ..
-rw-r--r-- 1 root wheel 104857600 Nov 30 19:52 disk0
-rw-r--r-- 1 root wheel 104857600 Nov 30 19:52 disk1
-rw-r--r-- 1 root wheel 104857600 Nov 30 19:52 disk2
-rw-r--r-- 1 root wheel 104857600 Nov 30 19:52 disk3
-rw-r--r-- 1 root wheel 104857600 Nov 30 19:52 disk4
-rw-r--r-- 1 root wheel 104857600 Nov 30 19:52 disk5
-rw-r--r-- 1 root wheel 104857600 Nov 30 20:52 disk6
mercury:/dsk#
На этот раз делаю с md девайсами, так как напрямую с файлами выпадает в осадок. Хотя в интернете нашёл примеры, вроде должно работать.
Код: Выделить всё
mercury:/dsk# mdconfig -a -f /dsk/disk0 -u 0
mercury:/dsk# mdconfig -a -f /dsk/disk1 -u 1
mercury:/dsk# mdconfig -a -f /dsk/disk2 -u 2
mercury:/dsk# mdconfig -a -f /dsk/disk3 -u 3
mercury:/dsk# mdconfig -a -f /dsk/disk4 -u 4
mercury:/dsk# mdconfig -a -f /dsk/disk5 -u 5
mercury:/dsk# mdconfig -a -f /dsk/disk6 -u 6
mercury:/dsk# mdconfig -l
md0 md1 md2 md3 md4 md5 md6
mercury:/dsk# ls -la /dev/md*
crw-r----- 1 root operator 0, 145 Nov 30 19:59 /dev/md0
crw-r----- 1 root operator 0, 146 Nov 30 19:59 /dev/md1
crw-r----- 1 root operator 0, 147 Nov 30 19:59 /dev/md2
crw-r----- 1 root operator 0, 149 Nov 30 20:00 /dev/md3
crw-r----- 1 root operator 0, 150 Nov 30 20:00 /dev/md4
crw-r----- 1 root operator 0, 151 Nov 30 20:00 /dev/md5
crw-r----- 1 root operator 0, 152 Nov 30 20:00 /dev/md6
crw------- 1 root wheel 0, 78 Nov 30 19:52 /dev/mdctl
mercury:/dsk#
Ну и соответственно пул:
Код: Выделить всё
mercury:/dsk# zpool create test2 raidz /dev/md0 /dev/md1 /dev/md2 /dev/md3 /dev/md4 spare /dev/md5
mercury:/dsk# zpool status test2
pool: test2
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
test2 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
md0 ONLINE 0 0 0
md1 ONLINE 0 0 0
md2 ONLINE 0 0 0
md3 ONLINE 0 0 0
md4 ONLINE 0 0 0
spares
md5 AVAIL
errors: No known data errors
mercury:/dsk#
Проверяем autoreplace:
Код: Выделить всё
mercury:/dsk# zpool get autoreplace test2
NAME PROPERTY VALUE SOURCE
test2 autoreplace on local
mercury:/dsk#
Выключаем один диск:
Код: Выделить всё
mercury:/dsk# zpool offline test2 md4
mercury:/dsk# zpool status test2
pool: test2
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://www.sun.com/msg/ZFS-8000-9P
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
test2 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
md0 ONLINE 0 0 0
md1 ONLINE 0 0 0
md2 ONLINE 0 0 0
md3 ONLINE 0 0 0
md4 OFFLINE 0 35 0
spares
md5 AVAIL
errors: No known data errors
mercury:/dsk#
Запускаем:
Ну и вот что имеем:
Код: Выделить всё
mercury:/dsk# zpool status test2
pool: test2
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://www.sun.com/msg/ZFS-8000-9P
scrub: resilver completed after 0h0m with 0 errors on Mon Nov 30 20:32:05 2009
config:
NAME STATE READ WRITE CKSUM
test2 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
md0 ONLINE 0 0 0 15.5K resilvered
md1 ONLINE 0 0 0 15.5K resilvered
md2 ONLINE 0 0 0 14.5K resilvered
md3 ONLINE 0 0 0 16K resilvered
spare DEGRADED 0 0 0
md4 OFFLINE 0 168 0
md5 ONLINE 0 0 0 25.5K resilvered
spares
md5 INUSE currently in use
errors: No known data errors
mercury:/dsk#
Заменяем 4 диск на 6:
Код: Выделить всё
mercury:/dsk# zpool replace test2 md4 md6
mercury:/dsk#
Ну и имеем:
Код: Выделить всё
mercury:/dsk# zpool status test2
pool: test2
state: ONLINE
scrub: resilver completed after 0h0m with 0 errors on Mon Nov 30 20:34:03 2009
config:
NAME STATE READ WRITE CKSUM
test2 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
md0 ONLINE 0 0 0 19K resilvered
md1 ONLINE 0 0 0 17.5K resilvered
md2 ONLINE 0 0 0 17K resilvered
md3 ONLINE 0 0 0 18K resilvered
md6 ONLINE 0 0 0 29K resilvered
spares
md5 AVAIL
errors: No known data errors
mercury:/dsk#
Диск заменен, всё работает. Но, после того, как диск вылетает, нужно запустить:
Вроде даже в солярке так же, по крайней мере вот здесь так написанно:
http://blogs.sun.com/eschrock/entry/zfs_hot_spares
Ну вроде как получается не совсем 100% hot-spare. Вот даже открыт PR по этому поводу:
http://www.freebsd.org/cgi/query-pr.cgi ... 1&cat=kern
Вот, такие пороги, с катятами...

Re: ZFS + Hotspare
Добавлено: 2009-12-01 12:03:08
Alex_hha
И эта хваленная ZFS, мда уж

Re: ZFS + Hotspare
Добавлено: 2009-12-01 12:22:27
Alex_hha
Под фряху официально на GEOM классах реализация 5 рейда есть только в gvinum
а raid6 где то есть?
Re: ZFS + Hotspare
Добавлено: 2009-12-01 14:06:42
angelas_
Alex_hha писал(а):а raid6 где то есть?
По-моему только ZFS.
В версии 18 появился ещё raidz3, это для совсем параноиков и мазохистов. Но, мож кому и прогодится

Re: ZFS + Hotspare
Добавлено: 2009-12-01 14:08:03
angelas_
Alex_hha писал(а):И эта хваленная ZFS, мда уж

Ну, ничего не поделаешь. Нету идеальных вещей на этом свете. Мож когда и поправят

Re: ZFS + Hotspare
Добавлено: 2009-12-01 14:09:11
angelas_
Надо будет как нибудь залезть на блог создателей ZFS и спросить.

Re: ZFS + Hotspare
Добавлено: 2009-12-01 16:06:51
Alex Keda
если я правильно понимаю логику, то несложно написать скрипт, который будет выполнять эти действия и положить его в /usr/local/etc/periodic/daily
Re: ZFS + Hotspare
Добавлено: 2009-12-01 16:11:44
Alex_hha
Надо будет как нибудь залезть на блог создателей ZFS и спросить.
Лис уже спросил, правда на сайте freebsd
если я правильно понимаю логику, то несложно написать скрипт, который будет выполнять эти действия и положить его в /usr/local/etc/periodic/daily
Да это все понятно, просто удивляет, что такая важная фича и не работает. Ведь на то он и hotspare, чтобы подключаться автоматом, когда диск умер, например ночью.
Re: ZFS + Hotspare
Добавлено: 2009-12-01 17:02:55
Alex Keda
ну, видать разрабы занимаются
как доделают - будет.
=======
нету у меня таких конфигураций - иначе мона было бы костыль этот в периодик написать и попросить чтоб закоммитили.
Re: ZFS + Hotspare
Добавлено: 2009-12-01 17:44:21
angelas_
Alex_hha писал(а):Лис уже спросил, правда на сайте freebsd
А можно ткнуть пальцем? Не видел этого вроде....

Re: ZFS + Hotspare
Добавлено: 2009-12-01 17:46:02
angelas_
ZFS + Hotspare
Добавлено: 2016-07-11 9:13:45
dekloper
Alex Keda писал(а): ну, видать разрабы занимаются
как доделают - будет.
100 лет уж прошло, а нихрена похоже не будет - колеса по-прежнему гнутые и телега не едет..
==
но, судя по соляровым
докам - оно работает..
ключевой момент - это
фма-агент - потому и колеса гнутые во фряхе..
Automatic replacement – When a fault is detected, an FMA agent examines the pool to determine if it has any available hot spares. If so, it replaces the faulted device with an available spare.
ZFS + Hotspare
Добавлено: 2016-07-11 9:35:50
Neus
странное решение с внешней службой.
как будто менеджер пула сам бы не смог это мониторить и реплейсить.
ZFS + Hotspare
Добавлено: 2016-07-11 9:35:50
Neus
странное решение с внешней службой.
как будто менеджер пула сам бы не смог это мониторить и реплейсить.
ZFS + Hotspare
Добавлено: 2016-07-11 9:41:11
dekloper
Neus писал(а): странное решение с внешней службой.
таки придется чето ее заменяющее накарябать..
Alex Keda писал(а): если я правильно понимаю логику, то несложно написать скрипт, который будет выполнять эти действия и положить его в /usr/local/etc/periodic/daily
ZFS + Hotspare
Добавлено: 2016-07-11 10:47:43
Neus
можно smartd заюзать
Отправлено спустя 3 минуты 27 секунд:
мля.. какого хрена сообщения дублируются?