Scrub TrueNAS: Как настроить и запустить проверку ZFS | Руководство | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Scrub в TrueNAS: Полное руководство по проверке и восстановлению данных ZFS

01 марта 2026 7 мин. чтения #data integrity #devops #scrub #storage #sysadmin #truenas #zfs

Представь, что твои данные на сервере TrueNAS — это библиотека редких книг. Со временем страницы могут выцветать, чернила — тускнеть. Scrub в TrueNAS — это систематическая инвентаризация, которая находит такие «дефекты» и автоматически восстанавливает их из резервных копий (зеркал или parity данных). Давай разберем, как правильно настроить этот критически важный процесс для поддержания целостности данных в ZFS.

Что такое Scrub и зачем он нужен в TrueNAS?

Scrub (от англ. «скрабирование», «чистка») — это процесс проверки всех данных в пуле ZFS на наличие тихих повреждений (silent corruption). Это ошибки, которые не обнаруживаются при обычных операциях чтения/записи, но накапливаются со временем из-за:

  • Сбоев контроллера дисков или памяти (bit rot)
  • Физического износа носителей (HDD/SSD)
  • Проблем с кабелями или питанием

ZFS при scrub читает ВСЕ данные в пуле, вычисляет контрольные суммы и сравнивает их с эталонными. При несовпадении система автоматически восстанавливает корректный блок из зеркальной копии или данных четности (RAID-Z).

Важно: Scrub не заменяет резервное копирование! Он исправляет ошибки ВНУТРИ пула, но не защитит от удаления файлов, сбоя всего пула или физического уничтожения сервера.

Настройка расписания Scrub в веб-интерфейсе TrueNAS

TrueNAS по умолчанию настраивает scrub раз в неделю, но давай сделаем это осознанно. Идеальное расписание зависит от нагрузки и размера пула.

Шаг 1: Переход в настройки пула

В веб-интерфейсе TrueNAS:

  1. Открой Storage → Pools
  2. Найди нужный пул и нажми кнопку (три точки)
  3. Выбери Scrub Tasks

Шаг 2: Создание или редактирование задачи

Нажми ADD или редактируй существующую задачу. Критичные параметры:

Параметр Рекомендация Описание
Pool Выбери целевой пул Пул для проверки
Schedule 0 0 * * 0 (каждое воскресенье в 00:00) Cron-формат. Для больших пулов — раз в 2 недели
Threshold days 35 Предупреждение, если scrub не запускался N дней
Description Weekly scrub for data-pool Человекочитаемое описание
Внимание: Scrub создает нагрузку на диски! Не планируй его на часы пиковой нагрузки. Для production-систем лучше запускать в выходные.

Ручной запуск Scrub через CLI и мониторинг

Иногда нужно запустить проверку вне расписания — после замены диска, сбоя питания или по требованию аудита.

Запуск через Shell (SSH или консоль)

bash
# Просмотр всех пулов
zpool list

# Запуск scrub для конкретного пула
zpool scrub data-pool

# Проверка статуса выполнения
zpool status data-pool

Мониторинг прогресса

Во время выполнения команда zpool status покажет:

bash
  pool: data-pool
 state: ONLINE
  scan: scrub in progress since Mon Oct 16 10:00:00 2023
        12.4T scanned at 1.2G/s, 4.1T issued at 450M/s
        0 repaired, 33.05% done, 03:12:15 to go

Ключевые метрики:

  • scanned — сколько данных проверено
  • repaired — количество восстановленных ошибок (вот что нас больше всего интересует!)
  • % done — прогресс выполнения
  • to go — ориентировочное время до завершения

Оптимизация производительности Scrub

Scrub может серьезно нагружать систему. Вот как управлять его аппетитами:

Ограничение скорости (throttling)

bash
# Временное ограничение скорости scrub (например, 500MB/s)
zfs set scrub_limit=500000000 data-pool

# После завершения scrub — сбросить ограничение
zfs inherit scrub_limit data-pool

Приоритизация вручную

bash
# Приостановка scrub (если нужно срочно обслуживание)
zpool scrub -p data-pool

# Возобновление приостановленного scrub
zpool scrub data-pool

TrueNAS Scale (на базе Linux) также позволяет использовать ionice и nice для управления приоритетом ввода-вывода.

Анализ результатов и устранение ошибок

После завершения scrub проверь отчет. Вот как интерпретировать результаты:

bash
zpool status -v data-pool

Возможные сценарии:

  • 0 errors — идеально. Система здорова.
  • Несколько исправленных ошибок — нормально. ZFS сделал свою работу.
  • Много ошибок или неисправимые ошибки — тревожный знак. Проверь диски SMART-статусом.
Критично: Если в отчете есть "permanent errors" — это данные, которые НЕВОЗМОЖНО восстановить из-за недостаточной избыточности (например, все копии повреждены). Немедленно проверь резервные копии!

Часто задаваемые вопросы (FAQ)

Как часто нужно запускать scrub?

Рекомендация от разработчиков ZFS — раз в неделю для SSD и раз в месяц для HDD. Но практика показывает: для домашних NAS достаточно раз в 2 недели, для корпоративных систем с высокой нагрузкой — еженедельно. Главное правило: scrub должен завершаться до следующего запуска.

Scrub повреждает SSD из-за износа?

Миф. Современные SSD имеют ресурс в сотни TBW (терабайт записи). Типичный scrub читает данные, а не записывает (кроме исправлений). Износ от scrub пренебрежимо мал compared to пользе от обнаружения ошибок.

Можно ли отменить запущенный scrub?

Да, но не рекомендуется. Отмена через zpool scrub -s pool приведет к тому, что следующий scrub начнет сначала. Лучше приостановить (-p) на время обслуживания.

Почему scrub такой медленный?

Скорость зависит от: 1) Самого медленного диска в пуле 2) Загрузки системы другими задачами 3) Настройки ограничений. RAID-Z2/Z3 медленнее mirror из-за вычисления четности. Скорость 100-500 MB/s — норма для HDD.

Нужен ли scrub для пула из одного диска?

Да, но с важной оговоркой: scrub обнаружит ошибки, но НЕ СМОЖЕТ их исправить (нет избыточности). Для single-disk пулов резервные копии критически важны.

Заключение: Best Practices

Давай резюмируем профессиональный подход к scrub в TrueNAS:

  1. Настрой расписание — автоматизируй, чтобы не забыть. Используй 0 0 * * 0 (воскресенье полночь) как отправную точку.
  2. Мониторь результаты — настрой уведомления в TrueNAS на ошибки scrub. Проверяй отчеты после каждого выполнения.
  3. Оптимизируй нагрузку — если scrub мешает работе, ограничь скорость или перенеси на менее загруженное время.
  4. Реагируй на ошибки — даже одна исправленная ошибка — повод проверить SMART дисков. Много ошибок — сигнал к замене диска.
  5. Не отключай scrub — это не «опциональная фича», а фундаментальный механизм целостности ZFS.
Итог: Scrub в TrueNAS — это как регулярный техосмотр автомобиля. Он не гарантирует, что ничего никогда не сломается, но вовремя обнаруживает износ тормозных колодок (битые сектора) до того, как ты полетишь с горы. Настрой его один раз — и спи спокойно, пока ZFS заботится о твоих данных.
Поделиться:
Сохранить гайд? В закладки браузера