Які різні рівні RAID, що широко використовуються, і коли їх слід враховувати?


181

Це канонічне запитання про рівні RAID.

Які:

  • рівні RAID, які зазвичай використовуються (включаючи сімейство RAID-Z)?
  • розгортання вони зазвичай зустрічаються?
  • переваги та підводні камені кожного?

10
@ erimar77 Суть мережі StackExchange полягає в тому, щоб зібрати всі знання з зазначеної теми в мережі SE . Це означає, що дані у Вікіпедії для місії марні. Я досить добре розбираюся в RAID, тому відповідь мені не потрібна, але це повинно бути канонічним питанням. Кононічне питання - це одне з остаточних відповідей на поширену проблему, на яку ми можемо вказати на всі дублікати. "Просто погуглити його" або "це у Вікіпедії" - неприйнятні відповіді. Стаття у Вікіпедії дуже хороша.
MDMarra

2
Скопійовано на Super User, щоб я міг VTC як дублікат. Будь ласка, скопіюйте відповідь на Super User (або дозвольте мені скопіювати її зараз).
Геннес

Відповіді:


197

RAID: Чому і коли

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

На найбільш загальному рівні RAID - це група дисків, які діють на одне і те ж читання та запис. SCSI IO виконується на гучності ("LUN"), і вони розподіляються на базові диски таким чином, що вводиться збільшення продуктивності та / або збільшення надмірності. Підвищення продуктивності є функцією зачистки: дані поширюються на декілька дисків, щоб дозволити читанням і записам одночасно використовувати всі черги вводу-виводу дисків. Надлишок - це функція дзеркального відображення. Цілі диски можна зберігати як копії, або окремі смужки можна записати кілька разів. Крім того, у деяких типах рейду, замість копіювання бітів даних для бітів, надмірність отримується шляхом створення спеціальних смуг, що містять інформацію про паритет, які можуть бути використані для відтворення будь-яких втрачених даних у разі відмови обладнання.

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

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

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


Прямий доданий RAID: програмне забезпечення та обладнання

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

Програмному RAID зазвичай не потрібен контролер, оскільки він не використовує виділений RAID-процесор або окремий кеш. Зазвичай цими операціями керує безпосередньо ЦП. У сучасних системах ці розрахунки витрачають мінімальні ресурси, хоча є певна гранична затримка. RAID обробляється або ОС безпосередньо, або несправним контролером у випадку FakeRAID .

Взагалі кажучи, якщо хтось збирається вибирати програмний RAID, він повинен уникати FakeRAID і використовувати нативний ОС для своєї системи, такі як динамічні диски в Windows, mdadm / LVM в Linux або ZFS в Solaris, FreeBSD та інших пов'язаних дистрибутивах . FakeRAID використовує поєднання апаратного та програмного забезпечення, що призводить до первинного появи апаратного RAID, але фактичної продуктивності програмного забезпечення RAID. Крім того, зазвичай надзвичайно важко перемістити масив до іншого адаптера (якщо вихідний не працює).


Централізоване зберігання

В іншому місці поширений RAID - це на централізованих пристроях зберігання даних, зазвичай їх називають SAN (Storage Area Network) або NAS (Network Attached Storage). Ці пристрої керують власним сховищем та дозволяють приєднаним серверам отримувати доступ до сховища різними способами. Оскільки кілька робочих навантажень містяться на одних і тих же дисках, то, як правило, бажано мати високий рівень надмірності.

Основна відмінність між NAS та SAN - це експорт на рівні файлової системи. SAN експортує цілий «блок-пристрій», такий як розділ або логічний об'єм (включаючи вбудовані поверх масиву RAID). Приклади SAN включають Fiber Channel та iSCSI. NAS експортує "файлову систему", таку як файл або папка. Приклади NAS включають CIFS / SMB (обмін файлами Windows) та NFS.


RAID 0

Добре, коли: Швидкість за будь-яку ціну!

Погано, коли: Ви дбаєте про свої дані

RAID0 (він же Striping) іноді називають "кількістю даних, які вам залишиться, коли диск вийде з ладу". Це дійсно працює проти зерна "RAID", де "R" означає "Надлишок".

RAID0 бере ваш блок даних, розбиває їх на стільки фрагментів, скільки у вас є диски (2 диски → 2 штуки, 3 диски → 3 частини), а потім записує кожен фрагмент даних на окремий диск.

Це означає, що одна несправність диска знищує весь масив (адже у вас є частина 1 і частина 2, але частина 3 немає), але це забезпечує дуже швидкий доступ до диска.

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

Загальний об’єм дискового простору - це сума всіх дисків у масиві, що додаються разом (наприклад, 3x диски 1 ТБ = 3 ТБ місця).

РАЙД 1


РАЙД 1

Добре, коли: Ви маєте обмежену кількість дисків, але потребуєте резервування

Погано, коли: Вам потрібно багато місця для зберігання

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

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

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

Загальний об’єм дискового простору - це розмір найменшого диска в масиві (наприклад, 2x 1 ТБ диска = 1 ТБ місця).

РАЙД 1


РАЙД 1Е

Рівень 1E RAID схожий на RAID 1, оскільки дані завжди записуються на (принаймні) два диски. Але на відміну від RAID1, він дозволяє отримати непарну кількість дисків, просто переплетевши блоки даних між декількома дисками.

Характеристики роботи схожі на RAID1, відмовостійкість аналогічна RAID 10. Цю схему можна поширити на непарне число дисків більше трьох (можливо, це називається RAID 10E, хоча і рідко).

РАЙД 1Е


РАЙД 10

Добре, коли: Ви хочете швидкості та надмірності

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

RAID 10 - це комбінація RAID 1 і RAID 0. Порядок 1 і 0 дуже важливий. Скажімо, у вас 8 дисків, він створить 4 масиви RAID 1, а потім застосуйте масив RAID 0 поверх 4 масивів RAID 1. Для цього потрібно щонайменше 4 диски, а додаткові диски потрібно додати парами.

Це означає, що один диск з кожної пари може вийти з ладу. Отже, якщо у вас є набори A, B, C і D з дисками A1, A2, B1, B2, C1, C2, D1, D2, ви можете втратити по одному диску з кожного набору (A, B, C або D) і все одно мати функціонуючий масив.

Однак якщо ви втратите два диски з одного набору, масив повністю втрачається. Ви можете втратити до (але не гарантовано) 50% дисків.

Вам гарантується висока швидкість і висока доступність в RAID 10.

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

Наявний простір на диску становить 50% від суми всього місця. (наприклад, 8x 1TB накопичувачі = 4TB корисного простору). Якщо ви використовуєте різні розміри, з кожного диска буде використовуватися лише найменший розмір.

Варто зауважити, що викликаний драйвер програмного забезпечення для ядра Linux, що викликається, md дозволяє здійснювати конфігурації RAID 10 з непарною кількістю накопичувачів , тобто 3 або 5 дискових RAID 10.

РАЙД 10


РАЙД 01

Добре, коли: ніколи

Погано, коли: завжди

Це реверс RAID 10. Він створює два масиви RAID 0, а потім ставить RAID 1 зверху. Це означає, що ви можете втратити по одному диску з кожного набору (A1, A2, A3, A4 або B1, B2, B3, B4). Це дуже рідко можна побачити в комерційних програмах, але це можливо зробити з програмним RAID.

Щоб бути абсолютно зрозумілим:

  • Якщо у вас є масив RAID10 з 8 дисками і одним штампом (ми називаємо його A1), у вас буде 6 зайвих дисків і 1 без надмірності. Якщо інший диск вмирає, є 85% шансів, що ваш масив все ще працює.
  • Якщо у вас є масив RAID01 з 8 дисками і одним штампом (ми будемо називати його A1), тоді у вас буде 3 надлишкових диска і 4 без надмірності. Якщо інший диск помер, є 43% шансів, що ваш масив все ще працює.

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


РАЙД 5

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

Погано, коли: у вас велика завантаженість випадкових записів або великі диски

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

На жаль, у разі відмови накопичувача процес відновлення дуже інтенсивний. Чим більше накопичувачів у RAID, тим довше відбудеться відновлення, і тим вище шанс для другої несправності накопичувача. Оскільки на великих повільних накопичувачах є набагато більше даних для відновлення та набагато менша продуктивність для цього, зазвичай не рекомендується використовувати RAID 5 із чим-небудь 7200 об / хв або менше.

Мабуть, найважливіша проблема з масивами RAID 5 при використанні у споживчих програмах полягає в тому, що вони майже гарантовано виходять з ладу, коли загальна ємність перевищує 12 ТБ. Це пояснюється тим, що швидкість неповерненої помилки читання (URE) споживчих накопичувачів SATA становить один на кожні 10 14 біт або ~ 12,5 ТБ.

Якщо ми візьмемо приклад масиву RAID 5 із семи накопичувачами 2 ТБ: коли диск виходить з ладу, залишається шість дисків. Для відновлення масиву контролеру необхідно прочитати шість дисків по 2 ТБ кожен. Якщо дивитись на малюнок вище, майже впевнено, що ще URE відбудеться до завершення відновлення. Як тільки це станеться, масив і всі дані на ньому втрачаються.

Однак збій URE / втрата даних / масив даних із випуском RAID 5 у споживчих накопичувачах дещо пом'якшився тим, що більшість виробників жорстких дисків підвищили номінальний показник URE своїх нових дисків до одного з 10 15 біт. Як завжди, перед покупкою перевірте специфікаційний лист!

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

RAID 5 - це найвигідніший варіант додавання зайвого сховища до масиву, оскільки він вимагає втрати всього 1 диска (наприклад, 12x 146 Гб диски = 1606 ГБ корисного простору). Для цього потрібно як мінімум 3 диски.

РАЙД 5


РАЙД 6

Добре, коли: Ви хочете використовувати RAID 5, але ваші диски занадто великі або повільні

Погано, коли: у вас велика завантаженість випадкових записів

RAID 6 схожий на RAID 5, але він використовує два диски, що мають паритет, а не лише один (перший - XOR, другий - LSFR), тому ви можете втратити два диски з масиву без втрати даних. Штраф для запису вище, ніж RAID 5, і у вас є на одному диску менше місця.

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

РАЙД 6


RAID 50

Добре, коли: у вас багато дисків, які повинні бути в одному масиві, і RAID 10 не є можливим через ємність

Погано, коли: у вас стільки дисків, що можливі багато одночасних збоїв до завершення відновлення або коли у вас не багато дисків

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

У RAID 50 ємність диска nx, де x - кількість RAID 5, смугастих поперек. Наприклад, якщо простий 6-дисковий RAID 50, найменший можливий, якщо у вас було 6x1TB дисків у двох RAID 5, які потім були смугані, щоб перетворитись на RAID 50, у вас було б зручне зберігання 4TB.


RAID 60

Добре, коли: Ви маєте подібний випадок використання до RAID 50, але потребуєте більшої надмірності

Погано, коли: у вас у масиві немає значної кількості дисків

RAID 6 призначений для RAID 60, як RAID 5 для RAID 50. По суті, у вас є більше одного RAID 6, після чого дані смугаються в RAID 0. Ця настройка дозволяє мати до двох членів будь-якого окремого RAID 6 у наборі вийти з ладу без втрати даних. Часи відновлення для масивів RAID 60 можуть бути істотними, тому зазвичай корисно мати один запасний запас для кожного члена RAID 6 в масиві.

У RAID 60 ємність диска становить n-2x, де x - кількість RAID 6, смугастих поперек. Наприклад, якщо простий 8-дисковий RAID 60, найменший можливий, якщо у вас були 8x1TB диски у двох RAID 6, які потім були перекреслені, щоб перетворитись на RAID 60, у вас було б зручне зберігання 4TB. Як ви бачите, це дає стільки ж корисного сховища, що і RAID 10, який би дав на 8-членний масив. Хоча RAID 60 був би дещо зайвим, час відновлення був би значно більшим. Як правило, RAID 60 потрібно розглядати лише в тому випадку, якщо у вас є велика кількість дисків.


RAID-Z

Добре, коли: Ви використовуєте ZFS у системі, яка його підтримує

Погано, коли: продуктивність вимагає апаратного прискорення RAID

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

Приклад може зробити це набагато зрозумілішим. Скажімо, у вас є 3 диски в пулі ZFS RAID-Z, розмір блоку - 4 КБ. Тепер ви записуєте файл в систему, який становить рівно 16 КБ. ZFS розділить це на чотири блоки 4 КБ (як це було б у звичайній операційній системі); тоді він обчислить два блоки паритету. Ці шість блоків будуть розміщені на накопичувачах, подібних до того, як RAID-5 розподілятиме дані та паритет. Це поліпшення порівняно з RAID5 тим, що не було зчитування існуючих смужок даних для обчислення паритету.

Інший приклад спирається на попередній. Скажіть, що файл становив лише 4 КБ. ZFS все одно доведеться будувати один блок парності, але тепер навантаження запису знижується до 2 блоків. Третій диск буде безкоштовним для обслуговування будь-яких інших одночасних запитів. Подібний ефект буде помічений у будь-який час, коли записаний файл не є кратним розміру блоку пулу, помноженому на кількість дисків, менших на один (тобто [Розмір файлу] <> [Розмір блоку] * [Диски - 1]).

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

Характер ZFS протидіє деяким класичним застереженням RAID-5/6. Усі записи в ZFS виконуються в режимі копіювання на запис; всі змінені блоки в операції запису записуються на нове місце на диску, замість того, щоб перезаписувати існуючі блоки. Якщо запис не вдається з будь-якої причини, або система виходить з ладу в середині запису, транзакція запису або відбувається повністю після відновлення системи (за допомогою журналу намірів ZFS), або взагалі не відбувається, уникаючи потенційного пошкодження даних. Інша проблема з RAID-5/6 - це потенційна втрата даних або тиха корупція даних під час відновлення; регулярні zpool scrubоперації можуть допомогти уникнути пошкодження даних або вирішити проблеми, перш ніж вони спричинить втрату даних, а контрольна сума всіх блоків даних забезпечить, що вся корупція під час відновлення буде виявлена.

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

Інші RAID та нестандартні функціональні можливості

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

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


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

Чудовий підсумок! У мене є одне доповнення щодо RAID5 проти RAID6: Часто люди, які враховують загальну надійність (шанс катастрофічного виходу з ладу) масивів, заселених великою кількістю шпинделів або дисків дуже високої ємності, вибиратимуть RAID6. Вони роблять це виходячи з ймовірності виникнення другого збою під час перебудови першого диска. Моє особисте правило - RAID6, коли кількість шпинделів перевищує 8 або коли окремі накопичувачі перевищують 1 ТБ. Мені не вдалося знайти канонічний калькулятор, але Google і відомий час для відновлення допоможуть розрахувати добре.
JGurtz

3
Тут, можливо, варто додати зауваження, що програмне забезпечення Linux RAID10 нестандартне. Це дозволяє незвичні та потенційно корисні макети. en.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10
Zoredache

Можливо, варто включити роз'яснення покарання при написанні та смуги смуги. RAID 2 або 3, можливо, варто почесно згадати, але я не знаю жодних "реальних" реалізацій. Однак - NetApp все ще використовує RAID4 (а RAID-DP - це в основному RAID-4 з додатковим паритетом).
Sobrique

1
RAID 6: Чи повинен LSFR бути LFSR (реєстр зрушень лінійного зворотного зв’язку)?
CVn

58

Також пробіг один мільйон !!!!

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

введіть тут опис зображення


7
О, Боже. Чоппер зараз втрачає розум.
MDMarra

4
Я неправильно зрозумів математику?
Chopper3

6
Ви знаєте, що я дійсно буду це правильно?
Chopper3

33
Raid 1000000 потребував би як мінімум 128 дисків, але це забезпечить 64 диски вартістю місця для зберігання; це було б таке ж найгірше виконання запису, як Raid 1, а будь-які 2 суміжні пошкодження накопичувача вбили б масив. Ви дескрипували Raid 0111111, який мав би досить гарну надійність (Raid 11111110 мав би мати кращу надійність на avergage.)
Кевін Кеткарт

5
О, прекрасна. Бінарні рівні RAID. Що далі?
CVn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.