Бюджетний RAID. Тестуємо продуктивність

Бюджетний RAID. Тестуємо продуктивність

Тепер подивимося, які є види і чим вони відрізняються.

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

  • RAID 0- дисковий масив підвищеної продуктивності з чергуванням, без стійкості до відмови;
  • - дзеркальний дисковий масив;
  • RAID 2зарезервований для масивів, які застосовують код Хеммінгу;
  • RAID 3 та 4- дискові масиви з чергуванням та виділеним диском парності;
  • - дисковий масив з чергуванням та «невиділеним диском парності»;
  • - дисковий масив із чергуванням, що використовує дві контрольні суми, що обчислюються двома незалежними способами;
  • - масив RAID 0, побудований із масивів RAID 1;
  • - масив RAID 0, побудований із масивів RAID 5;
  • - масив RAID 0, побудований із масивів RAID 6.

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

RAID 0 (striping - «чергування»)

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

(mirroring - «дзеркалювання»)

масив із двох дисків, що є повними копіями один одного. Не слід плутати з масивами RAID 1+0, RAID 0+1 та RAID 10, у яких використовується більше двох дисків та складніші механізми дзеркалізації.

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

Має високу надійність – працює доти, доки функціонує хоча б один диск у масиві. Імовірність виходу з експлуатації відразу двох дисків дорівнює добутку ймовірностей відмови кожного диска, тобто. значно нижче ймовірності виходу з експлуатації окремого диска. Насправді при виході з ладу однієї з дисків слід терміново вживати заходів - знову відновлювати надмірність. Для цього із будь-яким рівнем RAID (крім нульового) рекомендують використовувати диски гарячого резерву.

Подібний до RAID10 варіант розподілу даних по дисках, що допускає використання непарного числа дисків (мінімальна кількість - 3)

RAID 2, 3, 4

різні варіанти розподіленого зберігання даних з дисками, виділеними під коди парності та різними розмірами блоку. В даний час практично не використовуються через невисоку продуктивність та необхідність виділяти багато дискової ємності під зберігання кодів ЕСС та/або парності.

Основним недоліком рівнів RAID від 2-го до 4-го є неможливість робити паралельні операції записи, оскільки зберігання інформації про парності використовується окремий контрольний диск. RAID 5 не має цього недоліку. Блоки даних та контрольні суми циклічно записуються на всі диски масиву, немає асиметричності конфігурації дисків. Під контрольними сумами мається на увазі результат операції XOR (що виключає або). Xorмає особливість, яка дає можливість замінити будь-який операнд результатом, і, застосувавши алгоритм xor, Отримати в результаті відсутній операнд. Наприклад: a xor b = c(де a, b, c- три диски рейд-масиву), якщо aвідмовить, ми можемо отримати його, поставивши його місце cі провівши xorміж cі b: c xor b = a.Це можна застосовувати незалежно від кількості операндів: a xor b xor c xor d = e. Якщо відмовляє cтоді eвстає на його місце і провівши xorв результаті отримуємо c: a xor b xor e xor d = c. Цей метод по суті забезпечує стійкість до відмови 5 версії. Для зберігання результату xor потрібно всього 1 диск, розмір якого дорівнює розміру іншого диска в raid.

Переваги

RAID5 набув широкого поширення, в першу чергу завдяки своїй економічністі. Об'єм дискового масиву RAID5 розраховується за формулою (n-1) * hddsize, де n - число дисків масиві, а hddsize - розмір найменшого диска. Наприклад, для масиву з чотирьох дисків по 80 гігабайт загальний обсяг (4 - 1) * 80 = 240 гігабайт. На запис інформації на тому RAID 5 витрачаються додаткові ресурси і падає продуктивність, оскільки потрібні додаткові обчислення та операції запису, зате при читанні (проти окремого вінчестера) є виграш, тому що потоки даних з кількох дисків масиву можуть оброблятися паралельно.

Недоліки

Продуктивність RAID 5 помітно нижче, особливо у операціях типу Random Write (записи у довільному порядку), у яких продуктивність падає на 10-25% від продуктивності RAID 0 (чи RAID 10), оскільки потребує більшої кількості операцій із дисками (кожна операція записи, крім так званих full-stripe write-ов, сервера замінюється на контролері RAID чотирма - дві операції читання і дві операції записи). Недоліки RAID 5 виявляються при виході з ладу одного з дисків - весь том переходить у критичний режим (degrade), всі операції запису та читання супроводжуються додатковими маніпуляціями, різко падає продуктивність. При цьому рівень надійності знижується до надійності RAID-0 з відповідною кількістю дисків (тобто n разів нижче надійності одиночного диска). Якщо до повного відновлення масиву відбудеться вихід з ладу, або виникне непоновна помилка читання хоча б ще на одному диску, то масив руйнується, і дані на ньому відновленню звичайними методами не підлягають. Слід також взяти до уваги, що процес RAID Reconstruction (відновлення даних RAID за рахунок надмірності) після виходу з ладу диска викликає інтенсивне навантаження читання з дисків протягом багатьох годин безперервно, що може спровокувати вихід будь-якого з дисків, що залишилися, у цей найменше. захищений період роботи RAID, а також виявити раніше не виявлені збої читання в масивах cold data (даних, яких не звертаються при звичайній роботі масиву, архівні та малоактивні дані), що підвищує ризик збою при відновленні даних.

Мінімальна кількість дисків, що використовуються, дорівнює трьом.

RAID 6 - схожий на RAID 5, але має більш високий рівень надійності - під контрольні суми виділяється ємність 2-х дисків, розраховуються 2 суми за різними алгоритмами. Потребує потужніший RAID-контролер. Забезпечує працездатність після одночасного виходу з експлуатації двох дисків - захист від кратної відмови. Для організації масиву потрібно щонайменше 4 диски. Зазвичай використання RAID-6 викликає приблизно 10-15% падіння продуктивності дискової групи щодо RAID 5, що викликано великим обсягом обробки для контролера (необхідність розраховувати другу контрольну суму, а також читати та перезаписувати більше дискових блоків під час запису кожного блоку).

RAID 0+1

Під RAID 0+1 може матися на увазі в основному два варіанти:

  • два RAID 0 об'єднуються у RAID 1;
  • масив об'єднуються три і більше диска, і кожен блок даних записується на два диски даного масиву; таким чином, при такому підході, як і в «чистому» RAID 1, корисний об'єм масиву становить половину від сумарного об'єму всіх дисків (якщо це однакова ємність).

RAID 10 (1+0)

RAID 10 - дзеркальний масив, дані в якому записуються послідовно на кілька дисків, як в RAID 0. Ця архітектура є масивом типу RAID 0, сегментами якого замість окремих дисків є масиви RAID 1. Відповідно, масив цього рівня повинен містити як мінімум 4 диски ( і завжди парна кількість). RAID 10 поєднує в собі високу стійкість до відмов і продуктивність.

Твердження, що RAID 10 є найнадійнішим варіантом для зберігання даних цілком обґрунтовано тим, що масив буде виведений з ладу після виходу з ладу всіх накопичувачів в тому самому масиві. При одному накопичувачі, що вийшов з ладу, шанс виходу з ладу другого в тому самому масиві дорівнює 1/3*100=33%. RAID 0+1 вийде з ладу при двох накопичувачах, що вийшли з ладу у різних масивах. Шанс виходу з ладу накопичувача в сусідньому масиві дорівнює 2/3*100=66%, однак оскільки накопичувач у масиві з накопиченням, що вже вийшов з ладу, вже не використовується, то шанс того, що наступний накопичувач виведе з ладу масив цілком дорівнює 2/2 * 100 = 100%

масив, аналогічний RAID5, проте крім розподіленого зберігання кодів парності використовується розподіл резервних областей - фактично використовується жорсткий диск, який можна додати до масиву RAID5 як запасного (такі масиви називають 5+ або 5+spare). У RAID 5 масиві резервний диск простоює доти, доки не вийде з ладу один з основних жорстких дисків, в той час як у RAID 5EE масиві цей диск використовується спільно з іншими HDD весь час, що позитивно позначається на продуктивності масиву. Наприклад, масив RAID5EE з 5 HDD зможе виконати на 25% більше операцій вводу/виводу за секунду, ніж RAID5 масив із 4 основних та одного резервного HDD. Мінімальна кількість дисків для такого масиву – 4.

об'єднання двох (або більше, але це вкрай рідко застосовується) масивів RAID5 в страйп, тобто. комбінація RAID5 і RAID0, що частково виправляє головний недолік RAID5 - низьку швидкість запису даних за рахунок паралельного використання кількох таких масивів. Загальна ємність масиву зменшується на ємність двох дисків, але на відміну від RAID6, без втрати даних такий масив переносить відмову лише одного диска, а мінімально необхідна кількість дисків для створення масиву RAID50 дорівнює 6. Поряд з RAID10, це найбільш рекомендований рівень RAID для використання у додатках, де потрібна висока продуктивність у поєднанні прийнятною надійністю.

об'єднання двох масивів RAID6 у страйп. Швидкість запису підвищується приблизно вдвічі, щодо швидкості запису в RAID6. Мінімальна кількість дисків для створення такого масиву - 8. Інформація не втрачається при відмові двох дисків з кожного RAID 6 масиву

RAID 00


RAID 00 зустрічається дуже рідко, я з ним познайомився на контролерах LSI. Група дисків RAID 00 - це складова група дисків, яка створює набір із серії, що чергується.
дискових масивів RAID 0. RAID 00 не забезпечує надмірності даних, але поряд з RAID 0, пропонує кращу продуктивністьбудь-якого рівня RAID. RAID 00 розбиває дані на менші сегменти, а потім чергує сегменти даних на кожному диску в групі. Розмір кожного сегмента даних визначається розміром смуги. RAID 00 пропонує високу пропускну здатність. Рівень RAID 00 не є стійким до відмови. Якщо диск у групі дисків RAID 0 виходить з ладу, весь
віртуальний диск (усі диски, пов'язані з віртуальним диском) вийде з ладу. Розбиваючи великий файлна більш дрібні сегменти, контролер RAID може використовувати обидва SAS
контролера для читання чи запису файлу швидше. RAID 00 не передбачає парності розрахунки ускладнюють операції запису. Це робить RAID 00 ідеальним для
програми, які вимагають високої пропускну здатність, але вимагають отказоустойчивости. Може бути від 2 до 256 дисків.

Що швидше за RAID 0 або RAID 00?


Я провів своє тестування описане в статті про оптимізацію швидкості твердотільних дисків на LSI контролерах і отримав такі цифри на масивах з 6-ти SSD

В інтернеті є безліч статей з описом RAID. Наприклад, ця описує все дуже докладно. Але як завжди, читати все не вистачає часу, тому треба щось коротеньке для розуміння - а треба воно чи ні, і що краще використовувати стосовно роботи з СУБД (InterBase, Firebird або щось інше - насправді все одно). Перед вашими очима – саме такий матеріал.

У першому наближенні RAID це об'єднання дисків на один масив. SATA, SAS, SCSI, SSD – неважливо. Більше того, практично кожна нормальна материнська плата зараз підтримує можливість організації SATA RAID. Пройдемося по списку, які бувають RAID та навіщо вони. (Хотів би відразу помітити, що в RAID потрібно поєднувати однакові диски. Об'єднання дисків від різних виробників, від одного але різних типів, або різних розмірів - це пустощі для людини, що сидить на домашньому комп'ютері).

RAID 0 (Stripe)

Грубо кажучи, це послідовне поєднання двох (або більше) фізичних дисків в один "фізичний" диск. Годиться хіба що для організації величезних дискових просторів, наприклад для тих, хто працює з редагуванням відео. Бази даних на таких дисках тримати немає сенсу - насправді, якщо навіть у вас база даних має розмір 50 гігабайт, то чому ви купили два диски розміром по 40 гігабайт, а не 1 на 80 гігабайт? Найгірше те, що в RAID 0 будь-яка відмова одного з дисків веде до повної непрацездатності такого RAID, тому що дані записуються по черзі на обидва диски, і, відповідно, RAID 0 не має коштів для відновлення у разі збоїв.

Звичайно, RAID 0 дає прискорення в роботі через чергування читання/запису.

RAID 0 часто використовують для розміщення тимчасових файлів.

RAID 1 (Mirror)

Дзеркало дисків. Якщо Shadow в IB/FB це програмне дзеркаловання (див. Operations Guide.pdf), RAID 1 - апаратне дзеркаловання, і нічого більше. Врятуй вас від використання програмного дзеркалювання засобами ОС або стороннім ПЗ. Потрібно або "залізний" RAID 1, або shadow.

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

Щодо продуктивності - за записом виграш 0, за читанням - можливо до 1.5 разів, тому що читання може здійснюватися "паралельно" (по черзі з різних дисків). Для баз даних прискорення мало, тоді як із паралельному зверненні до різних (!) частинам (файлам) диска прискорення буде абсолютно точно.

RAID 1+0

Під RAID 1+0 мають на увазі варіант RAID 10, коли два RAID 1 об'єднуються в RAID 0. Варіант, коли два RAID 0 об'єднуються в RAID 1 називається RAID 0+1, і "зовні" є той же RAID 10.

RAID 2-3-4

Ці RAID є рідкісними, тому що в них використовуються коди Хеммінга, або розбиття байт на блоки + контрольні суми тощо, але загальне резюме таке - ці RAID дають тільки надійність, при 0-му збільшенні продуктивності, і іноді навіть її погіршення.

RAID 5

Для нього потрібно щонайменше 3 диски. Дані парності розподіляються по всіх дисках масиву

Зазвичай говориться, що "RAID5 використовує незалежний доступ до дисків, так що запити до різним дискамможуть виконуватися паралельно". Слід мати на увазі, що йдеться, звичайно, про паралельні запити на введення-виведення. Якщо такі запити йдуть послідовно (у SuperServer), то звичайно, ефекту розпаралелювання доступу на RAID 5 ви не отримаєте. Зрозуміло, RAID5 дасть приріст продуктивності, якщо з масивом працюватимуть операційна система та інші додатки (наприклад, на ньому перебуватиме віртуальна пам'ять, TEMP тощо).

Взагалі RAID 5 раніше був найчастіше використовуваним масивом дисків до роботи з СУБД. Нині такий масив можна організувати і на SATA дисках, причому він вийде значно дешевше, ніж на SCSI. Ціни та контролери ви можете переглянути у статтях
Причому, слід звернути увагу на обсяг дисків, що купуються - наприклад, в одній із згаданих статей RAID5 збирається з 4-х дисків об'ємом 34 гіг, при цьому обсяг "диска" виходить 103 гігабайти.

Тестування п'яти контролерів SATA RAID - http://www.thg.ru/storage/20051102/index.html.

Adaptec SATA RAID 21610SA в масивах RAID 5 - http://www.ixbt.com/storage/adaptec21610raid5.shtml.

Чому RAID 5 - це погано - https://geektimes.ru/post/78311/

Увага!При закупівлі дисків для RAID5 зазвичай беруть 3 диски, щонайменше (скоріше через ціну). Якщо раптом після часу один із дисків відмовить, то може виникнути ситуація, коли не вдасться придбати диск, аналогічний використовуваним (перестали випускатися, тимчасово немає у продажу, тощо). Тому цікавішою ідеєю видається закупівля 4-х дисків, організація RAID5 з трьох, і підключення 4-го диска як резервний (для бекапів, інших файлів та інших потреб).

Об'єм дискового масиву RAID5 розраховується за формулою (n-1) * hddsize, де n - число дисків масиві, а hddsize - розмір одного диска. Наприклад, для масиву з 4 дисків по 80 гігабайт загальний обсяг буде 240 гігабайт.

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

Стаття RAID-5 must die. І ще про втрати даних на RAID5.

Примітка.На 05.09.2005 вартість SATA диска Hitachi 80Gb складає 60 доларів.

RAID 10, 50

Далі йдуть комбінації з перелічених варіантів. Наприклад, RAID 10 - це RAID 0 + RAID 1. RAID 50 - це RAID 5 + RAID 0.

Цікаво, що комбінація RAID 0+1 у плані надійності виявляється гіршою, ніж RAID5. У скарбничці служби ремонту БД є випадок збою одного диска в системі RAID0 (3 диски) + RAID1 (ще 3 таких диска). При цьому RAID1 не зміг "підняти" резервний диск. База виявилася зіпсованою без шансів на ремонт.

Для RAID 0+1 потрібно 4 диски, а для RAID 5 - 3. Подумайте про це.

RAID 6

На відміну від RAID 5, який використовує парність для захисту даних від одиночних несправностей, RAID 6 та ж парність використовується для захисту від подвійних несправностей. Відповідно, процесор потужніший, ніж у RAID 5, і дисків потрібно вже не 3, а мінімум 5 (три диски даних та 2 диски контролю парності). Причому, кількість дисків в raid6 не має такої гнучкості, як у raid 5, і має бути рівним простим числом (5, 7, 11, 13 і т. д.)

Допустимо одночасний збій двох дисків, щоправда, такий випадок дуже рідкісний.

По продуктивності RAID 6 даних не бачив (не шукав), але цілком можливо, що через надмірного контролю продуктивність може бути лише на рівні RAID 5.

Rebuild time

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

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

Час відновлення функціонування масиву в нормальному режимі залежить від обсягу дисків. Наприклад, Sun StorEdge 3510 FC Array при розмірі масиву 2 терабайт в монопольному режимі робить rebuild протягом 4.5 годин (при ціні залізниці близько $40000). Тому, при організації масиву та плануванні відновлення при збої, потрібно в першу чергу думати саме про rebuild time. Якщо ваша база даних та бекапи займають не більше 50 гігабайт, і зростання на рік становить 1-2 гігабайти, то навряд чи є сенс збирати масив із 500-гігабайтних дисків. Достатньо буде і 250-гігабайтних, при цьому навіть для raid5 це буде щонайменше 500 гігабайт місця для розміщення не тільки бази даних, а й фільмів. Проте rebuild time для 250 гігабайтних дисків буде приблизно в 2 рази менше, ніж для 500 гігабайтних.

Резюме

Виходить, що найосмисленішим є використання або RAID 1, або RAID 5. часта помилка, яку роблять практично все - це використання RAID "під усе". Тобто ставлять RAID, на нього навалюють все, що є, і... отримують у кращому випадку надійність, але ніяк не покращення продуктивності.

Ще часто не включають write cache, у результаті запис на raid відбувається повільніше, ніж на звичайний одиночний диск. Річ у тім, що з більшості контролерів ця опція за умовчанням вимкнена, т.к. Вважається, що для її включення бажано наявність як мінімум батарейки на raid-контролері, а також наявність UPS.

Текст
У старій статті hddspeed.htmLINK (і doc_calford_1.htmLINK) показано, як можна отримати суттєве збільшення продуктивності шляхом використання кількох фізичних дисків, навіть для IDE. Відповідно, якщо ви організуєте RAID – покладете на нього базу, а інше (temp, OS, віртуалка) робіть на інших вінчестерах. Адже все одно, RAID сам по собі є одним "диском", нехай навіть більш надійним і швидкодіючим.
визнаний застарілим. Все вищезгадане цілком має право на існування на RAID 5. Однак перед таким розміщенням необхідно з'ясувати - яким чином можна робити backup/restore операційної системи, і скільки часу це буде займати, скільки часу займе відновлення "померлого" диска, чи є (чи буде). ) під рукою диск для заміни "померлого" і так далі, тобто треба буде заздалегідь знати відповіді на найпростіші питання на випадок збою системи.

Я все ж таки раджу операційну систему тримати на окремому SATA-диску, або якщо хочете, на двох SATA-дисках, пов'язаних у RAID 1. У будь-якому випадку, маючи операційну систему на RAID, ви повинні спланувати ваші дії, якщо раптом припинить працювати материнська плата - іноді перенесення дисків raid-масиву на іншу материнську плату (чіпсет, raid-контролер) неможливе через несумісність умовчувальних параметрів raid.

Розміщення бази, shadow та backup

Незважаючи на всі переваги RAID, категорично не рекомендується, наприклад, робити backup на цей самий логічний диск. Мало того, що це погано впливає на продуктивність, але ще й може призвести до проблем з відсутністю вільного місця (на великих БД) - адже залежно від даних файл backup може бути еквівалентним розміру БД, і навіть більше. Робити backup на той самий фізичний диск - ще куди не йшло, хоча самий оптимальний варіант- backup на окремий вінчестер.

Пояснення дуже просте. Backup - це читання даних із файлу БД та запис у файл бекапу. Якщо все це відбувається на одному диску (навіть RAID 0 або RAID 1), то продуктивність буде гірше, ніж якщо читання проводиться з одного диска, а запис - на інший. Ще більший виграш від такого поділу – коли backup робиться під час роботи користувачів із БД.

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

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

Тестовий стенд

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

Конфігурація ПК:

  • Материнська плата: ASUS M4N68T-M SocketAM3
  • Процесор: CPU AMD ATHLON II X2 245 (ADX245O) 2.9 ГГц/2Мб/4000МГц Socket AM3
  • Оперативна пам'ять: 2 х Kingston ValueRAM DDR-III DIMM 1Gb
  • Жорсткі диски: HDD 320 Gb SATA-II 300 Western Digital Caviar Blue 7200rpm 16Mb
  • Операційна система: Windows Server 2008 SP2 (32-bit)
  • Файлова система: NTFS

Дискова підсистема була налаштована наступним чином: на один диск була встановлена ​​операційна система, з двох або трьох інших збирався RAID масив.

Методика тестування

Як тестове програмне забезпечення нами було обрано Intel NAS Performance Toolkit, даний пакет представляє набір тестів, що дозволяє оцінити продуктивність дискової підсистеми на основних характерних завданнях. Кожен тест виконувався п'ять разів, кінцевий результат становить середнє значення. За зразок ми взяли продуктивність одиночного жорсткого диска.

Нами були протестовані масиви RAID0, RAID1 і RAID5, причому RAID5 був протестований як у нормальному режимі, так і в аварійному з одним вилученим диском. Чому в аварійному режимі ми протестували лише цей масив? Відповідь проста: для RAID0 такого режиму не існує, при відмові будь-якого з дисків масив руйнується, а єдиний диск RAID1, що залишився, нічим не буде відрізнятися від одиночного диска.

Тестувалися як апаратні, і програмні реалізації, спочатку ми ще заміряли середнє завантаження ЦПУ, оскільки існує думка, що програмний RAID сильно вантажить процесор. Однак від включення даного виміру в результати тестів ми відмовилися, навантаження на процесор виявилося приблизно рівним і склало близько 37-40% для одиночного диска, RAID0, RAID1 і 40-45% для RAID5.

Файлові операції

Класичними операціями для будь-якого накопичувача є операції читання та запису. В Intel NASPT ці параметри оцінюються в чотирьох тестах: копіювання на накопичувач і назад файлу розміром 247 Мб і 44 папок, що містять 2833 файли загальним обсягом 1,2 Гб.

Читання / запис файлів

Якщо звернути увагу на результати еталонного диска, то побачимо, що швидкість запису майже вдвічі (на 89%) вища за швидкість читання. Це пов'язано з особливостями роботи файлової системиі цей факт також слід враховувати. RAID0 (масив, що чергується), незалежно від способу реалізації показав на 70% більш високу продуктивність, ніж одиночний диск, в той час як швидкісні параметри RAID1 (дзеркало) повністю йому ідентичні.

На окрему розмову заслуговує RAID5, швидкість запису на нього неприйнятно низька, уповільнення становить до 70%, в той час як швидкість читання не поступається швидкому RAID0. Можливо це пов'язано з нестачею обчислювальних ресурсів та недосконалістю алгоритмів, адже при записі витрачаються додаткові ресурси для обчислення контрольної суми. При відмові одного з дисків швидкість запису падає, апаратного рішенняспад менш виражений (15%), ніж у програмного (40%). Швидкість читання при цьому значно падає і відповідає швидкості одиночного диска.

Читання / запис папок

Кожен, хто пробував скопіювати розсип дрібних файлів, знає - краще заздалегідь запакувати їх в архів, так буде значно швидше. Наші тести лише підтверджують це емпіричне правило, читання розсипу дрібних файлів та папок майже на 60% повільніше, читання великого файлу, швидкість запису також незначно (10%) нижче.

RAID0 дає набагато меншу перевагу на операціях запису (30-40%), а на операціях читання різницею взагалі можна знехтувати. RAID1 очікувано не підносить нам жодних сюрпризів, йдучи один на один з одиночним диском.

RAID5 на дрібних файлах показує набагато кращий результат, але продовжує поступатися одиночному диску в середньому 35%. Швидкість читання нічим не відрізняється від інших конфігурацій, ми схильні вважати, що в даному випадкустримуючим фактором є час довільного доступу до вінчестера. А ось при вилученні з масиву одного диска ми отримали дуже несподіваний результат, який змусив нас його кілька разів перевірити ще раз, в тому числі і на іншій моделі вінчестерів (500 Gb Seagate/Maxtor Barracuda 7200.12/DiamondMax 23<3500418AS>7200rpm 16Mb). Справа в тому, що швидкість запису апаратного масиву різко впала (майже втричі), а швидкість запису програмного RAID5 навпаки зросла, можливо, це пов'язано з алгоритмом програмної реалізації масиву. І все ж ми вважаємо за краще залишити цей "феномен" без коментарів.

Робота з програмами

Наступні тести відображають продуктивність дискової підсистеми при роботі з різними програмами, насамперед офісними. Перший тест (Content Creation) відображає використання диска для зберігання та роботи з даними, користувач створює, відкриває, зберігає документи без особливої ​​активності. Найбільш потужний тест – Office Productivity, він моделює активну роботу з документами, пошук інформації в інтернеті (на накопичувач скидається кеш браузера), загалом 616 файлів у 45 каталогах об'ємом 572 Мб. Останній тест - робота з фотоальбомом (переважно перегляд), більш характерний для домашнього застосування, включає 1,2 Гб фото (169 файлів, 11 каталогів).

Робота з документами

При роботі з одиночними файлами RAID0 цілком передбачувано майже вдвічі випереджає RAID1 і одиночний жорсткий диск (тест Content Creation), проте при активній роботі втрачає свої переваги, в тесті Office Productivity RAID0, RAID1 і одиночний диск показують однакові результати.

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

Робота з фотографіями

У цьому режимі всі масиви показали приблизно однаковий результат, який можна порівняти з продуктивністю одиночного диска. Хоча RAID5 показав дещо нижчий результат, хоча в даному випадку відставання навряд чи вдасться помітити "неозброєним оком".

Мультимедіа

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

Відтворення

RAID0

Даний вид дискового масиву впевнено лідирує під час роботи з великими файлами та мультимедіа. У більшості випадків дозволяє досягти значної переваги (близько 70%) порівняно з одиночним диском, проте має один істотний недолік - вкрай низьку стійкість до відмов. При виході з експлуатації одного диска руйнується весь масив. При роботі з офісними програмами та фотографіями особливих переваг не має.

Де можна використовувати RAID0? В першу чергу на робочих станціях, яким за родом завдань доводиться працювати з великими файламинаприклад, відеомонтаж. Якщо потрібна відмовостійкість можна застосувати RAID10 або RAID0+1 які представляють чергується масив з двох дзеркал або дзеркало з масивів, що чергуються, дані рівні RAID поєднують швидкісні параметри RAID0 і надійність RAID1, з недоліків можна назвати суттєві накладні витрати - для зберігання використовується тільки половина ємності дисків у масив.

RAID1

Жодних швидкісних переваг перед одиночним диском "дзеркало" не має, основне завдання цього масиву - забезпечення стійкості до відмови. Рекомендується до застосування під час роботи з офісними файлами і дрібними файлами, тобто. на тих завданнях, де різниця між більш швидкісними масивами не така велика. Непогано підійде для роботи з 1С: Підприємство 7.7 у файловому режимі, який за характером роботи з диском представляє щось середнє між Office Productivity та Dir copy from/to NAS. Для більш продуктивних завдань не рекомендується, тут варто звернути увагу на RAID10 та RAID0+1.

RAID5

Ми не рекомендували б застосовувати цей вид масиву в бюджетних системах, на операціях запису RAID5 значно програє навіть одиночному жорсткому диску. Єдина сфера, де його застосування буде виправдано, це створення медіасерверів для зберігання мультимедійних даних, основний режим яких читання. Тут на перший план виходять такі параметри як висока швидкість читання (на рівні RAID0) та менші накладні витрати на забезпечення стійкості до відмови (1/3 ємності масиву), що дає непоганий виграш при створенні сховищ значного обсягу. Однак слід пам'ятати, що спроба запису на масив призводить до різкого зниження продуктивності, тому заливання нових даних на подібні медіасервери слід робити в години найменшої завантаженості.

Апаратний чи програмний?

Результати тестів не виявили жодних помітних переваг або недоліків для обох варіантів реалізації, хіба що RAID5, апаратний варіантякого показував часом більш високий результат. Тому слід виходити з інших особливостей. Таких як сумісність та переносимість.

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

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

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

З недоліків слід відзначити неможливість встановлення Windows на томи RAID0 і RAID5, тому що інсталяція Windowsна динамічний том можлива лише тоді, коли цей том було перетворено з базового завантажувального або системного тома. Докладніше про динамічні томи можна прочитати.

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

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

Особливості технології побудови магнітних дисків призвели до значної невідповідності між збільшенням продуктивності процесорних модулів та самих магнітних дисків. Якщо 1990 р. найкращими серед серійних були 5.25″ диски із середнім часом доступу 12мс та часом затримки 5 мс (при обертах шпинделя близько 5 000 об/м 1 ), то сьогодні пальма першості належить 3.5″ дискам із середнім часом часом затримки 1 мс (при оборотах шпинделя 10000 об/м). Тут ми бачимо покращення технічних характеристикна величину близько 100%. Водночас швидкодія процесорів збільшилася більш ніж на 2 000%. Багато в чому це стало можливим завдяки тому, що процесори мають прямі переваги використання VLSI (надбільшої інтеграції). Її використання не тільки дає можливість збільшувати частоту, а й кількість компонентів, які можуть бути інтегровані в чіп, що дає змогу впроваджувати архітектурні переваги, що дозволяють здійснювати паралельні обчислення.

1 - Усереднені дані.

Ситуацію, що склалася, можна охарактеризувати як кризу введення-виведення вторинної системи зберігання даних.

Збільшуємо швидкодію

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

Якщо розмістити блок даних N дисків деякого масиву і організувати це розміщення так, щоб існувала можливість одночасного зчитування інформації, то цей блок можна буде вважати в N раз швидше, (без урахування часу формування блоку). Оскільки всі дані передаються паралельно, це архітектурне рішення називається parallel-access array(Масив з паралельним доступом).

Масиви з паралельним доступом зазвичай використовуються для додатків, що вимагають передачі великого розміру.

Деякі завдання, навпаки, характерні велику кількість малих запитів. До таких завдань належать, наприклад, завдання обробки баз даних. Розташовуючи записи бази даних дисків масиву, можна розподілити завантаження, незалежно позиціонуючи диски. Таку архітектуру прийнято називати independent-access array(Масив з незалежним доступом).

Збільшуємо відмовостійкість

На жаль, зі збільшенням кількості дисків у масиві, надійність всього масиву зменшується. При незалежних відмовах та експоненційному законі розподілу напрацювання на відмову, MTTF всього масиву (mean time to failure – середній час безвідмовної роботи) обчислюється за формулою MTTF array = MMTF hdd / N hdd (MMTF hdd – середній час безвідмовної роботи одного диска; NHDD – кількість дисків).

Таким чином, виникає необхідність підвищення стійкості до відмови дискових масивів. Для підвищення стійкості до відмови масивів використовують надмірне кодування. Існує два основних типи кодування, які застосовуються в надмірних дискових масивах – це дублювання та парність.

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

Другий спосіб реалізації надлишкових дискових масивів – використання надлишкового кодування за допомогою обчислення парності. Четність обчислюється як операція XOR всіх символів у слові даних. Використання парності в надмірних дискових масивах зменшує накладні витрати до величини, що обчислюється формулою: НР hdd = 1/N hdd (НР hdd – накладні витрати; N hdd – кількість дисків у масиві).

Історія та розвиток RAID

Незважаючи на те, що системи зберігання даних, засновані на магнітних дисках, Виробляються вже 40 років, масове виробництво відмовостійких систем почалося зовсім недавно. Дискові масиви з надмірністю даних, які прийнято називати RAID (redundant arrays of inexpensive disks – надлишковий масив недорогих дисків) були представлені дослідниками (Петтерсон, Гібсон та Катц) з Каліфорнійського університету в Берклі у 1987 році. Але широке поширення RAID системи набули лише тоді, коли диски, які підходять для використання у надлишкових масивах стали доступними та досить продуктивними. З часу подання офіційної доповіді про RAID у 1988 році, дослідження у сфері надмірних дискових масивів почали бурхливо розвиватися, намагаючись забезпечити широкий спектр рішень у сфері компромісу - ціна-продуктивність-надійність.

З абревіатурою RAID свого часу трапився казус. Справа в тому, що недорогими дисками під час написання статті називалися всі диски, які використовувалися в ПК, на противагу дорогим дискам для мейнфрейму (універсальна ЕОМ). Але для використання в масивах RAID довелося використовувати досить дорогу апаратуру в порівнянні з іншим комплектуванням ПК, тому RAID почали розшифровувати як redundant array of independent disks 2 – надмірний масив незалежних дисків.

2 - Визначення RAID Advisory Board

RAID 0 був представлений індустрією як визначення неустойчивого дискового масиву. У Берклі RAID 1 було визначено як дзеркальний масив. RAID 2 зарезервований для масивів, які використовують код Хеммінгу. Рівні RAID 3, 4, 5 використовують парність захисту даних від одиночних несправностей. Саме ці рівні, включно по 5-й, були представлені в Берклі, і ця систематика RAID була прийнята як стандарт де-факто.

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

На сьогоднішній день розроблено досить велику кількість архітектур, які забезпечують працездатність масиву при одночасній відмові будь-яких двох дисків без втрати даних. Серед усієї множини варто відзначити 2-dimensional parity (двопросторова парність) і EVENODD, які для кодування використовують парність, і RAID 6, в якому використовується кодування Reed-Solomon.

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

Мінімальна надмірність у такому масиві досягається при рівній кількості стовпців та рядків. І дорівнює: 2 x Square (N Disk) (в "квадрат").

Якщо ж двопросторовий масив не буде організований у «квадрат», то при реалізації вищезгаданої схеми надмірність буде вищою.

Архітектура EVENODD має схожу на двопросторову парність схему стійкості до відмови, але інше розміщення інформаційних блоків, яке гарантує мінімальне надмірне використання ємностей. Так само як і в двопросторовій парності кожен блок даних бере участь у побудові двох незалежних кодових слів, але слова розміщені таким чином, що коефіцієнт надмірності постійний (на відміну від попередньої схеми) і дорівнює: 2 x Square (N Disk).

Використовуючи два символи для перевірки, парність і недвійкові коди, слово даних може бути сконструйовано таким чином, щоб забезпечити стійкість до відмови при виникненні подвійної несправності. Така схема відома як RAID 6. Недвійковий код, побудований на основі кодування Reed-Solomon, зазвичай обчислюється з використанням таблиць або як ітераційний процес з використанням лінійних регістрівіз зворотним зв'язком, а це - відносно складна операція, яка потребує спеціалізованих апаратних засобів.

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

У 1996 р. Саведж і Вілкс запропонували AFRAID - часто надмірний масив незалежних дисків (A Frequently Redundant Array of Independent Disks). Ця архітектура певною мірою приносить відмовостійкість у жертву швидкодії. Роблячи спробу компенсувати проблему малого запису (small-write problem), характерну для масивів RAID 5-го рівня, дозволяється залишати стрипінг без обчислення парності на певний період. Якщо диск, призначений для запису парності, зайнятий, його запис відкладається. Теоретично доведено, що 25% зменшення відмовостійкості може збільшити швидкодію на 97%. AFRAID фактично змінює модель відмов масивів стійких до одиночних несправностей, оскільки кодове слово, яке має оновленої парності, сприйнятливе до відмов дисків.

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

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

Один з варіантів - parity logging(реєстрація парності), який передбачає вирішення проблеми малого запису (small-write problem) та ефективнішого використання дисків. Реєстрація парності передбачає відкладення зміни парності у RAID 5, записуючи її у FIFO log (журнал реєстрацій типу FIFO), який розміщений частково у пам'яті контролера та частково на диску. Враховуючи те, що доступ до повного треку в середньому в 10 разів більш ефективний, ніж доступ до сектора, за допомогою реєстрації парності збираються великі кількості даних модифікованої парності, які потім записуються на диск, призначений для зберігання парності по всьому треку.

Архітектура floating data and parity(Плаваючі дані та парність), яка дозволяє перерозподілити фізичне розміщення дискових блоків. Вільні сектори розміщуються на кожному циліндрі для зменшення rotational latency(затримки обертання), дані та парність розміщуються на цих вільних місцях. Для того, щоб забезпечити працездатність при зникненні живлення, карту парності та даних потрібно зберігати в незалежній пам'яті. Якщо втратити карту розміщення, всі дані в масиві будуть втрачені.

Virtual stripping- є архітектурою floating data and parity з використанням writeback cache. Звісно реалізуючи позитивні сторони обох.

Крім того, існують інші способи підвищення швидкодії, наприклад розподіл RAID операцій. У свій час фірма Seagate вбудувала підтримку RAID операцій у свої диски з інтерфейсом Fibre Chanel та SCSI. Це дало змогу зменшити трафік між центральним контролером та дисками в масиві для систем RAID 5. Це було кардинальним нововведенням у сфері реалізацій RAID, але технологія не отримала путівки в життя, оскільки деякі особливості Fibre Chanel та SCSI стандартів послаблюють модель відмов для дискових масивів.

Для того ж RAID 5 було представлено архітектуру TickerTAIP. Виглядає вона так - центральний механізм управління originator node (вузол-ініціатор) отримує запити користувача, вибирає алгоритм обробки і потім передає роботу з диском і парність worker node (робочий вузол). Кожен робочий вузол обробляє деяке підмножина дисків масиві. Як і моделі фірми Seagate, робочі вузли передають дані між собою без участі вузла-ініціатора. У разі відмови робочого вузла диски, які він обслуговував, стають недоступними. Але якщо кодове слово побудовано так, що кожен його символ обробляється окремим робочим вузлом, то схема стійкості до відмови повторює RAID 5. Для попередження відмов вузла-ініціатора він дублюється, таким чином, ми отримуємо архітектуру, стійку до відмов будь-якого її вузла. При всіх своїх позитивних рисах ця архітектура страждає від проблеми «помилки запису» («write hole»). Що передбачає виникнення помилки при одночасному зміні кодового слова кількома користувачами та відмови вузла.

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

Для того щоб уникнути проблеми відновлення, характерної для класичних рівнів RAID, використовується також архітектура, яка має назву parity declustering(Розділ парності). Вона передбачає розміщення меншої кількості логічних дисків із більшим обсягом на фізичні диски меншого обсягу, але більшої кількості. При використанні цієї технології час реакції системи на запит під час реконструкції покращується більш ніж удвічі, а час реконструкції значно зменшується.

Архітектура основних рівнів RAID

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

Дані позначатимемо - D m,n , де m - число блоків даних, n - число підблоків, на які розбивається блок даних D.

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

RAID 0. Дисковий масив без відмовостійкості (Striped Disk Array without Fault Tolerance)

Є дисковим масивом, в якому дані розбиваються на блоки, і кожен блок записуються (або ж зчитується) на окремий диск. Таким чином, можна здійснювати кілька операцій введення-виведення одночасно.

Переваги:

  • найвища продуктивність для додатків, які потребують інтенсивної обробки запитів введення/виводу та даних великого обсягу;
  • простота реалізації;
  • низька вартість одиницю обсягу.

Недоліки:

  • не відмовостійке рішення;
  • відмова одного диска тягне у себе втрату всіх даних масиву.

RAID 1. Дисковий масив із дублюванням або дзеркалка (mirroring)

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

Переваги:

  • простота реалізації;
  • простота відновлення масиву у разі відмови (копіювання);
  • досить висока швидкодія для додатків із великою інтенсивністю запитів.

Недоліки:

  • висока вартість на одиницю обсягу – 100% надмірність;
  • невисока швидкість передачі.

RAID 2. Відмовостійкий дисковий масив із використанням коду Хеммінгу (Hamming Code ECC).

Надмірне кодування, яке використовується в RAID 2, має назву коду Хеммінга. Код Хеммінгу дозволяє виправляти поодинокі та виявляти подвійні несправності. Сьогодні активно використовується в технології кодування даних у оперативної пам'ятітипу ECC. І кодування даних на магнітних дисках.

В даному випадку показаний приклад із фіксованою кількістю дисків у зв'язку з громіздкістю опису (слово даних складається з 4 біт, відповідно ECC код із 3-х).

Переваги:

  • швидка корекція помилок («на льоту»);
  • дуже висока швидкість передачі великих обсягів;
  • зі збільшенням кількості дисків, накладні витрати зменшуються;
  • досить проста реалізація.

Недоліки:

  • висока вартість при малій кількості дисків;
  • низька швидкістьобробки запитів (не підходить для систем, орієнтованих на обробку транзакцій).

RAID 3. Відмовостійкий масив з паралельною передачею даних та парністю (Parallel Transfer Disks with Parity)

Дані розбиваються на підблоки на рівні байт і записуються одночасно на всі диски масиву, крім одного, який використовується для парності. Використання RAID 3 вирішує проблему великої надмірності в RAID 2. Більшість контрольних дисків, які у RAID рівня 2, потрібні визначення положення несправного розряду. Але цього немає потреби, оскільки більшість контролерів може визначити, коли диск відмовив за допомогою спеціальних сигналів, або додаткового кодування інформації, записаної на диск і використовуваної для виправлення випадкових збоїв.

Переваги:

  • дуже висока швидкість передачі;
  • відмова диска мало впливає швидкість роботи масиву;

Недоліки:

RAID 4. Відмовостійкий масив незалежних дисків з диском парності (Independent Data disks with shared Parity disk)

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

Переваги:

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

Недоліки:

  • дуже низька продуктивність під час запису даних;
  • низька швидкість читання даних малого обсягу при поодиноких запитах;
  • асиметричність швидкодії щодо читання та запису.

RAID 5. Відмовостійкий масив незалежних дисків з розподіленою парністю (Independent Data disks with distributed parity blocks)

Цей рівень схожий на RAID 4, але, на відміну від попереднього, парність розподіляється циклічно по всіх дисках масиву. Ця зміна дозволяє збільшити продуктивність запису невеликих обсягів даних багатозадачних системах. Якщо операції запису спланувати належним чином, то можливо паралельно обробляти до N/2 блоків, де N - число дисків у групі.

Переваги:

  • висока швидкість запису даних;
  • досить висока швидкість читання даних;
  • висока продуктивність за великої інтенсивності запитів читання/запису даних;
  • малі накладні витрати для реалізації надмірності.

Недоліки:

  • швидкість читання даних нижче, ніж у RAID 4;
  • низька швидкість читання/запису даних малого обсягу при поодиноких запитах;
  • досить складна реалізація;
  • складне відновлення даних.

RAID 6. Відмовостійкий масив незалежних дисків з двома незалежними розподіленими схемами парності

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

Переваги:

  • висока стійкість до відмови;
  • досить висока швидкість обробки запитів;
  • щодо малі накладні витрати для реалізації надмірності.

Недоліки:

  • дуже складна реалізація;
  • складне відновлення даних;
  • дуже низька швидкість запису даних.

Сучасні RAID контролери дозволяють комбінувати різні рівні RAID. Таким чином, можна реалізувати системи, які поєднують у собі переваги різних рівнів, а також системи з великою кількістю дисків. Зазвичай це комбінація нульового рівня (stripping) та будь-якого відмовостійкого рівня.

RAID 10. Відмовостійкий масив з дублюванням та паралельною обробкою

Ця архітектура є масивом типу RAID 0, сегментами якого є масиви RAID 1. Він поєднує в собі дуже високу відмовостійкість і продуктивність.

Переваги:

  • висока стійкість до відмови;
  • висока продуктивність.

Недоліки:

  • дуже висока вартість;
  • обмежене масштабування.

RAID 30. Відмовостійкий масив з паралельною передачею даних та підвищеною продуктивністю.

Є масивом типу RAID 0, сегментами якого є масиви RAID 3. Він поєднує в собі відмовостійкість і високу продуктивність. Зазвичай використовується для додатків, які вимагають послідовної передачіданих великих обсягів.

Переваги:

  • висока стійкість до відмови;
  • висока продуктивність.

Недоліки:

  • висока вартість;
  • обмежене масштабування.

RAID 50. Відмовостійкий масив з розподіленою парністю та підвищеною продуктивністю

Є масивом типу RAID 0, сегментами якого є масиви RAID 5. Він поєднує в собі відмовостійкість і високу продуктивність для додатків з великою інтенсивністю запитів і високу швидкість передачі даних.

Переваги:

  • висока стійкість до відмови;
  • висока швидкість передачі;
  • Висока швидкість обробки запитів.

Недоліки:

  • висока вартість;
  • обмежене масштабування.

RAID 7. Відмовостійкий масив, оптимізований для підвищення продуктивності. (Optimized Asynchrony для High I/O Rates як добре як High Data Transfer Rates). RAID 7® є зареєстрованою торговою маркою Storage Computer Corporation (SCC)

Для розуміння архітектури RAID 7 розглянемо її особливості:

  1. Всі запити на передачу даних обробляються асинхронно та незалежно.
  2. Всі операції читання/запису кешуються через високошвидкісну шину x-bus.
  3. Диск парності може бути розміщений будь-якому каналі.
  4. У мікропроцесорі контролера масиву використовується операційна система реального часу, орієнтована на обробку процесів.
  5. Система має хорошу масштабованість: до 12 host-інтерфейсів та до 48 дисків.
  6. Операційна система контролює комунікаційні канали.
  7. Використовуються стандартні SCSI диски, шини, материнські плати та модулі пам'яті.
  8. Використовується високошвидкісна шина X-bus для роботи із внутрішньою кеш пам'яттю.
  9. Процедура створення парності інтегрована в кеш.
  10. Диски, приєднані до системи, можуть бути задекларовані як окремі.
  11. Для керування та моніторингу системи можна використовувати SNMP агент.

Переваги:

  • висока швидкість передачі даних і висока швидкість обробки запитів (1.5 - 6 разів вище за інші стандартні рівні RAID);
  • висока масштабованість хост інтерфейсів;
  • швидкість запису даних збільшується зі збільшенням кількості дисків у масиві;
  • для обчислення парності немає необхідності додаткової передачі даних.

Недоліки:

  • власність одного виробника;
  • дуже висока вартість одиницю обсягу;
  • короткий гарантійний термін;
  • не може обслуговуватись користувачем;
  • потрібно використовувати блок безперебійного живлення для запобігання втраті даних із кеш пам'яті.

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

RAIDМінімум
дисків
Потреба
у дисках
Відмова-
стійкість
Швидкість
передачі даних
Інтенсивність
обробки
запитів
Практичне
використання
0 2 N дуже висока
до N х 1 диск
Графіка, відео
1 2 2N * R > 1 диск
W = 1 диск
до 2 х 1 диск
W = 1 диск
малі файл-сервери
2 7 2N ~ RAID 3Низькамейнфрейми
3 3 N+1 НизькаГрафіка, відео
4 3 N+1 R WR = RAID 0
W
файл-сервери
5 3 N+1 R WR = RAID 0
W
сервери баз даних
6 4 N+2найвищанизькаR > 1 диск
W
використовується вкрай рідко
7 12 N+1 найвищанайвищарізні типи додатків

Уточнення:

  • * - розглядається зазвичай використовуваний варіант;
  • k – кількість підсегментів;
  • R – читання;
  • W – запис.

Деякі аспекти реалізації RAID систем

Розглянемо три основні варіанти реалізації RAID систем:

  • програмна (software-based);
  • апаратна – шинно-орієнтована (bus-based);
  • апаратна – автономна підсистема (subsystem-based).

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

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

Головна перевага програмної реалізації – низька вартість. Але при цьому вона має багато недоліків: низька продуктивність, завантаження додатковою роботоюцентрального процесора; збільшення шинного трафіку. Програмно зазвичай реалізують прості рівні RAID – 0 та 1, оскільки вони не вимагають значних обчислень. Враховуючи ці особливості, RAID системи з програмною реалізацією використовуються на серверах. початкового рівня.

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

Шинно-орієнтовані реалізації є RAID контролери, які використовують швидкісну шину комп'ютера, в який вони встановлюються (останнім часом зазвичай використовується шина PCI). У свою чергу шинно-орієнтовані реалізації можна поділити на низькорівневі та високорівневі. Перші зазвичай не мають SCSI чіпів і використовують так званий RAID порт на материнській платі з вбудованим контролером SCSI. При цьому функції обробки коду RAID та операцій введення/виводу розподіляються між процесором на RAID контролері та чіпами SCSI на материнській платі. Таким чином, центральний процесор звільняється від обробки додаткового коду і зменшується трафік шини в порівнянні з програмним варіантом. Вартість таких плат зазвичай невелика, особливо якщо вони орієнтовані на системи RAID - 0 або 1 (є також реалізації RAID 3, 5, 10, 30, 50, але вони дорожчі), завдяки чому вони поступово витісняють програмні реалізації з ринку серверів початкового рівня. Високорівневі контролери з шинною реалізацією мають дещо іншу структуру, ніж молодші брати. Вони беруть він всі функції, пов'язані з вводом/выводом і виконанням RAID коду. Крім того, вони не такі залежні від реалізації материнської плати і, як правило, мають більше можливостей (наприклад, можливість підключення модуля для зберігання інформації в кеш у разі відмови материнської плати або зникнення живлення). Такі контролери зазвичай коштують дорожче низькорівневих і використовуються в серверах середнього та високого рівня. Вони, як правило, реалізують RAID рівнів 0,1, 3, 5, 10, 30, 50. Враховуючи те, що шинно-орієнтовані реалізації підключаються прямо до внутрішньої PCI шини комп'ютера, вони є найбільш продуктивними серед систем, що розглядаються (при організації одно- хостових систем). Максимальна швидкодія таких систем може досягати 132 Мбайт/с (32bit PCI) або 264 Мбайт/с (64bit PCI) при частоті шини 33MHz.

Разом із перерахованими перевагами шинно-орієнтована архітектура має такі недоліки:

  • залежність від операційної системи та платформи;
  • обмежена масштабованість;
  • обмежені можливості щодо організації відмовостійких систем.

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

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

Одним із недоліків автономних систем залишається їхня велика вартість.

Враховуючи сказане вище, відзначимо, що автономні контролери зазвичай використовуються для реалізації високоємних сховищ даних і кластерних систем.

Оформлення запиту

Опис RAID-масивів ( , )

Опис RAID 0


Дисковий масив підвищеної продуктивності без стійкості до відмов.
Striped Disk Array без Fault Tolerance

Масив RAID 0 є найбільш продуктивним і найменш захищеним з усіх RAID-ів. Дані розбиваються на блоки пропорційно до кількості дисків, що призводить до більш високої пропускної здатності. Висока продуктивність даної структури забезпечується паралельним записом та відсутністю надмірного копіювання. Відмова будь-якого диска в масиві призводить до втрати всіх даних. Цей рівень називається striping.

Переваги:
- · найвища продуктивність для додатків, які потребують інтенсивної обробки запитів введення/виводу та даних великого обсягу;
- · Простота реалізації;
- · Низька вартість на одиницю обсягу.
Недоліки:
- не відмовостійке рішення;
- Відмова одного диска тягне за собою втрату всіх даних масиву.

Опис RAID 1


Дисковий масив із дублюванням або дзеркаловання
Duplexing & Mirroring
RAID 1 – mirroring – дзеркальне відображення двох дисків. Надмірність структури даного масиву забезпечує його високу стійкість до відмови. Масив відрізняється високою собівартістю та низькою продуктивністю.

Переваги:
- · Простота реалізації;
- · Простота відновлення масиву у разі відмови (копіювання);
- Досить висока швидкодія для додатків з великою інтенсивністю запитів.
Недоліки:
- · Висока вартість на одиницю обсягу - 100% надмірність;
- · невисока швидкість передачі.

Опис RAID 2


Відмовостійкий дисковий масив з використанням коду Хеммінгу
Hamming Code ECC
RAID 2 – використовує коди виправлення помилок Хеммінгу (Hamming Code ECC). Коди дозволяють виправляти поодинокі та виявляти подвійні несправності.

Переваги:
- · Швидка корекція помилок ("на льоту");
- дуже висока швидкість передачі даних великих обсягів;
- · Збільшення кількості дисків, накладні витрати зменшуються;
- Досить проста реалізація.
Недоліки:
- · Висока вартість при малій кількості дисків;
- Низька швидкість обробки запитів (не підходить для систем орієнтованих на обробку транзакцій).

Опис RAID 3


Відмовостійкий масив з паралельною передачею даних та парністю
Parallel Transfer Disks with Parity

RAID 3 - дані зберігаються за принципом striping на рівні байтів із контрольною сумою (КС) на одному з дисків. Масив не має проблеми деякої надмірності як у RAID 2-го рівня. Диски з контрольною сумою, що використовуються в RAID 2, необхідні для визначення помилкового заряду. Однак більшість сучасних контролерів здатні визначити, коли диск відмовив за допомогою спеціальних сигналів або додаткового кодування інформації, записаної на диск і використовуваної для виправлення випадкових збоїв.

Переваги:
- · дуже висока швидкість передачі даних;
- відмова диска мало впливає на швидкість роботи масиву;
- · малі накладні витрати для реалізації надмірності.
Недоліки:
- · Непроста реалізація;
- Низька продуктивність при великій інтенсивності запитів даних невеликого обсягу.

 

 

Це цікаво: