Технологія RAID простими словами

Питання продуктивності дисків на виділених серверах (а отже, як наслідок – і на серверах VPS/VDS), завжди має особливе значення. Щоб змусити систему працювати швидше, використовуються найрізноманітніші технології та хитрощі, і RAID масиви – якраз той випадок.

Для чого потрібен RAID?

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

  • Програмні – забезпечують одночасну роботу декількох накопичувачів за рахунок використання різних програмних рішень.
  • Апаратні – задіюють технічні рішення.

Суть і у перших, і у других одна – зробити так, щоб ваші накопичувачі могли працювати одночасно, при цьому розпізнаючись як цілісний, єдиний логічний блок системи. Звичайно, скажуть нам досвідчені читачі, для старих, повільних HDD дисків швидкодія вже давно – головний біль. Швидкість обертання завжди впирається в стелю, подолати яку не дозволяють банальні закони фізики. Але і SSD диски тут не панацея. Справа в іншому…

Види RAID

Тут все не так просто, та й саму технологію простою не назвеш. Є поділ на стандартні RAID і нестандартні RAID, крім того, є ще й комбіновані RAID масиви. Зараз ми коротко пройдемося по всіх основних. Отже:

Стандартні RAID

Найбільш поширеними стандартними алгоритмами RAID є:

RAID 0

Чергування (striping) — це найпростіший і найменш надійний рівень RAID. Він заснований на поділі даних на блоки і запису їх на різні диски. Припустимо, що у нас є два диски, кожен з яких має ємність 1 ТБ. Якщо ми об’єднаємо ці диски в масив RAID 0, то отримаємо логічний диск ємністю 2 ТБ. При записі даних на масив RAID 0 вони будуть розділені на блоки розміром 512 Кбайт. Кожен блок буде записаний на один з дисків. Наприклад, перший блок буде записаний на перший диск, другий блок — на другий диск, і так далі. При читанні даних з масиву RAID 0 вони будуть прочитані з декількох дисків паралельно. Це дозволить значно підвищити швидкість читання даних. Якщо 1 диск виведений з ладу, другий сам по собі вже не використовується. RAID 0 частіше використовується як верхній рівень в більш складних алгоритмах, наприклад RAID 10.

RAID 1

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

RAID 2

Дані в масиві RAID 2 розподіляються по дисках так само, як і в RAID 0, тобто вони розбиваються на невеликі блоки за кількістю дисків. Застосування коду Хеммінга в даному алгоритмі дозволяє виправляти помилки в процесі роботи, що називається – “на льоту”. Одноразові помилки виправляються, дворазові – виявляються. Мінімальна кількість дисків, при якій є сенс користуватися RAID 2 – 7. 3 з 7 дисків потрібні для виправлення помилок.

RAID 3

Дані розподіляються по декількох дисках, а інформація про парність записується на один з дисків. У разі відмови одного з дисків дані можна відновити з решти дисків, застосувавши операцію XOR. Коригувати помилки на льоту, як в RAID 2, не можна, а для створення масиву потрібно не менше 3-х дисків. Причому, «диск підтримки» з блоками парності виявляється під великим навантаженням, так як він всього один.

RAID 4

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

RAID 5

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

RAID 6

Використовує два незалежних методи кодування парності для захисту даних. Перший метод називається P+Q, а другий – DP. У методі P+Q дані розділяються на блоки, які потім діляться на дві частини. Перша частина даних зберігається у вихідному вигляді, а друга частина використовується для обчислення парності. Парність розраховується для кожного блоку даних і зберігається на двох дисках. У методі DP дані розділяються на блоки, які потім діляться на три частини. Перша частина даних зберігається у вихідному вигляді, а дві інші частини використовуються для обчислення парності. Парність розраховується для кожного блоку даних і зберігається на трьох дисках. Створення масиву потребує 4-х дисків (як мінімум), але RAID 6 має високу надійність зберігання даних навіть при поломці 2-х дисків з 4-х.

Комбіновані RAID

Найбільш відомими з нестандартних алгоритмів RAID є:

RAID 10

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

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

RAID 51

RAID 51 (не плутати з 15, хоча вони і схожі) – це гібридний рівень RAID, головна перевага якого – висока надійність. Власне, він і був розроблений для підвищення надійності масивів, і сьогодні по праву вважається одним з найбільш «непробивних». Він поєднує в собі дзеркалювання (RAID 1) і чергування з розподілом парності (RAID 5), мінімальна кількість дисків – 6 (допускається, знову ж таки, тільки парне число). У RAID 51 дані діляться на блоки, які розподіляються по всіх дисках масиву. Для кожного блоку обчислюється байт парності, який зберігається на окремому диску.

Якщо один з дисків масиву виходить з ладу, дані з нього можуть бути відновлені з інших дисків за допомогою інформації про парність. Мінусом є те, що з 6 дисків 4 вам доведеться пожертвувати на «підтримку». Крім того, швидкість запису буде низькою (швидкість читання, навпаки, високою). Однак, при цьому надійність дійсно на висоті, так як в масиві з 8 дисків при відмові 5 з них, дані будуть збережені. Зазвичай, даний вид масиву реалізується на базі двох контролерів, які об’єднуються між собою на програмному рівні, що дозволяє збільшити ефективний обсяг робочого простору.

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

Нестандартні RAID

Назва говорить сама за себе – сюди входять саме нестандартні рішення.

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

RAID 7 – насправді мало чим відрізняється від того ж RAID 4 (принаймні, в плані математики). Суть справи в тому, що RAID 7 – це торгова марка, і випускає RAID 7 одна єдина компанія (Storage Computer Corp).

RAID DP – являє собою розвиток RAID 4, його модифіковану версію (DP означає Dual Parity). Тут під контрольні суми виділяється 2 диски, а в якості файлової системи виступає WAFL, що майже нівелює падіння продуктивності.

Програмні RAID

Дана технологія використовує ресурси системи, але, на відміну від апаратних рішень, описаних вище, ґрунтується на використанні спеціальних драйверів. Зокрема, на ядрі Linux 2.6.28 можна реалізувати RAID 0, 1, 4, 5, 6, 10, а для управління використовується утиліта mdadm. Windows NT також дозволяє реалізувати RAID 0, 1, 5; Windows Server розрахований на RAID 0, 1, 5. Більш того, ви здивуєтеся, але навіть на старій добрій Windows 7 можна реалізувати RAID 0, 1.

Переваги та недоліки RAID

Нижче ми спробуємо перерахувати основні плюси і мінуси технології в цілому, хоча, кожен з видів має свої плюси і мінуси.

Переваги:

  • Відмовостійкість – RAID-масиви забезпечують захист даних від втрати в разі виходу з ладу одного або декількох дисків. Винятком може бути, наприклад, RAID 0.
  • Продуктивність – RAID-масиви можуть підвищити продуктивність системи введення і/або виведення.
  • Розширюваність – RAID-масиви можна легко розширювати додаванням нових дисків, але не всі. Деякі види легко піддаються заміні та/або розширенню і мають високу стійкість до відмови, інші ж можуть створити проблеми, наприклад, при виході з ладу одного з накопичувачів.

Недоліки:

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

RAID-масиви широко використовуються в різних системах, включаючи:

  • Сервери.
  • Мережеві сховища.
  • Системи резервного копіювання.
  • Робочі станції.

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

Підсумуємо…

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