TrueNAS Backup: Настройка, стратегии и лучшие практики резервного копирования | AdminWiki

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

19 января 2026 7 мин. чтения #backup #btrfs #cloud sync #nas #rsync #truenas #zfs #резервное копирование #репликация

Представь, что твой TrueNAS сервер — это цифровая крепость с ценными данными. Но даже у крепостей бывают слабые места. Внезапный отказ диска, человеческая ошибка или ransomware-атака могут уничтожить годы работы. Давай разберем, как построить надежную систему резервного копирования, которая защитит твои данные от любых угроз.

Почему стандартного копирования недостаточно?

TrueNAS использует ZFS — файловую систему с встроенными снимками (snapshots) и контрольными суммами. Но снимки — это не бэкапы! Они хранятся на том же пуле и не защищают от физического повреждения оборудования или полного выхода системы из строя.

Важно: Снимки ZFS ≠ Резервные копии. Снимки защищают от случайного удаления, но не от отказа оборудования или катастрофы в дата-центре.

Стратегия 3-2-1 для TrueNAS

Золотой стандарт в мире бэкапов:

  • 3 копии данных (оригинал + 2 бэкапа)
  • 2 разных типа носителей (HDD + облако или лента)
  • 1 копия вне площадки (offsite backup)

Методы резервного копирования в TrueNAS

1. Репликация ZFS (ZFS Replication)

Самый эффективный метод для TrueNAS. Создает точные копии датасетов с сохранением всех свойств ZFS: снимков, компрессии, шифрования.

bash
# Ручная репликация через CLI
zfs snapshot tank/data@backup_$(date +%Y%m%d)
zfs send tank/data@backup_20240115 | ssh backup-server "zfs recv backup-pool/data"

Настройка периодической репликации через GUI:

  1. Перейди в Tasks → Replication Tasks
  2. Нажми ADD
  3. Настрой источник и назначение:
    config
    {
      "source": "tank/data",
      "target": "ssh://user@backup-server/backup-pool/data",
      "schedule": "0 2 * * *",  # Каждый день в 2:00
      "recursive": true,
      "compression": "lz4",
      "encryption": true
    }
  4. Проверь соединение через Test Connection
  5. Запусти пробную репликацию

2. Облачная синхронизация (Cloud Sync)

Идеально для offsite backup. TrueNAS поддерживает все популярные облака:

Провайдер Рекомендация Стоимость (примерно)
Backblaze B2 Лучшее соотношение цена/качество $5/TB в месяц
AWS S3 Glacier Для архивных данных $1/TB в месяц
Google Cloud Для интеграции с экосистемой Google $20/TB в месяц
config
# Пример конфигурации Backblaze B2
cloud_sync_task:
  name: "daily_backup_to_b2"
  direction: "PUSH"
  transfer_mode: "SYNC"
  path: "/mnt/tank/important_data"
  credentials:
    provider: "B2"
    account_id: "YOUR_ACCOUNT_ID"
    application_key: "YOUR_APP_KEY"
  bucket: "your-bucket-name"
  folder: "truenas_backup"
  schedule: "0 3 * * *"  # 3:00 ночи
  encryption: true
  encryption_password: "STRONG_PASSWORD_HERE"
Совет: Всегда включай шифрование перед отправкой в облако. Используй rclone crypt для дополнительной безопасности.

3. Rsync задачи

Классический метод для копирования на другой сервер или внешний диск.

bash
# Пример rsync команды с прогрессом и логированием
rsync -avh --progress --delete \
  --log-file=/var/log/rsync_backup.log \
  /mnt/tank/data/ \
  user@backup-server:/backup/truenas/

Настройка через Tasks → Rsync Tasks:

  • Укажи путь источника (Local Path)
  • Настрой удаленный хост (Remote Host)
  • Выбери режим: Module (если на удаленной стороне rsync daemon) или SSH
  • Настрой расписание (Schedule)
  • Добавь дополнительные параметры:
    config
    -avh --delete --compress --stats

Практический пример: Многоуровневая стратегия

Давай настроим комплексную систему для небольшой компании:

Уровень 1: Быстрое восстановление (локально)

  • Ежечасные снимки ZFS (хранятся 7 дней)
  • Ежедневная репликация на второй пул в том же сервере
  • Восстановление файлов через .zfs/snapshot

Уровень 2: Защита от сбоя оборудования

  • Ежедневная репликация на отдельный сервер TrueNAS в той же локации
  • Использование дифференциальных (incremental) отправок
  • Хранение: 30 ежедневных + 12 месячных снимков

Уровень 3: Offsite защита

  • Еженедельная синхронизация с Backblaze B2
  • Шифрование на стороне клиента (rclone crypt)
  • Хранение: 4 еженедельных + 12 годовых копий

Автоматизация и мониторинг

bash
#!/bin/bash
# Скрипт проверки статуса бэкапов

# Проверка последней успешной репликации
LAST_REPLICATION=$(zfs get -H -o value truenas:last_replication tank/data)

# Проверка облачной синхронизации
if tail -n 50 /var/log/cloud_sync.log | grep -q "Transfer completed"; then
  echo "Cloud backup: OK"
else
  echo "Cloud backup: FAILED" | mail -s "Backup Alert" admin@company.com
fi

# Проверка свободного места
ZPOOL_CAPACITY=$(zpool list -H -o capacity tank | sed 's/%//')
if [ $ZPOOL_CAPACITY -gt 80 ]; then
  echo "Warning: Pool capacity at ${ZPOOL_CAPACITY}%"
fi

Восстановление данных (Disaster Recovery)

Самая важная часть — убедись, что ты можешь восстановить данные:

Восстановление из снимка ZFS:

bash
# Просмотр доступных снимков
zfs list -t snapshot -r tank/data

# Восстановление конкретного файла
cp /tank/data/.zfs/snapshot/daily_2024-01-15/important.doc /восстановление/

# Откат всего датасета к снимку
zfs rollback tank/data@daily_2024-01-15

Восстановление из облака:

bash
# Через rclone (установи через Community Plugins)
rclone sync --progress \
  b2:bucket-name/encrypted_backup/ \
  /mnt/temp/restore/ \
  --b2-account=XXX --b2-key=YYY

# Расшифровка если использовался rclone crypt
rclone cryptdecode remote:encrypted_path SECRET_PASSWORD
Критически важно: Регулярно тестируй восстановление! Раз в квартал восстанавливай случайные файлы из бэкапа и проверяй их целостность.

Частые ошибки и как их избежать

  • Ошибка: Хранение бэкапов на том же физическом диске
    Решение: Всегда используй отдельные физические носители
  • Ошибка: Отсутствие мониторинга
    Решение: Настрой уведомления на почту/Telegram при сбое бэкапа
  • Ошибка: Нет плана ротации
    Решение: Используй политику retention (удалять старые снимки через 30/90/365 дней)
  • Ошибка: Шифрование без управления ключами
    Решение: Храни ключи шифрования отдельно от зашифрованных данных

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

Как часто нужно делать бэкапы?

Зависит от критичности данных. Для бизнеса: ежечасные снимки + ежедневные репликации + еженедельные offsite. Для дома: ежедневные снимки + еженедельные облачные бэкапы.

Можно ли использовать btrfs вместо ZFS для бэкапов?

Технически да, но ZFS лучше интегрирован в TrueNAS. Если у тебя уже есть btrfs на источнике, используй rsync или rclone для копирования.

Как минимизировать стоимость облачного хранения?

1. Используй дедупликацию на уровне ZFS (осторожно с RAM)
2. Настрой компрессию lz4 или zstd
3. Используй холодное хранилище (Glacier, Deep Archive) для архивных данных
4. Исключи временные файлы и кэши из бэкапа

Что делать если репликация ZFS падает по таймауту?

1. Увеличь timeout в настройках репликации
2. Разбей большие датасеты на части
3. Используй --compressed флаг если данные уже сжаты
4. Проверь сетевую стабильность и MTU

Заключение

Настройка резервного копирования в TrueNAS — это не разовая задача, а процесс. Начни с простой репликации на внешний диск, затем добавь второй сервер, и наконец — облачное хранилище. Помни: бэкап без проверки восстановления — это не бэкап.

Ключевые шаги для старта сегодня:

  1. Создай задачу снимков ZFS для критических данных
  2. Настрой репликацию на отдельный диск или сервер
  3. Зарегистрируйся в Backblaze B2 и настрой Cloud Sync
  4. Запланируй тестовое восстановление на следующую неделю
Поделиться:
Сохранить гайд? В закладки браузера