RAID-масив. Варіанти RAID-масивів. Відновлення масиву RAID-0 stripe

  1. RAID-масив. Варіанти RAID-масивів. Відновлення масиву RAID-0 stripe Вступ
  2. Якими бувають RAID?
  3. создания масиву
  4. Цінова вигода галасливого RAID
  5. RAID-масив. Варіанти RAID-масивів. Відновлення масиву RAID-0 stripe
  6. Якими бувають RAID?
  7. создания масиву
  8. Цінова вигода галасливого RAID
  9. RAID-масив. Варіанти RAID-масивів. Відновлення масиву RAID-0 stripe
  10. Якими бувають RAID?
  11. створення масиву
  12. Цінова вигода галасливого RAID

RAID-масив. Варіанти RAID-масивів. Відновлення масиву RAID-0 stripe

Вступ

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

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

На цьому місці ми зупинимося і зробимо короткий екскурс в історію і теорію RAID-масивів. Сама абревіатура RAID розшифровується як Redundant Array of Independent Disks (надлишковий масив незалежних дисків). Раніше замість independent вживали inexpensive (недорогий), але з часом це визначення втратило актуальність: недорогими стали майже всі дискові накопичувачі.

Історія RAID почалася в 1987 році, коли з'явилася на світ стаття "Корпус для надлишкових масивів з дешевих дисків (RAID)", підписана товаришами Петерсоном, Гібсоном і Катц. У замітці була описана технологія об'єднання кількох звичайних дисків в масив для отримання більш швидкого і надійного накопичувача. Також автори матеріалу розповідали читачам про декілька типів масивів - від RAID-1 до RAID-5. Згодом до описаних майже двадцять років тому масивів додався RAID-масив нульового рівня, і він набув популярності. Так що ж являють собою всі ці RAID-x? У чому їх суть? Чому вони називаються надлишковими? В цьому ми і постараємося розібратися.

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

Якими бувають RAID?

Найпростіший з них - JBOD (Just a Bunch of Disks). Два вінчестера склеєні в один послідовно, інформація записується спочатку на один, а потім на інший диск без розбивки її на шматки і блоки. З двох накопичувачів по 200 Гбайт ми робимо один на 400 Гбайт, що працює практично з тієї ж, а в реальності з трохи меншою швидкістю, що і кожен з двох дисків.

JBOD є окремим випадком масиву нульового рівня, RAID-0. Зустрічається також інший варіант назви масивів цього рівня - stripe (смужка), повне найменування - Striped Disk Array without Fault Tolerance. Цей варіант також має означати об'єднання n дисків в один з обсягом, збільшеним в n раз, але диски об'єднуються не послідовно, а паралельно, і інформація на них записується блоками (обсяг блоку задає користувач при формуванні RAID-масиву).

Тобто в разі, якщо на два накопичувача, що входять в масив RAID-0, потрібно записати послідовність цифр 123456, контролер розділить цей ланцюжок на дві частини - 123 і 456 - і першу запише на один диск, а другу - на інший. Кожен диск може передавати дані ... ну, нехай зі швидкістю 50 Мбайт / с, а сумарна швидкість двох дисків, дані з яких беруться паралельно, становить 100 Мбайт / c. Таким чином, швидкість роботи з даними повинна збільшитися в n раз (реально, звичайно, зростання швидкості менше, так як втрати на пошук даних і на передачу їх по шині ніхто не відміняв). Але цей приріст дається не просто так: при поломці хоча б одного диска інформація з усього масиву втрачається.

RAID-масив нульового рівня
RAID-масив нульового рівня. Дані розбиваються на блоки і розкидаються по дискам. Контролю парності і резервування немає.

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

До речі, додатковий мінус stripe-масиву полягає в його непереносимості. Я не маю на увазі те, що він погано переносить якісь окремі види їжі або, наприклад, господарів. На це йому наплювати, але перенести кудись сам масив - це ціла проблема. Навіть якщо притягти до одного обидва диска і драйвери контролера на додачу, не факт, що вони визначаться як один масив і даними вдасться скористатися. Більш того, відомі випадки, коли просте підключення (без запису чого-небудь!) Stripe-дисків до "нерідній" (відмінному від того, на якому формувався масив) контролера призводило до псування інформації в масиві. Чи не знаємо, наскільки ця проблема актуальна зараз, з появою сучасних контролерів, але все ж радимо бути акуратніше.

RAID-масив першого рівня з чотирьох дисків
RAID-масив першого рівня з чотирьох дисків. Диски розбиті на пари, на накопичувачах всередині пари зберігаються однакові дані.

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

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

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

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

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

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

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

RAID-0, RAID-1 і RAID 0 + 1, іноді ще RAID-5 - цими рівнями найчастіше вичерпуються можливості десктопних RAID-контролерів. Більш високі рівні доступні лише складним системам, основою для яких служать SCSI-вінчестери. Однак щасливі власники SATA-контролерів з підтримкою Matrix RAID (такі контролери вбудовані в південні мости ICH6R і ICH7R від компанії Intel) можуть скористатися перевагами масивів RAID-0 і RAID-1, маючи всього два диска, а ті, у кого є плата з ICH7R , можуть об'єднати RAID-5 і RAID-0, якщо у них є чотири однакових накопичувача.

Як це реалізується на практиці? Розберемо більш простий випадок з RAID-0 і RAID-1. Припустимо, ви купили два хард-року по 400 Гбайт. Ви розбиваєте кожен з накопичувачів на логічні диски об'ємом 100 Гбайт і 300 Гбайт. Після цього за допомогою захистом в BIOS утиліти Intel Application Accelerator RAID Option ROM ви поєднуєте 100-гігабайтні розділи в stripe-масив (RAID-0), а 300-гігабайтні - в масив Mirror (RAID-1). Тепер на швидкий диск об'ємом 200 Гбайт можна складати, скажімо, іграшки, відеоматеріал та інші дані, що вимагають високої швидкості дискової підсистеми і до того ж не дуже важливі (тобто ті, про втрату яких ви не будете дуже сильно шкодувати), а на зеркаліруемий 300- гігабайтний диск ви переміщаєте робочі документи, архів пошти, службовий софт і інші життєво необхідні файли. При виході з ладу одного диска ви втрачаєте того, що було розміщено на масиві stripe, але дані, розміщені вами на другому логічному диску, дублюються на останньому накопичувачі.

Об'єднання рівнів RAID-5 і RAID-0 на увазі те, що частина обсягу чотирьох дисків відведена під швидкий stripe-масив, а інша частина (нехай це будуть 300 Гбайт на кожному диску) припадає на блоки даних і блоки парності, тобто ви отримуєте один надшвидкий диск об'ємом 400 Гбайт (4 х 100 Гбайт) і один надійний, але менш швидкий масив обсягом 900 Гбайт 4 х 300 Гбайт мінус 300 Гбайт на блоки парності.

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

Ось, мабуть, і всі види RAID-масивів, які застосовуються в домашніх системах. Однак в житті вам можуть зустрітися RAID-2, 3, 4, 6 і 7. Так що давайте все-таки подивимося, що це за рівні такі.

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

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

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

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

Масив п'ятого рівня відрізняється від RAID-3 тим, що блоки парності рівномірно розкидані по всіх дисках масиву
Масив п'ятого рівня відрізняється від RAID-3 тим, що блоки парності рівномірно розкидані по всіх дисках масиву.

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

RAID-6 - це той же самий RAID-5, але тепер на кожному з дисків масиву зберігаються два блоки парності. Таким чином, при виході двох дисків з ладу інформація все ще може бути відновлена. Зрозуміло, підвищення надійності призвело до зменшення корисного об'єму дисків і до збільшення мінімального їх кількості: тепер при наявності n дисків в масиві загальний обсяг, доступний для запису даних, буде дорівнює обсягу одного диска, помноженому на n-2. Необхідність обчислення відразу двох контрольних сум визначає другий недолік, успадкований RAID-6 від RAID-5, - низьку швидкість запису даних.

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

Масив рівня RAID 0 + 1, або конструкція з двох масивів RAID-1, об'єднаних в RAID-0
Масив рівня RAID 0 + 1, або конструкція з двох масивів RAID-1, об'єднаних в RAID-0. Надійно, швидко, дорого.

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

создания масиву

Сподіваюся, з Вибори типу масиву ви Вже впораліся. Если на вашій платі є RAID-контролер, вам Нічого, кроме потрібної кількості дисків и драйверів цього самого контролера, що не Знадоби. До речі, майте на увазі: є сенс об'єднувати в масив только диски однаково ОБСЯГИ, причому краще однієї моделі. З дисками різного об'єму может відмовітіся працювати контролер, І, швідше за все, ви зможете задіяті лишь частина великого диска, рівну за ОБСЯГИ менше з дисків. Кроме того, даже ШВИДКІСТЬ stripe-масиву буде візначатіся швідкістю самого повільного з дисків. І моя вам порада: чи не намагались сделать RAID-масив завантажувальну. Це можливо, але в разі виникнення будь-яких збоїв в системі вам доведеться нелегко, так як відновлення працездатності буде сильно утруднено. Крім того, небезпечно розміщувати кілька систем на такому масиві: майже всі програми, що відповідають за вибір ОС, вбивають інформацію зі службових областей вінчестера і, відповідно, псують масив. Краще вибрати іншу схему: один диск - завантажувальний, а решта об'єднані в масив.

Matrix RAID в дії
Matrix RAID в дії. Частина обсягу дисків використовується масивом RAID-0, решту простору забирає масив RAID-1.

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

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

Зневажливе ставлення до якісного харчування і температурному режиму дисків може істотно скоротити термін життя HDD, буває, все диски масиву виходять з ладу, а всі дані виявляються безповоротно втраченими. Зокрема, сучасні вінчестери (особливо IBM і Hitachi) дуже чутливі до каналу +12 В і не люблять навіть найменшої зміни напруги на ньому, так що перед закупівлею всього обладнання, необхідного для побудови масиву, варто перевірити відповідні напруги і при необхідності включити новий БП в список покупок.

Харчування жорстких дисків, так само як і всіх інших комплектуючих, від другого блоку живлення, на перший погляд, реалізується просто, але в такій схемі живлення чимало підводних каменів, і потрібно сто разів подумати, перш ніж зважитися на такий крок. З охолодженням все простіше: необхідно лише забезпечити обдув всіх вінчестерів, плюс не ставте їх впритул один до одного. Прості правила, але, на жаль, дотримуються їх не всі. І випадки, коли обидва диска в масиві вмирають одночасно, нерідкі.

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

Так що, are you RAIDy? Так? Відмінно! Тільки в гонитві за обсягом і швидкістю не забудьте інше прислів'я: "Застав дурня Богу молитися, він і лоба розіб'є". Міцних вам дисків і надійних контролерів!

Цінова вигода галасливого RAID

RAID - це добре навіть без оглядки на гроші. Але давайте порахуємо ціну найпростішого stripe-масиву об'ємом 400 Гбайт. Два диска Seagate Barracuda SATA 7200.8 по 200 Гбайт кожен обійдуться вам приблизно в $ 230. RAID-контролери вбудовані в більшість материнських плат, чи то пак ми отримуємо їх безкоштовно.

У той же час 400-гігабайтний диск тієї ж моделі коштує $ 280. Різниця - $ 50, і на ці гроші можна придбати потужний блок живлення, який вам, безсумнівно, знадобиться. Я вже не кажу про те, що продуктивність складеного "диска" при більш низькій ціні буде майже вдвічі вище продуктивності одного вінчестера.

Проведемо тепер підрахунок, орієнтуючись на загальний обсяг 250 Гбайт. Дисків по 125 Гбайт не існує, так що візьмемо два вінчестери по 120 Гбайт. Ціна кожного диска - $ 90, ціна одного 250-гігабайтного вінчестера - $ 130. Що ж, при таких обсягах за продуктивність доводиться платити. А якщо взяти 300-гігабайтний масив? Два диска по 160 Гбайт - приблизно $ 200, один на 300 Гбайт - $ 170 ... Знову не те. Виходить, що вигідний RAID тільки при використанні дисків дуже великого обсягу.

RAID-масив. Варіанти RAID-масивів. Відновлення масиву RAID-0 stripe

Вступ

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

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

На цьому місці ми зупинимося і зробимо короткий екскурс в історію і теорію RAID-масивів. Сама абревіатура RAID розшифровується як Redundant Array of Independent Disks (надлишковий масив незалежних дисків). Раніше замість independent вживали inexpensive (недорогий), але з часом це визначення втратило актуальність: недорогими стали майже всі дискові накопичувачі.

Історія RAID почалася в 1987 році, коли з'явилася на світ стаття "Корпус для надлишкових масивів з дешевих дисків (RAID)", підписана товаришами Петерсоном, Гібсоном і Катц. У замітці була описана технологія об'єднання кількох звичайних дисків в масив для отримання більш швидкого і надійного накопичувача. Також автори матеріалу розповідали читачам про декілька типів масивів - від RAID-1 до RAID-5. Згодом до описаних майже двадцять років тому масивів додався RAID-масив нульового рівня, і він набув популярності. Так що ж являють собою всі ці RAID-x? У чому їх суть? Чому вони називаються надлишковими? В цьому ми і постараємося розібратися.

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

Якими бувають RAID?

Найпростіший з них - JBOD (Just a Bunch of Disks). Два вінчестера склеєні в один послідовно, інформація записується спочатку на один, а потім на інший диск без розбивки її на шматки і блоки. З двох накопичувачів по 200 Гбайт ми робимо один на 400 Гбайт, що працює практично з тієї ж, а в реальності з трохи меншою швидкістю, що і кожен з двох дисків.

JBOD є окремим випадком масиву нульового рівня, RAID-0. Зустрічається також інший варіант назви масивів цього рівня - stripe (смужка), повне найменування - Striped Disk Array without Fault Tolerance. Цей варіант також має означати об'єднання n дисків в один з обсягом, збільшеним в n раз, але диски об'єднуються не послідовно, а паралельно, і інформація на них записується блоками (обсяг блоку задає користувач при формуванні RAID-масиву).

Тобто в разі, якщо на два накопичувача, що входять в масив RAID-0, потрібно записати послідовність цифр 123456, контролер розділить цей ланцюжок на дві частини - 123 і 456 - і першу запише на один диск, а другу - на інший. Кожен диск може передавати дані ... ну, нехай зі швидкістю 50 Мбайт / с, а сумарна швидкість двох дисків, дані з яких беруться паралельно, становить 100 Мбайт / c. Таким чином, швидкість роботи з даними повинна збільшитися в n раз (реально, звичайно, зростання швидкості менше, так як втрати на пошук даних і на передачу їх по шині ніхто не відміняв). Але цей приріст дається не просто так: при поломці хоча б одного диска інформація з усього масиву втрачається.

RAID-масив нульового рівня
RAID-масив нульового рівня. Дані розбиваються на блоки і розкидаються по дискам. Контролю парності і резервування немає.

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

До речі, додатковий мінус stripe-масиву полягає в його непереносимості. Я не маю на увазі те, що він погано переносить якісь окремі види їжі або, наприклад, господарів. На це йому наплювати, але перенести кудись сам масив - це ціла проблема. Навіть якщо притягти до одного обидва диска і драйвери контролера на додачу, не факт, що вони визначаться як один масив і даними вдасться скористатися. Більш того, відомі випадки, коли просте підключення (без запису чого-небудь!) Stripe-дисків до "нерідній" (відмінному від того, на якому формувався масив) контролера призводило до псування інформації в масиві. Чи не знаємо, наскільки ця проблема актуальна зараз, з появою сучасних контролерів, але все ж радимо бути акуратніше.

RAID-масив першого рівня з чотирьох дисків
RAID-масив першого рівня з чотирьох дисків. Диски розбиті на пари, на накопичувачах всередині пари зберігаються однакові дані.

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

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

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

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

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

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

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

RAID-0, RAID-1 і RAID 0 + 1, іноді ще RAID-5 - цими рівнями найчастіше вичерпуються можливості десктопних RAID-контролерів. Більш високі рівні доступні лише складним системам, основою для яких служать SCSI-вінчестери. Однак щасливі власники SATA-контролерів з підтримкою Matrix RAID (такі контролери вбудовані в південні мости ICH6R і ICH7R від компанії Intel) можуть скористатися перевагами масивів RAID-0 і RAID-1, маючи всього два диска, а ті, у кого є плата з ICH7R , можуть об'єднати RAID-5 і RAID-0, якщо у них є чотири однакових накопичувача.

Як це реалізується на практиці? Розберемо більш простий випадок з RAID-0 і RAID-1. Припустимо, ви купили два хард-року по 400 Гбайт. Ви розбиваєте кожен з накопичувачів на логічні диски об'ємом 100 Гбайт і 300 Гбайт. Після цього за допомогою захистом в BIOS утиліти Intel Application Accelerator RAID Option ROM ви поєднуєте 100-гігабайтні розділи в stripe-масив (RAID-0), а 300-гігабайтні - в масив Mirror (RAID-1). Тепер на швидкий диск об'ємом 200 Гбайт можна складати, скажімо, іграшки, відеоматеріал та інші дані, що вимагають високої швидкості дискової підсистеми і до того ж не дуже важливі (тобто ті, про втрату яких ви не будете дуже сильно шкодувати), а на зеркаліруемий 300- гігабайтний диск ви переміщаєте робочі документи, архів пошти, службовий софт і інші життєво необхідні файли. При виході з ладу одного диска ви втрачаєте того, що було розміщено на масиві stripe, але дані, розміщені вами на другому логічному диску, дублюються на останньому накопичувачі.

Об'єднання рівнів RAID-5 і RAID-0 на увазі те, що частина обсягу чотирьох дисків відведена під швидкий stripe-масив, а інша частина (нехай це будуть 300 Гбайт на кожному диску) припадає на блоки даних і блоки парності, тобто ви отримуєте один надшвидкий диск об'ємом 400 Гбайт (4 х 100 Гбайт) і один надійний, але менш швидкий масив обсягом 900 Гбайт 4 х 300 Гбайт мінус 300 Гбайт на блоки парності.

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

Ось, мабуть, і всі види RAID-масивів, які застосовуються в домашніх системах. Однак в житті вам можуть зустрітися RAID-2, 3, 4, 6 і 7. Так що давайте все-таки подивимося, що це за рівні такі.

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

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

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

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

Масив п'ятого рівня відрізняється від RAID-3 тим, що блоки парності рівномірно розкидані по всіх дисках масиву
Масив п'ятого рівня відрізняється від RAID-3 тим, що блоки парності рівномірно розкидані по всіх дисках масиву.

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

RAID-6 - це той же самий RAID-5, але тепер на кожному з дисків масиву зберігаються два блоки парності. Таким чином, при виході двох дисків з ладу інформація все ще може бути відновлена. Зрозуміло, підвищення надійності призвело до зменшення корисного об'єму дисків і до збільшення мінімального їх кількості: тепер при наявності n дисків в масиві загальний обсяг, доступний для запису даних, буде дорівнює обсягу одного диска, помноженому на n-2. Необхідність обчислення відразу двох контрольних сум визначає другий недолік, успадкований RAID-6 від RAID-5, - низьку швидкість запису даних.

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

Масив рівня RAID 0 + 1, або конструкція з двох масивів RAID-1, об'єднаних в RAID-0
Масив рівня RAID 0 + 1, або конструкція з двох масивів RAID-1, об'єднаних в RAID-0. Надійно, швидко, дорого.

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

создания масиву

Сподіваюся, з Вибори типу масиву ви Вже впораліся. Если на вашій платі є RAID-контролер, вам Нічого, кроме потрібної кількості дисків и драйверів цього самого контролера, що не Знадоби. До речі, майте на увазі: є сенс об'єднувати в масив только диски однаково ОБСЯГИ, причому краще однієї моделі. З дисками різного об'єму может відмовітіся працювати контролер, І, швідше за все, ви зможете задіяті лишь частина великого диска, рівну за ОБСЯГИ менше з дисків. Кроме того, даже ШВИДКІСТЬ stripe-масиву буде візначатіся швідкістю самого повільного з дисків. І моя вам порада: чи не намагались сделать RAID-масив завантажувальну. Це можливо, але в разі виникнення будь-яких збоїв в системі вам доведеться нелегко, так як відновлення працездатності буде сильно утруднено. Крім того, небезпечно розміщувати кілька систем на такому масиві: майже всі програми, що відповідають за вибір ОС, вбивають інформацію зі службових областей вінчестера і, відповідно, псують масив. Краще вибрати іншу схему: один диск - завантажувальний, а решта об'єднані в масив.

Matrix RAID в дії
Matrix RAID в дії. Частина обсягу дисків використовується масивом RAID-0, решту простору забирає масив RAID-1.

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

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

Зневажливе ставлення до якісного харчування і температурному режиму дисків може істотно скоротити термін життя HDD, буває, все диски масиву виходять з ладу, а всі дані виявляються безповоротно втраченими. Зокрема, сучасні вінчестери (особливо IBM і Hitachi) дуже чутливі до каналу +12 В і не люблять навіть найменшої зміни напруги на ньому, так що перед закупівлею всього обладнання, необхідного для побудови масиву, варто перевірити відповідні напруги і при необхідності включити новий БП в список покупок.

Харчування жорстких дисків, так само як і всіх інших комплектуючих, від другого блоку живлення, на перший погляд, реалізується просто, але в такій схемі живлення чимало підводних каменів, і потрібно сто разів подумати, перш ніж зважитися на такий крок. З охолодженням все простіше: необхідно лише забезпечити обдув всіх вінчестерів, плюс не ставте їх впритул один до одного. Прості правила, але, на жаль, дотримуються їх не всі. І випадки, коли обидва диска в масиві вмирають одночасно, нерідкі.

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

Так що, are you RAIDy? Так? Відмінно! Тільки в гонитві за обсягом і швидкістю не забудьте інше прислів'я: "Застав дурня Богу молитися, він і лоба розіб'є". Міцних вам дисків і надійних контролерів!

Цінова вигода галасливого RAID

RAID - це добре навіть без оглядки на гроші. Але давайте порахуємо ціну найпростішого stripe-масиву об'ємом 400 Гбайт. Два диска Seagate Barracuda SATA 7200.8 по 200 Гбайт кожен обійдуться вам приблизно в $ 230. RAID-контролери вбудовані в більшість материнських плат, чи то пак ми отримуємо їх безкоштовно.

У той же час 400-гігабайтний диск тієї ж моделі коштує $ 280. Різниця - $ 50, і на ці гроші можна придбати потужний блок живлення, який вам, безсумнівно, знадобиться. Я вже не кажу про те, що продуктивність складеного "диска" при більш низькій ціні буде майже вдвічі вище продуктивності одного вінчестера.

Проведемо тепер підрахунок, орієнтуючись на загальний обсяг 250 Гбайт. Дисків по 125 Гбайт не існує, так що візьмемо два вінчестери по 120 Гбайт. Ціна кожного диска - $ 90, ціна одного 250-гігабайтного вінчестера - $ 130. Що ж, при таких обсягах за продуктивність доводиться платити. А якщо взяти 300-гігабайтний масив? Два диска по 160 Гбайт - приблизно $ 200, один на 300 Гбайт - $ 170 ... Знову не те. Виходить, що вигідний RAID тільки при використанні дисків дуже великого обсягу.

RAID-масив. Варіанти RAID-масивів. Відновлення масиву RAID-0 stripe

Вступ

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

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

На цьому місці ми зупинимося і зробимо короткий екскурс в історію і теорію RAID-масивів. Сама абревіатура RAID розшифровується як Redundant Array of Independent Disks (надлишковий масив незалежних дисків). Раніше замість independent вживали inexpensive (недорогий), але з часом це визначення втратило актуальність: недорогими стали майже всі дискові накопичувачі.

Історія RAID почалася в 1987 році, коли з'явилася на світ стаття "Корпус для надлишкових масивів з дешевих дисків (RAID)", підписана товаришами Петерсоном, Гібсоном і Катц. У замітці була описана технологія об'єднання кількох звичайних дисків в масив для отримання більш швидкого і надійного накопичувача. Також автори матеріалу розповідали читачам про декілька типів масивів - від RAID-1 до RAID-5. Згодом до описаних майже двадцять років тому масивів додався RAID-масив нульового рівня, і він набув популярності. Так що ж являють собою всі ці RAID-x? У чому їх суть? Чому вони називаються надлишковими? В цьому ми і постараємося розібратися.

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

Якими бувають RAID?

Найпростіший з них - JBOD (Just a Bunch of Disks). Два вінчестера склеєні в один послідовно, інформація записується спочатку на один, а потім на інший диск без розбивки її на шматки і блоки. З двох накопичувачів по 200 Гбайт ми робимо один на 400 Гбайт, що працює практично з тієї ж, а в реальності з трохи меншою швидкістю, що і кожен з двох дисків.

JBOD є окремим випадком масиву нульового рівня, RAID-0. Зустрічається також інший варіант назви масивів цього рівня - stripe (смужка), повне найменування - Striped Disk Array without Fault Tolerance. Цей варіант також має означати об'єднання n дисків в один з обсягом, збільшеним в n раз, але диски об'єднуються не послідовно, а паралельно, і інформація на них записується блоками (обсяг блоку задає користувач при формуванні RAID-масиву).

Тобто в разі, якщо на два накопичувача, що входять в масив RAID-0, потрібно записати послідовність цифр 123456, контролер розділить цей ланцюжок на дві частини - 123 і 456 - і першу запише на один диск, а другу - на інший. Кожен диск може передавати дані ... ну, нехай зі швидкістю 50 Мбайт / с, а сумарна швидкість двох дисків, дані з яких беруться паралельно, становить 100 Мбайт / c. Таким чином, швидкість роботи з даними повинна збільшитися в n раз (реально, звичайно, зростання швидкості менше, так як втрати на пошук даних і на передачу їх по шині ніхто не відміняв). Але цей приріст дається не просто так: при поломці хоча б одного диска інформація з усього масиву втрачається.

RAID-масив нульового рівня
RAID-масив нульового рівня. Дані розбиваються на блоки і розкидаються по дискам. Контролю парності і резервування немає.

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

До речі, додатковий мінус stripe-масиву полягає в його непереносимості. Я не маю на увазі те, що він погано переносить якісь окремі види їжі або, наприклад, господарів. На це йому наплювати, але перенести кудись сам масив - це ціла проблема. Навіть якщо притягти до одного обидва диска і драйвери контролера на додачу, не факт, що вони визначаться як один масив і даними вдасться скористатися. Більш того, відомі випадки, коли просте підключення (без запису чого-небудь!) Stripe-дисків до "нерідній" (відмінному від того, на якому формувався масив) контролера призводило до псування інформації в масиві. Чи не знаємо, наскільки ця проблема актуальна зараз, з появою сучасних контролерів, але все ж радимо бути акуратніше.

RAID-масив першого рівня з чотирьох дисків
RAID-масив першого рівня з чотирьох дисків. Диски розбиті на пари, на накопичувачах всередині пари зберігаються однакові дані.

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

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

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

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

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

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

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

RAID-0, RAID-1 і RAID 0 + 1, іноді ще RAID-5 - цими рівнями найчастіше вичерпуються можливості десктопних RAID-контролерів. Більш високі рівні доступні лише складним системам, основою для яких служать SCSI-вінчестери. Однак щасливі власники SATA-контролерів з підтримкою Matrix RAID (такі контролери вбудовані в південні мости ICH6R і ICH7R від компанії Intel) можуть скористатися перевагами масивів RAID-0 і RAID-1, маючи всього два диска, а ті, у кого є плата з ICH7R , можуть об'єднати RAID-5 і RAID-0, якщо у них є чотири однакових накопичувача.

Як це реалізується на практиці? Розберемо більш простий випадок з RAID-0 і RAID-1. Припустимо, ви купили два хард-року по 400 Гбайт. Ви розбиваєте кожен з накопичувачів на логічні диски об'ємом 100 Гбайт і 300 Гбайт. Після цього за допомогою захистом в BIOS утиліти Intel Application Accelerator RAID Option ROM ви поєднуєте 100-гігабайтні розділи в stripe-масив (RAID-0), а 300-гігабайтні - в масив Mirror (RAID-1). Тепер на швидкий диск об'ємом 200 Гбайт можна складати, скажімо, іграшки, відеоматеріал та інші дані, що вимагають високої швидкості дискової підсистеми і до того ж не дуже важливі (тобто ті, про втрату яких ви не будете дуже сильно шкодувати), а на зеркаліруемий 300- гігабайтний диск ви переміщаєте робочі документи, архів пошти, службовий софт і інші життєво необхідні файли. При виході з ладу одного диска ви втрачаєте того, що було розміщено на масиві stripe, але дані, розміщені вами на другому логічному диску, дублюються на останньому накопичувачі.

Об'єднання рівнів RAID-5 і RAID-0 на увазі те, що частина обсягу чотирьох дисків відведена під швидкий stripe-масив, а інша частина (нехай це будуть 300 Гбайт на кожному диску) припадає на блоки даних і блоки парності, тобто ви отримуєте один надшвидкий диск об'ємом 400 Гбайт (4 х 100 Гбайт) і один надійний, але менш швидкий масив обсягом 900 Гбайт 4 х 300 Гбайт мінус 300 Гбайт на блоки парності.

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

Ось, мабуть, і всі види RAID-масивів, які застосовуються в домашніх системах. Однак в житті вам можуть зустрітися RAID-2, 3, 4, 6 і 7. Так що давайте все-таки подивимося, що це за рівні такі.

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

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

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

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

Масив п'ятого рівня відрізняється від RAID-3 тим, що блоки парності рівномірно розкидані по всіх дисках масиву
Масив п'ятого рівня відрізняється від RAID-3 тим, що блоки парності рівномірно розкидані по всіх дисках масиву.

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

RAID-6 - це той же самий RAID-5, але тепер на кожному з дисків масиву зберігаються два блоки парності. Таким чином, при виході двох дисків з ладу інформація все ще може бути відновлена. Зрозуміло, підвищення надійності призвело до зменшення корисного об'єму дисків і до збільшення мінімального їх кількості: тепер при наявності n дисків в масиві загальний обсяг, доступний для запису даних, буде дорівнює обсягу одного диска, помноженому на n-2. Необхідність обчислення відразу двох контрольних сум визначає другий недолік, успадкований RAID-6 від RAID-5, - низьку швидкість запису даних.

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

Масив рівня RAID 0 + 1, або конструкція з двох масивів RAID-1, об'єднаних в RAID-0
Масив рівня RAID 0 + 1, або конструкція з двох масивів RAID-1, об'єднаних в RAID-0. Надійно, швидко, дорого.

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

створення масиву

Сподіваюся, з вибором типу масиву ви вже впоралися. Якщо на вашій платі є RAID-контролер, вам нічого, крім потрібної кількості дисків і драйверів цього самого контролера, не знадобиться. До речі, майте на увазі: є сенс об'єднувати в масиви тільки диски однакового обсягу, причому краще однієї моделі. З дисками різного об'єму може відмовитися працювати контролер, і, швидше за все, ви зможете задіяти лише частина великого диска, рівну за обсягом меншому з дисків. Крім того, навіть швидкість stripe-масиву буде визначатися швидкістю самого повільного з дисків. І моя вам порада: не намагайтеся зробити RAID-масив завантажувальним. Це можливо, але в разі виникнення будь-яких збоїв в системі вам доведеться нелегко, так як відновлення працездатності буде сильно утруднено. Крім того, небезпечно розміщувати кілька систем на такому масиві: майже всі програми, що відповідають за вибір ОС, вбивають інформацію зі службових областей вінчестера і, відповідно, псують масив. Краще вибрати іншу схему: один диск - завантажувальний, а решта об'єднані в масив.

Matrix RAID в дії
Matrix RAID в дії. Частина обсягу дисків використовується масивом RAID-0, решту простору забирає масив RAID-1.

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

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

Зневажливе ставлення до якісного харчування і температурному режиму дисків може істотно скоротити термін життя HDD, буває, все диски масиву виходять з ладу, а всі дані виявляються безповоротно втраченими. Зокрема, сучасні вінчестери (особливо IBM і Hitachi) дуже чутливі до каналу +12 В і не люблять навіть найменшої зміни напруги на ньому, так що перед закупівлею всього обладнання, необхідного для побудови масиву, варто перевірити відповідні напруги і при необхідності включити новий БП в список покупок.

Харчування жорстких дисків, так само як і всіх інших комплектуючих, від другого блоку живлення, на перший погляд, реалізується просто, але в такій схемі живлення чимало підводних каменів, і потрібно сто разів подумати, перш ніж зважитися на такий крок. З охолодженням все простіше: необхідно лише забезпечити обдув всіх вінчестерів, плюс не ставте їх впритул один до одного. Прості правила, але, на жаль, дотримуються їх не всі. І випадки, коли обидва диска в масиві вмирають одночасно, нерідкі.

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

Так що, are you RAIDy? Так? Відмінно! Тільки в гонитві за обсягом і швидкістю не забудьте інше прислів'я: "Застав дурня Богу молитися, він і лоба розіб'є". Міцних вам дисків і надійних контролерів!

Цінова вигода галасливого RAID

RAID - це добре навіть без оглядки на гроші. Але давайте порахуємо ціну найпростішого stripe-масиву об'ємом 400 Гбайт. Два диска Seagate Barracuda SATA 7200.8 по 200 Гбайт кожен обійдуться вам приблизно в $ 230. RAID-контролери вбудовані в більшість материнських плат, чи то пак ми отримуємо їх безкоштовно.

У той же час 400-гігабайтний диск тієї ж моделі коштує $ 280. Різниця - $ 50, і на ці гроші можна придбати потужний блок живлення, який вам, безсумнівно, знадобиться. Я вже не кажу про те, що продуктивність складеного "диска" при більш низькій ціні буде майже вдвічі вище продуктивності одного вінчестера.

Проведемо тепер підрахунок, орієнтуючись на загальний обсяг 250 Гбайт. Дисків по 125 Гбайт не існує, так що візьмемо два вінчестери по 120 Гбайт. Ціна кожного диска - $ 90, ціна одного 250-гігабайтного вінчестера - $ 130. Що ж, при таких обсягах за продуктивність доводиться платити. А якщо взяти 300-гігабайтний масив? Два диска по 160 Гбайт - приблизно $ 200, один на 300 Гбайт - $ 170 ... Знову не те. Виходить, що вигідний RAID тільки при використанні дисків дуже великого обсягу.

Так що ж являють собою всі ці RAID-x?
У чому їх суть?
Чому вони називаються надлишковими?
Якими бувають RAID?
А як би від них позбутися?
Як це реалізується на практиці?
Так що, are you RAIDy?
Так?
А якщо взяти 300-гігабайтний масив?
Так що ж являють собою всі ці RAID-x?