Назад | Перейти на главную страницу

Замешательство FreeNAS: не уверен, что произошло. raidz1 «УНИЧТОЖЕННЫЙ», диск «НЕИСПРАВНЫЙ»

Извините за длинный рассказ, но я полностью запутался.

Я использую 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 поврежденного файла. это скажет вам, были ли повреждены биты. в противном случае файлы могут быть повреждены незаметно. Достаточно ли ущерба, чтобы стать проблемой, зависит от вас.