Система зберігання даних зобов’язана бути надійною, в якихось випадках продуктивною, а в якихось випадках з постійним доступом до даних, а іноді і те й інше разом. Такі можливості може надати технологія RAID. Може здатися, що це щось зі сфери серверів, і так воно і є, але вдома теж може стати в пригоді. Щоб зрозуміти, чи потрібна вам ця технологія і як правильно нею користуватися, спочатку доведеться розібратися — що ж це таке.
Що таке RAID-масив
RAID (Redundant Array of Independent Disks — надлишковий масив самостійних (незалежних) дисків) — це технологія об’єднання двох і більше накопичувачів у єдиний логічний елемент з метою підвищення продуктивності та (або) відмовостійкості окремо взятого елемента масиву.
Надлишкові дані по-іншому називають додатковими. Для їх зберігання потрібен якийсь обсяг. Обсяг, що виділяється для цих даних у масивах, називається аналогічно — надлишковим. Надмірність масиву — це наявність такого об’єму, і що він більший, то більша у масиву надмірність, що зі свого боку забезпечує відмовостійкість.
Простими словами, RAID-масив — це кілька дисків, з’єднаних в єдиний диск із виділенням місця під зберігання інформації для виправлення помилок у даних.
RAID-масиви класифікують за такими параметрами:
- за виконанням RAID-контролера;
- за типами підтримуваних інтерфейсів накопичувачів;
- за підтримуваними рівнями RAID.
Накопичувачі в масив можна об’єднувати по-різному, і на виході отримувати різні масиви зі своїми плюсами і мінусами, від яких буде залежати, в якій області краще їх застосувати. Кожен такий масив ще називається рівнем.
Базові рівні
JBOD
Строго кажучи, це не RAID, але теж масив. Абревіатура дослівно розшифровується як «просто зв’язка дисків». Ця зв’язка дисків не дає жодної відмовостійкості та зростання продуктивності, а є просто дисками, «склеєними» в один логічний елемент, швидкість операцій на якому не вийде за межі найшвидшого і найповільнішого накопичувачів, що беруть участь у зв’язці.
Обсяг такого масиву дорівнюватиме сумі об’ємів накопичувачів, зібраних у цей масив. У разі виходу з ладу накопичувача(-ів) постраждає інформація тільки на цьому(-их) же накопичувачі(-ях) — якщо фрагменти файлу не були розділені між двома накопичувачами. Масив можна складати з різних за ємністю накопичувачів і легко розширювати.
RAID 0
Цей масив ще називається «чергуванням», оскільки під час запису інформації на нього її розбивають на частини (блоки) фіксованого розміру, а записують по черзі на всі зібрані в масив диски. Застосовується для бібліотеки ігор, відеомонтажу або рендерингу.
Наприклад, якщо масив зібрано з двох накопичувачів, то файл розіб’ється на два блоки: A1 і А2, блок A1 запишеться на перший накопичувач, а блок A2 — на другий.
Кількість дисків для складання RAID 0 — мінімум дві штуки. При використанні такого рівня RAID зростають швидкості запису і читання інформації, оскільки операції відбуваються паралельно на всіх дисках. Чим більше дисків у масиві, тим він продуктивніший. Доступний обсяг усіх дисків. Але найголовніший мінус у тому, що поломка одного з дисків такого масиву означатиме повну втрату інформації, оскільки дані зберігаються розбитими по дисках.
RAID 1
Масив відомий як «віддзеркалення». Являє собою повну копію інформації з одного диска масиву на інший. RAID 1 підійде для важливих даних, збереження і доступність яких у пріоритеті.
Передбачається використання двох накопичувачів. За рахунок дублювання забезпечується висока надійність — робота продовжиться в разі пошкодження одного диска. Але в такому разі необхідна його термінова заміна, при цьому дані відновлюються з «дзеркального» диска. Розпаралелюванням запитів забезпечується висока швидкість читання.
Оскільки диски є клонами один одного, то для використання доступний обсяг одного диска. Логічним продовженням цього є дворазова ціна за гігабайт пам’яті. А ще швидкість запису залишається або такою ж, як у разі використання одного диска, або навіть може трохи «просідати».
RAID 2
Ці масиви використовують чергування дисків і коди корекції помилок (код Хеммінга). Через це диски в ньому розподіляються на дві групи: для самих даних і для зазначених вище кодів.
За рахунок чергування досягається висока швидкість операцій з даними порівняно з одним диском. А Код Хеммінга дає змогу виявляти і виправляти помилки під час операцій із файлами «на льоту» без зниження швидкості операцій із даними. Також у разі виходу з ладу одного накопичувача масиву відновлюватимуться дані за кодами корекції помилок, що зберігаються.
Мінімум цього масиву — 7 дисків. Можна менше, але це безглуздо, тому що для кодів знадобиться більше дисків, ніж для самих даних. З подальшим збільшенням дисків надмірність зменшуватиметься за експонентою:
RAID 2 зараз не використовується, тому що він зовсім не економічний, до того ж вважається застарілим. Його витіснили наступні рівні RAID.
RAID 3
Так само, як і RAID 2, використовує чергування дисків, але без кодів Хеммінга. Замість цього зберігаються контрольні суми, і вони-то і використовуються для відновлення, а дані розбиваються на байти. Цей RAID-масив найбільш вдалий для роботи з великими файлами, потоковим мультимедіа, але на практиці не трапляється через невисоку надійність.
Поріг входження в цей тип масиву — три диски. Швидкість операцій читання висока, швидкості операцій запису високі тільки для великих файлів. RAID 3 пропонує хороший компроміс між доступним обсягом і ціною. Інформація, що зберігається, втрачається, якщо «навернеться» більше одного диска.
До недоліків. Можуть спостерігатися проблеми зі швидкістю під час роботи з даними невеликого обсягу. Та й не всі контролери підтримують цей масив. Плюс високе навантаження на диск, що зберігає контрольні суми, скорочує термін його служби щодо дисків з даними.
RAID 4
Можна сказати, це той же самий RAID 3, тільки файл б’ється не на однобайтні блоки, за рахунок чого вдалося дещо підвищити швидкість запису дрібних файлів. Інші характеристики відповідають рейду третього рівня.
RAID 5
Тут використовуються контрольні суми і чергування як у RAID 3 і RAID 4, але обсяг під зберігання сум розподіляється по всьому масиву. Це дає приріст у швидкості запису, оскільки операції тепер можна проводити паралельно. Кількість накопичувачів у масиві починається з трьох. Для зберігання контрольних сум виділяється обсяг, що дорівнює обсягу одного накопичувача. RAID 5 найпоширеніший і використовується у файлових серверах, серверах загального зберігання, серверах резервного копіювання, роботі з потоковими даними та інших середовищах, що вимагають хорошої продуктивності.
Корисний об’єм накопичувачів залежить від кількості накопичувачів у масиві — що більше накопичувачів, то більший об’єм. Швидкість читання — висока, відносно RAID 4 підросла і швидкість запису. А за рахунок розмазування сум по масиву і навантаження на всі диски розподіляється рівномірно.
Але коли один диск «накривається», надійність масиву істотно падає, і він переходить у критичний стан. Відновлення — дуже тривалий процес, що спричиняє падіння продуктивності масиву і сильно збільшує навантаження на накопичувачі, оскільки з них проводиться тривале інтенсивне читання.
Ребілд збільшує ймовірність відходу з життя ще одного або навіть декількох накопичувачів у масиві, що зі свого боку призведе до втрати даних. Так само під час відновлення можуть виявитися раніше не виявлені помилки, і відновлення даних з такого масиву потребуватиме звернення до спеціалізованих організацій.
Для попередження подібних ситуацій застосовується аналіз стану накопичувачів (S.M.A.R.T.) і використання технології Hot Spare (гарячий резерв) — це автоматичне підхоплення в масив заздалегідь зарезервованого диска замість того, що вийшов з ладу, і старт процедури відновлення масиву.
RAID 6
Контрольні суми на цей масив записуються в подвійному розмірі, що вимагає і збільшення об’єму вдвічі. Такий «фінт» призводить до підвищення відмовостійкості, при цьому не сильно збільшуючи вартість.
Мінімальна кількість дисків — чотири. До всіх переваг RAID 5 додається підвищена надійність, за рахунок допустимої відмови двох дисків одночасно. Але швидкість запису може бути значно нижчою, ніж у RAID 5. Шостий рейд використовується там же, де і «п’ятий», але із заявкою на підвищену надійність.
Комбіновані рівні
RAID 01 і RAID 10
Масиви являють собою кооперування рівнів 0 і 1. RAID 01 — це віддзеркалення двох масивів чергування. Також називається «дзеркало страйпів».
А RAID10 — це чергування двох дзеркальних масивів.
У будь-якому з варіантів корисний об’єм масиву становитиме 50 % від сумарного об’єму задіяних дисків.
Обидва рейди мають однакову високу продуктивність, але надійність у RAID 10 вища, ніж у RAID 01, за рахунок того, що в «десятці» можлива відмова по одному накопичувачу в кожному «дзеркалі» без втрати інформації. З цієї причини RAID 01 не використовується, і тому ж перерахуємо переваги і недоліки тільки для RAID 10.
Доступний такий масив від чотирьох дисків. При ньому висока швидкість від RAID 0, відмовостійкість від RAID 1. Але ціна за такий симбіоз висока. Зате це ідеальний кандидат для зберігання критично важливих даних і в додатках з інтенсивним введенням-виведенням даних.
RAID 03 і RAID 30
У цьому разі чергування вже міксується з RAID 3. І, аналогічно до ситуації вище, або збираєш у RAID 3 від трьох масивів RAID 0, або в RAID 0 зібрано кілька RAID 3. Логічно, що розглядати має сенс тільки останній варіант через ту ж перевагу в надійності.
Мінімальні ставки підвищуються до шести дисків. Як і в попередньому випадку зростає продуктивність і підвищується надійність, але на відміну від десятого рівня, корисний об’єм більший. Ну і, звісно, за таку екзотику доведеться заплатити більше.
RAID 50
Знову ж чергування, тільки з RAID 5. Знаходить застосування в серверах дуже великої ємності.
Допускає втрату по одному диску в різних масивах RAID 5 без втрати даних, відповідно, чим більше чергується масивів, тим більше дисків допустимо втратити.
До переваг RAID5 додається підвищення швидкості запису і підвищення швидкості відновлення. Допустимий мінімум — шість дисків, а це влітає в копієчку. Так само потрібно мати на увазі, що не кожен контролер здатний підтримувати цей тип масиву.
RAID 60
Як не важко здогадатися, це зв’язка RAID 0 і RAID 6.
«Ставки підвищуються» до восьми накопичувачів. Вирішується проблема продуктивності RAID 6, але без грошових вливань тут не обійтися. Як і у RAID 50 є проблема можливої відсутності підтримки цього масиву з боку контролера.
RAID 100
Комбінований рейд з комбінованих рейдів не хочете? Так! Тут відбувається чергування RAID 10.
Цей масив створюється за допомогою декількох низькопродуктивних контролерів. Це дає збільшення швидкостей, порівняно з тим, якби рейд будувався на одному з цих контролерів. Робота з дуже великими базами даних — найкраще застосування цього масиву.
Існує ще кілька комбінованих масивів. Вони також являють собою або чергування, або віддзеркалення, змішане з якимось іншим типом масиву, що закономірно призводить до підвищення або продуктивності, або надійності. Так що загострювати увагу на них ми не будемо і перейдемо до наступного рівня.
Удосконалені рівні RAID
RAID 1E
Віддзеркалення, здатне працювати з непарною кількістю накопичувачів. Для реалізації цього масиву є два алгоритми:
Near — запис копії зі зсувом накопичувача.
Interleaved — копія даних пишеться з чергуванням по смугах і зсувом накопичувача.
Для такого масиву потрібно мінімум три диски. Дає таке вдосконалення збільшення швидкості передачі даних і обробки запитів. Доступна, як і в класичному дзеркалі, тільки половина обсягу. Надійність дещо гірша, ніж у RAID 1, хоч і допускається вихід більше одного диска, за умови, що це не сусіди, на яких зберігається оригінальний блок даних і його дубль. Але і таке доступно не на всіх контролерах — на деяких допускається втрата тільки одного накопичувача.
RAID 5EE
Варіант удосконалення RAID 5 шляхом включення в масив диска з гарячого резерву. Стартовий набір накопичувачів для такого масиву — чотири штуки.
Об’єм «гарячого диска» розподіляється по масиву, а загальний об’єм стає рівним об’єму n-2 диска. У разі відмови одного накопичувача масив стискається до n-1 дисків шляхом заповнення вільного простору. Іншими словами, це все той самий RAID 5, тільки з можливістю поховати два диски замість одного. Щойно конфігурація отримає новий диск замість того, що «від’їхав», масив знову займе всі диски. Аналогічно, до речі, може бути вдосконалений і RAID 6.
RAID DP
У цьому випадку було модифіковано RAID4 шляхом додавання ще одного накопичувача для зберігання контрольних сум. Але цей рейд вузькоспеціалізований і може працювати тільки в пристроях компанії NetApp, оскільки в ньому використовується файлова система WALF. Зв’язка RAID-DP з цією системою дає підвищення продуктивності вище, ніж у рейдів 5 і 6 рівнів.
RAID 7
Технологія, що за назвою, здавалося б, натякає на черговий розвиток базових рівнів, теж є вузькоспеціалізованим рішенням, але цього разу належить компанії Storage Computer Corporation. І це рішення — RAID 4, але використовує кешування операцій з читання і запису в ОЗП. Для його надійної роботи обов’язкова наявність ДБЖ, оскільки в разі перебоїв живлення дані пошкоджуються.
Наведемо коротку вижимку всіх рівнів (крім JBOD, RAID DP і RAID 7) у таблицю:
Ну що ж з рівнями RAID начебто розібралися, залишилося зрозуміти, як і з чого їх можна збирати.
Яким чином можна зібрати RAID-масив
Програмний RAID реалізується засобами операційної системи або на рівні материнської плати. Таке рішення не завжди стабільне, «віджирає» частину ресурсів процесора й оперативної пам’яті. Залежно від операційної системи підтримує далеко не всі рівні RAID — Win10, наприклад, дасть можливість створити тільки JBOD, RAID 0,1 і 5 — але зате є «безкоштовним», оскільки додатково купувати нічого не потрібно.
Інтегрований апаратний RAID званий ще Fake-RAID. Це чіп, розпаяний на материнській платі, який знімає частину навантаження з процесора при створенні та підтримці RAID’а. Таке рішення продуктивніше за суто софтверний підхід і забезпечує можливість установлення ОС, але надійність так само невисока.
У цій статті ви можете більш детально ознайомиться з гайдом зі створення RAID-масиву одним із двох описаних вище способів.
Апаратний RAID можна зі свого боку теж розділити на кілька видів.
Перший — це дискретна картка з інтерфейсом PCI-e. На ній розпаяний контролер з персональною пам’яттю, процесором, системою охолодження і часто навіть акумулятором для безперебійного живлення. Це рішення за надійністю і продуктивністю набагато краще за програмний та інтегрований райди, але водночас і набагато затратніше.
Другий вид — це зовнішні контролери. Вони розташовуються в окремому корпусі, як правило, разом з накопичувачами, мають свій незалежний блок живлення і підключатися можуть по PCI-e, USB 3.2 або Thunderbolt 3. Це найнадійніше рішення і найдорожче.
Із чого збирати RAID-масив
Спочатку RAID-масиви призначалися для жорстких дисків (HDD) і підтримували інтерфейси IDE, SATA і SAS. IDE вже давненько застаріло, ну а до SATA і SAS додався ссдшний NVMe. Класичні SATA HDD зв’язуються в масиви без проблем. SAS теж, але це все ж таки доля серверів
З масивами на SSD трохи складніше. Просто зібрати накопичувачі в масив можна без проблем — працювати буде, але не на тих швидкостях, на які ви розраховували. Тому що контролер може бути розрахований на роботу з «механікою» і цим обмежувати пропускну здатність. І краще купувати для цього однакові накопичувачі (один виробник, одна серія), щоб не було розльоту в характеристиках — для більшості масивів це важливо.
І якщо звичайні 2,5-дюймові SSD-накопичувачі підключаються по sata, то NVMe’шники — по шині PCI-Express і займають чотири лінії на один накопичувач. Швидкість RAID-масиву може бути обмежена версією цієї шини, але не тільки нею. PCI-лінії розводяться на материнських платах у процесор безпосередньо і через чіпсет. Кількість ліній між чіпсетом і процесором розподіляється по-різному і залежить також від виробника процесора.
На платах для Intel більше ліній йде через чіпсет, а для AMD більше ліній «кидається» відразу на «камінь». Так ось, якщо ви підключите SSD через чіпсетні лінії, то будете обмежені пропускною спроможністю з’єднання чіпсета з процесором і його версією. У підсумку всю цю справу збирати бажано через процесорні лінії PCI-e, ніж чіпсетні. Всю інформацію для цього необхідно шукати в документації на плату Також у нас є стаття з потрібною інформацією.
Якщо у вас двочиплетний процесор, то тут теж є нюанс. Для досягнення максимальних швидкостей потрібно підключати накопичувачі масиву в лінії шини PCI, що йдуть на один чіплет. Якщо буде під’єднання до двох чиплетів, то ботлнеком буде шина, що з’єднує ці чиплети, адже по ній вони будуть ганяти дані.
Для «правильного» NVME RAID-масиву роз’ємів на платі з великою ймовірністю не вистачить, особливо, якщо планується зібрати в рейд багато дисків. Допомогти з цим зможуть різні адаптери або перехідники. З апаратними рішеннями таких проблем, як правило, не виникає. Існують навіть варіанти, які можуть працювати зі змішаним складом накопичувачів.
RAID — це не бекап. Він ніколи ним не був і не буде. Якщо ви або програма видалить дані з рейду, то відновити без бекапа ці дані не вийде. Тому така технологія не звільняє вас від резервного копіювання важливих даних.
Статтю оновлено автором Megakot.