Извините за длинный рассказ, но я полностью запутался.
Я использую FreeNAS-8.0.4-RELEASE-p2-x64 (11367) на коробке с дисками SATA 5x3 ТБ, настроенными как том raidz.
Несколько дней назад консоль выдала мне такое предупреждение:
CRITICAL: The volume raid-5x3 (ZFS) status is DEGRADED
zpool status
дал:
pool: raid-5x3
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://www.sun.com/msg/ZFS-8000-8A
scrub: resilver completed after 3h25m with 7607009 errors on Sun Aug 12 06:26:44 2012
config:
NAME STATE READ WRITE CKSUM
raid-5x3 DEGRADED 0 0 7.29M
raidz1 DEGRADED 0 0 14.7M
ada0p2 ONLINE 0 0 0
10739480653363274060 FAULTED 0 0 0 was /dev/ada1p2
ada2p2 ONLINE 0 0 0
ada3p2 ONLINE 0 0 3 254M resilvered
ada1p2 ONLINE 0 0 0
errors: 7607009 data errors, use '-v' for a list
Я сделал zpool status -v
и получил:
Permanent errors have been detected in the following files:
и он перечислил 2660 файлов (из 50 000 или около того)
плюс такие вещи, как:
raid-5x3/alpha:<0x0>
raid-5x3/alpha:<0xf5ec>
raid-5x3/alpha:<0xf5ea>
Мы выключили сервер, вставили новый диск в дополнение к уже имеющимся пяти.
Пошел в консоль и view disks
, он просто сказал «загрузка» навсегда * не удалось перейти к опции «Заменить»!
Тогда мы получили:
zpool status -v
pool: raid-5x3
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://www.sun.com/msg/ZFS-8000-8A
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
raid-5x3 DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
ada0p2 ONLINE 0 0 0
10739480653363274060 UNAVAIL 0 0 0 was /dev/ada1p2
ada2p2 ONLINE 0 0 0
ada3p2 ONLINE 0 0 0
ada1p2 ONLINE 0 0 0
errors: Permanent errors have been detected in the following files:
raid-5x3/alpha:<0x0>
/mnt/raid-5x3/alpha/staff/Sound FX jw/Sound FX - scary horror/11 DR-EerieAct3-Waterphone..aif
/mnt/raid-5x3/alpha/staff/Wheelhouse Shoots/ROCKY_THE_MUSICAL/ SHOOTS/WESTPORT/Cannon-CARD-B/CONTENTS/CLIPS001/AA0876/AA087601.SIF
... затем 2860 файлов и записи "raid-5x3 / alpha: <....>" ...
camcontrol devlist
:
<ST3000DM001-9YN166 CC4C> at scbus4 target 0 lun 0 (ada0,pass0)
<WDC WD30EZRX-00MMMB0 80.00A80> at scbus4 target 1 lun 0 (aprobe1,pass6,ada4)
<WDC WD30EZRX-00MMMB0 80.00A80> at scbus5 target 0 lun 0 (ada1,pass1)
<ST3000DM001-9YN166 CC4C> at scbus5 target 1 lun 0 (ada2,pass2)
<ASUS DRW-24B1ST a 1.04> at scbus6 target 0 lun 0 (cd0,pass3)
<Hitachi HDS5C3030ALA630 MEAOA580> at scbus7 target 0 lun 0 (ada3,pass4)
< USB Flash Memory 1.00> at scbus8 target 0 lun 0 (da0,pass5)
gpart show
=> 63 7831467 da0 MBR (3.7G)
63 1930257 1 freebsd [active] (943M)
1930320 63 - free - (32K)
1930383 1930257 2 freebsd (943M)
3860640 3024 3 freebsd (1.5M)
3863664 41328 4 freebsd (20M)
3904992 3926538 - free - (1.9G)
=> 0 1930257 da0s1 BSD (943M)
0 16 - free - (8.0K)
16 1930241 1 !0 (943M)
=> 34 5860533101 ada0 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
=> 34 5860533101 ada1 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
=> 34 5860533101 ada2 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
=> 34 5860533101 ada3 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
=> 34 5860533101 ada4 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
glabel status
Name Status Components
ufs/FreeNASs3 N/A da0s3
ufs/FreeNASs4 N/A da0s4
ufs/FreeNASs1a N/A da0s1a
gptid/446dd91d-8f15-11e1-a14c-f46d049aaeca N/A ada4p1
gptid/447999cb-8f15-11e1-a14c-f46d049aaeca N/A ada4p2
Казалось, новый диск подключен неправильно?
Снова подключил и перезагрузил.
Теперь на консоли горит зеленый свет.
Но когда я зашел в «Просмотреть все тома», там просто написано «Загрузка ...»
Затем:
glabel status
Name Status Components
ufs/FreeNASs3 N/A da0s3
ufs/FreeNASs4 N/A da0s4
ufs/FreeNASs1a N/A da0s1a
camcontrol devlist: Код: на scbus0, цель 0, lun 0 (ada0, pass0), на scbus4, цель 0, lun 0 (ada1, pass1), на scbus4, цель 1, lun 0 (ada2, pass2), на scbus5, цель 0, lun 0 (ada3, pass3), scbus5 target 1 lun 0 (ada4, pass4) на scbus6 target 0 lun 0 (cd0, pass5) на scbus7 target 0 lun 0 (ada5, pass6) <USB Flash Memory 1.00> на scbus8 target 0 lun 0 (da0, pass7)
gpart show
=> 63 7831467 da0 MBR (3.7G)
63 1930257 1 freebsd [active] (943M)
1930320 63 - free - (32K)
1930383 1930257 2 freebsd (943M)
3860640 3024 3 freebsd (1.5M)
3863664 41328 4 freebsd (20M)
3904992 3926538 - free - (1.9G)
=> 0 1930257 da0s1 BSD (943M)
0 16 - free - (8.0K)
16 1930241 1 !0 (943M)
=> 34 5860533101 ada1 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
=> 34 5860533101 ada2 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
=> 34 5860533101 ada3 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
=> 34 5860533101 ada4 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
=> 34 5860533101 ada5 GPT (2.7T)
34 94 - free - (47K)
128 4194304 1 freebsd-swap (2.0G)
4194432 5856338703 2 freebsd-zfs (2.7T)
zpool status
:
pool: raid-5x3
state: ONLINE
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://www.sun.com/msg/ZFS-8000-8A
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
raid-5x3 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
ada1p2 ONLINE 0 0 0
ada2p2 ONLINE 0 0 2
ada4p2 ONLINE 0 0 0
ada5p2 ONLINE 0 0 0
ada3p2 ONLINE 0 0 0
errors: 7607009 data errors, use '-v' for a list
В этот момент кто-то на форумах FreeNAS сказал: «Вы облажались, в какой-то момент у вас вышли из строя 2 диска, пока, данные».
Это правда?
Я нажал кнопку «scrub» ... статус zpool показал: «Resilver in progress .... 900h to go» ... это как месяц ... и который продолжал увеличиваться до 30,000 часов ...
Вырезать на: сегодня перепроверили все подключения на всех дисках.
Затем он снова стал обновляться, но намного быстрее.
Несколько файлов, которые ранее считались поврежденными, я произвольно проверил, и теперь они «кажутся» в порядке. (Это означает, что я смог их скопировать и воспроизвести - большая часть наших данных - это видеофайлы.)
Я бы хотел КОПИРОВАТЬ все, для чего у нас нет резервной копии и что не повреждено, на другую машину, а затем обновить ее до RAIDZ2.
Думаю, что случилось, что 2 диска выбиты. Я считаю, что отсек горячей замены у нас некачественный.
Но, опять же, они ДЕЙСТВИТЕЛЬНО оказались связанными, просто ошиблись ... Я не знаю.
Ресильвер завершен за 3,5 часа.
Теперь статус zpool говорит:
pool: raid-5x3
state: ONLINE
scrub: resilver completed after 3h31m with 0 errors on Fri Aug 17 21:46:12 2012
config:
NAME STATE READ WRITE CKSUM
raid-5x3 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
ada1p2 ONLINE 0 0 0
ada2p2 ONLINE 0 0 0 236G resilvered
ada4p2 ONLINE 0 0 0
ada5p2 ONLINE 0 0 0 252G resilvered
ada3p2 ONLINE 0 0 0
errors: No known data errors
Означает ли это, что данные восстановлены ?? «Нет известных ошибок» звучит многообещающе!
Я начал использовать скраб. (Осталось 8 часов.)
У нас нет резервной копии ВСЕХ данных ... поэтому нам нужно выяснить, какие из этих файлов повреждены, а какие можно использовать.
Привод вышел из строя? Если да, то какой? Или он просто оторвался?
Мне нужно заменить один? Два?
В безопасности ли какие-либо наши данные? Если да, то какие файлы?
То же самое произошло со мной, когда я случайно удалил неправильный диск при замене неисправного. Когда я проверил массив, он сказал, что весь vdev вышел из строя с двумя неисправными дисками. После того, как я повторно подключил исправный диск и заменил фактически неисправный диск, пул полностью восстановился без заметного воздействия на файлы, которые изначально были указаны как поврежденные / утерянные / поврежденные.
Насколько я понимаю, когда диск на мгновение раскачивался, он был помечен как неисправный, затем, поскольку один диск действительно вышел из строя, весь массив также был отмечен как неисправный. Затем, как только он был повторно подключен, он сканируется и отображается как часть существующего пула, а затем восстанавливается вместе с остальным. Поскольку 3/4 диска достаточно для жизнеспособных данных, при условии, что данные не слишком сильно изменились, все может восстановиться после замены отказавшего диска.
Ошибки контрольной суммы не являются серьезными ошибками - это исправимые ошибки. Когда возникает ошибка контрольной суммы, ZFS немедленно исправляет ошибку в RAIDZ, это одна из основных причин того, что ZFS такая отличная файловая система. Тем не менее, наличие ошибок контрольной суммы является признаком проблемы. Внимательно следите за дисками, постарайтесь иметь под рукой запасной на случай, если один выйдет из строя. Если вы снова начнете видеть ошибки контрольной суммы, замените диск / кабель, на котором они возникают. Это может быть объединительная плата, может быть разъем, может быть что угодно, все проверьте. Если вас беспокоит весь отсек, замените его.
Отсутствие известных ошибок относится только к текущему состоянию пула, а не к его полной истории. Поскольку диск был заменен, а массив восстановлен, статистика также выглядит очищенной; ошибки контрольной суммы обнуляются. Ранее было две ошибки, и они останутся до тех пор, пока не будут устранены.
Отчетности ZFS можно доверять, поэтому любой из файлов, не указанных в списке поврежденных файлов, подойдет. Как упоминалось в другом ответе, если у вас есть хорошие копии любого из файлов, выполнение выборочной проверки хэшей не повредит. Создание полных резервных копий тоже было бы неплохой идеей. ;)
Я недостаточно использовал zfs, чтобы сказать о целостности данных. Список zpool дал raidz1-0 ОНЛАЙН 0 0 0 c8t1d0p0 ОНЛАЙН 0 0 0 c8t2d0p0 ОНЛАЙН 0 0 0 c8t3d0p0 ОНЛАЙН 0 0 0
smartctl -d sat, 12 -a / dev / rdsk / c8t3d0p0 перечислил определенные атрибуты. -d sat -d ata -d scsi может заставить его работать в зависимости от того, какой у вас тип дисков. посмотрите на частоту необработанных ошибок чтения, количество перемещенных секторов, частоту ошибок поиска, аппаратный ecc и ожидающее перемещение сектора. -t short или -t long вместо -a запустит тест. длительный тест может занять один или несколько часов в зависимости от диска. Seak чтения и аппаратные ошибки не обязательно являются ошибкой. однако, если они продолжают прыгать между списками, они могут быть хорошим индикатором. Также некоторые производители приводов могут потребовать от вас использовать их инструменты для установки привода.
Если бы я был на вашем месте и не был уверен в приводе, я бы получил замену и после проверки его работоспособности, работая с производителем или получив его. Я бы добавил дополнительный диск в качестве горячего резерва, чтобы, если это произойдет снова, у вас был готов и ждал другой диск. z2 тоже неплохая идея, но запаску я бы все же держал в запасе. при таком размере дисков восстановление их занимает много времени, и возможно возникновение второй ошибки.
Что касается поврежденных файлов, если у вас все еще есть оригинал, где-то еще из этих "поврежденных" файлов, сделайте расчет md5, а затем посмотрите, совпадает ли md5 поврежденного файла. это скажет вам, были ли повреждены биты. в противном случае файлы могут быть повреждены незаметно. Достаточно ли ущерба, чтобы стать проблемой, зависит от вас.