Розуміння raid 5

Апаратні підсистеми RAID 5 є на сьогоднішній день найбільш популярними для файл-серверів загального призначення, Web-серверів і інших прикладних задач, пов'язаних зі зберіганням і обробкою даних. Вони не тільки підвищують продуктивність і поліпшують захист даних, але дозволяють знизити вартість такого рішення при збереженні або поліпшенні основних характеристик і властивостей.

Ефективне зберігання даних - важливе завдання для обчислювальної середовища підприємства, і багато організацій використовують RAID-масиви в серверних, мережевих та Інтернет додатках зберігання і обробки даних, щоб підвищити їх доступність. Технології RAID можуть дозволити IT-менеджерам використовувати в своїх інтересах ключову продуктивність і операційні характеристики, які контролери та підсистеми RAID 5 забезпечують завдяки процесорам введення / виведення, які звільняють центральний процесор від переривань під час дискових операцій «читання-модифікація-запис».

За реалізації RAID-контролери бувають програмними (т.зв. софтові), програмно-апаратними і повністю апаратними.

Програмний RAID не вимагає спеціальних апаратних засобів. Всі дані обробляються центральним процесором. У цьому випадку використовується стандартне підключення накопичувачів. Незручність такої реалізації RAID - додаткова істотне навантаження на процесор, скорочення процесорного часу на обробку запитів додатків і операційної системи, так як центральний процесор обробляє всі RAID-операції (обчислення XOR, розміщення даних та обробка переривань по цим завданням).

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

Апаратний RAID-контролер є RAID-підсистему, яка фактично є самостійною і самодостатньою для своїх завдань і практично не вимагає ресурсів центрального процесора при операціях з RAID-масивом. У цій підсистеми є свій BIOS, запрошення якого можна бачити під час завантаження системи, свій процесор і своя пам'ять, звана кеш-пам'яттю контролера.

Визначення рівнів RAID

Існує кілька основних типів (т.зв. «рівнів») RAID. Кожен пропонує унікальну комбінацію властивостей, два основних з яких - це ступінь захисту даних і продуктивність. Для того, щоб зрозуміти, як працює RAID 5, розглянемо два початкових рівня RAID - «0» і «1»:

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

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

Як працює RAID 5

RAID 5 поєднує в собі властивості RAID 0 і RAID 1. З одного боку, операції читання і запису відбуваються одночасно (паралельно) з усіма дисками масиву. З іншого боку, при виході з ладу одного диска інформація не втрачається.

RAID 5 забезпечує цілісність даних дискового масиву, використовуючи простір, за обсягом рівне меншому накопичувача в масиві. Наприклад, в масиві з п'яти накопичувачів місткістю по 72 ГБ, доступна ємність масиву становитиме 288 ГБ. Доступна для користувача ємність масиву RAID 5 обчислюється за формулою S * (N- 1), де S - ємність найменшого накопичувача в масиві, N - загальна кількість накопичувачів в масиві.

Кількість накопичувачів, їх ємність і сумарна ємність масиву RAID 5 на збереження даних не позначаються. Також, як єдиний накопичувач ємністю 72 ГБ може захистити всі дані в масиві з п'яти накопичувачів загальною ємністю 288 ГБ, в масиві з 15-ю накопичувачами ємністю 300 ГБ, єдиний накопичувач на 300 ГБ може захистити весь масив на 4,2 ТБ в разі відмови одного накопичувача.

RAID 5 забезпечує ефективний спосіб захисту даних і досягає подібної RAID 0 продуктивності з читання. У той же час, швидкість запису RAID 5 може досягати великих значень, ніж у одного накопичувача. Таким чином, оскільки RAID 5 ефективно захищає дані і може підвищити продуктивність дискової підсистеми, він є найбільш популярним на сьогоднішній день.

Обчислення функції XOR

Один накопичувач може захистити дані будь-якого числа інших накопичувачів за умови, що з ладу виходить тільки один з накопичувачів масиву. XOR є і асоціативної, і комутативність операцією, що означає, що ні порядок, ні угруповання операндів не впливає на результати. XOR - також бінарна операція, і має тільки чотири можливих комбінації двох операндів. Два операнда мають «істинний» результат XOR, коли один і тільки один операнд має значення 1.

Обчислення XOR реалізують за допомогою спеціальних апаратних засобів, якими можуть бути чіп XOR ASIC або процесор вводу / виводу з інтегрованими функціональними можливостями XOR, що значно збільшує продуктивність RAID-контролера. Кожен байт даних, що зберігаються в томі RAID 5, вимагає обчислень XOR. Уявлення про те, як працює операція XOR, є дуже важливим для розуміння, як підсистема RAID 5 може захистити великий обсяг даних за допомогою відносно невеликого обсягу одного накопичувача.

На малюнку 1 кожен прямокутник Dn представляє блок даних, званий стрип (strip, англ. Смужка). Все смужки ряду називаються страйп (stripe, англ. Смуга). У RAID 5, дані парності розташовані в різних стрипах на кожному накопичувачі - це так зване parity rotation (англ. «Обертання парності»). Це зроблено для збільшення продуктивності: оскільки парність обчислюється і записується в кожної операції «читання-модифікація-запис», розміщення її на одному накопичувачі призвело б до утворення вузького місця, так званого «пляшкового горлечка». Звернення до такого накопичувача проводилися б у стільки разів частіше по відношенню до інших накопичувачів в системі, скільки цих накопичувачів в системі. Дані парності - Pn, де n - номер Страйп, всього-на-всього результат операції XOR на всіх інших елементах даних в межах того ж Страйп. Оскільки XOR - асоціативна і Комутативність, її результат над декількома операндами можна знайти шляхом виконання XOR спочатку на будь-яких двох операндах, потім виконанням XOR над результатом цієї операції і таким операндом, і так далі з усіма операндами, поки не буде досягнутий результат.

Розуміння raid 5

Малюнок 1. Карта даних типового RAID 5 з чотирма накопичувачами

Том RAID 5 допускає відмову від будь-якого накопичувача масиву без втрати даних. Як правило, коли фізичний накопичувач виходить з ладу, як, наприклад, накопичувач 3 на малюнку 2, кажуть, що масив в критичному стані (англ. Degraded). У такій ситуації відсутні дані для будь-якого Страйп можуть бути визначені виконанням операції XOR на всіх, хто лишився елементах даних цього Страйп. Грубо кажучи, кожен втрачений елемент даних представляється як загальна сума залишилися стрип в Страйп. Звичайний розмір стрипа - від 32 кБ до 128 кБ. На малюнку 2 показаний масив з умовним об'ємом стрипа, де кожен елемент являє єдиний біт.

Парність для першої смуги:
P1 = D1 XOR D2 XOR D3;
P1 промежут. = D1 XOR D2 = 1;
P1 = P1 промежут. XOR D3 = 0.
Таким чином, P1 = 0.

Розуміння raid 5

Малюнок 2. Карта даних RAID 5 з чотирма накопичувачами; масив з умовним об'ємом стрипа.

Якщо хост запитує у контролера дані з масиву, який знаходиться в критичному стані, RAID-контролер повинен спочатку прочитати всі доступні елементи даних на смузі, включаючи парність. Після цього виконується XOR над цими елементами. Результатом цієї операції є втрачені дані. Таким чином, доступ до масиву в разі виходу з ладу одного з накопичувачів не переривається. Однак, якщо з ладу в цей час виходить другий накопичувач, то безповоротно губляться дані всього масиву.

Більшість апаратних RAID-контролерів відновлюють масив автоматично, якщо доступний запасний (hot-spare) накопичувач, повертаючи масив в нормальний стан. Крім того, як правило, з апаратними RAID-контролерами поставляється програмне забезпечення, яке включає засоби, що дозволяють повідомити адміністраторів системи, коли така відмова відбувається. Це дозволяє адміністраторам усунути проблему перш, ніж наступний накопичувач вийде з ладу, і масив перейде в критичний стан без можливості автоматичного відновлення.

Рятувальна операція «читання-модифікація-запис»

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

Малюнок 3 показує типову операцію «читання-модифікація-запис», в якій дані, які хост пише на накопичувач, містяться в межах тільки однієї смуги, в блоці D5. Операція «читання-модифікація-запис» складається з наступних кроків:

Розуміння raid 5

Малюнок 3. Крок за кроком: операція «читання-модифікація-запис» в масиві RAID 5 з чотирма накопичувачами

У прикладі на малюнку 3, припустимо, що Dnew = 0, Dold = 1, і Pold = 0. Обробка кроку 4 на цих даних дасть нам: 0 XOR 1 XOR 0 = 1. Це парність P. Після процедури «читання-модіфікація- запис », другий ряд в ілюстрації 3 буде D4 = 1, D5 = 0, P2 = 1, і D6 = 0.

Цей оптимізований метод повністю масштабується. Кількість операцій читання, записи, і операції XOR незалежні від числа накопичувачів в масиві. Оскільки накопичувач з даними парності бере участь в кожній операції запису (кроки 6 і 7), дані парності зберігаються на всіх накопичувачах в масиві, переміщаючись в Страйп щодо блоків даних. Якби всі дані парності зберігалися на одному фізичному накопичувачі, то цей накопичувач міг би стати вузьким місцем, «пляшковим горлечком», про що вже говорилося вище.

Розвантаження переривань центрального процесора

Переривання - це запит від компонента системи на процесорний час. Підсистеми вводу / виводу виробляють переривання центрального процесора, коли вони закінчують транзакцію. Нижче наведено невелике порівняння, які переривання генерують різні за типом виконання RAID-контролери для простого запису на масив RAID 5:

Програмний RAID: оскільки в даному випадку центральний процесор системи відповідає за розміщення даних на диску, він повинен згенерувати запит на кожне читання і запис, необхідні для операції «читання-модифікація-запис». Таким чином, центральний процесор отримує чотири переривання від підсистеми, що складаються з двох запитів на читання, і двох на запис (кроки 2, 3, 6, і 7 в прикладі на малюнку 3).

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

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

за матеріалами компаній Dell і Intel