TrueNAS Snapshots - как создавать, управлять и восстанавливать снимки | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

TrueNAS Snapshots: Полное руководство по созданию, управлению и восстановлению

02 марта 2026 5 мин. чтения #devops #snapshots #storage #truenas #zfs #восстановление данных #резервное копирование
Ментор говорит: Представь, что снимки (snapshots) — это моментальные фотографии твоей файловой системы. Они занимают минимум места, но позволяют откатиться к любому моменту времени. Давай разберем, как этим пользоваться в TrueNAS.

Что такое снимки ZFS и зачем они нужны

Снимки (snapshots) в TrueNAS — это не просто резервные копии файлов. Это копии метаданных файловой системы ZFS на конкретный момент времени. Они работают по принципу copy-on-write: когда ты изменяешь файл, система сохраняет оригинальные блоки данных, а не перезаписывает их.

Ключевые преимущества снимков TrueNAS:

  • Мгновенное создание — снимок делается за секунды
  • Экономия места — хранятся только изменения
  • Восстановление файлов — можно откатить отдельные файлы или весь dataset
  • Автоматизация — настраиваются по расписанию через задачи (Tasks)
  • Клонирование — создание работающих копий из снимков

Создание снимков через веб-интерфейс TrueNAS

Самый простой способ создать моментальный снимок — через графический интерфейс. Давай пройдем по шагам:

Шаги создания snapshot
1. Откройте Storage → Snapshots
2. Нажмите "ADD" в правом верхнем углу
3. Выберите dataset или zvol из выпадающего списка
4. Укажите имя снимка (можно добавить дату)
5. Нажмите "SUBMIT"
Важно: Имена снимков должны быть уникальными в пределах одного dataset. Рекомендую использовать формат: dataset_name@YYYY-MM-DD_HH-MM

Автоматизация снимков через задачи (Tasks)

Ручное создание snapshots — не наш метод. Настроим автоматические снимки по расписанию:

Настройка периодических снимков
1. Перейдите в Tasks → Periodic Snapshot Tasks
2. Нажмите "ADD"
3. Настройте параметры:
   - Dataset: выбери целевой dataset
   - Schedule: настрой расписание (ежечасно, ежедневно и т.д.)
   - Lifetime: сколько хранить снимок (например, 2 недели)
   - Naming Schema: автоматическое именование

Работа со снимками через командную строку

Как Senior DevOps, ты должен уметь работать через CLI. Вот основные команды для управления снимками:

bash
# Создание снимка
zfs snapshot pool/dataset@snapshot_name

# Просмотр всех снимков
zfs list -t snapshot

# Удаление снимка
zfs destroy pool/dataset@snapshot_name

# Клонирование снимка в новый dataset
zfs clone pool/dataset@snapshot_name pool/new_dataset

# Восстановление dataset из снимка
zfs rollback pool/dataset@snapshot_name
Осторожно с rollback: Откат к предыдущему снимку удалит все изменения, сделанные после создания этого снимка. Для безопасного восстановления отдельных файлов используй клонирование.

Восстановление данных из снимков

Есть несколько способов восстановления данных. Выбирай подходящий для твоей ситуации:

Метод Когда использовать Команда/Действие
Восстановление файлов через .zfs Нужно вернуть несколько файлов Скопировать из /.zfs/snapshot/snapshot_name/
Клонирование снимка Тестирование или безопасное восстановление zfs clone pool/dataset@snapshot pool/clone
Полный откат (rollback) Серьезные повреждения системы zfs rollback pool/dataset@snapshot

Практические примеры и сценарии

Пример 1: Защита от ransomware

Настрой частые снимки с долгим сроком хранения:

config
Периодичность: Каждый час
Хранение: 30 дней
Имя: auto-%Y-%m-%d_%H-%M
Рекурсивно: Да (включая все дочерние datasets)

Пример 2: Снимки перед обновлением ПО

Создай ручной снимок перед критическими изменениями:

bash
# Перед обновлением TrueNAS
zfs snapshot pool/system@before-update-$(date +%Y%m%d)

# Если что-то пошло не так
zfs rollback pool/system@before-update-20231215

Оптимизация и лучшие практики

  • Используй рекурсивные снимки для консистентности связанных datasets
  • Настрой квоты чтобы снимки не заполнили весь пул
  • Экспортируй снимки на другой сервер для дополнительной защиты
  • Мониторь использование пространства командой zfs list -o space
  • Тестируй восстановление регулярно — снимки бесполезны, если ты не умеешь их использовать

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

Как удалить старые снимки?

Через веб-интерфейс: Storage → Snapshots → выбери снимки → Delete. Через CLI: zfs destroy pool/dataset@old_snapshot

Можно ли перемещать снимки между системами?

Да, через команду zfs send и zfs receive. Это основа репликации данных между серверами.

Снимки влияют на производительность?

Минимально. Создание — почти мгновенно. Чтение из снимков может быть немного медленнее при большом количестве изменений.

Как восстановить удаленный файл через .zfs?

Включи отображение скрытой папки .zfs в настройках SMB/NFS, или подключись по SSH и скопируй файл: cp /.zfs/snapshot/snapshot_name/path/to/file ./

Итог от Ментора: Снимки TrueNAS — твой лучший друг в борьбе с потерями данных. Настрой автоматическое создание, регулярно проверяй их работоспособность и помни: однажды настроенная система снимков спасет тебя от многих часов восстановления. Начни с простого ежедневного снапшота и постепенно усложняй стратегию.
Поделиться:
Сохранить гайд? В закладки браузера