Відновлення даних ZFS: посібник із RAIDZ1, RAIDZ2, RAIDZ3 та Stripe
У цій статті ми розглянемо процедури відновлення даних із масивів RAIDZ1, RAIDZ2, RAIDZ3 та Stripe ZFS, створених в операційній системі TrueNAS SCALE. Продемонструємо послідовність дій у разі апаратної відмови сервера та методику відновлення доступу до пулу даних при виході з ладу одного чи кількох накопичувачів або випадковому видаленні інформації з масиву.

- Можливості TrueNAS SCALE
- Спосіб 1. Автоматичне відновлення ZFS масивів
- Спосіб 2. Відновлення RAIDZ без кількох дисків
- Спосіб 3. Відновлення видалених файлів
- Висновок
- Питання та відповіді
- Коментарі
Окрім апаратних несправностей, розглянемо відновлення даних після видалення всього датасету, або пошкодження пулу, критичного збою операційної системи, пошкодження файлової системи ZFS, помилок при додаванні нових дисків, некоректної роботи контролера та випадкової ініціалізації накопичувачів в іншій системі.
Відновлення даних відбувається в операційній системі Linux Ubuntu, але можливе також у середовищі Windows і macOS.
Відновлення даних з RAIDZ1, RAIDZ2, RAIDZ3, Stripe масивів ZFS
Можливості TrueNAS SCALE
TrueNAS – це відкрита операційна система для побудови мережевих сховищ даних, яка базується на Linux і використовує файлову систему ZFS. Вона забезпечує захист даних, перевірку цілісності, ефективне управління дисками та підтримує запуск віртуальних машин.
Платформа підтримує різні типи RAID, включаючи RAIDZ, що поєднує продуктивність і відмовостійкість. TrueNAS Scale дозволяє горизонтальне масштабування, об’єднуючи кілька вузлів у кластер, зберігаючи ключові функції ZFS: самовиправлення даних, снапшоти, компресію, дедуплікацію та шифрування.

Система сумісна з протоколами SMB, NFS, iSCSI та S3, а також дозволяє запускати контейнери та Kubernetes, що робить її універсальним рішенням для збереження та обробки даних у різних середовищах.
RAIDZ – надлишковий масив дисків у ZFS із розподіленим паритетом. Використання блоків змінної довжини оптимізує запис і дозволяє автоматично виправляти помилки підчас зчитування.
При відновленні деградованого масиву (resilvering) навантаження на інші диски суттєво зростає. Тому RAIDZ найкраще підходить для середовищ із помірними вимогами до відмовостійкості або для дисків невеликого об’єму, де час відновлення масиву мінімальний.
| Категорія | Можливості |
|---|---|
| Тип системи | NAS / сервер з відкритим кодом на базі Linux |
| Файлова система | Підтримка ZFS |
| RAID | RAIDZ1, RAIDZ2, RAIDZ3, Stripe, Mirror |
| Масштабування | Горизонтальне (Scale-out) |
| Віртуалізація | Підтримка KVM (віртуальні машини) |
| Контейнери | Kubernetes, Docker (через Apps) |
| Мережеві протоколи | SMB, NFS, FTP, iSCSI |
| Керування | Веб-інтерфейс (GUI) |
| Безпека | Шифрування даних, контроль доступу, ACL |
| Резервне копіювання | Snapshots, Replication, Rsync |
| Хмарні сервіси | Інтеграція з AWS, Google Cloud, Azure |
| Моніторинг | Система сповіщень, журнали, статистика |
| Плагіни / Apps | Розширення через каталог додатків |
| Висока доступність | Підтримка кластерів (HA) |
| Підтримка GPU | Так (для контейнерів і VM) |
Спосіб 1. Автоматичне відновлення ZFS масивів
У разі виходу з ладу апаратних компонентів сервера (блока живлення, материнської плати або дискового контролера) прямий доступ до даних із операційної системи стає неможливим.
Також такі ситуації виникають, коли сервер перестав завантажуватися через критичну помилку під час оновлення TrueNAS SCALE або при пошкодженні системного розділу.
Навіть якщо файли та диски фізично не пошкоджені, доступ до масиву RAIDZ може бути втраченим, і стандартні засоби ZFS не дозволяють побачити накопичувачі чи імпортувати пул. У цих випадках спеціалізоване програмне забезпечення, таке як Hetman RAID Recovery, дозволяє безпечно отримати доступ до даних та відновити інформацію.
У цьому прикладі ми покажемо процес відновлення даних у автоматичному режимі на комп’ютері з Ubuntu.
Спершу вимкніть сервер і обережно витягніть усі диски, що входили до складу масиву.

Підключіть їх до робочої станції: оптимальний варіант – напряму до материнської плати через SATA-кабелі для максимальної швидкості та стабільності передачі даних. Якщо на материнській платі бракує вільних портів, можна використати зовнішні USB-док-станції або USB-адаптери для дисків.

Врахуйте, що при підключенні через док-станції швидкість сканування може бути нижчою, тому для великих обсягів даних переважно використовувати внутрішні порти.
Після підключення перевірте, що диски відображаються в Ubuntu у програмі Disks, але не ініціалізуйте їх, якщо система запропонує цю дію.

Одразу після перевірки перейдіть до запуску Hetman RAID Recovery для автоматичного збору масиву.
Ключова особливість Hetman RAID Recovery полягає в глибокому аналізі метаданих ZFS. Програмі не потрібна працездатна операційна система чи контролер – вона зчитує службову інформацію безпосередньо з дисків і автоматично відтворює структуру пулу.
Оскільки ZFS зберігає всі критичні дані про конфігурацію масиву всередині самого пулу, логічна цілісність файлів зберігається навіть у разі повної недоступності серверного середовища. У результаті користувач отримує доступ до даних у звичному вигляді без залежності від початкової системи.
У цій статті для демонстрації використовуються різні конфігурації масивів:
- RAIDZ1 на трьох дисках,
- RAIDZ2 на чотирьох,
- RAIDZ3 на п’яти,
- а також Stripe на двох накопичувачах.

Детально розглянемо алгоритм відновлення для масиву RAIDZ1 із трьох дисків у ситуації повної апаратної відмови сервера або критичної помилки після оновлення TrueNAS Scale.
Важливо, що цей підхід є універсальним і може застосовуватись також для конфігурацій RAIDZ2, RAIDZ3 та Stripe.
Після запуску Hetman RAID Recovery автоматично виконує сканування всіх підключених пристроїв. Програма зчитує службові метадані ZFS, аналізує конфігурацію віртуальних груп vdev і на основі отриманих даних відновлює коректну модель RAIDZ1.
У робочому вікні відображаються виявлені накопичувачі та зібрані логічні структури – з ними можна одразу продовжити роботу: виконати детальний аналіз, переглянути структуру даних або відновити потрібні файли.

Оберіть у списку реконструйованих масивів потрібний RAIDZ1 і запустіть режим Fast scan для швидкого визначення структури даних.

Після завершення сканування у головному вікні відобразиться відновлена файлова система з повною ієрархією каталогів і файлів. Оберіть потрібні об’єкти та натисніть Recovery.

На наступному кроці вкажіть папку для збереження даних – бажано на окремому носії з достатнім обсягом вільного місця.

Підтвердіть запуск процесу, вкажіть кінцевий шлях збереження та повторно натисніть Recovery для початку копіювання. Після завершення операції натисніть Finish.
У підсумку дані з пулу ZFS RAIDZ1 будуть відновлені та стануть доступними для подальшого використання у звичному вигляді.

Спосіб 2. Відновлення RAIDZ без кількох дисків
Тепер розглянемо випадок відмови одного або кількох дисків у масиві RAIDZ.
Архітектура RAIDZ забезпечує відмовостійкість залежно від типу масиву:
- RAIDZ1 допускає втрату одного диска.
- RAIDZ2 допускає втрату двох дисків.
- RAIDZ3 допускає втрату трьох дисків.
У випадку Stripe надлишковість відсутня, тому вихід з ладу будь-якого накопичувача призводить до повної втрати даних.

Якщо немає можливості підключити всі диски, можна створити образ відсутнього накопичувача та використати його разом з іншими дисками для подальшого відновлення.
Завдяки механізмам розподіленого паритету та контролю цілісності даних спеціалізоване програмне забезпечення, зокрема Hetman RAID Recovery, здатне реконструювати втрачені блоки та відновити доступ до інформації, якщо кількість несправних дисків не перевищує допустимий рівень для конкретного типу RAIDZ.
У разі перевищення цього порогу логічна структура масиву порушується, і стандартні програмні методи стають неефективними. У таких ситуаціях відновлення можливе лише із застосуванням професійного обладнання в спеціалізованих лабораторіях.
Переконайтеся, що цільовий носій має достатній обсяг вільного простору для збереження відновлених даних та акуратно дістаньте диски із сервера та підключіть їх до комп’ютера через SATA-порти або зовнішню док-станцію. Важливо уникати будь-якого запису нових даних на ці накопичувачі, оскільки це може призвести до безповоротної втрати інформації.

Перед початком роботи закрийте всі програми, що можуть використовувати ці диски, та тимчасово вимкніть автоматичне резервне копіювання або синхронізацію. Якщо система не монтує масив, не слід ініціалізувати диски, створювати розділи чи виконувати форматування.
Необхідно залишити їх у поточному стані та одразу перейти до процедури відновлення. Дотримання цих рекомендацій суттєво підвищує шанси на успішне та безпечне відновлення даних незалежно від типу масиву RAIDZ або конфігурації Stripe.
Якщо архітектура вашої робочої станції не дозволяє підключити всі диски одночасно, оптимальним рішенням стане використання віртуальних образів накопичувачів. Цей метод передбачає створення точних побітових копій кожного диска для подальшого аналізу.
Після монтажу образу відсутнього накопичувача в інтерфейсі Hetman RAID Recovery програма сприймає його як повноцінний фізичний пристрій і в комбінації з іншими наявними дисками автоматично реконструює структуру масиву. Такий підхід дозволяє розпочати відновлення даних навіть за умови нестачі портів підключення – зберігаючи при цьому безпеку та цілісність інформації на кожному етапі.
Розберемо процес відновлення інформації на прикладі RAIDZ3, у якому одночасно відмовили три диски.
Ця конфігурація масиву забезпечує можливість повернення даних навіть у разі настільки серйозного збою – виконаємо це за допомогою утиліти Hetman RAID Recovery.
Одразу після відкриття програма самостійно перевіряє всі підключені накопичувачі, зчитує службову інформацію та на її підставі відновлює початкову структуру масиву. У робочому вікні з’являються всі виявлені фізичні диски та сформовані віртуальні конфігурації, з якими можна відразу починати роботу. Оберіть знайдений RAIDZ3 і активуйте режим Fast scan.

Щойно перевірка завершиться, у робочому вікні відобразиться повна структура реконструйованого масиву з усіма каталогами та файлами.

Позначте необхідні елементи і клацніть Recovery. Потім вкажіть папку для збереження та підтвердіть операцію повторним натисканням Recovery.

Коли копіювання завершиться – натисніть Finish.
Після проходження всіх етапів відновлені файли з RAIDZ3-масиву стануть повністю придатними для використання у штатному режимі.

Спосіб 3. Відновлення видалених файлів
Наостанок розглянемо одну з найпоширеніших ситуацій – випадкове видалення файлів з RAID-масиву.
У цьому прикладі відновлюємо дані зі Stripe, створеного з двох дисків під файловою системою ZFS.
Особливість Stripe полягає в тому, що дані розподіляються між усіма дисками без будь-якої надлишковості. Це означає, що жоден окремий диск не містить повних файлів. Для успішного відновлення потрібно підключити всі диски одночасно та працювати з масивом як з єдиною логічною структурою. Якщо один з дисків відсутній або не підключений, програма не зможе прочитати дані.

Перед початком роботи переконайтеся, що всі диски фізично підключені до комп’ютера – безпосередньо через SATA до материнської плати або за допомогою зовнішньої док-станції.
Важливо не записувати нові дані на ці диски й не ініціалізувати їх у системі, щоб уникнути перезапису втрачених файлів.

В Ubuntu запустіть Hetman RAID Recovery.
Програма автоматично виконає сканування всіх підключених дисків, зчитує метадані ZFS та на їх основі відтворює логічну структуру Stripe. У головному вікні ви побачите фізичні диски та вже зібраний масив, готовий до роботи.

Далі оберіть Stripe у списку виявлених масивів і запустіть режим Full Scan. Повне сканування необхідне, оскільки після видалення файлів у ZFS лише глибокий аналіз дозволяє зібрати фрагменти даних та відновити правильну структуру папок.

Додаткові налаштування зазвичай не потрібні, достатньо натиснути Next і почекати завершення процесу. Після завершення сканування у головному вікні з’явиться відновлена структура масиву з усіма папками та файлами. За потреби можна скористатися попереднім переглядом, щоб перевірити вміст документів, зображень чи інших файлів.
Оберіть необхідні файли та папки й натисніть Recovery.

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

В результаті всі файли будуть відновлені та доступні для роботи у звичному вигляді.
Цей процес гарантує безпеку даних, дозволяє повернути файли навіть після випадкового видалення й зберігає структуру файлової системи ZFS без ризику пошкодження інших даних на дисках.
Висновок
Відновлення даних із файлової системи ZFS та масивів RAIDZ1, RAIDZ2, RAIDZ3 і Stripe є складним, але цілком реальним завданням за умови правильного підходу та розуміння архітектури цих рішень. Завдяки вбудованим механізмам цілісності даних і контролю помилок ZFS забезпечує високий рівень захисту, особливо у конфігураціях RAIDZ2 та RAIDZ3.
Разом із тим, навіть такі надійні системи не застраховані від втрати даних через апаратні збої, помилки користувача або критичні пошкодження пулу. Найменш захищеною конфігурацією залишається Stripe, де відсутність надлишковості означає повну втрату інформації при виході з ладу будь-якого диска.
Успішність відновлення залежить від багатьох факторів: типу RAID, кількості пошкоджених дисків, стану файлової системи та своєчасності дій. Ключовими рекомендаціями є негайне припинення запису на пошкоджений масив, правильна діагностика та використання спеціалізованого програмного забезпечення або професійних сервісів.
Отже, для мінімізації ризиків втрати даних важливо не лише знати, як їх відновлювати, а й заздалегідь впроваджувати стратегії резервного копіювання та обирати відповідний рівень RAID відповідно до критичності інформації.







