Удалить ошибки контрольной суммы ZFS?

Удалить ошибки контрольной суммы ZFS?

TLDR; В моем зеркальном пуле ZFS есть ошибки контрольной суммы. Я заменил контроллер, думая, что это наиболее вероятная причина, но ошибки не исчезают. Очистка пула временно сбрасывает их, но они возвращаются при следующем запуске очистки. Как мне очистить их навсегда?

Полная история: У меня уже некоторое время работает ZFS mirror-0 на Ubuntu 20.04.2 LTS. Когда один из дисков сломался, я воспользовался этим, чтобы заменить оба диска на более крупные, а также добавил карту SATA-III PCI для новых дисков (старые были подключены к встроенному контроллеру SATA II, так как у меня не было больше доступных портов SATA III). После нескольких недель работы на новых дисках и контроллере ZFS пожаловалась на ошибки контрольной суммы на обоих новых дисках, и в результате массив перешел в «деградированное» состояние.

Некоторые исследования привели меня к выводу, что поскольку оба диска показывали одинаковое количество ошибок контрольной суммы, проблема была гораздо более вероятной в контроллере, чем в самих дисках. Поэтому я вытащил новый контроллер и пока установил диски обратно на встроенный контроллер SATA II, намереваясь заменить плату контроллера, как только удостоверюсь, что проблема именно в этом. Затем я удалил два файла, которые zpool status -vотображались как имеющие постоянные ошибки, выполнил команду zpool clear dataдля сброса ошибок и запустил очистку.

К сожалению, после очистки ошибки появились снова, только теперь a -vбольше не отображал файл, а только адрес (inode, я полагаю), предположительно для одного из файлов, которые я удалил ранее. Я попробовал снова, с тем же результатом. Каждый раз, когда я запускаю очистку, он возвращается со следующим результатом:

root@watchman:~# zpool status -v
  pool: data
 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://zfsonlinux.org/msg/ZFS-8000-8A
  scan: scrub repaired 16K in 0 days 09:10:20 with 1 errors on Sat Jul 24 15:48:21 2021
config:

    NAME                                 STATE     READ WRITE CKSUM
    data                                 DEGRADED     0     0     0
      mirror-0                           DEGRADED     0     0     0
        ata-ST8000VE000-2P6101_WSD1M5NW  DEGRADED     0     0    15  too many errors
        ata-ST8000VE000-2P6101_WSD1HEJX  DEGRADED     0     0    15  too many errors

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

        data:<0x380508>

Насколько я могу судить, это та же проблема, которая уже существовала, предположительно, из-за плохого контроллера, но я не могу ее устранить. Как мне восстановить зеркало до полностью работоспособного состояния?

ОБНОВЛЕНИЕ: Я наконец отказался от идеи очистить ошибки и вместо этого начал заново. Я создал новый пул, украв один из дисков из существующего зеркала. Затем я запустил , rsyncчтобы скопировать все данные из старого пула в новый. Это привело к нескольким ошибкам (zfs не лгал об ошибках данных), но ничего значительного или тревожного, и исключение ошибочных файлов позволило rsync успешно завершиться. Затем я добавил второй диск в новый пул, и после восстановления все теперь выглядит хорошо, а очистка на новом пуле завершилась без ошибок.

Так что, если все будет хорошо в течение следующей недели или около того, я думаю, можно с уверенностью предположить, что причиной проблемы была карта SATA III, и заменить ее на более качественную марку/вариант :)

решение1

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

zpool status <poolname>

введите описание изображения здесь

Чтобы исправить это и убрать ошибки, я запускаю:

zpool clear <poolname>

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