Короткий ответ
Итог 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 errorsvswith 3 errors;- файлы в
permanent errors.
| Итог scan | Действие |
|---|---|
| 0 repaired, 0 errors | ок, это профилактика |
| repaired > 0, 0 unrepairable, один диск | диск или путь этого диска |
| repaired на всех | RAM/HBA |
| unrepairable | restore файлов, затем железо |
| canceled | не вердикт, запустите снова |
Hardware RAID vd0 scrub ZFS «чинит» один LUN — это не замена члена MegaRAID.
Возможные причины
- Плохие сектора, ZFS переписал из parity/mirror.
- Кабель, единичные сбои.
- RAM: scrub «найдёт» ложные checksum везде.
- Диск FAULTED в процессе scrub (too many errors).
- Прерванный 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-0x5000c500examplePending/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 tankTrueNAS 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 для вашей топологии, не форуму.