Які диски у raid. Як створити RAID масив і навіщо він потрібний. Побудова масиву дисків - від теорії до практики

18.09.2020 Безпека

© Андрій Єгоров, 2005, 2006. Група компаній ТІМ.

Відвідувачі форуму запитують нас: «Який рівень RAID найнадійніший?» Всі знають, що найпоширенішим є рівень RAID5, проте він аж ніяк не позбавлений серйозних недоліків, які є неочевидними для нефахівців.

RAID 0, RAID 1, RAID 5, RAID6, RAID 10 чи що таке рівні RAID?

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

JBOD(Just a Bunch of Disks) - це просте об'єднання жорстких дисків, яке рівнем RAID формально не є. Том JBOD може бути масив з одного диска або об'єднання декількох дисків. Контролеру RAID для роботи з таким томом не потрібне проведення обчислень. На нашій діаграмі диск JBOD служить як «ординар» або відправна точка – його значення надійності, продуктивності та вартості збігаються з відповідними показниками одиничного жорсткого диска.

RAID 0("Striping") надмірності не має, а інформацію розподіляє відразу по всіх дисках, що входять в масив у вигляді невеликих блоків («страйпів»). За рахунок цього суттєво підвищується продуктивність, але страждає на надійність. Як і у випадку з JBOD, за свої гроші ми отримуємо 100% ємності диска.

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

Хороший рівень – RAID 1(“Mirroring”, “дзеркало”). Він має захист від виходу з ладу половини наявних апаратних засобів (загалом – одного з двох жорстких дисків), забезпечує прийнятну швидкість запису та виграш за швидкістю читання за рахунок розпаралелювання запитів. Недолік полягає в тому, що доводиться виплачувати вартість двох жорстких дисків, одержуючи корисний об'єм одного жорсткого диска.

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

Дзеркало на багатьох дисках – це рівень RAID 10. При використанні такого рівня дзеркальні пари дисків вишиковуються в «ланцюжок», тому обсяг отриманого тома може перевищувати ємність одного жорсткого диска. Переваги та недоліки – такі самі, як і у рівня RAID1. Як і в інших випадках, рекомендується включати до масиву диски гарячого резерву HotSpare з розрахунку один резервний на п'ять робочих.

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

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

Крім базових рівнів RAID0 - RAID5, описаних у стандарті, існують комбіновані рівні RAID10, RAID30, RAID50, RAID15, які різні виробники інтерпретують кожен по-своєму.

Суть таких комбінацій коротенько ось у чому. RAID10 – це поєднання одиниці та нуліка (див. вище). RAID50 - це об'єднання по "0" томів 5-го рівня. RAID15 - "дзеркало" "п'ятірок". І так далі.

Таким чином, комбіновані рівні успадковують переваги (і недоліки) своїх батьків. Так, поява «нуліка» у рівні RAID 50анітрохи не додає йому надійності, зате позитивно відбивається на продуктивності. Рівень RAID 15, напевно, дуже надійний, але він не найшвидший і, до того ж, вкрай неекономічний (корисна ємність тому становить менше половини обсягу вихідного дискового масиву).

RAID 6відрізняється від RAID 5 тим, що в кожному ряді даних (англійською stripe) має не один, а дваблок контрольних сум. Контрольні суми – «багатомірні», тобто. незалежні один від одного, тому навіть відмова двох дисків у масиві дозволяє зберегти вихідні дані. Обчислення контрольних сум за методом Ріда-Соломона потребує більш інтенсивних порівняно з RAID5 обчислень, тому раніше шостий рівень практично не використовувався. Нині він підтримується багатьма продуктами, оскільки вони стали встановлювати спеціалізовані мікросхеми, виконують всі необхідні математичні операції.

Згідно з деякими дослідженнями, відновлення цілісності після відмови одного диска на томі RAID5, складеному з дисків SATA великого об'єму (400 і 500 гігабайт), у 5% випадків закінчується втратою даних. Іншими словами, в одному випадку з двадцяти під час регенерації масиву RAID5 на диск резерву Hot Spare можливий вихід з ладу другого диска... завждиробіть резервні копії; 2) використовуйте RAID6!

Нещодавно з'явились нові рівні RAID1E, RAID5E, RAID5EE. Літера "Е" в назві означає Enhanced.

RAID level-1 Enhanced (RAID level-1E)комбінує mirroring та data striping. Ця суміш рівнів 0 та 1 влаштована наступним чином. Дані в ряді розподіляються точнісінько так, як у RAID 0. Тобто ряд даних не має надмірності. Наступний ряд блоків даних копіює попередній зі зсувом один блок. Таким чином, як і в стандартному режимі RAID 1 кожен блок даних має дзеркальну копію на одному з дисків, тому корисний об'єм масиву дорівнює половині сумарного об'єму жорстких дисків, що входять в масив. Для роботи RAID 1E потрібно об'єднання трьох або більше дисків.

Мені дуже подобається рівень RAID1E. Для потужної графічної робочої станції або навіть для домашнього комп'ютера- Оптимальний вибір! Він має всі переваги нульового і першого рівнів - відмінна швидкість і висока надійність.

Перейдемо тепер до рівня RAID level-5 Enhanced (RAID level-5E). Це те саме що і RAID5, тільки з вбудованим в масив резервним диском spare drive. Це вбудовування здійснюється наступним чином: на всіх дисках масиву залишається вільною 1/N частина простору, яка при відмові одного з дисків використовується як гарячий резерв. За рахунок цього RAID5E демонструє поряд із надійністю кращу продуктивність, так як читання/запис проводиться паралельно з великої кількості накопичувачів одночасно і spare drive не простоює, як у RAID5. Очевидно, що той, що входить у тому резервний дискне можна ділити коїться з іншими томами (dedicated vs. shared). Том RAID 5E будується щонайменше на чотирьох фізичних дисках. Корисний обсяг логічного тому обчислюється за формулою N-2.

RAID level-5E Enhanced (RAID level-5EE)подібний до рівня RAID level-5E, але він має більш ефективний розподіл spare drive і, як наслідок, - швидший час відновлення. Як і рівень RAID5E, цей рівень RAID розподіляє в рядах блоки даних та контрольних сум. Але він також розподіляє і вільні блоки spare drive, а не просто залишає під ці цілі частину об'єму диска. Це дозволяє зменшити час, необхідний реконструкцію цілісності тома RAID5EE. Резервний диск, що входить до того, не можна ділити з іншими томами – як і в попередньому випадку. Том RAID 5EE будується щонайменше на чотирьох фізичних дисках. Корисний обсяг логічного тому обчислюється за формулою N-2.

Як не дивно, жодних згадок про рівень RAID 6Eна просторах Інтернету я не знайшов - поки що такий рівень ніким із виробників не пропонується і навіть не анонсується. Адже рівень RAID6E (або RAID6EE?) можна запропонувати за тим же принципом, що й попередній. Диск HotSpare обов'язковоповинен супроводжувати будь-який том RAID, у тому числі і RAID 6. Звичайно, ми не втратимо інформацію при виході з ладу одного або двох дисків, але почати регенерацію цілісності масиву вкрай важливо якнайшвидше, щоб швидше вивести систему з «критичного» режиму. Оскільки необхідність диска Hot Spare для нас не підлягає сумніву, логічним було б піти далі і «розмазати» його тому, як це зроблено в RAID 5EE, щоб отримати переваги від використання великої кількості дисків ( найкраща швидкістьна читанні-запису та швидше відновлення цілісності).

Рівні RAID у «числах».

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

Рівень
~~~~~~~

Хати-
точ-
ність
~~~~~~~

Використання
зування ємності дисків
~~~~~~~

Вироб-
дитель-
ність
читання

~~~~~~~

Вироб-
дитель-
ність
записи

~~~~~~~

Вбудований-
ний диск
резерву

~~~~~~~

мін. у дисків
~~~~~~~

Макс. у дисків

~~~~~~~

Відл

Відл

Відл

Відл

Усі «дзеркальні» рівні – RAID 1, 1+0, 10, 1E, 1E0.

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

RAID 1.
Це – класичне "дзеркало". Два (і тільки два!) жорсткі диски працюють як один, будучи повною копією один одного. Вихід з ладу будь-якого з цих двох дисків не призводить до втрати ваших даних, так як контролер продовжує роботу з диском, що залишився. RAID1 у цифрах: дворазова надмірність, дворазова надійність, дворазова вартість. Продуктивність на запис еквівалентна продуктивності одного жорсткого диска. Продуктивність читання вища, оскільки контролер може розподіляти операції читання між двома дисками.

RAID 10
Суть цього рівня у цьому, що диски масиву об'єднуються парами в «дзеркала» (RAID 1), та був всі ці дзеркальні пари своєю чергою об'єднуються у загальний масив із чергуванням (RAID 0). Саме тому його іноді позначають як RAID 1+0. Важливий момент– у RAID 10 можна об'єднати лише парну кількість дисків (мінімум – 4, максимум – 16). Позитивні якості: від "дзеркала" успадковується надійність, від "нуля" - продуктивність як на читання, так і на запис.

RAID 1Е.
Літера "E" у назві означає "Enhanced", тобто. "Поліпшений". Принцип цього покращення наступний: дані блоками "чергуються" ("striped") на всі диски масиву, а потім ще раз "чергуються" зі зсувом на один диск. У RAID 1E можна поєднувати від трьох до 16 дисків. Надійність відповідає показникам "десятки", а продуктивність за рахунок більшого "чергування" стає трохи кращою.

RAID 1Е0.
Цей рівень реалізується так: ми створюємо "нульовий" масив із масивів RAID1E. Отже, загальна кількість дисків має бути втричі: мінімум три і максимум – шістдесят! Перевага у швидкості при цьому навряд чи отримаємо, а складність реалізації може несприятливо позначитися на надійності. Головна перевага – можливість об'єднати в один масив дуже велику (до 60) кількість дисків.

Подібність всіх рівнів RAID 1X полягає в їх показниках надмірності: задля реалізації надійності жертвується рівно 50% сумарної ємності дисків масиву.

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

Каліфорнійський університет у Берклі представив такі рівні специфікації 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. Наприклад, ця описує все дуже докладно. Але як завжди, читати все не вистачає часу, тому треба щось коротеньке для розуміння - а треба воно чи ні, і що краще використовувати стосовно роботи з СУБД (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 з різних фізичних дисків продуктивність запису визначатиметься найповільнішим диском.

Якщо Ви хочете збільшити швидкодію своєї операційної системи вдвічі, то наша стаття для Вас!

Яким би потужним не був Ваш комп'ютер, у нього досі залишається одна слабка ланка, це жорсткий диск, єдиний пристрій у системному блоці, що має всередині механіку. Вся потужність вашого процесора та 16 ГБ оперативної пам'ятібудуть зведені нанівець застарілим принципом роботи стандартного HDD. Не дарма комп'ютер порівнюють із пляшкою, а жорсткий диск із її шийкою. Скільки б води в пляшці не було, виливатиметься вона через вузьку шийку.

Відомо два способи прискорити роботу комп'ютера, перший, це купити дорогий твердотільний накопичувач SSD, а другий, максимально використовувати можливості вашої материнської плати, А саме, налаштувати RAID 0 масив з двох жорстких дисків. До речі, а хто нам заважає створити RAID 0 масив із двох SSD!

Як налаштувати RAID 0 масив і встановити на нього Windows 10. Або як збільшити швидкодію дискової системи в два рази

Як ви здогадалися, сьогоднішня стаття про створення та налаштування дискового масиву RAID 0 що складається із двох жорстких дисків. Задумав я її кілька років тому і спеціально придбав два нові вінчестера SATA III (6 Гбіт/с) по 250 ГБ, але через складність цієї теми для користувачів-початківців довелося її тоді відкласти. Сьогодні ж, коли можливості сучасних материнських плат підійшли до такого рівня функціональності, що масив RAID 0 може створити навіть початківець, я з великим задоволенням повертаюся до цієї теми.

Примітка: Для створення RAID 0 масиву можна взяти диски будь-якого об'єму, наприклад, по 1 ТБ. У статті, для простого прикладу, взято два диски по 250 ГБ, оскільки вільних дисків іншого об'єму не було під руками.

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

Уважний читач може запитати: "А що така відсутність надмірності?"

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

Ось тому творці технології віртуалізації RAID - Ренді Кац і Девід Паттерсон, не вважали RAID 0 за будь-який рівень RAID і назвали його "0", оскільки він не є безпечним через відсутність надмірності.

Друзі, але погодьтеся, що жорсткі дискиламаються не кожен день, а по-друге, з двома HDD, об'єднаними в RAID 0 масив, можна працювати як з простим жорстким диском, тобто, якщо ви періодично робитимете операційної системи, то ви застрахуєте себе від можливих проблемна 100%.

Отже, перед створенням RAID 0 масиву пропоную встановити один із двох наших нових жорстких дисківSATA III (6 Гбіт/с) у системний блок і перевірити його на швидкість читання запису утилітамиCrystalDiskMark та ATTO Disk Benchmark. Вже після створенняRAID 0 масиву та установки на нього Windows 10 ми ще раз перевіримошвидкість читання запису цими ж утилітами і подивимося, чи дійсно ця технологія збільшить швидкодію нашої операційної системи.

Для проведення експерименту візьмемо далеко не нову материнську плату ASUS P8Z77-V PRO побудовану на чіпсеті Intel Z77 Express. Переваги материнських плат побудованих на чіпсетах Intel Z77, Z87 і новіших H87, B87 полягають у просунутій технології Intel Rapid Storage Technology (RST), яка спеціально розроблена для RAID 0-масивів навіть з SSD.

Під'єднуємо жорсткий диск SATA III WDC WD2500AAKX 250 ГБ до високошвидкісного порту на материнській платі та включаємо комп'ютер.

Нашими програмами.

Забігаючи наперед скажу, результати тесту цілком звичайні для звичайного HDD найсучаснішого інтерфейсу SATA III.

CrystalDiskMark

Є найстарішою програмоюдля тестування продуктивності жорстких дисків на моєму хмарному сховищі, посилання https://cloud.mail.ru/public/6kHF/edWWJwfxa

Програма проводить тест випадкового та послідовного читання/запису на вінчестер блоками по 512 та 4 кб.

Вибираємо необхідний накопичувач, наприклад наш з Вами HDD під літерою C: і тиснемо All.

Підсумковий результат. максимальна швидкістьзапису інформації на жорсткий диск досягала 104 Мб/с, швидкість читання – 125 Мб/сек.

ATTO Disk Benchmark

Підсумковий результат. Максимальна швидкість запису інформації на жорсткий диск досягала 119 Мб/с, швидкість читання – 121 Мб/сек.

Ну а тепер налаштовуємо наш RAID 0 масив у Біос і встановлюємо на нього операційну систему Windows 10.

Налаштування RAID 0 масиву

Під'єднуємо до нашої материнської плати два однакових в об'ємі (250 ГБ) жорстких дисків SATA III: WDC WD2500AAKX-00ERMA0 та WDC WD2500AAKX-001CA0.

На нашій материнці є 4 порти SATA III (6 Гбіт/с), використовуватимемо №5 та №6


Включаємо комп'ютер і входимо до БІОС за допомогою натискання клавіші DEL під час завантаження.

Ідемо на вкладку Advanced, опція SATA Configuration.

Опцію SATA Mode Selection виставляємо у положення RAID

Для збереження змін тиснемо F10 та вибираємо Yes. Відбувається перезавантаження.

Якщо ви підключили в БІОС технологію RAID, то при наступному завантаженні на екрані монітора з'явиться пропозиція натиснути клавіатуру ( CTRL-I), для входу до панелі керування конфігурації RAID.

Ще в цьому вікні відображені підключені до портів 4 і 5 наші жорсткі диски WDC, які поки що не знаходяться в RAID-масиві (Non-RAID Disk). Тиснемо CTRL-I і входимо в панель налаштувань.


У початковому вікні панелі нам потрібна перша вкладка Create a RAID Volume (Створити том RAID), щоб увійти до неї тиснемо Enter.

Тут робимо основні налаштування нашого майбутнього RAID 0 масиву.

Name : (Ім'я RAID-масиву).

Натисніть клавішу пробілу та введіть ім'я.

Нехай буде "RAID 0 new" і тиснемо Enter. Пересуваємось нижче за допомогою клавіші Tab.

RAID Level: (Рівень RAID).

Ми створюємо RAID 0 (stripe) - дисковий масив із двох жорстких дисків з відсутністю надмірності.Виберіть цей рівень стрілками на клавіатурі та натисніть Enter.

Опускаємось нижче за допомогою клавіші Tab.

Stripe Size:

Залишаємо як є.

Capacity: (обсяг)

Виставляється автоматично. Об'єм двох наших вінчестерів 500 ГБ, тому що ми використовуємо рівень RAID 0 (stripe) і два жорсткі диски працюють як один. Тиснемо Enter.

Більше нічого не міняємо і пересуваємося до останнього пункту Create Volume і тиснемо Enter.

З'являється попередження:

WARNING: ALL DATA ON SELECTED DISKS WILL BE LOST.

Are you sure you want to create this volume? (Y/N):

УВАГА: Всі дані на вибраних дисках будуть втрачені.

Ви впевнені, що хочете створити цей обсяг? (Y / N):

Тиснемо Y (Так) на клавіатурі.

RAID 0 масив створений і функціонує, перебуває зі статусом Normal (нормальний). Для виходу з панелі налаштувань натискаємо на клавіатурі клавішу Esc.

Are you sure you want to exit (Ви впевнені, що хочете вийти? Натискаємо Y (Так). Відбувається перезавантаження.

Тепер при кожному завантаженні комп'ютера на екрані монітора на кілька секунд з'являтиметься інформація про стан нашого RAID 0 масиву та пропозицію натиснути клавіші (CTRL-I), для входу в панель керування конфігурації RAID.

Встановлення Windows 10 на RAID 0 масив

Приєднуємо до нашого системному блоку, перезавантажуємо комп'ютер, входимо в БІОС та змінюємо пріоритет завантаження на флешку. А можна просто увійти в меню завантаження комп'ютера та вибрати завантаження з інсталяційної флешки Windows 10 (у нашому випадку Kingston). У меню завантаження можна побачити створений нами RAID 0 масив під назвою "RAID 0 new".

Встановити.

Вибіркова: Тільки інсталяція Windows(для досвідчених користувачів)

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

Windows 10 встановлена ​​на RAID 0 масив.

Ідемо в Управління дисками. Операційна система Windows 10 бачить простір двох наших жорстких дисків по 250 ГБ як один твердий диск об'ємом 500 ГБ.

Диспетчер пристроїв. На дискових пристроях знаходиться наш RAID 0 масив.

А тепер, найголовніше, проводимо тести швидкості роботи RAID 0 масиву.

CrystalDiskMark

Максимальна швидкість запису інформації на жорсткий диск досягала 186 Мб/с, швидкість читання – 248 Мб/сек.

У наступній статті ми створимо RAID 0 із твердотільних накопичувачів SSDі суттєво перевершимо пропускну спроможністьнайсучаснішого та найшвидшого інтерфейсу SATA 6 Гбіт/с.

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

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

Особливості технології побудови магнітних дисків призвели до значної невідповідності між збільшенням продуктивності процесорних модулів та самих магнітних дисків. Якщо 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.

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

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

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

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

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

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