Лабораторна робота № 10. Принципи функціонування RAID систем

 

У 1987 р. три американські дослідники Паттерсон, Гібсон і Катц з Каліфорнійського університету Берклі написали статтю "A Case for Redundant Arrays of Inexpensive Discs (RAID)". У статті описувалося, яким чином можна декілька дешевих жорстких дисків об'єднати в один логічний пристрій таким чином, що в результаті об'єднання підвищуються ємкість і швидкодія системи, а відмова окремих дисків не приводить до відмови всієї системи. Можливість недорого (inexpensive) побудувати дисковий масив великої ємкості, підвищеної швидкодії і, до того ж, відмовостійкий, з того часу постійно турбує розуми комп'ютерників. У перші Raid-и, щоб вони дійсно працювали, довелося встановлювати дуже дорогі дискові пристрої від мейнфреймів.

RAID (англ. redundant array of independent/inexpensive disks - надлишковий масив незалежних/недорогих жорстких дисків) — масив з декількох дисків керованих контроллером, взаємозв'язаних швидкісними каналами і який сприймається як єдине ціле. Він забезпечує функції розміщення даних по масиву, а для решти всієї системи дозволяє представляти весь масив як один логічний пристрій вводу/виводу. За рахунок паралельного виконання операцій читання і запису на кількох дисках, масив забезпечує підвищену швидкість обмінів в порівнянні з одним великим диском. Залежно від типа використовуваного масиву може забезпечувати різні ступені відмовостійкості і швидкодії.

Каліфорнійський університет в Берклі представив наступні рівні специфікації RAID, які були прийняті як стандарт де-факто.

·        RAID 0 представлений як невідмовостійкий дисковий масив.

·        RAID 1 визначений як дзеркальний дисковий масив.

·        RAID 2 зарезервований для масивів, які застосовують код Хеммінга.

·        RAID 3, 4, 5 використовують парність для захисту даних від одиночних несправностей.

·        RAID 6 використовують парність для захисту даних від подвійних несправностей.

Загальні принципи функціонування

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

Відмовостійка досягається тим, що вводиться надмірність. У RAID обднується більше дисків, чим це необхідно для отримання необхідної ємкості.

Продуктивність дискової системи підвищується за рахунок того, що сучасні інтерфейси (зокрема, SCSI) дозволяють здійснювати операції запису і прочитування фактично одночасно з декількома дисками. Тому в першому наближенні можна розраховувати, що швидкість запису або читання, у разі застосування RAID, збільшується пропорційно кількості дисків, що об'єднуються в RAID.

Можливість одночасної роботи з декількома дисками можна реалізувати двома способами: з використанням паралельного доступу (parallel-access array) і з використанням незалежного доступу (independent-access array).

Для організації паралельного доступу робочий простір дисків розмічається на зони певного розміру (блоки) для розміщення даних і надмірної інформації. Інформація, що підлягає запису на диски (запит на обслуговування), розбивається на таких же по величині блоки, і кожен блок записується на окремий диск. Під час вступу запиту на читання, необхідна інформація збирається з декількох блоків (рис. 1).


Рис. 1. Масив з паралельним доступом

 

Зрозуміло, що в цьому випадку швидкість запису (так само як і швидкість читання) збільшується пропорційно кількості дисків, об'єднаних в RAID.

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


Рис. 2. Масив з незалежним доступом

 

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

Таким чином, обидва архітектурні рішення сприяють підвищенню продуктивності, але механізм підвищення продуктивності у цих рішень різний. Відповідно, властивості RAID істотно залежать від того, який з цих двох механізмів в нім використовується. Саме тому при порівнянні RAID різного рівня в першу чергу необхідно порівнювати розмір логічних блоків. Точніше кажучи, не власне розмір, а співвідношення розміру блоку і величини запиту на обслуговування (об'єм інформації, належному запису або прочитуванню).

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

І, нарешті, в RAID різного рівня застосовуються різні способи обчислення надмірної інформації. Це також впливає на характеристики RAID (надійність, в першу чергу, продуктивність і вартість). Основні способи: повне дублювання інформації, застосування код з корекцією помилок (застосовується код з корекцією одиночних помилок і виявленням подвійних помилок ECC – код Хеммінга) і обчислення парності (Parity).

Рівні RAID

RAID 0

Схема RAID 0

RAID 0 («Striping») — дисковий масив з двох або більш жорстких дисків з відсутністю надмірності. Інформація розбивається на блоки даних (Ai) і записується на обидва/декілька дисків одночасно.

(+): За рахунок цього істотно підвищується продуктивність (від кількості дисків залежить кратність збільшення продуктивності).

(+): RAID 0 може бути реалізований як програмно, так і апаратний.

(?): Страждає надійність всього масиву (при виході з ладу будь-якого диска, що входять в RAID 0 повністю і безповоротно пропадає вся інформація). Відповідно до теорії вірогідності, надійність масиву RAID 0 дорівнює добутку вірогідності безвідмовної роботи складових його дисків, кожна з яких менше одиниці, таким чином сукупна надійність свідомо нижче за надійність будь-якого з дисків.

RAID 1

Схема RAID 1

RAID 1 (Mirroring — «зеркалка»).

(+): Забезпечує прийнятну швидкість запису і виграш за швидкістю читання при розпаралелюванні запитів.

(+): Має високу надійність — працює до тих пір, поки функціонує хоч би один диск в масиві.

(-): Недолік полягає в тому, що доводиться виплачувати вартість двох жорстких дисків, отримуючи корисний об'єм одного жорсткого диска (класичний випадок, коли масив складається з двох дисків).

Спочатку передбачалося, що жорсткий диск — річ надійна. Відповідно, вірогідність виходу з буд відразу двох дисків дорівнює (по формулі) добутку вірогідності відмови кожного диска, тобто нижче на порядок. На жаль, дана теоретична модель не досить повно відображає процеси, що протікають в реальному житті. Так, звичайно два вінчестери беруться з однієї партії і працюють в однакових умовах, а при виході з ладу одного з дисків навантаження на той, що залишився збільшується, тому на практиці при виході з ладу одного з дисків слід терміново приймати заходи — знов відновлювати надмірність. Для цього з будь-яким рівнем RAID (окрім нульового) рекомендують використовувати диски гарячого резерву Hot Spare. Перевага такого підходу — підтримка постійної надійності. Недолік — ще більші витрати (тобто вартість трьох вінчестерів для зберігання об'єму одного диска).

Дзеркало на багатьох дисках — RAID 1+0. При використанні такого рівня дзеркальні пари дисків шикуються в «ланцюжок», тому об'єм отриманого масиву може перевершувати ємкість одного жорсткого диска. Достоїнства і недоліки такі ж, як і для рівня RAID 0. Як і в інших випадках, рекомендується включати в масив диски гарячого резерву Hot Spare з розрахунку один резервний на п'ять працюючих.

RAID 2

У масивах такого типа диски діляться на дві групи — для даних і для кодів корекції помилок, причому якщо дані зберігаються на n дисках, то для складування кодів корекції необхідно n+1 дисків. Дані записуються на відповідні вінчестери так само, як і в RAID 0, вони розбиваються на невеликі блоки по числу дисків, призначених для зберігання інформації. Диски, що залишилися, зберігають коди корекції помилок, по яких в разі виходу якого-небудь вінчестера з ладу можливе відновлення інформації. Метод Хеммінга давно застосовується в пам'яті типу ECC і дозволяє на льоту виправляти однократні і виявляти двократні помилки.

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

RAID 3

Схема RAID 3

Структура масиву RAID 3 така: у масиві з n дисків дані розбиваються на блоки розміром 1 байт і розподіляються по n + 1 дискам, а ще один диск використовується для зберігання блоків парності. У RAID 2 для цієї мети стояло n + 1 дисків, але велика частка інформації на цих дисках використовувалася тільки для корекції помилок на льоту, а для простого відновлення в разі поломки диска досить меншої її кількості, вистачає і одного виділеного вінчестера.

Відповідно, відміності RAID 3 від RAID 2 очевидні: неможливість корекції помилок на льоту і менша надмірність.

(+): швидкість читання і запису даних висока, а для створення масиву потрібно зовсім трохи дисків, всього три.

(-): масив цього типа хороший тільки для однозадачної роботи з великими файлами, оскільки спостерігаються проблеми з швидкістю при частих запитах даних невеликого обьема.

(-): велике навантаження на контрольний диск, що приводить до того, що його надійність сильно падає в порівнянні з дисками з даними.

RAID 4

Схема RAID 4

RAID 4 схожий на RAID 3, але відрізняється від нього тим, що дані розбиваються на блоки, а не на байти. Таким чином, удалося «перемогти» проблему низької швидкості передачі даних невеликого об'єму. Запис же проводиться повільно через те, що парність для блоку генерується при записі і записується на єдиний диск. Використовуються масиви такого типа дуже рідко.

RAID 5

Схема RAID 5

Великий недолік рівнів RAID від 2-го до 4-го — це наявність окремого диска (або дисків), що зберігає інформацію про парність. Швидкість виконання операцій прочитування досить висока, оскільки не вимагає звернення до цього диска. Але при кожній операції запису на нім змінюється інформація, тому схеми RAID 2—4 не дозволяють проводити паралельні операції запису. RAID 5 не має цього недоліку. Блоки даних і контрольні суми циклічно записуються на всі диски масиву, відсутній виділений диск для зберігання інформації про парність, немає асиметричності конфігурації дисків. Найпопулярніший з рівнів, насамперед завдяки своїй економічності. На запис інформації на RAID 5 витрачаються додаткові ресурси, оскільки потрібні додаткові обчислення, зате при читанні (в порівнянні з окремим вінчестером) є виграш, тому що потоки даних з декількох накопичувачів масиву розпаралелюються.

Недоліки RAID 5 виявляються при виході з ладу одного з дисків — весь том переходить в критичний режим, всі операції запису і читання супроводяться додатковими маніпуляціями, різко падає продуктивність. При цьому рівень надійності значно знижується (оскільки зменшена надмірність масиву). Тому, з томом RAID 5 слід обов'язково використовувати диск Hot Spare. Якщо під час відновлення масиву, викликаного виходом з ладу одного диска, вийде з ладу другий диск — дані в масиві руйнуються. Мінімальна кількість використовуваних дисків рівна трьом.

RAID 6 (ADG)

Схема RAID 6

RAID 6 (Advanced Data Guarding) — схожий на RAID 5, але має вищий ступінь надійності — під контрольні суми виділяється ємкість 2-х дисків, розраховуються 2 суми по різних алгоритмах. Вимагає серйозніший процесор контроллера — відповідно, складна материнська плата. Забезпечує працездатність після «смерті» одночасно 2-х дисків. Для організації масиву потрібно мінімум 4 диски.

RAID 7

RAID 7 — зареєстрована марка компанії Storage Computer Corporation. Структура масиву така: на n + 1 дисках зберігаються дані, один диск використовується для складування блоків парності. Але додалося декілька важливих деталей, покликаних ліквідовувати головний недолік масивів такого типу: кеш даних і швидкий контроллер, завідувач обробкою запитів. Це дозволило знизити кількість звернень до дисків для обчислення контрольної суми даних. В результаті удалося значно підвищити швидкість обробки даних (подекуди в п'ять і більше разів).

Додалися і нові недоліки: дуже висока вартість реалізації такого масиву, складність його обслуговування, необхідність в джерелі безперебійного живлення для запобігання втраті даних в кеш-пам'яті при перебоях живлення.

Комбіновані рівні

Окрім базових рівнів RAID 0 — RAID 5, описаних в стандарті, існують комбіновані рівні RAID 1+0, RAID 3+0, RAID 5+0, RAID 1+5, які різні виробники інтерпретують кожен по-своєму.

RAID 1+0 — це поєднання зеркалірованія і чергування (див. вищий).

Нинішні контроллери використовують цей режим за умовчанням для RAID 1. Тобто, 1 диск основний, 2-й диск — дзеркало, причому читання проводиться з них по черзі, як для RAID 0. Власне, зараз можна вважати що RAID 1 і RAID 1+0 — це просто різна назва одного і того ж методу апаратного дзеркалювання дисків. Але не варто забувати, що повноцінний RAID 1+0 повинен містити як мінімум 4 диски.

RAID 5+0 — це чергування томів 5-го рівня.

RAID 1+5 — RAID 5 з дзеркальованими парами, і т.д.

Комбіновані рівні успадковують як переваги, так і недоліки своїх «батьків»: поява чергування у рівні RAID 5+0 ніскільки не додає йому надійності, але зате позитивно відбивається на продуктивності. Рівень RAID 1+5, напевно, дуже надійний, але не найшвидший і, до того ж, украй неекономічніший: корисна ємкість тому менше половини сумарної ємкості дисків.

Варто відзначити, що кількість жорстких дисків в комбінованих масивах також зміниться. Наприклад для RAID 5+0 використовують 6 або 8 жорстких дисків, для RAID 1+0 - 4, 6 або 8.

Matrix RAID

Схема Intel Matrix RAID

Matrix RAID — це технологія, реалізована фірмою Intel у своїх чіпсетах зачинаючи з Ich6r. Строго кажучи, ця технологія не є новим рівнем RAID (її аналог існує в апаратних RAID-контроллерах високого рівня), вона дозволяє, використовуючи лише 2 диски, організувати одночасні один або декілька масивів рівня RAID 1 і один або декілька масивів рівня RAID 0. Це дозволяє за порівняно невеликі гроші забезпечити для одних даних підвищену надійність, а для інших високу швидкість доступу.

Приклад використання:

Є в наявності два диски по 160 Gb. Кожен диск розбивається на томи по 60 і по 100 Gb, потім 100-гігабайтні томи об'єднуються в швидкісний масив RAID 0, а 60-гігабайтні — в масив підвищеної надійності RAID 1. У масиві RAID 1 можна розмістити операційну систему, робочі документи, фото- і відеоархіви, колекцію музики і інші важливі дані, а своп, тимчасові файли і ігри в масиві RAID 0. В результаті виходить вельми раціональне поєднання підвищеної продуктивності і надійності зберігання даних.

Програмний (англ. software) RAID

Для реалізації RAID можна застосовувати не лише апаратні засоби, але і повністю програмні компоненти (драйвери). Наприклад, в системах на ядрі Linux існують спеціальні модулі ядра для управління RAID-пристроями в Gnu/linux за допомогою утиліти mdadm. Програмний RAID має свої переваги і недоліки. З одного боку, він нічого не вартує, на відміну від апаратних RAID-контролерів, ціна яких є високою. З іншого боку, програмний RAID використовує ресурси центрального процесора, і в моменти пікового навантаження на дискову систему процесор може значну частку потужності витрачати на обслуговування RAID-пристроїв.

Ядро Gnu/linux 2.6.28 (останнє з тих, що вийшли в 2008 році) підтримує програмні RAID наступних рівнів: 0, 1, 4, 5, 6, 10. Реалізація дозволяє створювати RAID на окремих розділах дисків, що аналогічно описаному вище Matrix RAID.

ОС Windows 2000/XP/2003 підтримує програмний RAID 0, RAID 1 і RAID 5. Точніше, Windows XP Pro підтримує RAID 0. Підтримка RAID 1 заблокована розробниками, але, проте, може бути включена, шляхом редагування системних бінарних файлів ОС.  Windows Server 2003 — 0, 1 і 5. Windows XP Home RAID не підтримує.

У ОС FREEBSD є декілька реалізацій програмного RAID. Так, atacontrol, може як повністю будувати програмний RAID, так і може підтримувати підлозі апаратний RAID на таких чіпах як Ich5r. У FREEBSD, зачинаючи з версії 5.0, дискова підсистема управляється вбудованим в ядро механізмом GEOM. GEOM надає модульну дискову структуру, завдяки якій народилися такі модулі як gstripe (RAID 0), gmirror (RAID 1), graid3 (RAID 3), gconcat (об'єднання декількох дисків в єдиний дисковий розділ). Так само існують застарілі класи ccd (RAID 0, RAID 1) і gvinum (менеджер логічних томів vinum).

 

Продуктивність RAID

Перш ніж розглядати питання продуктивності RAID різного рівня, необхідно визначитися з самим питанням: «що таке продуктивність?» Не можна підходити до питання про продуктивність RAID з тими ж мірками, з якими ми оцінюємо продуктивність одиночного диска. Це зв'язано, перш за все, з областю застосування RAID. Основне застосування технологія RAID знайшла в серверах. Тому такі показники як швидкість запису або швидкість читання важливі, звичайно, але не відображають здатність системи в цілому (сервера) виконувати своє основне завдання – обслуговувати одночасна велика кількість клієнтів. У реальних умовах система, в якій встановлений RAID (сервер), формує потік запитів до RAID на обслуговування. Принципи, покладені в основу побудови RAID дозволяють одночасно обслужити декілька таких запитів або швидше звільнитися (у Raid-3) для обслуговування чергового запиту. Проте, при інтенсивному потоці заявок на обслуговування, RAID може бути зайнятий обслуговуванням попередніх запитів. В цьому випадку черговий запит чекає, коли RAID звільниться. Таким чином, перевантаження RAID інтенсивним потоком запитів приводить в першу чергу до збільшення часу обслуговування чергового запиту. Тому як критерій продуктивності RAID прийнято вимірювати час очікування обслуговування при певній інтенсивності потоку запитів.

Розглянемо, яким же чином принципи, закладені в RAID різного рівня, впливають на час очікування обслуговування.

Час очікування обслуговування

RAID різного рівня, природно, по-різному поводяться при збільшенні кількості запитів. Це пов'язано в першу чергу із співвідношенням розміру блоків на дисках і розміру записуваних (прочитуваних) даних. Давайте ще раз повернемося до даного питання. Для ілюстрації на рис. 4 приведено співвідношення розміру запитів і розміру блоків для двох випадків: запис або читання великого файлу («довгий» запит) і малого файлу («короткий» запит).


Рис. 4. Співвідношення довжини запитів і розміру логічних блоків

 

Даний малюнок відповідає RAID рівня 3 або 4 (залежно від величини запиту на обслуговування), організованого на трьох дисках.

«Довгий» запит добре ілюструє особливості RAID рівня 3. Такий запит розбивається на окремі блоки. Половина цих блоків (відповідно до малюнка) записується на один диск, а половина на іншій. Одночасно на третій диск записується контрольна інформація. Операція обчислення парності – це дуже швидка операція і легко реалізується апаратний. Тому додатковими тимчасовими затримками, пов'язаними з обчисленням надмірної операції, можна нехтувати. У результаті великий файл буде записаний або лічений в два рази швидше (для системи з 3-х дисків, як на рис. 4) чим, якби запис здійснювався на одиночний диск. Проте будь-який інший запит, що поступив в цей час, чекатиме обслуговування. Таким чином, при інтенсивному потоці запитів час очікування може бути вельми значним.

«Короткий» запит відповідає режиму роботи RAID рівня 4 або 5. Якщо розмір записуваного файлу менше ніж розмір логічного блоку, то такий файл, природно, не може бути розбитий на частини. Він весь розміщується на якому-небудь одному диску. Тому і швидкість запису повинна була б бути такою самою, як і при записі на одиночний диск. Проте контрольна інформація, пов'язана з блоком, що модифікується, відповідає всьому блоку, а не тільки тій частині, яка модифікується. Тому реально, щоб виконати запис, необхідно спочатку рахувати блок, що модифікується, і контрольну суму, потім обчислити нове значення контрольної суми і лише після цього записати модифікований блок і нове значення контрольної суми. Замість операції запису в Raid-5 і -4 фактично здійснюється операція «чтение-модификация-запись». Таким чином, в RAID рівня 4 і 5 швидкість запису практично удвічі гірше, ніж при використанні одиночного диска. Це – найбільша проблема в RAID рівня 5, і виробники RAID-контроллеров ведуть інтенсивні роботи по її подоланню. Проте наявність такої проблеми ще не говорить про те, що RAID рівня 5 володіє низькою продуктивністю або поступається по цьому показнику RAID рівня 3. При читанні, RAID рівня 4 або 5 може одночасно обслужити декілька запитів, завдяки чому продуктивність RAID рівня 5 може залишатися високою навіть при вельми інтенсивному потоці запитів на обслуговування. У RAID рівня 5 одночасно також може обслуговуватися і декілька запитів на запис. Саме для цього контрольна інформація розміщується не на одному диску, а чергується на всіх. Тому, в цілому, час очікування обслуговування при інтенсивному потоці малих запитів в RAID рівня 5 виявляється кращим, ніж, наприклад, в RAID рівня 3.

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


Якісне співвідношення характеристик RAID

 

Докладнішу інформацію про конкретні моделі RAID-контролерів можна знайти на сайтах виробників цих контролерів. Не претендуючи на повноту списку, приведемо ряд посилань на сайти відомих виробників контроллерів: Asustek, Digi-data, Domex, ICP Vortex, IFT (Infortrend), Promise.

 

2. Порядок виконання роботи

1.      Ознайомитися з теоретичними відомостями.

2.      Скласти звіт з власними висновками про проведену роботу та відповідями на наступні питання:

·       Дати обґрунтування поняттю RAID?

·       Дати обґрунтування рівням RAID?

·       Дати обґрунтування вибору рівня RAID для використання в офісі невеликої фірми?

 

 

Список рекомендованої літератури

 

1.     Википедия - свободная энциклопедия. http://ru.wikipedia.org/wiki.

2.      Електронний дидактичний комплекс кафедри КТПН ЛДТУ. Нttp://elearning.lutsk.ua.