Настройка rsync в TrueNAS: Пошаговое руководство для резервного копирования | AdminWiki

TrueNAS rsync: Полное руководство по настройке и использованию

18 января 2026 8 мин. чтения #nas #rsync #truenas #настройка truenas #резервное копирование #синхронизация
Содержание статьи

Представь, что твой TrueNAS сервер — это центральное хранилище критически важных данных. Фотографии, документы, проекты, базы данных. Теперь представь, что происходит сбой диска или, что хуже, пожар в серверной. Все данные потеряны. Именно для предотвращения таких сценариев существует rsync — мощный инструмент для синхронизации и резервного копирования. В этой статье я, как Senior DevOps, покажу тебе, как правильно настроить rsync в TrueNAS, чтобы твои данные были в безопасности.

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

Rsync (remote synchronization) — это утилита командной строки для эффективной передачи и синхронизации файлов между системами. Её главные преимущества:

  • Инкрементное копирование — передаются только измененные части файлов
  • Поддержка сжатия — экономия трафика при передаче по сети
  • Сохранение прав доступа — метаданные файлов не теряются
  • Возобновление передачи — можно продолжить с места прерывания
В контексте TrueNAS, rsync используется для создания распределенных систем хранения, репликации данных между офисами, автоматического резервного копирования на удаленные серверы и синхронизации между несколькими NAS системами.

Подготовка к настройке rsync в TrueNAS

Прежде чем мы перейдем к непосредственной настройке, давай подготовим нашу систему. Тебе понадобится:

1. Настройка пользователей и прав доступа

Для безопасной работы rsync создадим отдельного пользователя:

bash
# В веб-интерфейсе TrueNAS:
# 1. Перейди в Credentials → Local Users
# 2. Нажми "Add"
# 3. Заполни поля:
#    - Full Name: rsync_user
#    - Username: rsync_user
#    - Password: [надежный пароль]
#    - Home Directory: /nonexistent
# 4. В группе "Auxiliary Groups" добавь "wheel"
# 5. Сохрани изменения

2. Создание общего ресурса для rsync

Создадим dataset, который будем синхронизировать:

bash
# В веб-интерфейсе TrueNAS:
# 1. Storage → Pools
# 2. Выбери пул и нажми "Add Dataset"
# 3. Укажи имя: rsync_backup
# 4. В ACL Type выбери "POSIX"
# 5. Настрой права доступа:
#    - Owner: rsync_user
#    - Owner Group: rsync_user
#    - Mode: 750

Настройка rsync сервера в TrueNAS

Теперь настроим TrueNAS в качестве rsync сервера, чтобы другие системы могли подключаться к нему.

Шаг 1: Включение rsync сервиса

config
# В веб-интерфейсе TrueNAS:
# 1. Services → Rsync
# 2. Нажми кнопку "Configure"
# 3. Настрой параметры:
#    - Port: 873 (стандартный порт rsync)
#    - Auxiliary Parameters: --verbose --log-file=/var/log/rsync.log
# 4. Включи сервис (переключи тумблер в ON)

Шаг 2: Настройка модулей rsync

Модули — это каталоги, которые будут доступны для синхронизации. Создадим конфигурационный файл:

config
# Создай файл /etc/rsyncd.conf
# В веб-интерфейсе TrueNAS:
# 1. System → Advanced → Init/Shutdown Scripts
# 2. Нажми "Add"
# 3. Заполни:
#    - Type: Command
#    - Command: echo '[backup]\npath = /mnt/pool/rsync_backup\ncomment = Backup Directory\nread only = no\nlist = yes\nauth users = rsync_user\nsecrets file = /etc/rsyncd.secrets' > /etc/rsyncd.conf
#    - When: Post Init

Шаг 3: Настройка аутентификации

bash
# Создай файл с паролями:
# 1. Создай файл /etc/rsyncd.secrets
# 2. Добавь строку: rsync_user:StrongPassword123
# 3. Установи правильные права:
chmod 600 /etc/rsyncd.secrets
chown root:wheel /etc/rsyncd.secrets
НИКОГДА не храни пароли в открытом виде! Файл /etc/rsyncd.secrets должен быть доступен только для чтения владельцу (root).

Создание задач rsync в TrueNAS

TrueNAS предоставляет удобный интерфейс для создания автоматических задач синхронизации.

Настройка задачи резервного копирования

config
# В веб-интерфейсе TrueNAS:
# 1. Tasks → Rsync Tasks
# 2. Нажми "Add"
# 3. Заполни параметры:
#    - Path: /mnt/pool/important_data
#    - Remote Host: backup.server.com
#    - Remote Module Name: backup
#    - Direction: Push
#    - Schedule: 0 2 * * * (ежедневно в 2:00)
#    - User: rsync_user
#    - Additional Options: -avz --delete --progress

Расширенные параметры rsync

Вот таблица наиболее полезных параметров rsync:

Параметр Описание Пример
-a, --archive Режим архива (сохраняет всё) -a
-v, --verbose Подробный вывод -v
-z, --compress Сжатие при передаче -z
--delete Удалять лишние файлы на приемнике --delete
--progress Показывать прогресс --progress
--bwlimit Ограничение скорости (KB/s) --bwlimit=1000

Практические примеры использования

Пример 1: Ежедневное резервное копирование на удаленный сервер

bash
#!/bin/bash
# Скрипт для ручного запуска rsync
# Сохрани как /root/scripts/backup.sh

REMOTE_USER="rsync_user"
REMOTE_HOST="backup.example.com"
REMOTE_MODULE="nas_backup"
LOCAL_PATH="/mnt/pool/documents"
LOG_FILE="/var/log/rsync_backup.log"

echo "$(date): Starting backup" >> $LOG_FILE

rsync -avz --delete --progress \
  --password-file=/etc/rsync_password \
  $LOCAL_PATH \
  ${REMOTE_USER}@${REMOTE_HOST}::${REMOTE_MODULE} \
  >> $LOG_FILE 2>&1

if [ $? -eq 0 ]; then
    echo "$(date): Backup completed successfully" >> $LOG_FILE
else
    echo "$(date): Backup FAILED!" >> $LOG_FILE
fi

Пример 2: Синхронизация между двумя TrueNAS серверами

config
# Настройка на сервере-источнике (TrueNAS A):
# 1. Tasks → Rsync Tasks → Add
# 2. Параметры:
#    - Path: /mnt/pool/shared_data
#    - Remote Host: 192.168.1.100 (TrueNAS B)
#    - Remote Module Name: replica
#    - Direction: Push
#    - Schedule: */30 * * * * (каждые 30 минут)
#    - Additional Options: -av --partial --timeout=300

Мониторинг и отладка

После настройки важно убедиться, что всё работает правильно.

Проверка статуса rsync сервиса

bash
# Проверь, работает ли rsync сервер
netstat -tlnp | grep 873

# Посмотри логи rsync
tail -f /var/log/rsync.log

# Проверь выполнение задач
cat /var/log/cron.log | grep rsync

Тестовое подключение к rsync серверу

bash
# С другого сервера проверь доступность
rsync rsync://rsync_user@truenas_ip/

# Если требуется пароль, используй:
RSYNC_PASSWORD="your_password" rsync rsync://rsync_user@truenas_ip/
Для автоматизации ввода пароля создай файл /etc/rsync_password с паролем внутри и установи права 600. Затем используй параметр --password-file=/etc/rsync_password в команде rsync.

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

Для больших объемов данных используй эти настройки:

bash
# Оптимизированная команда для больших файлов
rsync -av --progress --stats \
  --bwlimit=50000 \
  --partial \
  --timeout=600 \
  --exclude='*.tmp' \
  --exclude='.Trash-*' \
  /source/path/ \
  user@remote::module/

Безопасность при использовании rsync

  • Используй SSH туннель вместо прямого доступа к порту 873
  • Ограничь доступ по IP в настройках брандмауэра TrueNAS
  • Регулярно меняй пароли в /etc/rsyncd.secrets
  • Используй read-only модули для резервных копий
  • Веди журнал аудита всех операций синхронизации

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

Как проверить, что задача rsync выполняется по расписанию?

Перейди в Tasks → Rsync Tasks и посмотри столбец "Last Run". Также проверь логи в /var/log/cron.log. Для детальной отладки добавь параметр --verbose в Additional Options задачи.

Можно ли использовать rsync через SSH вместо rsync демона?

Да, это даже более безопасный вариант. В настройках задачи выбери "SSH" вместо "Rsync Module" и укажи SSH ключ в Credentials → SSH Keypairs.

Как восстановить данные из резервной копии rsync?

Используй обратное направление (Pull вместо Push) или выполни команду вручную:

bash
rsync -av user@remote::module/path/to/backup /local/restore/path

Почему rsync работает медленно?

Возможные причины и решения:

  • Слишком много мелких файлов — используй tar для архивации
  • Сетевое ограничение — проверь --bwlimit и качество сети
  • Дисковая подсистема — проверь нагрузку на диски
  • Параметры сжатия -z могут замедлять на быстрых сетях

Как исключить определенные файлы из синхронизации?

bash
# Создай файл /root/rsync_exclude.txt
*.tmp
.DS_Store
*.log
cache/
temp/

# И используй в задаче:
--exclude-from=/root/rsync_exclude.txt

Заключение

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

Ключевые моменты, которые нужно запомнить:

  1. Всегда используй отдельного пользователя для rsync
  2. Настрой правильные права доступа к файлам и каталогам
  3. Тестируй задачи на небольших объемах данных перед полным развертыванием
  4. Регулярно проверяй логи и статус выполнения задач
  5. Имей план восстановления данных и периодически его тестируй

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

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