Что такое Syncthing и зачем он нужен на TrueNAS?
Представь, что твой TrueNAS — это не просто хранилище файлов, а активный участник распределенной файловой системы. Syncthing — это open-source инструмент для непрерывной синхронизации файлов между устройствами. В отличие от облачных сервисов, он работает по принципу P2P (peer-to-peer), что означает полный контроль над данными и отсутствие ограничений по объему.
Выбор метода установки: TrueNAS Scale vs TrueNAS Core
| Метод | nTrueNAS Scale | TrueNAS Core | Рекомендация |
|---|---|---|---|
| Docker/Кубернетес | ✅ Нативно (Apps) | ❌ Нет поддержки | Лучший вариант для Scale |
| Jail (FreeBSD) | ❌ Не применимо | ✅ Нативно | Стандарт для Core |
| Виртуальная машина | ✅ Через VM | ✅ Через VM | Универсально, но ресурсоемко |
Установка Syncthing на TrueNAS Scale через Apps
Давай разберем самый популярный и эффективный метод для TrueNAS Scale — установку через встроенный каталог приложений.
Шаг 1: Подготовка хранилища
Сначала создадим dataset для хранения данных Syncthing:
# Путь к хранилищу (пример)
/storage/apps/syncthing
/storage/apps/syncthing/config
/storage/apps/syncthing/data
Шаг 2: Установка из каталога Apps
- Зайди в раздел "Apps"
- Нажми "Discover Apps"
- Найди "syncthing" в поиске
- Нажми "Install"
Шаг 3: Конфигурация приложения
Настрой основные параметры в мастере установки:
# Пример конфигурации в Values (дополнительные настройки)
env:
- name: PUID
value: "568" # UID пользователя apps
- name: PGID
value: "568" # GID группы apps
storage:
config:
mountPath: /config
datasetName: apps/syncthing/config
data:
mountPath: /data
datasetName: apps/syncthing/data
network:
webui:
port: 8384
type: NodePort
Настройка Syncthing после установки
Первоначальная настройка веб-интерфейса
- Открой веб-интерфейс по адресу: http://truenas-ip:8384
- Создай пароль администратора (Settings → GUI)
- Включи HTTPS для безопасности (опционально)
- Настрой параметры обнаружения устройств
Конфигурация папок для синхронизации
Давай создадим первую папку для синхронизации с твоим рабочим компьютером:
// Пример структуры папки в конфиге Syncthing
{
"id": "work-documents",
"label": "Work Documents",
"path": "/data/work",
"type": "sendreceive",
"rescanIntervalS": 3600,
"fsWatcherEnabled": true,
"fsWatcherDelayS": 10,
"ignorePerms": false
}
Тюнинг производительности и мониторинг
Оптимизация для больших объемов данных
- Limit Bandwidth: Настрой ограничение скорости в Settings → Connections
- File Pull Order: Используй "random" для равномерной нагрузки
- Parallel Operations: Увеличь значение в настройках папки
Мониторинг через TrueNAS
Настрой мониторинг ресурсов потребляемых Syncthing:
# Проверка использования ресурсов
kubectl top pod -n ix-syncthing
# Логи приложения
kubectl logs -n ix-syncthing deployment/syncthing -f
Безопасность и бэкап конфигурации
Автоматический бэкап конфига
#!/bin/bash
# Скрипт для бэкапа конфигурации Syncthing
BACKUP_DIR="/storage/backups/syncthing"
CONFIG_DIR="/storage/apps/syncthing/config"
DATE=$(date +%Y%m%d_%H%M%S)
# Создаем бэкап
tar -czf "$BACKUP_DIR/syncthing-config-$DATE.tar.gz" -C "$CONFIG_DIR" .
# Удаляем старые бэкапы (старше 30 дней)
find "$BACKUP_DIR" -name "syncthing-config-*.tar.gz" -mtime +30 -delete
Решение распространенных проблем
Проблема 1: Устройства не обнаруживаются
Решение:
- Проверь настройки фаервола на TrueNAS
- Убедись, что порты 22000/TCP и 21027/UDP открыты
- Используй статические маршруты в настройках Syncthing
Проблема 2: Медленная синхронизация
Решение:
- Проверь нагрузку на диски через "Reporting" в TrueNAS
- Увеличь лимиты RAM для приложения в настройках Apps
- Рассмотри использование SSD для метаданных
Продвинутые сценарии использования
Сценарий 1: Резервное копирование фотографий с мобильных устройств
Настрой автоматическую синхронизацию фотографий с телефона на TrueNAS:
# Дополнительные настройки для мобильной синхронизации
folder:
"mobile-photos":
path: "/data/mobile-backup/${DEVICE_NAME}"
devices: ["phone-id-1", "phone-id-2"]
versioning:
type: "simple"
params:
keep: "10" # Хранить 10 версий файлов
Сценарий 2: Синхронизация между несколькими серверами TrueNAS
Создай отказоустойчивую распределенную файловую систему: