Як налаштувати реплікацію TrueNAS на інший сервер: покрокова інструкція
Реплікація копіює ZFS-снапшоти датасету з однієї системи TrueNAS на іншу. Якщо джерело вийде з ладу або дані буде видалено помилково, їх можна відновити з реплікованих снапшотів. Перша реплікація передає датасет повністю. Наступні реплікації інкрементальні: вони передають лише зміни, які містяться в нових снапшотах, і зазвичай це зменшує обсяг переданих даних.
У цій інструкції показано, як налаштувати push-реплікацію: TrueNAS-джерело за розкладом надсилає снапшоти на TrueNAS-приймач через SSH. Кроки та скриншоти наведено для TrueNAS 25.10. В інших версіях назви меню та полів можуть відрізнятися.
Що знадобиться
Знадобляться:
- два сервери зі встановленим TrueNAS 25.10;
- мережевий зв'язок між серверами;
- обліковий запис адміністратора на сервері-приймачі з доступом через SSH, домашнім каталогом і правами sudo;
- достатньо вільного місця в пулі приймача для реплікованого датасету та його снапшотів.
У цій інструкції:
- джерело: сервер TrueNAS, дані якого потрібно захистити;
- приймач: сервер TrueNAS, на якому зберігаються копії.
Про встановлення TrueNAS на виділений сервер див. Як встановити TrueNAS на виділений сервер через IP-KVM і Virtual Media.
Реплікація не замінює резервне копіювання. Якщо дані видалено або пошкоджено, наступний снапшот і реплікація скопіюють і цей стан. Повернути попередній стан можна, лише поки зберігається старіший снапшот, тому враховуйте це під час вибору строку зберігання снапшотів.
Розміщуйте приймач в іншому дата-центрі, ніж джерело. Тоді збій в одній локації не зачепить обидві копії.
Підготуйте сервер-приймач
Усі кроки цього розділу виконуються у вебінтерфейсі приймача.
Створіть датасет для копій
Перейдіть у Datasets, виберіть пул і натисніть Add Dataset. У полі Name введіть ім'я, наприклад backup. Залиште пресет Generic і натисніть Save. Реплікований датасет буде створено всередині цього датасету. Використовуйте новий порожній датасет. Не використовуйте датасет із важливими даними або снапшотами: реплікація може керувати снапшотами на приймачі та видаляти їх відповідно до налаштувань зберігання.

Налаштуйте обліковий запис адміністратора
Перейдіть у Credentials > Users, виберіть обліковий запис адміністратора для реплікації, наприклад truenas_admin, і натисніть Edit.
У розділі Allow Access позначте SSH Access. Потім позначте Allow SSH Login with Password (not recommended). Вхід з паролем потрібен лише поки TrueNAS створює SSH-підключення та встановлює відкритий ключ. Коли підключення запрацює, його можна вимкнути.
Перевірте поле Home Directory у розділі Additional Details. У ньому має бути вказано реальний каталог, наприклад /home/truenas_admin. Для реплікації обліковий запис повинен мати реальний домашній каталог, тому не залишайте значення /var/empty. За потреби натисніть значок редагування та задайте домашній каталог.
У полі Sudo Commands натисніть значок редагування та позначте Allow all sudo commands with no password. TrueNAS використовує sudo без пароля, щоб виконувати на приймачі потрібні команди ZFS. Натисніть Save.

Тепер у відомостях про обліковий запис відображаються SSH Password Login Enabled і Allowed Sudo Commands (No Password): ALL.

Allow all sudo commands with no password надає обліковому запису широкі адміністративні права. Для більшої безпеки використовуйте для реплікації окремий обліковий запис адміністратора замість вашого основного та вимкніть вхід через SSH з паролем після завершення налаштування.
Увімкніть службу SSH
Перейдіть у System > Services, знайдіть SSH і натисніть значок редагування. Переконайтеся, що позначено Allow Password Authentication, і натисніть Save.

Потім натисніть кнопку запуску поруч зі статусом SSH і увімкніть перемикач Start Automatically, щоб служба запускалася після перезавантаження. Статус зміниться на Running.

Після успішної реплікації можна вимкнути вхід через SSH з паролем і в налаштуваннях облікового запису, і в службі SSH, якщо він не потрібен для інших підключень. Реплікація використовує SSH-ключ.
Підготуйте сервер-джерело
Решта кроків виконується у вебінтерфейсі джерела.
Створіть датасет для реплікації
Переконайтеся, що в облікового запису адміністратора на джерелі теж задано домашній каталог: перейдіть у Credentials > Users, виберіть обліковий запис і перевірте поле Home Directory.
Якщо дані, які потрібно захистити, ще не винесено в окремий датасет, створіть його: перейдіть у Datasets, виберіть пул, натисніть Add Dataset, введіть ім'я, наприклад data, і натисніть Save.
Створіть SSH-підключення
Перейдіть у Credentials > Backup Credentials і натисніть Add у віджеті SSH Connections. Заповніть форму:
- Connection Name: будь-яке ім'я, наприклад backup-server;
- Setup Method: Semi-automatic (TrueNAS only);
- TrueNAS URL: адреса приймача, наприклад https: //203.0.113.20;
- Admin Username і Admin Password: облікові дані адміністратора на приймачі;
- Username: той самий обліковий запис;
- Enable passwordless sudo for zfs commands: позначено;
- Private Key: Generate New.

Натисніть Save. Якщо на приймачі використовується самопідписаний сертифікат за замовчуванням, TrueNAS покаже помилку сертифіката та запропонує її проігнорувати. Позначте Confirm і натисніть Continue.

TrueNAS підключиться до приймача, створить пару ключів і автоматично встановить там відкритий ключ. Нове підключення з'явиться у віджеті SSH Connections, а його ключ у віджеті SSH Keypairs.

Створіть завдання реплікації
Перейдіть у Data Protection і натисніть Add у віджеті Replication Tasks. Відкриється майстер Replication Task Wizard.
What and Where
У полі Source Location виберіть On this System, а в полі Destination Location виберіть On a Different System.
У полі SSH Connection виберіть створене підключення. TrueNAS запитає, чи використовувати sudo для команд ZFS, оскільки підключення використовує обліковий запис без прав root. Натисніть Use Sudo For ZFS Commands.

У полі Source розгорніть /mnt і пул та позначте датасет, який потрібно реплікувати. Позначте Recursive, якщо потрібно реплікувати й дочірні датасети. Якщо в датасету ще немає снапшотів, майстер повідомить, що їх буде створено автоматично. TrueNAS створить для датасету завдання періодичних снапшотів, його можна буде побачити у віджеті Periodic Snapshot Tasks.
У полі Destination розгорніть дерево приймача та виберіть датасет backup. Потім допишіть через скісну риску ім'я реплікованого датасету, наприклад tank/backup/data. TrueNAS створить цей датасет під час першого запуску.
Залиште для SSH Transfer Security значення Encryption і переконайтеся, що позначено Use Sudo For ZFS Commands.
Поле Task Name заповнюється автоматично. Його можна змінити на зрозумілішу назву. Натисніть Next.

When
У полі Replication Schedule залиште Run On a Schedule. У полі Schedule виберіть частоту реплікації. За замовчуванням задано Daily At 00:00 (12:00 AM). Для важливих даних, що часто змінюються, виберіть частіший розклад.
У полі Destination Snapshot Lifetime виберіть, скільки зберігати снапшоти на приймачі:
- Same as Source: використовується строк зберігання, заданий у завданні періодичних снапшотів на джерелі;
- Never Delete: снапшоти зберігаються, доки ви не видалите їх вручну;
- Custom: снапшоти зберігаються заданий строк, наприклад 2 тижні.
Якщо зберігати снапшоти на приймачі довше, ніж на джерелі, можна отримати додаткові точки відновлення, але місця вони займуть більше.

Натисніть Save. Завдання з'явиться у віджеті Replication Tasks зі статусом PENDING.

Запустіть і перевірте реплікацію
Щоб запустити першу реплікацію, не чекаючи розкладу, натисніть меню з трьома крапками поруч із завданням і виберіть Run job. Натисніть Continue для підтвердження.

Перший запуск передає весь датасет і може тривати довго залежно від обсягу даних і швидкості з'єднання між серверами. Наступні запуски передають лише зміни.
Коли завдання завершиться, його статус зміниться на SUCCESS, а в стовпці Last Snapshot з'явиться ім'я надісланого снапшота. Якщо статус FAILED, натисніть на нього, щоб відкрити журнал завдання та переглянути помилку.

Щоб перевірити результат, відкрийте вебінтерфейс приймача та перейдіть у Datasets. Виберіть реплікований датасет, наприклад tank/backup/data, і натисніть View Snapshots у віджеті Data Protection. У списку відображаються снапшоти, отримані з джерела.

Майстер створює завдання з параметром Destination Dataset Read-only Policy у значенні Set, тому після успішної реплікації TrueNAS робить датасет на приймачі доступним лише для читання. Це захищає копію від змін, які порушили б наступні запуски реплікації.
Відновіть дані з копії
Щоб відновити окремі файли, клонуйте потрібний снапшот у новий датасет на приймачі: перейдіть у Datasets, виберіть реплікований датасет, натисніть View Snapshots, розгорніть снапшот і натисніть Clone To New Dataset. Потім скопіюйте потрібні файли з клону.
Щоб повернути реплікований датасет, перейдіть у Data Protection на джерелі, натисніть меню з трьома крапками поруч із завданням реплікації та виберіть Restore. Введіть ім'я завдання відновлення та виберіть, куди помістити відновлені дані на джерелі. TrueNAS створить нове завдання реплікації, яке передасть дані назад із приймача на джерело. Завдання отримає статус PENDING. Запустіть його, щоб почати відновлення.

Не відкочуйте реплікований датасет на приймачі до ранішого снапшота без крайньої потреби. Відкат може видалити новіші снапшоти та порушити історію снапшотів, від якої залежать наступні запуски реплікації.