TLDR;
Мой зеркальный пул ZFS получил некоторые ошибки контрольной суммы. Я заменил контроллер, думая, что это наиболее вероятная причина, но ошибки не исчезли. Очистка пула временно сбрасывает их, но они возвращаются при следующем запуске очистки. Как я могу очистить их навсегда?
Полная история:
У меня было настроено зеркало ZFS-0 и некоторое время работало на Ubuntu 20.04.2 LTS. Когда один из дисков умер, я воспользовался невозможностью заменить оба диска на более крупные, а также добавил PCI-карту SATA-III для новых дисков (старые были подключены к встроенному контроллеру SATA II). , так как у меня больше не было доступных портов SATA III). После работы на новых дисках и контроллере в течение нескольких недель ZFS пожаловалась на ошибки контрольной суммы на обоих новых дисках и в результате перевела массив в «ухудшенное» состояние.
Некоторые исследования привели меня к выводу, что, поскольку оба диска показывали одинаковое количество ошибок контрольной суммы, скорее всего проблема была связана с контроллером, а не с самими дисками. Поэтому я вытащил новый контроллер и на данный момент вернул диски на встроенный контроллер SATA II, намереваясь заменить карту контроллера, как только выясню, что проблема в этом. Затем я удалил два файла, которые статус пула -v
показал наличие постоянных ошибок, выдал zpool очистить данные
сбросить ошибки и запустить скраб.
К сожалению, после очистки ошибки снова появились, только теперь -v
больше не показывал файл, а только адрес (кажется, inode), предположительно для одного из файлов, которые я удалил ранее. Я попробовал еще раз, с тем же результатом. Каждый раз, когда я запускаю скраб, он возвращается со следующим результатом:
root@watchman:~# статус zpool -v
пул: данные
состояние: ДЕГРАДАЦИЯ
статус: На одном или нескольких устройствах произошла ошибка, в результате чего данные
коррупция. Приложения могут быть затронуты.
Действие: Восстановите рассматриваемый файл, если это возможно. В противном случае восстановить
весь пул из резервной копии.
см.: http://zfsonlinux.org/msg/ZFS-8000-8A
сканирование: скраб восстановил 16K за 0 дней 09:10:20 с 1 ошибкой в субботу, 24 июля, 15:48:21 2021
конфигурация:
ИМЯ СОСТОЯНИЕ ЧТЕНИЕ ЗАПИСЬ CKSUM
данные УНИЧТОЖЕНЫ 0 0 0
зеркало-0 ДЕГРАДАЦИЯ 0 0 0
ata-ST8000VE000-2P6101_WSD1M5NW DEGRADED 0 0 15 слишком много ошибок
ata-ST8000VE000-2P6101_WSD1HEJX DEGRADED 0 0 15 слишком много ошибок
ошибки: Обнаружены постоянные ошибки в следующих файлах:
данные: <0x380508>
Насколько я могу судить, это точно такая же проблема, которая уже существовала, предположительно, из-за плохого контроллера, но я не могу ее устранить. Как я могу вернуть свое зеркало в полностью рабочее состояние?
ОБНОВЛЕНИЕ: я, наконец, отказался от идеи сбросить ошибки и вместо этого начал все сначала. Я создал новый пул, украв один из дисков из существующего зеркала. Затем я запустил rsync
скопировать все данные из старого пула в новый. Это действительно привело к нескольким ошибкам (zfs не лгал об ошибках данных), но ничего существенного или тревожного, и исключение файлов с ошибками позволило успешно завершить rsync. Затем я добавил второй диск в новый пул, и после восстановления все теперь выглядит хорошо, а очистка нового пула завершена без ошибок.
Поэтому, если предположить, что в течение следующей недели или около того все будет выглядеть хорошо, я думаю, можно с уверенностью предположить, что причиной проблемы была карта SATA III, и заменить ее на лучшую марку / вариант :)