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

TrueNAS репликация: полное руководство по настройке и управлению

01 марта 2026 6 мин. чтения #backup #devops #nas #storage #truenas #zfs #репликация

Представь, что твои данные на сервере TrueNAS — это золотой запас компании. Одна ошибка диска, сбой питания или человеческий фактор — и всё может быть потеряно. Репликация в TrueNAS — это не просто бэкап, это создание точной, синхронизированной копии данных в реальном времени или по расписанию. Давай разберем, как настроить эту систему так, чтобы спать спокойно.

Что такое репликация в TrueNAS и зачем она нужна

В основе TrueNAS лежит файловая система ZFS, и её репликация — это не просто копирование файлов. Это создание атомарных, консистентных снимков (snapshots) состояния твоего пула или набора данных (dataset) и их эффективная передача на удалённую систему. В отличие от rsync, ZFS репликация передаёт только изменённые блоки данных, что делает процесс быстрым и экономичным по трафику.

Ключевое преимущество: Репликация на уровне блоков ZFS гарантирует целостность данных. Ты получаешь не просто файлы, а точную копию состояния файловой системы на момент создания снапшота, включая все метаданные, права доступа и даже историю изменений.

Типы репликации в TrueNAS

Перед настройкой важно выбрать стратегию. TrueNAS предлагает несколько подходов:

Тип Как работает Идеально для
Периодическая (Scheduled) Автоматическая отправка снапшотов по расписанию (ежечасно, ежедневно) Регулярное резервное копирование, аварийное восстановление (DR)
Репликация вручную Разовая отправка данных по требованию Миграция данных, первоначальная синхронизация
Репликация в облако Использование облачных провайдеров как цели репликации Географическое распределение, защита от локальных катастроф

Пошаговая настройка репликации между двумя серверами TrueNAS

Давай настроим самый распространённый сценарий: локальный сервер (источник) → удалённый сервер (цель).

Шаг 1: Подготовка целевого сервера (куда копируем)

На удалённом TrueNAS (цели) нужно создать пул или dataset для приёма данных и настроить SSH-ключи.

bash
# На целевом сервере создаём dataset для репликации
zfs create tank/replica_backup

# Устанавливаем правильные права (если нужно)
chown -R user:group /mnt/tank/replica_backup

# Генерируем SSH-ключ для аутентификации (если нет)
ssh-keygen -t ed25519 -f ~/.ssh/truenas_replica

Шаг 2: Настройка SSH-аутентификации на источнике

Копируем публичный ключ с источника на цель для беспарольного доступа.

bash
# На сервере-источнике копируем публичный ключ на цель
ssh-copy-id -i ~/.ssh/truenas_replica.pub user@remote-truenas-ip

# Тестируем подключение
ssh -i ~/.ssh/truenas_replica user@remote-truenas-ip
Важно! В веб-интерфейсе TrueNAS (Система → SSH-ключи) нужно импортировать приватный ключ, который будет использоваться для репликационных задач.

Шаг 3: Создание периодической задачи репликации через веб-интерфейс

Теперь самое интересное — настройка автоматической репликации.

  1. Переходим в Задачи → Репликация и нажимаем Добавить
  2. В разделе Источник выбираем пул/dataset для репликации (например, tank/project_data)
  3. В Периодичность снапшотов выбираем, как часто создавать точки восстановления (например, ежечасно)
  4. В разделе Назначение указываем:
    • Тип: SSH
    • Сервер: IP-адрес целевого TrueNAS
    • Порт SSH: 22 (или кастомный)
    • Путь: tank/replica_backup
    • Пользователь SSH: пользователь с доступом к ZFS
    • Приватный ключ: выбираем импортированный ранее
  5. В Расписание настраиваем, когда запускать репликацию (например, каждый день в 02:00)
  6. Сохраняем задачу

Шаг 4: Мониторинг и проверка

После первой синхронизации проверяем статус репликации.

bash
# На целевом сервере проверяем полученные снапшоты
zfs list -t snapshot -r tank/replica_backup

# Пример вывода
# NAME                                          USED  AVAIL  REFER  MOUNTPOINT
# tank/replica_backup/project_data@auto-2024-01-15-0200  1.2G      -   500G  -
# tank/replica_backup/project_data@auto-2024-01-16-0200   850M      -   501G  -

Расширенные настройки и оптимизация

Компрессия и ограничение трафика

При репликации через медленный канал можно сэкономить трафик:

config
# В задаче репликации используем эти опции:
--compress=gzip           # Сжатие данных перед отправкой
--limit=5000             # Ограничение скорости (КБ/с)
--dedup                  # Отправка только уникальных блоков (если включён дедупликация)

Ретенция снапшотов: политики хранения

Автоматически удаляй старые снапшоты по политикам:

config
# В настройках задачи репликации:
Удерживать снапшоты: 2w     # Хранить 2 недели
Или используй продвинутые правила:
--keep-source=10       # Оставить 10 последних снапшотов на источнике
--keep-target=30       # Оставить 30 снапшотов на цели

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

Всё настроено, но что делать, когда нужно восстановить данные? Есть несколько сценариев:

Полное восстановление пула: Если основной сервер вышел из строя, можно развернуть данные с реплики на новое железо, используя ZFS send/receive в обратном направлении.
bash
# Восстановление конкретного файла из снапшота на цели
# 1. Находим нужный снапшот
zfs list -t snapshot -r tank/replica_backup | grep project_data

# 2. Клонируем снапшот во временный dataset
zfs clone tank/replica_backup/project_data@auto-2024-01-15-0200 tank/temp_restore

# 3. Копируем нужный файл из /mnt/tank/temp_restore
# 4. Удаляем временный клон
zfs destroy tank/temp_restore

Частые проблемы и их решение

Ошибка: "Permission denied (publickey)"

Решение: Проверь:

  • Правильность приватного ключа в веб-интерфейсе TrueNAS
  • Права на файл ключа на источнике (chmod 600 ~/.ssh/truenas_replica)
  • Доступ пользователя SSH к ZFS командам на цели (sudo -u user zfs list)

Репликация работает медленно

Оптимизация:

  • Увеличь размер записи: --blocksize=131072 (128K)
  • Используй параллельные потоки: --parallel=2
  • Проверь сетевую задержку между серверами
  • Рассмотри локальную репликацию для первоначальной синхронизации

Лучшие практики от Senior DevOps

  • 3-2-1 правило: 3 копии данных, на 2 разных носителях, 1 из которых в другом месте. TrueNAS репликация — идеально для "другого места".
  • Тестируй восстановление: Раз в квартал делай тестовое восстановление файлов из реплики. Работоспособность бэкапа подтверждается только успешным восстановлением.
  • Мониторинг: Настрой оповещения о сбоях репликации через email или в систему мониторинга (Prometheus + Grafana).
  • Версионирование: Храни снапшоты с разной гранулярностью: ежечасно — 24 часа, ежедневно — 30 дней, еженедельно — 12 недель.
  • Шифрование: При репликации в облако или через ненадёжные каналы используй опцию --encrypt.
Предупреждение: Репликация — это не замена локальных снапшотов! Всегда держи локальные снапшоты на основном сервере для быстрого отката случайных удалений.

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

Поделиться:
Сохранить гайд? В закладки браузера