Як відновити дані з масиву Unraid, коли перевищено обмеження парності

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

Як відновити дані з масиву Unraid, коли перевищено обмеження парності

Далі все залежить від однієї властивості Unraid, яка стає його головною перевагою при катастрофічних відмовах: дані на живих дисках залишаються на місці, неушкоджені й повністю читабельні — кожен диск є незалежною файловою системою й не потребує інших дисків для доступу. У цій статті пояснено, як витягти те, що лишилося, і які інструменти роблять це практично можливим з машини під Windows.

Чому Unraid виходить з ладу інакше, ніж RAID 5 і RAID 6

У масиві RAID 5 дані файлу розбиваються на блоки фіксованого розміру й розподіляються смугами (stripes) по всіх дисках-учасниках. Жоден окремий диск не містить повний файл. Смуга з N+1 дисків містить фрагменти даних із N дисків і один блок парності. Втрата будь-яких двох дисків робить кожну смугу, яка торкалася одного з них, неповною — отже, весь масив стає неможливим для читання незалежно від того, скільки дисків залишилося.

Unraid записує файли цілком на окремі диски. Файл, записаний на Диск 2, повністю існує на Диску 2; Диск 3 про нього нічого не знає. Диск парності зберігає XOR усіх дисків даних на рівні секторів, що дозволяє відновити будь-який один втрачений диск — але самі диски даних є незалежними, самодостатніми томами.

Сценарій відмови RAID 5 (одинарна парність) Unraid (одинарна парність)
Втрачено 1 диск Масив деградований, дані доступні через парність Масив деградований, дані доступні через парність
Втрачено 2 диски Весь масив неможливо прочитати — усі дані втрачені Вцілілі диски повністю доступні для читання; втрачені лише дані на збійних дисках
Втрачено 3 диски Весь масив неможливо прочитати Вцілілі диски повністю доступні для читання; втрата даних обмежена тільки збійними дисками
Втрачено всі, крім 1 диска Весь масив неможливо прочитати Останній вцілілий диск можна підключити й читати незалежно
Втрачено всі диски Повна втрата даних Повна втрата даних

Наслідок суттєвий. У RAID 5-масиві з шістьма дисками втрата двох означає втрату всього, що зберігалося на всіх шести. В Unraid-масиві з шістьма дисками втрата двох означає втрату лише тих даних, що фізично знаходилися на цих двох конкретних дисках — решта чотирьох дисків сьогодні читаються прямо зараз, без будь‑якої операції відновлення.

Парність потрібна для відновлення, а не для читання вцілілих дисків.

Як тільки кількість втрачених дисків перевищує можливості парності, парність вже не має значення для процесу відновлення вцілілих дисків. Кожний диск даних відформатовано як звичайний том XFS або BTRFS. Ви можете підключити будь‑який вцілілий диск до Linux-машини і змонтувати його безпосередньо — дані на ньому доступні, парність не потрібна. Проблема в тому, що Windows за замовчуванням не читає XFS або BTRFS, тож у таких випадках стає необхідним спеціальне програмне забезпечення для відновлення.

Що фактично втрачається при перевищенні парності

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

Unraid When Parity Is Exceeded

Межа втрати даних точно відповідає фізичним дискам, що вийшли з ладу. Нічого на Диску 1, 3 або 5 не постраждало. Файли, які зберігалися на Диску 2 або Диску 4, втрачено — не через якусь загальну помилку парності, а тому що відповідні сектори фізично більше не існують.

Відновлюється без програмного забезпечення

Будь-який файл, який повністю перебував на диску, що вцілів. Підключіть диск до комп’ютера під керуванням Linux і скопіюйте дані. Реконструкція масиву не потрібна. Диск парності не потрібен.

🔧

Можливо відновити програмними засобами

Доступ до файлів на дисках, що вціліли, коли сам Unraid не може завантажитися, завантажувальний пристрій недоступний або конфігурація масиву втрачена. RS RAID Retrieve зчитує метадані дисків і реконструює структуру масиву без запущеного сервера Unraid.

Неможливо відновити

Будь-який файл, що зберігався на фізично пошкодженому диску, вважається втраченим, якщо кількість відмов перевищила можливості відновлення за допомогою паритету. Жодне програмне забезпечення не може відновити дані з секторів, які вже не існують.

Перед початком: кроки, які визначають, чи вдасться відновлення

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

Не намагайтеся перезапустити масив Unraid

Якщо вийшло з ладу більше дисків, ніж може покрити парність, Unraid може спробувати запуститися в режимі деградації, виконати перевірки парності або записувати емульовані дані на основі неповного набору дисків. Будь‑яка операція запису в цей момент — включно з оновленням парності, яке може бути ініційоване при запуску масиву — ризикує перезаписати дані на збережених дисках некоректними значеннями, отриманими в результаті неповного XOR‑обчислення. Вимкніть сервер і не вмикайте його знову, поки не буде створено образи (клоні) усіх збережених дисків.

Не запускайте New Config і не переназначуйте слоти дисків

Переназначення слотів дисків в Unraid та запуск нової конфігурації змушує Unraid трактувати масив як щойно створений. Система перерахує парність на основі наявних дисків, що перезапише вміст парного диска. Якщо згодом виявиться, що якийсь диск було неправильно ідентифіковано, дані парності, необхідні для перевірки або відновлення, будуть втрачені.

Що робити натомість

1

Визначте, які диски фізично присутні і доступні для читання

Використовуйте SMART‑дані з працюючої системи або, якщо сервер уже вимкнено, підключайте диски по одному до тестової машини. Розділіть диски на три групи: повністю працездатні; частково придатні для читання (помилки SMART, але шпиндель обертається); і повністю несправні (BIOS їх не виявляє). Це дозволяє оцінити масштаб відновлення до залучення будь‑якого програмного забезпечення.

2

Створення образу дисків, що деградують, перед виконанням будь-яких інших дій

Будь-який диск, у якого значення Current_Pending_Sector або Reallocated_Sector_Ct відмінні від нуля, активно деградує. Створіть його образ до початку відновлення, а не після. Використовуйте ddrescue з файлом мапи, щоб коректно обробляти помилки читання та дозволяти відновлювати перервані сеанси:

ddrescue -d -r3 /dev/sdX /path/to/image.img /path/to/map.log

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

3

Маркуйте диски їхніми початковими номерами слотів

Unraid зберігає конфігурацію масиву — який серійний номер відповідає якому слоту — на флеш-завантажувачі. Якщо завантажувальний пристрій також відсутній, порядок слотів доведеться відновлювати за метаданими дисків. Перед тим як виймати будь-що з сервера, підпишіть кожен диск його оригінальним номером Disk N. RS RAID Retrieve може визначити призначення слотів за метаданими дисків, але фізична мітка усуває неоднозначності під час ручної конфігурації.

4

Підключіть усі уцілілі диски до ПК під керуванням Windows

За можливості використовуйте прямі SATA-з’єднання. Якщо дисків більше чотирьох, краще встановити PCIe-карту розширення SATA, ніж користуватися USB–SATA адаптерами, які під час тривалих великих зчитувань спричиняють проблеми надійності операцій введення/виведення. Обов’язково підключіть паритетний диск — RS RAID Retrieve використовує його метадані для підтвердження конфігурації масиву, хоча в цій ситуації паритет не зможе відновити втрачені диски.

Відновлення даних із пошкодженого масиву Unraid за допомогою RS RAID Retrieve

Після підключення цілих дисків до комп’ютера з Windows, RS RAID Retrieve виконує ті операції, які зазвичай вимагають працюючого середовища Linux: читає файлові системи XFS і BTRFS, відновлює структуру масиву Unraid за метаданими дисків і надає зручне дерево файлів для перегляду, звідки ви можете вибірково копіювати дані на справний носій.

Що робить RS RAID Retrieve у цьому сценарії

Програма зчитує метадані Unraid з кожного підключеного диска, визначає, які диски присутні, а які відсутні, і формує віртуальне представлення масиву з заповнювачами для несправних дисків. Після цього вона надає доступ до файлових систем на працездатних дисках — XFS і BTRFS — які Windows за замовчуванням не читає. Для несправних дисків програма коректно позначає їхні дані як невідновлювані, замість відображення порожнього або пошкодженого вмісту.

RS Raid Retrieve

RS Raid Retrieve

Автоматичне відновлення усіх типів RAID масивів

Доступно для: Windows, macOS, Linux
1

Запустіть RS RAID Retrieve та дайте йому просканувати всі підключені диски

Після запуску програма читає метадані суперблоку Unraid, записані на кожен диск-член під час ініціалізації масиву. За цими метаданими вона визначає конфігурацію масиву: загальну кількість дисків, призначення слотів, розташування паритету та тип файлової системи для кожного диска. Якщо всі цілі (неушкоджені) диски підключені та їхні метадані збережені, масив автоматично зʼявляється в Диспетчері дисків, а вийшлі з ладу диски позначаються як відсутні.

2

Якщо автоматичне визначення не спрацювало — використовуйте Ручний режим

Відкрийте RAID Constructor та виберіть Manual Mode. Встановіть тип масиву — Unraid. Додайте наявні диски та для кожного відсутнього вставте порожній заповнювач (placeholder) за допомогою кнопки “+”. Задайте секторний зсув — Unraid використовує 64 або 2048; перевірте це, відкривши будь‑який диск з даними у hex‑переглядачі й знайшовши початок сигнатури суперблоку XFS або BTRFS (XFSB або _BHRfS_M). Натисніть Preview — якщо видно дерево каталогів, конфігурація правильна.

RAID Constructor → Unraid → Manual Mode → додати диски → placeholder для кожного відсутнього диска → offset 64 або 2048 → Preview
3

Відкрийте кожен робочий диск і запустіть сканування

Клацніть правою кнопкою миші по робочому диску в Drive Manager і виберіть Open. Для дисків із цілими файловими системами оберіть Fast Scan. Якщо Fast Scan повертає неповне дерево файлів або не знаходить файлів, запустіть Full Analysis — це виконує секторний пошук за сигнатурами й може відновити структури каталогів навіть за частково пошкоджених метаданих файлової системи. Виконуйте сканування кожного робочого диска окремо; пошкоджені диски не покажуть відновлюваного вмісту.

4

Попередній перегляд і вибір файлів для відновлення

Дерево файлів відображає структуру каталогів кожного диска, що залишився, такою, якою вона була на момент збою. Використовуйте панель попереднього перегляду, щоб перевірити цілісність файлів перед початком відновлення — документи, зображення та медіафайли можна відкривати безпосередньо в попередньому перегляді. Надавайте пріоритет файлам, які неможливо відтворити: документам, базам даних, фотографіям. Великі медіатеки, де окремі файли доступні незалежно, мають нижчий пріоритет і можуть бути відновлені під час другого проходу.

5

Копіювання відновлених файлів на окремий робочий диск

Виберіть потрібні файли та папки, натисніть Recovery і вкажіть шлях призначення на диску, який не входить до масиву Unraid. Не записуйте відновлені файли назад на будь-який із дисків-джерел. Після завершення копіювання вибірково перевірте зразки кожного типу файлів — відкрийте архіви, програйте фрагмент відео, переконайтеся, що файл бази даних не має нульового розміру — перш ніж вважати відновлення завершеним.

✓ Чого очікувати після успішного відновлення

RS RAID Retrieve покаже повне дерево каталогів кожного з працюючих дисків. Файли на цих дисках будуть цілі та відновлювані з оригінальними іменами та шляхами. Несправні диски відобразяться в перегляді масиву без доступного вмісту — це нормальна поведінка, а не помилка програми. Загальний обсяг відновлюваних даних дорівнює тому, що було збережено на працюючих дисках у момент відмови.

Робота з частково читаними дисками

Під час катастрофічних відмов часто буває принаймні один диск, який не зовсім вийшов з ладу — він обертається, визначається BIOS, але на деяких секторах дає помилки читання. Ці частково читані диски — найчутливіша до часу складова процесу відновлення: вони ще віддають дані, проте кожний цикл живлення та кожна невдала спроба читання прискорюють механічний знос.

Диск, який сьогодні ще читається, може стати нечитаємим завтра.

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

Створення образу диска, що деградує, за допомогою ddrescue

ddrescue — стандартний інструмент для цієї задачі, оскільки він коректно обробляє помилки читання: у першому проході пропускає нечитаємі сектори, зчитує все можливе, а потім у наступних проходах повторно намагається відновити невдалі ділянки. Це відрізняється від dd, який за замовчуванням зупиняється при першій помилці читання.

	# First pass: read everything readable, skip errors, save map file
	ddrescue
	-d -r0
	/dev/sdX /mnt/recovery/disk_image.img /mnt/recovery/disk_image.map
	# Second pass: retry failed sectors up to 3 times
	ddrescue
	-d -r3
	/dev/sdX /mnt/recovery/disk_image.img /mnt/recovery/disk_image.map

Файл карти (map file) фіксує, які сектори було успішно зчитано, а які — ні. Якщо диск вийде з ладу під час сеансу або вам потрібно перервати процес і продовжити пізніше, повторний запуск тієї ж команди з тим самим файлом карти відновить роботу з того місця, де вона зупинилася, не перечитуючи вже збережені сектори.

Підключення образу в RS RAID Retrieve

Після завершення створення образу його можна використовувати замість фізичного диска. У RS RAID Retrieve скористайтеся командою Connect Image, щоб приєднати файл .img як віртуальний диск. Програма обробляє його так само, як і фізичний пристрій. Такий підхід має дві переваги: обладнання, що деградує, більше не піддається навантаженню читання під час відновлення, а якщо процес відновлення потрібно повторити з іншими налаштуваннями, образ завжди доступний у своєму вихідному стані.

Вивід ddrescue — що означають ці числа:

  • rescued: байти, успішно прочитані та записані в образ. Це обсяг даних, який підлягає відновленню.
  • errsize: байти, які не вдалося прочитати. Ці сектори в образі відобразяться як нулі; будь-який файл, дані якого містилися в цих секторах, буде неповним.
  • errors: кількість окремих непрочитаних секторів. На багатотерабайтному диску кількість у сотнях зазвичай означає, що більшість файлів залишилися цілими; кількість у мільйонах вказує на значні втрати даних всередині самого образу.
  • run time vs. remaining: якщо залишковий час оцінюється в днях, диск занадто деградований для створення повного образу — припиніть після першого проходу і працюйте з тим, що вдалося зняти.

Що можна і чого не можна відновити в цій ситуації

Наслідки відмови, що виходить за межі парності в Unraid, більш передбачувані, ніж у класичних RAID-систем, оскільки межа пошкодження визначається фізичними межами дисків, а не розподілом стріпів. У таблиці нижче підсумовано шлях відновлення для кожного компонента масиву.

Стан диска Дані на цьому диску Шлях відновлення Засіб
Працездатний — SMART у межах норми Повністю відновлювані Пряме читання за допомогою RS RAID Retrieve або монтування в Linux RS RAID Retrieve / mount
Працездатний — SMART у стані деградації Більшість даних можна відновити; деякі сектори можуть бути втрачені Спочатку створити образ за допомогою ddrescue, потім відновлювати з образу ddrescue + RS RAID Retrieve
Вийшов з ладу — не визначається системою Неможливо відновити через парність Відновлення на апаратному рівні (професійна лабораторія) якщо критично; інакше — прийняти втрату Лабораторія відновлення даних
Диск парності — справний Користувацькі дані на ньому не зберігаються Підключається, щоб допомогти RS RAID Retrieve підтвердити конфігурацію масиву; не використовується для вилучення даних RS RAID Retrieve (лише метадані)
Флеш для завантаження — вийшла з ладу Лише конфігурація масиву; без користувацьких даних RS RAID Retrieve реконструює конфігурацію з метаданих дисків; після цього можна створити нову флеш RS RAID Retrieve

Після відновлення: перебудуйте масив з нуля — не намагайтеся латати старий.

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

Поширені запитання

Так, частково. Unraid записує метадані для кожного диска, які можуть зчитувати RS RAID Retrieve та подібні інструменти, але найкориснішими джерелами зазвичай є syslog Unraid і файли конфігурації шарів, що зберігаються на завантажувальному флеш-накопичувачі. Папка shares на флеш-пристрої містить .cfg-файли для кожного шару (share), включно з параметрами includeDisks і excludeDisks — вони вказують, на які диски кожному шару дозволялося писати. У поєднанні з файлами diskX.ini, які фіксують статистику використання по дисках, це часто дозволяє відтворити досить точну картину того, які категорії даних були на пошкоджених дисках, навіть якщо окремі імена файлів зникли. Якщо флеш-пристрій теж вийшов з ладу, наступним найкращим джерелом будуть будь-які інструменти моніторингу, що зберігали історію розмірів шарів — вбудована історія панелі Unraid, Grafana-дашборди, заповнювані Telegraf, або навіть періодичні виводи du, збережені в віддаленому місці.
Unraid вимикає диск при виявленні помилок читання, а не помилок запису. Це захисний захід: масив припиняє записувати на диск і позначає його як офлайн, замість того щоб продовжувати запис і ризикувати отримати неконсистентні дані. Отже, вміст диска на момент відключення відображає останній успішно записаний стан, а не якийсь пошкоджений проміжний — дані на ньому так само надійні, як дозволяє апаратне забезпечення. Чого не можна гарантувати — чи цей останній записаний стан є актуальним. Якщо диск був відключений під час запису великого файлу, саме цей файл може виявитися неповним. Найперше, що потрібно зробити — створити образ диска за допомогою ddrescue, а потім використовувати RS RAID Retrieve для оцінки файлової системи. Файли, які були повністю записані до моменту відключення, залишаться цілими.
Файли нульового розміру під час відновлення, яке загалом виглядає цілим, зазвичай свідчать про одну з двох причин. Перша — неповне записування в момент збою: файли, які писалися під час падіння масиву, могли мати створені записи каталогу до того, як їхні блоки даних були остаточно закомітовані, і в результаті валідні метадані вказують на непризначені або занульовані сектори. Друга, більш поширена при відмові кількох дисків, — блоки даних файлу випадково опинилися на одному з пошкоджених дискiв. У Unraid файли зберігаються повністю на одному диску, але метадані файлової системи (записи каталогу, записи inode) можуть перебувати на іншому диску, що вижив. RS RAID Retrieve правильно показує ім’я файлу та шлях за збереженими метаданими, але позначає вміст як невідновлюваний, оскільки блоки даних знаходяться на відмовившому диску. Запуск Full Analysis замість Fast Scan підтвердить, який із випадків має місце — якщо й Full Analysis повертає 0 байт, то блоки даних втрачені.
Ви можете починати з нуля — призначення слотів в Unraid є шаром конфігурації, а не шаром даних. Дані на кожному диску незалежні від номера слота, який Unraid йому призначив. Під час відновлення створіть нову конфігурацію масиву, відформатуйте нові диски і скопіюйте відновлені дані назад із вашого місця призначення відновлення. Технічно немає вимоги відновлювати початкову нумерацію слотів. Єдиний випадок, коли порядок слотів має значення — це часткове відновлення, коли ви залишаєте деякі живі диски в масиві й додаєте замінники для збійних дисків. У такому випадку живі диски повинні бути призначені саме до їхніх початкових номерів слотів, інакше Unraid розцінить їх як нові диски та може перезаписати їхній вміст під час побудови парності. Оскільки в цій статті йдеться про сценарії, коли парність уже перевищена, повне відновлення з нуля — більш безпечний і чистіший шлях.
Залишити коментар

Схожі публікації

Порівняння 8 програм для відновлення даних
Порівняння 8 програм для відновлення даних
Втрата даних може трапитися несподівано та призвести до паніки. На щастя, є потужне програмне забезпечення для відновлення даних, яке допоможе відновити цінні файли. У цьому огляді ми розглянемо RS Partition Recovery, Recuva, EaseUS Data Recovery Wizard, Stellar Data Recovery, Disk … Continue reading
Synology DSM VS QNAP QTS: яка операційна система NAS краща
Synology DSM VS QNAP QTS: яка операційна система NAS краща
Яка операційна система для NAS краща – Synology DSM або QNAP QTS? Обидві операційні системи постачаються з готовими пристроями NAS своїх виробників, відповідно, Synology та QNAP. Порівняємо ці дві операційні системи – що вони представляють в цілому, та які можливості … Continue reading
Яку конфігурацію RAID вибрати для NAS?
Яку конфігурацію RAID вибрати для NAS?
Один із важливих критеріїв вибору пристрою NAS (мережеве сховище) – його можливість забезпечувати збереження даних з використанням RAID масивів. Однак, щоб забезпечити надійний захист даних, важливо вибрати правильну конфігурацію RAID. У цій статті ми розглянемо реалізацію RAID на різних пристроях … Continue reading
RAIDZ1 чи RAID 5: що відбувається насправді під час відновлення даних
RAIDZ1 чи RAID 5: що відбувається насправді під час відновлення даних
Коли хтось звертається до фахівця з відновлення даних через збій масиву, відповідь на питання «який це рівень RAID?» визначає весь подальший план дій. RAIDZ1 і RAID 5 базуються на одній і тій же ідеї — розподіл паритету по дисках, щоб … Continue reading
Online Chat with Recovery Software