Принципи організації даних у RAID
Процес запису даних у масиві RAID можна порівняти зі складною математичною головоломкою, що створює особливі труднощі під час відновлення даних. На відміну від звичайного жорсткого диска, на якому файли зазвичай записуються послідовно, тобто від початку до кінця накопичувача, система RAID розбиває файл на частини й розподіляє ці фрагменти між кількома фізичними накопичувачами. Щоб відбудувати масив та отримати доступ до даних всередині нього, потрібно правильно зібрати цей "пазл": визначити, як саме контролер розподілив фрагменти файлів по окремих секторах. Є три основні підходи до розподілу даних у RAID: чергування (з англ. striping), дзеркалювання (з англ. mirroring) та використання контрольних сум чи парності (з англ. parity). Розуміння цих методів організації даних — перший крок до пошуку розрізнених фрагментів і успішного віртуального відтворення цілісної структури.
RAID як рівень сховища зберігання даних
На стандартних комп'ютерах операційна система записує дані на один фізичний накопичувач, намагаючись розміщувати файли максимально послідовно. У RAID (з англ. Redundant Array of Independent Disks або надлишковий масив незалежних дисків) використовується інший підхід, а саме, додається рівень віртуалізації між операційною системою та апаратним забезпеченням для зберігання даних. Цей рівень віртуалізації об'єднує кілька окремих жорстких дисків або твердотільних накопичувачів в єдиний логічний простір для зберігання даних. Для операційної системи та її файлової системи цей простір виглядає як один цілісний блоковий пристрій зі стандартною послідовністю логічних секторів.
Щоб досягти цього, апаратні або програмні "засоби" RAID використовують внутрішню мапу розподілу та зіставлення даних, яка прив'язує логічні сектори до фізичних накопичувачів; ця конфігурація називається геометрією масиву. Система будує цю архітектуру, застосовуючи три основні методи розподілу даних: чергування (розподіл даних між дисками), дзеркалювання (дублювання даних на різних дисках) і використання контрольних сум, відомих як парність (обчислення "додаткових" блоків даних).
Процес відновлення даних із RAID полягає в тому, щоб, оминувши відсутній або несправний контролер, проаналізувати метадані чи "сирі" структури дисків і визначити геометрію масиву, чи то вручну, чи за допомогою спеціалізованого програмного забезпечення. Щойно правила організації даних будуть встановлені, розрізнені фрагменти можна буде віртуально об'єднати в цілісний читабельний том. Проте щоб мати змогу працювати з цими параметрами геометрії масиву, спочатку слід ближче познайомитися з трьома основними методами розподілу, що використовуються для розміщення блоків даних всередині RAID.
Основні методи розподілу даних у RAID
Як зазначалося вище, для організації інформації в масивах RAID використовуються три основні методи розміщення даних. Кожен із цих методів передбачає застосування специфічних технічних параметрів, які необхідно визначити для відновлення вихідного тому.
Чергування даних
Чергування даних (з англ. striping) лежить в основі високопродуктивних RAID. Замість того, щоб записати файл повністю на один накопичувач, контролер сховища розбиває його на сегменти, які називаються блоками даних (або смугами, з англ. stripes), і послідовно розподіляє їх між усіма дисками, що входять до складу масиву.
-
Ряд смуг (з англ. stripe row): цей термін позначає сукупність блоків даних, розташованих горизонтально на всіх дисках масиву.
-
Розмір смуги (розмір блоку даних): це місткість окремого сегмента на одному диску; зазвичай вона варіюється від 512 байтів до 1 МБ або більше (найчастіше — 64 КБ або 128 КБ).
Наприклад, у масиві з чотирьох дисків із розміром смуги 64 КБ файл розміром 256 КБ розбивається на чотири фрагменти по 64 КБ кожен. Контролер записує блок 1 на диск 0, блок 2 — на диск 1, блок 3 — на диск 2, а блок 4 — на диск 3 (усі ці операції виконуються одночасно).
Оскільки послідовність даних у файлі залежить від цієї суворо визначеної черговості, відсутність або неправильне розташування навіть одного блоку призводить до появи прогалини в структурі відновленого файлу, що спричиняє критичне логічне пошкодження даних.
Щоб успішно відтворити чергування та віртуально впорядкувати дані, треба визначити наступні параметри:
-
Розмір смуги: точна ємність одного блоку даних (у байтах).
-
Порядок дисків: точне фізичне розташування кожного диска у масиві (тобто визначення того, який саме диск є "диском 0", який — "диском 1" чи "диском 2" і так далі).
Дзеркалювання
Дзеркалювання — це простий механізм забезпечення надлишковості за принципом копіювання "один до одного", що реалізується шляхом дублювання тих самих блоків даних на окремих фізичних накопичувачах. Коли файл зберігається до дискового масиву з дзеркалюванням, контролер копіює відповідні ланцюжки секторів одразу на кілька дисків, що входять до складу масиву. При цьому операційна система бачить лише один логічний том, тобто фактичне дублювання даних залишається для неї прихованим.
З погляду відновлення даних, дзеркалювання гарантує високу фізичну доступність інформації, проте створює серйозну логічну проблему, а саме, потребу у перевірці стану синхронізації дисків. Якщо один із дисків розсинхронізується або "випаде" з масиву незадовго до збою системи, він миттєво стане "неактуальною" копією. Спроба відновити масив із використанням диска з неактуальною інформацією замість того, що містить найновіші дані, призводить до миттєвого відкату метаданих файлової системи. Через цю невідповідність порушуються структури розподілу даних, внаслідок чого нещодавно змінені файли стають нечитабельними або зазнають серйозних пошкоджень.
Тому для безпечного відновлення даних з масиву з дзеркалюванням без ризику виникнення логічних пошкоджень потрібно визначити наступні параметри:
-
Активне дзеркало (цільовий диск): визначення диска, що містить найактуальнішу версію даних у межах масиву.
-
Стан синхронізації дисків: аналіз часових міток всередині метаданих, журналів запису або структур файлової системи з метою виявлення та виключення застарілих, несинхронізованих дзеркал.
Парність
Конфігурації із застосуванням парності поєднують у собі переваги чергування даних (з англ. striping) у тому, що стосується продуктивності, з відмовостійкістю. Замість повного дублювання (дзеркалювання) даних такі архітектури виділяють обсяг пам'яті, еквівалентний одному або двом дискам, для зберігання надлишкових блоків парності. Ці блоки обчислюються на основі відповідних блоків даних у кожному ряді смуг (з англ. stripe row).
Одинарна парність (логіка XOR)
Стандартні відмовостійкі масиви (наприклад, RAID 5) використовують побітову логічну операцію "виключного АБО" (з англ. Exclusive OR чи XOR). У кожному ряді смуг блок парності (P) обчислюється шляхом двійкового порівняння: результуючий біт набуває значення 1, якщо кількість вхідних бітів, що дорівнюють 1, є непарною. Математично це виглядає так:
P = D1 ⊕ D2 ⊕ D3
Якщо один із дисків виходить з ладу (наприклад, той, що містить D2), втрачені сегменти відновлюються програмним шляхом: виконується операція XOR на блоках даних, що залишилися, та на блоці парності:
D2 = D1 ⊕ D3 ⊕ P
Подвійна парніть (код Ріда — Соломона)
У більш просунутих конфігураціях (наприклад, RAID 6) застосовуються два окремі рівні математичної надлишковості (P та Q), розподілені між різними дисками. Це дозволяє масиву продовжувати роботу навіть у разі одночасного виходу з ладу двох дисків.
Тоді як блок P створюється за допомогою стандартної логіки "виключного АБО" (з англ. Exclusive OR чи XOR), для блоку Q використовується код Ріда — Соломона, що базується на лінійній алгебрі полів Галуа. Така архітектура забезпечує два математично незалежні рівняння для кожного ряда смуг:
P = D1 ⊕ D2 ⊕ D3
Q = (α¹ • D1) ⊕ (α² • D2) ⊕ (α³ • D3)
Ця схема з двома матрицями дозволяє програмному забезпеченню для відновлення даних обчислити значення одразу для двох відсутніх дисків.
Алгоритми розподілу та ротації парності
Виділення окремого диска виключно для зберігання всіх блоків парності створює серйозне "вузьке місце" для операцій введення-виведення. Щоб уникнути цього, контролери сучасних сховищ розподіляють блоки парності рівномірно між усіма дисками масиву, дотримуючись певної геометричної закономірності.
Схема, відповідно до якої блоки парності зміщуються в наступних рядках, називається алгоритмом ротації. Зазвичай контролери використовують один із чотирьох основних варіантів:
| Тип | Напрямок зсуву парності | Послідовність блоків даних |
|---|---|---|
| Ліво-асиметричний | Зсув назад (ліворуч) | Безперервна послідовність із пропуском блоку парності. |
| Ліво-симетричний | Зсув назад (ліворуч) | Послідовність починається заново з диска 0 для кожного ряду, з пропуском парності. |
| Право-асиметричний | Зсув уперед (праворуч) | Безперервна послідовність із пропуском блоку парності. |
| Право-симетричний | Зсув уперед (праворуч) | Послідовність починається заново з диска 0 для кожного ряду, з пропуском парності. |
Визначення точного алгоритму ротації, який використовує контролер, є критично важливим. Якщо під час віртуальної реконструкції вказати асиметричну схему замість застосованої у масиві симетричної, блоки даних вирівняються неправильно, що призведе до катастрофічного пошкодження файлів у вьому масиві.
Отже, для правильного декодування парності та відновлення масиву, у якому відсутні окремі диски, необхідно, щоб наведені нижче параметри повністю збігалися з початковою конфігурацією контролера:
-
Розмір смуги та порядок дисків: ці параметри стосуються геометрії чергування даних (з англ. striping).
-
Алгоритм ротації парності: точна схема розподілу (ліво-симетрична, ліво-асиметрична, право-симетрична або право-асиметрична).
-
Затримка парності (з англ. parity delay): кількість послідовних рядів смуг, що записуються на один диск, перш ніж блок парності переміститься на наступний диск (зазвичай це 1, але в спеціалізованих або корпоративних сховищах це значення може бути більшим).
-
Розміщення блоків P і Q (у разі подвійної парності): структурні правила, що визначають зміщення фізичних секторів і порядок розташування блоків P і Q у межах одного ряду.
-
Параметри поля Галуа (у разі подвійної парності): точні математичні коефіцієнти, породжувальні матриці та примітивні поліноми, які використовує контролер для обчислення вектора Q. Відновлення даних за відсутності двох дисків неможливе без точного визначення цих параметрів.
Методи розподілу даних та типи надлишковості
Конкретна комбінація описаних вище методів розподілу даних визначає структуру та можливості масиву. У разі втрати даних стратегія їх відновлення значною мірою визначається саме цими архітектурними особливостями.
RAID-системи без надлишковості
Такі конфігурації, а саме RAID 0 та JBOD, спрямовані виключно на підвищення продуктивності або об'єднання ємності накопичувачів, не забезпечуючи при цьому жодної відмовостійкості. Зокрема, RAID 0 — це масив із чергуванням даних (з англ. striping), у якому файли розбиваються на блоки даних та послідовно розподіляються між усіма дисками, що входять до складу масиву. Для відтворення файлу необхідно зчитати ці сегменти у чітко визначеному порядку. Через таку організацію даних вихід з ладу навіть одного диска призводить до появи постійних "прогалин" у логічному томі, через які ланцюжок блоків розривається, і відновлення даних стає неможливим, якщо не повернути всі диски до масиву.
У JBOD, у свою чергу, дані просто послідовно розміщуються на дисках, без жодного чергування. І хоча вихід з ладу одного диска не руйнує весь ланцюжок блоків, це призводить до безповоротної втрати всіх файлів, що зберігалися на цьому диску.
Отже, успішне відновлення даних із RAID-системи без надлишковості можливе лише за умови, що всі диски масиву повністю справні або ж за наявності побітових копій (клонів) кожного з несправних дисків.
Дізнатися більше: будь ласка, ознайомтеся з нашим посібником з відновлення даних із RAID-сховищ без надлишковості (RAID 0 та JBOD).
RAID-системи з надлишковістю
До цієї категорії належать конфігурації на базі дзеркалювання (RAID 1), а також масиви з використанням одинарної або подвійної парності (як-от RAID 3, RAID 4, RAID 5 та RAID 6). Ці масиви спроєктовані таким чином, щоб продовжувати працювати навіть у разі виходу з ладу одного або кількох дисків. Однак під час відновлення даних з них можна зіткнутися зі специфічними труднощами:
-
Конфігурації з дзеркалюванням (RAID 1): хоча дублювання даних 1:1 гарантує їхню вищу фізичну доступність, не можна забувати про проблему розсинхронізації дисків. Якщо один із дисків "випадає" з масиву незадовго до збою системи, спроба відновити масив за допомогою цього "неактуального" дзеркала призведе до відкату метаданих файлової системи до попереднього стану, що спричинить пошкодження нещодавно змінених файлів.
-
Конфігурації з використанням парності (RAID 3, 4, 5, 6): такі системи здатні "на льоту" відновлювати відсутні дані, використовуючи вцілілі накопичувачі та математичні блоки парності. У разі виходу з ладу одного з дисків, дані можна успішно відновити за допомогою решти справних накопичувачів. Однак для цього необхідно визначити геометрію масиву (порядок дисків, розмір блоку та схему чергування парності), щоб правильно розрахувати відсутні сектори даних і віртуально відтворити том. Якщо кількість несправних дисків перевищує допустиму межу (наприклад, два диски вийшли з ладу в масиві RAID 5 або три — у RAID 6), повна математична реконструкція відсутніх блоків стає неможливою. У такій ситуації несправні накопичувачі слід спочатку відремонтувати в лабораторних умовах і створити їхні копії (клони), щоб відновити мінімально необхідну кількість справних дисків для виконання розрахунків парності.
Дізнатися більше: за деталями, будь ласка, зверніться до нашого посібника із відновлення даних із RAID-масивів із надлишковістю (зокрема RAID 1, RAID 3, RAID 4, RAID 5 та RAID 6).
Вкладені (гібридні) RAID-системи
Вкладені типи масивів поєднують кілька методів розподілу даних, що дозволяє отримати переваги як у продуктивності, так і у відмовостійкості (як-от у разі RAID 10, 50 та 60). Наприклад, у RAID 10 окремі диски спочатку об'єднуються в пари дзеркал (підмасиви RAID 1), а потім до цих пар застосовується чергування (RAID 0). Відновлення даних із таких систем передбачає багатоетапне віртуальне збирання масиву: спочатку потрібно визначити параметри вкладених підмасивів, і лише після цього можна буде проаналізувати єдину файлову систему в основі сховища.
Дізнатися більше: будь ласка, ознайомтеся з нашим посібником із відновлення даних із вкладених (гібридних) RAID-масивів (зокрема RAID 0+1, RAID 10, RAID 50 та RAID 60).
Як зазначено в цій статті, для відновлення даних із RAID недостатньо розглядати лише віртуальний том — необхідно проаналізувати архітектуру, що лежить в його основі. Весь процес реконструкції базується на аналізі та емуляції конкретних типів розподілу даних — чергування (з англ. striping), дзеркалювання (з англ. mirroring) та використання парності (з англ. parity), які й визначають структуру масиву.
Незалежно від того, чи йдеться про масиви без надлишковості, з надлишковістю або вкладені типи, визначення точного типу надлишковості та геометрії блоків є критично важливим першим кроком для успішного відновлення даних. Щоб ознайомитися з основними підходами та факторами, які впливають на процес відновлення, будь ласка, зверніться до повного посібника з відновлення даних із масивів RAID.
Останнє оновлення: 19 вересня 2026