Как zfs raidz-2 восстанавливается после отказа трех дисков?

Как zfs raidz-2 восстанавливается после отказа трех дисков?

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

zpool status
  pool: san
 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://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

errors: No known data errors 

Как это возможно, что нет ошибок в данных и весь пул не подвержен сбоям?

На одном диске sdfпроизошел сбой теста smartctl на SMART read fail, на других — немного меньшая проблема: неисправимые/ожидающие исправления сектора или ошибки UDMA CRC.

Я пробовал по одному отключать и снова включать каждый неисправный диск, но это не помогло.

    $ zpool status
  pool: san
 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://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  OFFLINE      0     0    63
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

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

    $ zpool status
  pool: san
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Tue Jan 21 17:33:15 2020
        467G scanned out of 8.91T at 174M/s, 14h10m to go
        77.6G resilvered, 5.12% done
config:

        NAME                                              STATE     READ WRITE CKSUM
        san                                               DEGRADED     0     0     0
          raidz2-0                                        DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346      ONLINE       0     0     0
            replacing-1                                   DEGRADED     0     0     0
              ata-ST2000DM001-9YN164_W1E07E0G             OFFLINE      0     0    38
              ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0  (resilvering)
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332      DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                     ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344      ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                        DEGRADED     0     0    75  too many errors

Пересев завершился успешно.

$ zpool status
  pool: san
 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://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 1.48T in 12h5m with 0 errors on Wed Jan 22 05:38:48 2020
config:

        NAME                                            STATE     READ WRITE CKSUM
        san                                             DEGRADED     0     0     0
          raidz2-0                                      DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346    ONLINE       0     0     0
            ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332    DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                   ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344    ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                      DEGRADED     0     0    75  too many errors

Я сейчас на распутье. Обычно я ddобнуляю первые 2 МБ неисправного диска и заменяю его им же, что меня вполне устраивает, однако если данные действительно отсутствуют, мне могут понадобиться эти два последних тома для восстановления.

У меня это sdfсейчас на столе, снято. Я чувствую, что могу, в худшем случае, использовать это, чтобы помочь восстановлению.

В то же время, я думаю, что сейчас я удалю/обнулю первые пару МБ неисправного диска и заменю их им самим, и я думаю, что все должно заработать, проверю и повторю для второго неисправного диска, пока у меня не появятся какие-нибудь замены.

Вопрос Что случилось, как пул смог удержаться на плаву, или, может быть, я упускаю какие-то данные (сомнительно, учитывая целостность zfs и ее отчетов)

Может ли это быть следствием удачного порядка отказов, например, отказал не верхний диск стека?

Вопрос Это просто FYI, и не относится к теме. Что вызвало сбой всех 3 одновременно? Я думаю, что катализатором был скраб. Я проверил накануне вечером, и все диски были в сети.

Обратите внимание, что в недавнем прошлом были проблемы с кабелями, в офисе по ночам становилось холодно, но эти проблемы были просто drive unavailable, в отличие от ошибок контрольной суммы. Я думаю, что это не кабели, а, может быть, старые диски, которым 5 лет. Но 3 сбоя за один день? Да ладно, этого достаточно, чтобы напугать многих из нас!

решение1

RAID-Z2 — двойная четность, избыточность, аналогичная RAID 6. Два диска могут полностью выйти из строя, и данные будут восстановлены из четности. Предполагая, что остальная часть массива исправна.

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

Запустите команду «zpool status -x», чтобы определить, в каком пуле возникли ошибки.

Найдите устройство с ненулевым количеством ошибок READ, WRITE или CKSUM. Это означает, что устройство столкнулось с ошибкой чтения/вывода, ошибкой записи/вывода или ошибкой проверки контрольной суммы. Поскольку устройство является частью зеркала или устройства RAID-Z, ZFS смогла восстановиться после ошибки и впоследствии восстановить поврежденные данные.

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

Относительно состояния диска:

может быть, стареющие диски, которым 5 лет. Но 3 отказа за один день? Да ладно, этого достаточно, чтобы напугать многих из нас!

Резервное копирование восстановления важных данных сейчас. С другого носителя, не из этого массива.

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

Связанный контент