| Дискові масиви
| |
У тебе, Федот, дружина, хоч розумна, а все ж
одна!
А виткати таке за ніч — їх дивізія потрібна!
Л. Філатов |
Ще один прийом оптимізація продуктивності дискових накопичувачів — це
об'єднання декількох фізичних дисків в один великий логічний диск.
При такому об'єднанні деякі диски можуть передавати дані, в той
час, як інші позиціюють блок голівок або чекають підходу потрібного сектора
до голівки. Дискові масиви вигідні не лише з точки зору продуктивності, але
і підвищують одиничну ємкість пристрою, що запам'ятовує, — це може бути,
наприклад, корисно для зберігання крупних неділимих об'єктів, таких, як
таблиці реляційної СУБД.
Слід врахувати, що об'єднання дисків призводить до різкого зниження напрацювання
масиву на відмову: вірогідність незалежних подій складається тому
вірогідність відмови будь-якої з дисків масиву дорівнює сумі вірогідності відмови
одиночного диска. Для компенсації або усунення цього недоліку дані
в дискових масивах зазвичай зберігаються з надмірністю. Загальна назва всіх
технологій об'єднання дисків — RAID (Redundant Irray
of Inexpensive Disks — надлишковий масив недорогих дисків).
Цей термін був запропонований в роботі [Gibson/Katz/Patterson I988], в
якій проведений аналіз різних технологій створення дискових масивів з
точки зору їх продуктивності і надійності і було розглянуто п'ять
можливих способів розміщення надлишкових даних. Запропонована авторами статті
нумерація цих технологій без заслання на джерело використовується в найрізноманітніших
публікаціях у формі RAID рівня X. У сучасних публікаціях, наприклад
[www.acnc.com] часто згадуються також додаткові і комбіновані
рівні RAID, в іменуванні яких загальну згоду не досягнуто.
Втім, один додатковий рівень, не згадуваний в статті [Gibson/Katz/Patterson
1988], практично скрізь розуміється і іменується однаково. Під RAID рівня
0 практично одноголосно розуміють простий стриппинг
(stripping — дослівно, розділення на смуги).
Стріппінг, строго кажучи, не є методом створення надлишкових масивів,
тому що він не передбачає надмірності: ємкість результуючого логічного
диска дорівнює сумі об'ємів фізичних дисків (мал. 9.40). Із-за цього RAID
0 не обговорювався в роботі [Gibson/Katz/Patterson 1988].
RAID рівня 1 відомий також як зеркалирование (mirroring).
При зеркали-ровании на кожен з дисків записується повна копія даних
(мал. 9.41). Зазвичай в дзеркальному режимі використовується не більше двох дисків.
Зеркалірованіє забезпечує деяке падіння продуктивності (зазвичай
все-таки менш, ніж двократне), але гарантує працездатність системи
при відмові будь-якого з дисків. Обоє ці прийому широко застосовуються па практиці,
зазвичай з невеликою кількістю дисків, не більше двох, рідше, три. Вони
не вимагають значних обчислювальних ресурсів і тому зазвичай реалізуються
програмно, драйвером диска або файлової системи.
RAID рівня 2 пропонує постачання блоків даних на дисках кодом Хеммінга
(див. разд. Контрольні суми) і
розміщення цієї коди на окремому диску масиву. Ця технологія має
сенс, якщо контроллери дисків не зберігають код відновлення помилок у власних
заголовках секторів. Оскільки сучасні диски практично без виключення
використовують поновлююче кодування і динамічне перепризначення
дефектних секторів, RAID 2 практично не застосовується.

Мал. 9.41. RAID1 (зеркалирование)
RAID рівня 3 і 4 схожі у багатьох відношеннях. Кожен з цих методів вимагає
не менше трьох дисків і підрахунку контрольної суми в такий спосіб,
аби дані могли бути однозначно відновлені при повній втраті одного
з дисків. У RAID рівня 3 контрольних суми підраховуються для кожного
байта записуваних даних, а в RAID рівня 4 — для груп блоків. Для зберігання
контрольних сум відводиться окремий диск.
Ці методики забезпечують нижчу (хоча і достатню для більшості
практичних цілей) надмірність, ніж зеркалирование, але, як стриппинг.
збільшують одиничну ємкість диска і підвищують продуктивність. Для
відмови всієї системи потрібна повна відмова більш ніж від одного диска;
багато конструктивы дискових масивів рівня більше 2 передбачають "гарячу"
(без виключення системи) заміну дисків, що допускає теоретично необмежене
напрацювання на останов, недосяжне при використанні одиночних дисків.
RAID 3 вимагає зміни формату секторів диска і відповідної переробки
контроллера і не може застосовуватися з серійними дисковими приводами. Основним
недоліком RAID 4 є необхідність звернення до диска з контрольною
сумою при кожній модифікації одного з блоків групи. При записі великої
кількості логічно послідовних блоків це не проблема, але може
перетворитися на проблему при випадково розподілених записах одиночних
блоків.
Цього недоліку позбавлений RAID рівня 5, в якому контрольні суми розподілені
по всіх дисках масиву (мал. 9.42). RAID 5 знаходять широке вживання
в серверах рівня робочої групи, або підрозділи. При програмній реалізації,
втім, підрахунок контрольних сум вимагає значної долі обчислювальної
потужності ЦПУ, тому широкого поширення набули "апаратні"
контроллери RAID 5, що мають власний процесор і, як правило,
досить великий об'єм власної пам'яті. Це не заважає деяким ОС, зокрема
Windows NT/2000/XP, реалізувати RAID 5 програмно на рівні файлової системи.

Мал. 9.42. RAID рівня 5
|