ZFS vdevs накапливает ошибки контрольной суммы, но отдельные диски не

Я использую производную FreeNAS 9.3 для конкретного производителя.

Мои проблемы начались, когда я установил новое шасси JBOD, чтобы добавить два новых vdevs в мой пул, и у шасси была плохая плата. В течение этого времени я видел ошибки питания SAS на дисках на неисправной плате - мои новые диски эффективно включались и выключались снова и снова, каждую минуту.

Я заменил плату, и теперь, по большей части, диски работают нормально, но ZFS по-прежнему выдает мне очень странные ошибки контрольной суммы при просмотре zpool status, Я думаю, что были некоторые плохие записи CoW, когда у меня были проблемы с питанием SAS.

Первое шасси с ЦП, загрузочным диском, ОЗУ и т. Д. Подключается к первому шасси расширения JBOD через mini-SAS, а второе шасси расширения JBOD последовательно соединяется через первое шасси расширения JBOD, также через мини-SAS.

  • [Шасси 1: загрузочный диск, два твердотельных накопителя L2ARC, диски 11/11 RAIDZ3-0, диски 1/11 RAIDZ3-1] ->mini-SAS для шасси 2
  • [Шасси 2: диски 10/11 RAID Z3-1, диски 6/11 RAID Z3-2] ->mini-SAS для Шасси 3
  • [Шасси 3: диски 5/11 RAIDZ3-2, диски 11/11 RAIDZ3-3]

Ошибки контрольной суммы не точно сопоставляются с каким-либо одним контроллером или шасси, но я догадываюсь, что когда у меня возникали проблемы с питанием, любые данные, которые записывались на разные новые диски, плохо записывались на двух новых vdevs.

У меня HBA на хорошей прошивке LSI - все на 20.00.04.00 или 20.00.08.00

Я поменял местами кабели mini-SAS и попытался использовать разные порты, но безрезультатно.

Выход из zpool status показывает ошибки контрольной суммы, накапливающиеся на двух новых vdevs, а также после очистки, перезагрузки или zpool clear, в конце концов zpool status помечает эти vdevs как ухудшенные. Странно то, что он также помечает некоторые диски, принадлежащие этим vdevs, как поврежденные, но их фактическое количество ошибок для отдельных дисков равно 0. zdb показывает, что отдельные диски помечены как поврежденные, потому что у них слишком много ошибок контрольной суммы, даже при том, что все их ошибки контрольной суммы фактически равны 0. Также странно, что ошибки контрольной суммы на уровне пула показывают меньшее число, чем ошибки контрольной суммы из двух проблем Vdevs добавил вместе.

zpool status -v постоянно показывает постоянную ошибку в снимке, сопоставленном с 0x0 inode, который давно удален, но не может быть очищен несколькими очистками, перезагрузками или zpool clear, Кроме того, другие постоянные ошибки появляются и исчезают, иногда показывая только в виде шестнадцатеричных инодов, а иногда - как часть недавних снимков. Я не могу найти ни одного 0x0 с lsof,

Я полагаю, что метаданные в пуле могут повредить данные.

Я ищу способ хирургическим путем удалить эти фантомные снимки или иным образом вернуть мой пул в исправное состояние, не разрушая мои данные. Я подозреваю, что где-то ZFS выполняет итерацию по этим испорченным фантомным снимкам и вызывает как причудливые ошибки контрольной суммы, так и ухудшенные состояния на vdevs.

У меня есть "холодные" резервные копии LTO для большинства важных данных, но в противном случае, если я не могу восстановить свой пул, я готовлюсь настроить второй сервер, разгрузить все на "горячий" второй сервер, уничтожить мой пул на верхнем уровне, а затем перезагрузите из оперативной резервной копии.

Вот вывод zpool status -v:

[root@Jupiter] ~# zpool status -v
  pool: freenas-boot
 state: ONLINE
status: One or more devices are configured to use a non-native block size.
        Expect reduced performance.
action: Replace affected devices with devices that support the configured block size, or migrate data to a properly configured pool.
  scan: resilvered 944M in 0h17m with 0 errors on Tue Aug  9 11:56:28 2016
config:

    NAME        STATE     READ WRITE CKSUM
    freenas-boot  ONLINE       0     0     0
      mirror-0  ONLINE       0     0     0
        da46p2  ONLINE       0     0     0  block size: 8192B configured, 8388608B native
        da47p2  ONLINE       0     0     0  block size: 8192B configured, 8388608B native

errors: No known data errors

  pool: pool
 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://illumos.org/msg/ZFS-8000-8A
  scan: scrub in progress since Fri Sep  9 22:43:51 2016
        6.27T scanned out of 145T at 1.11G/s, 35h27m to go
        0 repaired, 4.33% done
config:

    NAME                                            STATE     READ WRITE CKSUM
    pool                                            DEGRADED     0     0   118
      raidz3-0                                      ONLINE       0     0     0
        gptid/ac108605-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ac591d4e-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ac92fd0d-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/accd3076-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ad067e97-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ad46cbee-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ad91ba17-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/adcbdd0a-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ae07dc0d-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ae494d10-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
        gptid/ae93a3a5-265c-11e5-9a02-0cc47a599098  ONLINE       0     0     0
      raidz3-1                                      ONLINE       0     0     0
        gptid/12f6a4c5-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/511ea1f9-1932-11e6-9b1e-0cc47a599098  ONLINE       0     0     0
        gptid/14436fcf-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/14f50aa3-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/159b5654-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/163d682b-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/16ee624e-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/1799dde3-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/184c2ea4-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/18f51c30-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
        gptid/19a861ea-c929-11e5-8075-0cc47a599098  ONLINE       0     0     0
      raidz3-2                                      DEGRADED     0     0   236
        gptid/5f80fc42-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/60369e0f-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/60e8234a-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/61a235f2-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/62580471-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/6316a38a-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/63d4bce8-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/ebfc2b99-6893-11e6-9b09-0cc47a599098  ONLINE       0     0     0
        gptid/654f143a-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/66236b33-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/66eda3f6-4e00-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
      raidz3-3                                      DEGRADED     0     0   176
        gptid/c77a9da9-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/c83e100e-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/c8fd9ced-4e02-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/c9bb21ba-4e02-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/ca7a48db-4e02-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/cb422329-4e02-11e6-b7cf-0cc47a599098  DEGRADED     0     0     0  too many errors
        gptid/cbfe4c21-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/ccc43528-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/cd93a34c-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/ce622f51-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
        gptid/cf2591d3-4e02-11e6-b7cf-0cc47a599098  ONLINE       0     0     0
    cache
      gptid/aedd3872-265c-11e5-9a02-0cc47a599098    ONLINE       0     0     0
      gptid/af559c10-265c-11e5-9a02-0cc47a599098    ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        <0x357>:<0x2aef3>
        <0x37b>:<0x397285>
pool/.system@auto-20160720.2300-2d:<0x0>

Через графический интерфейс FreeNAS я попытался скопировать System dataset pool от pool к freenas-boot а затем попытался с помощью zfs destroy удалить pool копия pool/.system и оставив freenas-boot копия не повреждена. Я был в состоянии использовать zfs destroy удалить все внутри pool/.system перечислены в zfs list, но при попытке уничтожить pool/.system с zfs destroy оболочка вернула ошибку: Cannot iterate filesystems: I/O error, Я старался zfs destroy на pool/.system с -f, -r, а также -R флаги, согласно документации Oracle ZFS, безрезультатно.

Я начал еще один скраб. Возможно устранение содержимого pool/.system на pool копия System dataset pool позволит очистить очистить ошибку метаданных с помощью фантомного снимка pool/.system@auto-20160720.2300-2d,

Я задаюсь вопросом, возможно ли перенастроить каждый диск, который отображается как поврежденный, один за другим, так что "плохие" метаданные, на которые нет ссылок, можно отбросить. Я восстановил два диска, но теперь я сталкиваюсь с проблемой, из-за которой восстановление любого дополнительного диска приводит к тому, что другие диски, которые я уже восстановил, снова начинают восстанавливаться одновременно. Я полагаю, что это может быть ошибка ZFS, связанная с периодическими задачами моментальных снимков, и я пошел дальше и удалил свою периодическую задачу моментальных снимков и уничтожил все свои моментальные снимки, но я не решаюсь попытаться восстановить еще один из деградированных дисков из-за страха что все ранее восстановленные диски снова будут восстановлены, оставляя меня без какой-либо избыточности, в конечном итоге до такой степени, что будет обнаружен сбойный пул.

После отключения моих периодических задач по созданию снимков и удаления всех моих снимков я попытался стереть один диск, а затем перенастроить его, но три диска, которые я уже восстановил, снова начали восстанавливаться. Теперь я почти уверен, что у меня будет два разных диска для каждой проблемы RAID-Z3 vdev, которые будут переустанавливаться, поэтому, если я попытаюсь переместить больше дисков, я потеряю избыточность в каждом из проблем vdevs и моем пуле будет вина.

Еще одно странное поведение заключается в том, что проверка zpool status -v фактически увеличивает количество ошибок контрольной суммы пула, но проверка zpool status не. Это почти как если бы -v Сам флаг перебирает любой механизм, вызывающий ошибки контрольной суммы.

Будет использовать zdb -c в моем пуле как-нибудь сможет "исправить" эти ошибки метаданных?

1 ответ

Решение

0x0 и другие шестнадцатеричные числа появляются вместо имен файлов и других объектов, когда метаданные повреждены. Если вы не можете избавиться от него, уничтожив затронутые объекты (я понял, они относятся к снимкам), тогда урон, вероятно, слишком велик, чтобы его можно было исправить. В этом случае я бы восстановил пул из резервной копии, особенно если у вас появляются странные эффекты, такие как появление и исчезновение поврежденных метаданных.

Вы можете прочитать о методах, как избавиться от большинства проблем в руководстве администратора ZFS здесь. Но ZFS также дает вам URL, где искать решения при вводе zpool status,

Другие вопросы по тегам