Короткий ответ

Итог scrub — не «зелёная галка UI», а строка scan: в zpool status tank. repaired на зеркале/RAIDZ значит: избыточность сработала, блок на одном устройстве был плохой. Повторяющийся repaired на том же WWN + SMART → replace. Единичный repaired после кабеля → наблюдение + ещё один scrub. unrepairable / permanent errors → данные потеряны на пуле, только backup. Не offlin'ьте диск «для чистоты» на RAIDZ1 во время разбора.

Сначала интерпретация CKSUM.

Симптомы и как отличить

Типичная картина:

  • TrueNAS письмо «Scrub finished with errors»;
  • repaired 256K in 0 days with 0 errors vs with 3 errors;
  • файлы в permanent errors.
Итог scanДействие
0 repaired, 0 errorsок, это профилактика
repaired > 0, 0 unrepairable, один дискдиск или путь этого диска
repaired на всехRAM/HBA
unrepairablerestore файлов, затем железо
canceledне вердикт, запустите снова

Hardware RAID vd0 scrub ZFS «чинит» один LUN — это не замена члена MegaRAID.

Возможные причины

  1. Плохие сектора, ZFS переписал из parity/mirror.
  2. Кабель, единичные сбои.
  3. RAM: scrub «найдёт» ложные checksum везде.
  4. Диск FAULTED в процессе scrub (too many errors).
  5. Прерванный scrub (reboot) — незавершённая картина.

Диагностика

1. Полный status

zpool status -v tank

Секция scan + список устройств + files with permanent errors.

2. История, если есть

TrueNAS / zpool events / syslog checksum. Ubuntu:

sudo zpool events -v | tail -n 50
journalctl -u zfs-scrub* --no-pager | tail

Не все сборки имеют unit с таким именем — смотрите cron/systemd timer факт.

3. SMART того WWN

smartctl -a /dev/disk/by-id/wwn-0x5000c500example

Pending/Offline vs чистый SMART. См. smartctl.

4. Можно ли ещё жить без replace

Зеркало из двух: после repaired избыточность была использована. Второй отказ = потеря. RAIDZ2 с одним больным — запас есть, но не повод откладывать на квартал.

Решение

Сценарий A. Один диск, repaired, SMART media / повтор scrub снова repaired

Замена по процедуре ZFS:

zpool replace tank /dev/disk/by-id/wwn-OLD /dev/disk/by-id/wwn-NEW
zpool status tank

TrueNAS UI Storage → Pool → replace — тот же смысл, выбирайте disk id.

Сценарий B. Единичный repaired, CRC кабель, SMART ок

Замена кабеля, zpool clear tank после, повторный scrub через 24–72 ч. Если 0 — диск оставьте под наблюдением.

Сценарий C. Unrepairable files

Скопируйте список путей. Restore из backup на место. Не zfs rollback «на всякий», пока не знаете, что снимок старше повреждения и не убьёт новые данные.

Сценарий D. Диск FAULTED mid-scrub

Не выдёргивайте остальные. Верните/replace FAULTED. Resilver. Новый scrub после ONLINE.

Сценарий E. RAM подозревается

Не меняйте 12 дисков. memtest, ECC DIMM. Scrub после замены RAM.

Лог TrueNAS часто пишет errors на любое ненулевое repaired. Для replace важна повторяемость на том же GUID. Один repaired после грозы и нули дальше — кабель или питание. Три scrub подряд repaired на одном WWN — диск, даже если SMART ещё PASSED: ZFS видит то, что SMART ещё не вынес в Pending.

Unrepairable на файле в каталоге снимков означает повреждение и в истории. Restore из внешнего backup, не rollback на этот snap: rollback не вылечит битый блок внутри снимка.

Если scrub canceled по reboot, итог неверен. Запустите снова и дождитесь строки scan без canceled. Только тогда вердикт replace.

Как проверить, что проблема устранена

Новый scrub: 0 errors, 0 repaired (или repaired только на уже заменённом старом, которого нет). zpool status все ONLINE. Permanent errors пусто. Приложение открывает восстановленные файлы. Resilver completed если был replace.

Если не помогло

  • Каждый scrub repaired на новом диске в том же слоте — backplane.
  • TrueNAS «errors» но CLI 0: старый алерт, clear после проверки.
  • RAIDZ checksum + hardware RAID под ним: выкиньте RAID, это не лечится очередным scrub.
  • Не хватает места для replace (необычно, но snapshot+full): сначала ёмкость.

Профилактика

  • Scrub по расписанию (месяц — типичная политика HDD).
  • Алерт на любой repaired != 0.
  • ECC, HBA, UPS.
  • Горячий диск того же размера.
  • Документ WWN ↔ слот.

Связка scrub и SMART: если scrub repaired, а Pending по-прежнему 0, всё равно занесите диск в наблюдение с коротким интервалом. Часто Pending догоняет через сутки. Не закрывайте тикет «repaired, значит здорово» без второго прохода и без записи WWN.

Для пула с несколькими vdev смотрите, не концентрируются ли ошибки на одном mirror pair: это диск или кабель этой пары, не «весь tank проклят». Replace точечный, не полки целиком.

FAQ

Scrub vs resilver?

Scrub читает все блоки ради проверки. Resilver заполняет новый диск после replace. Не заменяйте одно другим.

Нужен ли scrub во время resilver?

Нет, дождитесь resilver.

repaired 1 block раз в год?

Зафиксируйте. Если SMART чистый и повтор 0 — низкий приоритек. Рост — replace.

Можно ли игнорировать unrepairable на iso в ISO-датасете?

Можно не restore ISO, но блок на диске всё равно плохой: железо чините. Файл удалите после копии, чтобы не торчал в status -v.

zpool offline перед replace?

Иногда для выноса диска. На RAIDZ1 offline = degraded без запаса. Следуйте UI TrueNAS/man для вашей топологии, не форуму.