16.04.2012 18:30, Vadim S. Goncharov пишет:
Hi,
Имеется машинка версии
FreeBSD 8.2-STABLE #3 r223566: Mon Jun 27 17:37:04 MSD 2011 amd64
и LSI MegagovnoRAID о 12 дисках на борту, с которыми ничего не
делаается, просто отдаются системе, а на них уже собран raidz2 (на
оном живет всё, окромя / на флешке).
Жила она себе не очень хорошо почти два года, пока ейный своп в файле
на zfs в ночь на 1 апреля не пошутил в лог про indefinite wait buffer,
после чего у машинки отсох весь юзерленд (стала отвечать только на
пинги да открытые сокеты, и только). После резета оказалось, что один
из дисков приказал долго жить, был заказан новый, он пришел, был
заменен (машине висеть понравилось, и она до тех пор делала это еще
несколько раз), пока не выяснилась новая беда.
Оказалось, нумерация дисков сбилась, и случилось два одинаковых
устройства mfid5:
backup:~# zpool status
pool: backup0
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://www.sun.com/msg/ZFS-8000-2Q
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
backup0 DEGRADED 0 0 0
raidz2 DEGRADED 0 0 0
mfid0 ONLINE 0 0 0
mfid1 ONLINE 0 0 0
mfid10 ONLINE 0 0 0
mfid7 ONLINE 0 0 0
mfid9 ONLINE 0 0 0
mfid2 ONLINE 0 0 0
mfid3 ONLINE 0 0 0
mfid4 ONLINE 0 0 0
mfid5 UNAVAIL 0 0 0 cannot open
mfid5 ONLINE 0 0 0
mfid8 ONLINE 0 0 0
mfid6 ONLINE 0 0 0
errors: No known data errors
Причем ребуты, которые с 1 апреля случались несколько раз, это не
лечили. С железной стороны свежий диск выглядел как mfid11, но что с
этим дублированием имен делать, было непонятно - не утащит ли оно еще
один диск. Просто zpool attach backup0 mfid11 работать отказался,
радостно заявив, что это не зеркало.
Рискнули, и попробовали имя сказать. Оно прожевало, но картина
получилась странноватая:
backup# zpool replace backup0 mfid5 mfid11
backup# zpool status
pool: backup0
state: DEGRADED
status: The pool is formatted using an older on-disk format. The pool
can
still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'. Once this is done, the
pool will no longer be accessible on older software versions.
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
backup0 DEGRADED 0 0 0
raidz2 DEGRADED 0 0 0
mfid0 ONLINE 0 0 0
mfid1 ONLINE 0 0 0
mfid10 ONLINE 0 0 0
mfid7 ONLINE 0 0 0
mfid9 ONLINE 0 0 0
mfid2 ONLINE 0 0 0
mfid3 ONLINE 0 0 0
mfid4 ONLINE 0 0 0
replacing UNAVAIL 0 0 0
mfid5 UNAVAIL 0 0 0 cannot open
mfid11 ONLINE 0 0 0
mfid5 ONLINE 0 0 0
mfid8 ONLINE 0 0 0
mfid6 ONLINE 0 0 0
errors: No known data errors
Ничего про resilvering оно не пишет. Судя по gstat, запись на mfid11
идёт, и сравнительно активно, однако не на 100%, а вовсе даже 31%
максимум. Видим такую картину:
backup# zpool iostat
capacity operations bandwidth
pool used avail read write read write
------------- ----- ----- ----- ----- ----- -----
backup0 3.40T 7.47T 83 238 1.87M 2.25M
raidz2 3.40T 7.47T 83 238 1.87M 2.25M
mfid0 - - 31 50 863K 231K
mfid1 - - 32 50 887K 231K
mfid10 - - 30 51 895K 233K
mfid7 - - 32 51 887K 231K
mfid9 - - 33 50 906K 230K
mfid2 - - 33 51 904K 232K
mfid3 - - 33 50 900K 231K
mfid4 - - 32 50 875K 231K
replacing - - 0 294 0 456K
mfid5 - - 0 0 0 0
mfid11 - - 0 223 359 456K
mfid5 - - 30 51 844K 231K
mfid8 - - 31 50 877K 231K
mfid6 - - 31 51 871K 232K
------------- ----- ----- ----- ----- ----- -----
На resilvering это как-то было совсем не похоже, по темпам записи.
Возникло предположение, что оно постоянно пытается читать с мертвого
mfid5 и обламывается, а имеющая запись идет от новых данных (на пул
постоянно пишет flow-capture), а не от восстановления старых. Так что
через некоторое время была попытка этот марлезонский балет прекратить,
на что пул отреагировал возвратом как бы в исходное состояние:
backup:~# zpool detach backup0 mfid11
backup:~# zpool status
pool: backup0
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://www.sun.com/msg/ZFS-8000-2Q
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
backup0 DEGRADED 0 0 0
raidz2 DEGRADED 0 0 0
mfid0 ONLINE 0 0 0
mfid1 ONLINE 0 0 0
mfid10 ONLINE 0 0 0
mfid7 ONLINE 0 0 0
mfid9 ONLINE 0 0 0
mfid2 ONLINE 0 0 0
mfid3 ONLINE 0 0 0
mfid4 ONLINE 0 0 0
mfid5 UNAVAIL 0 0 0 cannot open
mfid5 ONLINE 0 0 0
mfid8 ONLINE 0 0 0
mfid6 ONLINE 0 0 0
errors: No known data errors
Когда-то был похожий случай с одинаковыми устройствами.
я сделал (если использовать Ваш случай):
zpool replace zpoolname mfid5 mfid5
и все пошло пучком.
Попробуйте удалить всю разметку на новом диске (dd), чтоб он стал mfid5,
и проделайте замену, zpool replace zpoolname mfid5 mfid5