RAID 5 є ВІДМОВОСТІЙКО рівнем RAID, в якому для захисту даних застосовується контроль по парності. Кожен шар даних (stripe) RAID створює інформацію для контролю по парності, збережену на одному з дисків в складі шару. У поєднанні з іншими дисками в складі шару RAID, інформація для контролю по парності може бути використана для відтворення даних з будь-якого з дисків шару. Тому масиви RAID 5 стійкі до відмови одного з дискових накопичувачів, що входить до складу масиву. Інформація для контролю по парності розподіляється по черзі по всіх дисках масиву RAID (рис. 5.11).
Перевагою RAID 5 є те, що дискова пам'ять, доступна при застосуванні цього рівня RAID, становить (n-1) * (обсяг одного диска) де n дорівнює кількості дисків в масиві. Так, масив RAID 5, складений з 10 дисків, буде мати обсяг, як у 9 дисків, що робить його економічним і в той же час ВІДМОВОСТІЙКО рішенням.
На жаль, масиви RAID 5 мають недоліки, пов'язані з продуктивністю. Обробка інформації для контролю по парності призводить до додаткового навантаження на комп'ютер. При записи даних в масив RAID 5 потрібно читання як шару даних з цільового диска, так і шару з інформацією для контролю по парності, потім буде потрібно перерахунок інформації контролю по парності, а потім повинна бути зроблено запис обох шарів даних. Таким чином, як бачите, запис в масив RAID 5 виробляє фактично чотири фізичні операції введення-виведення.
Контроль за парності в масивах RAID 5
У масивах RAID 5 для даних кожного з шарів на кожному з дискових накопичувачів створюється біт контролю по парності. Біт контролю по парності є додатковим елементом даних, завдяки якому, маючи біти з набору даних, за яким він був створений, можна дізнатися інші біти з набору даних. Біт контролю по парності створюється так: всі інші біти підсумовуються, а потім визначається, яке значення він має мати, щоб вийшло парне (або непарне число). Біт контролю по парності, в поєднанні з іншими битами, може застосовуватися, щоб відновити значення втраченого біта.
Давайте розберемо роботу контролю по парності на прикладі. У нашому прикладі ми будемо вважати, що система RAID 5 містить п'ять дискових накопичувачів.
Кожен дисковий накопичувач, по суті, складений з певної кількості бітів, від початку до кінця шару диска. Біт парності створюється в залежності від значень бітів з кожного з дискових накопичувачів.
У нашому прикладі будемо вважати, що контроль по парності повинен забезпечити парність суми бітів, тобто сума всіх бітів повинна давати результат 0 (мається на увазі складання по модулю 2, тобто результат складання бітів повинен бути парним. - Прим. пер.). Якщо перший біт першого диска дорівнює 0, перший біт другого диска дорівнює 1, перший біт третього диска дорівнює 1, перший біт четвертого диска дорівнює 1, то біт контролю по парності для цих бітів має дорівнювати 1, щоб доповнити ці біти до парного числа ( см. табл. 5.2).
Таблиця 5.2. Приклад контролю по парності для масиву RAID
Контроль за парності слід розуміти як дії, що застосовуються до окремих бітам. Хоча шар диска містить багато бітів, контроль по парності для окремих бітів дозволить відновити всі дані. Біти контролю по парності, перераховані в табл. 5.2. створюються насправді по окремим бітам, що становить шари даних. Незважаючи на те, що дискові накопичувачі розбиваються на шматки даних (шари), з можливими розмірами по 64 Кб і більше, але контроль по парності, як ми вам показали, може бути проведений на рівні окремих бітів. Насправді контроль по парності обчислюється за допомогою алгоритмів більш складних, ніж той, який ми зараз описали.
Давайте тепер припустимо, що диск 3 зламався. В цьому випадку біт контролю по парності разом з бітами інших дисків може бути використаний для відновлення відсутнього біта диска 3, тому що їх сума повинна доповнювати невідомий біт диска 3 до парного числа.
Створення даних для контролю по парності
Як ми вже пояснили в даному розділі, дані контролю по парності, що застосовуються в масивах RAID 5, складаються з бітів, доповнюють до парного числа суму на однаковій відстані від початку бітів всіх дискових накопичувачів. Але вам, звичайно, зрозуміло, що було б непрактичним, щоб контролер масиву зчитував б всі дані з усіх дискових накопичувачів при кожній операції введення-виведення. Це було б неефективно і повільно.
При створенні масиву RAID 5 відбувається первісне обнулення даних і створення бітів контролю по парності. В результаті створюється набір дискових накопичувачів без даних, але з повним набором бітів контролю по парності.
З цього моменту, щоразу під час запису даних на дисковий накопичувач, повинно проводитися читання даних з диска даних і з диска контролю по парності. Нові дані повинні порівнюватися зі старими даними, і якщо який-небудь біт даних змінився, то дані контролю по парності для цього біта теж повинні бути змінені. Ця перевірка проводиться за допомогою логічної операції "виключає АБО" (XOR, exclusive OR) .Тому потрібно читання даних тільки з диска даних і диска контролю по парності, а не з усіх дисків масиву. Як тільки описана операція обчислення змін даних контролю по парності буде завершена, запис повинна бути зроблена на обидва диска, тому що операція з даними контролю по парності зачіпає весь шар даних. Таким чином, для виконання кожного запису в тому RAID 5 виробляються чотири фізичні операції введення-виведення: два читання (одне - читання з диска даних, інше - читання з диска контролю по парності) і два записи (самі дані і дані контролю по парності) . Але в масивах RAID 5 дані контролю по парності рівномірно розподілені по всьому дискових накопичувачів, тому і навантаження на накопичувачі буде розподілена рівномірно.
Рекомендації щодо застосування RAID 5
Так як запис в масив RAID 5 вимагає додаткових операцій введення-виведення, то цей рівень RAID можна рекомендувати для дискових томів, які використовуються переважно для читання. Оскільки дані контролю по парності рівномірно розподілені по багатьох дисках масиву, то для операцій читання використовуються всі диски. З урахуванням цих особливостей можна дати наступні рекомендації:
- Застосовуйте RAID 5 для томів, призначених тільки для читання. Будь те дисків, операції запису на якому перевищують 10% від обсягу введення-виведення, не слід реалізовувати як RAID 5.
- Застосовуйте кешування запису для томів RAID 5. Так як запис для RAID 5 не завершена до тих пір, поки не будуть виконані два читання і два записи, то при використанні кеша запису час відгуку для запису може бути скорочено. (Використовуючи кеш запису, обов'язково застосовуйте батарею для безперебійного електроживлення.) Але треба зазначити, що якщо потік записуваних даних перевищить продуктивність запису дисків, то кешування запису вам не допоможе. У будь-якому випадку, ви не повинні перевищувати пропускну здатність дисків.
Як бачите, RAID 5 є економічним рішенням, але ви розраховуєтесь за це продуктивністю. А наскільки велика може бути ця ціна, ви дізнаєтеся з подальшого матеріалу даної лекції.
RAID 10 є комбінацією RAID 0 і RAID 1. У RAID 10 застосовується дзеркальне дублювання шарів даних дисків. Для кожного диска створюється дубль, але кожен диск містить тільки частину всіх даних (рис. 5.12). Цей рівень RAID забезпечує відмовостійкість, як у RAID 1, а зручності і продуктивність, як у RAID 0.
Мал. 5.12. RAID 10
Як і у RAID 1, кожна операція запису RAID 10 зажадає двох фізичних операцій введення-виведення - по одній операції запису на кожен диск дзеркальної пари. Тому, при підрахунку кількості операцій введення-виведення в розрахунку на один диск, потрібно множити кількість записів на 2. Як і для масивів RAID 1, для RAID 10 операції записі не вважаються завершеними, поки не будуть виконані обидва записи, це може збільшити тривалість затримки записи. Але так само, як і для RAID 1, більшість контролерів підтримує паралельний пошук для RAID 10.
RAID 10 забезпечує високу ступінь відмовостійкості. Насправді, масив може залишитися працездатним навіть при відмові більше ніж одного диска. Звичайно, відмова дисків, що входять в дзеркальну пару, призведе до втрати даних. Якщо диски, що входять в різні дзеркальні пари змонтовані за різними стійок для обладнання, то відмова навіть всієї стійки не призведе до втрати даних.
Рекомендації щодо застосування RAID 10
RAID 10 забезпечує високу продуктивність і високу ступінь відмовостійкості. Рівень RAID 10 слід застосовувати, коли потрібна робота з великими томами, для яких операції записи складають більше 10% від загального обсягу операцій введення-виведення. Можна дати наступні рекомендації щодо застосування RAID 10:
- Застосовуйте RAID 10 всякий раз, коли операції записи складають більше 10% від загального обсягу операцій введення-виведення для масиву RAID.
- Застосовуйте RAID 10. коли продуктивність є критично важливою. Так як в RAID 10 застосовується розшарування даних, то ви будете мати чудову продуктивність.
- Для томів RAID 10 слід застосовувати кешування запису. Так як запис для RAID 10 не завершена до тих пір, поки не будуть виконані обидві операції записи, то завдяки застосуванню кеша час запису може бути скорочено. Кешування запису безпечно тільки коли ви застосовуєте батарею для безперебійного електроживлення для захисту кеша.
Рівень RAID 10 є найкращим ВІДМОВОСТІЙКО рішенням, він забезпечує гарний захист даних і високу продуктивність, однак витрати на нього теж великі. Вам доведеться придбати диски в подвійній кількості, в порівнянні з RAID 0. Якщо ж ваш тому служить головним чином для читання даних, то можна застосовувати RAID 5.