поясніть рейд md10, f2


14

Я знаю, як працює більшість різних RAID. Але я натрапив на рекомендований режим raid10, f2 під час дослідження рейду програмного забезпечення Linux. Я не дуже розумію, як це працює на 2 або 3 дисках. хтось міг би мені це пояснити? або вкажіть мені на дійсно гарну статтю, яка пояснює це?

Відповіді:


17

насправді я думаю, що Вікіпедія пояснює це краще, ніж фактичні документи. Ось текст із статті.

він драйвер програмного забезпечення RAID для ядра Linux (званий md, для "декількох пристроїв") може використовуватися для створення класичного масиву RAID 1 + 0, але також (починаючи з версії 2.6.9) як єдиний рівень [4] з деякими цікавими розширеннями [ 5]. Стандартний макет "біля", де кожен фрагмент повторюється n разів у матриці смуги, є еквівалентним стандартному розташуванню RAID-10, але він не вимагає, щоб n ділили k. Наприклад, макет n2 на 2, 3 та 4 дисках виглядатиме так:

2 drives         3 drives            4 drives
--------         ----------        --------------
A1  A1           A1  A1  A2        A1  A1  A2  A2
A2  A2           A2  A3  A3        A3  A3  A4  A4
A3  A3           A4  A4  A5        A5  A5  A6  A6
A4  A4           A5  A6  A6        A7  A7  A8  A8
..  ..           ..  ..  ..        ..  ..  ..  ..

Приклад 4-накопичувача ідентичний стандартному масиву RAID-1 + 0, тоді як приклад 3-накопичувача - програмна реалізація RAID-1E. Приклад 2-накопичувача еквівалентний RAID 1. Драйвер також підтримує "далекий" макет, де всі диски розділені на f секції. Усі шматки повторюються в кожному розділі, але компенсуються одним пристроєм. Наприклад, макети f2 на масивах 2- і 3-приводів виглядатимуть так:

2 drives             3 drives
--------             --------------
A1  A2               A1   A2   A3
A3  A4               A4   A5   A6
A5  A6               A7   A8   A9
..  ..               ..   ..   ..
A2  A1               A3   A1   A2
A4  A3               A6   A4   A5
A6  A5               A9   A7   A8
..  ..               ..   ..   ..

Він призначений для смугастого виконання дзеркального масиву; послідовне зчитування може бути смугастим, як і в RAID-0, випадкові зчитування дещо швидші (можливо, 10-20% за рахунок використання більш швидких зовнішніх секторів дисків та менших середніх часом пошуку), а послідовне та випадкове записування - приблизно однакова продуктивність до інших дзеркальних нальотів. Макет добре працює в системах, де читання частіші, що записують, що є дуже частою ситуацією у багатьох системах. Перший 1 / f кожного диска - це стандартний масив RAID-0. Таким чином, ви зможете отримати продуктивність на дзеркальному наборі всього з 2 дисків. Близькі та далекі варіанти можуть бути використані одночасно. Шматки в кожному розділі компенсуються n пристроями. Наприклад, макет n2 f2 зберігає 2 × 2 = 4 копії кожного сектора, тому потрібно щонайменше 4 накопичувачі:

A1  A1  A2  A2        A1  A1  A2  A2  A3
A3  A3  A4  A4        A3  A4  A4  A5  A5
A5  A5  A6  A6        A6  A6  A7  A7  A8
A7  A7  A8  A8        A8  A9  A9  A10 A10
..  ..  ..  ..        ..  ..  ..  ..  ..
A2  A2  A1  A1        A2  A3  A1  A1  A2
A4  A4  A3  A3        A5  A5  A3  A4  A4
A6  A6  A5  A5        A7  A8  A6  A6  A7
A8  A8  A7  A7        A10 A10 A8  A9  A9
..  ..  ..  ..        ..  ..  ..  ..  ..

Як і в Linux 2.6.18, драйвер також підтримує зміщення макета, де кожна смуга повторюється раз. Наприклад, макети o2 на масивах 2- і 3-приводів викладаються у вигляді:

2 drives       3 drives
--------       --------
A1  A2         A1  A2  A3
A2  A1         A3  A1  A2
A3  A4         A4  A5  A6
A4  A3         A6  A4  A5
A5  A6         A7  A8  A9
A6  A5         A9  A7  A8
..  ..         ..  ..  ..

Примітка: k - кількість дисків, n #, f # і o # - параметри в опції mdadm --layout. Linux також може створювати інші стандартні конфігурації RAID за допомогою драйвера md (0, 1, 4, 5, 6).


6

З того, що я читаю, масив f2 RAID10 зберігає щонайменше 2 копії кожного блоку, і вони зберігаються далеко один від одного.

Ось відповідні розділи зі сторінок man.

mdadm (8)

-p, --layout = Цей параметр конфігурує чіткі деталі макета даних для масивів raid5 та raid10
...
Нарешті, параметри компонування для RAID10 є одним із 'n', 'o' або 'p', за яким слідує невеликий число. За замовчуванням - 'n2'.

n сигналів "біля" копій. Кілька копій одного блоку даних мають однакові зсуви на різних пристроях.

o сигнали «офсетні» копії. Замість того, щоб шматки дублювалися всередині смуги, цілі смуги дублюються, але обертаються одним пристроєм, тому копії блоків є на різних пристроях. Таким чином, наступні копії блоку знаходяться в наступному накопичувачі і є одним шматком далі вниз.

f сигналізує про " далекі " копії (кілька копій мають дуже різні зсуви). Дивіться md (4) для більш детальної інформації про "поблизу" та "далеко".

мд (4)

RAID10 забезпечує комбінацію RAID1 і RAID0, а іноді відомий як RAID1 + 0. Кожен блок даних дублюється кілька разів, і отримана колекція блоків даних розподіляється на декілька дисків. Під час налаштування масиву RAID10 необхідно вказати кількість реплік кожного блоку даних, які потрібні (зазвичай це буде 2), а також чи повинні репліки бути "біля", "зміщено" або "далеко". (Зверніть увагу, що макет "зміщення" доступний лише з 2.6.18).

Коли вибираються репліки " поруч ", кілька копій даного фрагменту викладаються послідовно по смугах масиву, тому дві копії блоку даних, ймовірно, будуть однаково зміщені на двох сусідніх пристроях.

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

" Далекий " порядок може давати послідовну продуктивність читання, рівну ефективності масиву RAID0, але ціною зниженої продуктивності запису.

Коли вибираються репліки "offset", кілька копій даного фрагменту викладаються на послідовні диски та під час послідовних зрушень. Ефективно кожну смужку дублюють, а копії зміщують одним пристроєм. Це повинно дати подібні характеристики зчитування «далеко», якщо використовується відповідний великий розмір шматка, але не так багато шукає записів.

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

Якщо, наприклад, створено масив із 5-ма пристроями та 2-ма репліками, тоді буде доступний простір, еквівалентний 2,5 пристроїв, і кожен блок буде зберігатися на двох різних пристроях.


звучить як компенсування - це шлях ...
xenoterracide

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

2

Це цікаво і добре пояснено. Однак звичайний RAID1 також має можливість, принаймні, для програмного забезпечення RAID Linux, мати можливість підтримувати кілька читачів паралельно при дуже хорошій продуктивності:

Дані зчитуються з будь-якого одного пристрою. Драйвер намагається розподілити запити на читання на всіх пристроях, щоб досягти максимальної продуктивності.
[...] Теоретично наявність N-дискового RAID1 дозволить N послідовним потокам читати з усіх дисків. (людина 4 мд, розділ RAID1)

Здається, RAID10, в його найближчому розташуванні, більше підходить для такої поведінки (прискорюючи не однопотоковий введення / виведення, як RAID0, а багатопотоковий вхід / вивід). n2f2 з 4 дисками схожий на RAID1 з 4 дисками.

Макет n2 з 4 дисками виконає обидва: подвоїть продуктивність читання для одного потоку та вчетверо збільшить продуктивність читання для двох потоків (якщо планувальник RAID10 Linux md добре реалізований, один потік повинен читати на пару, а інший на інша пара).

Все залежить від того, що вам потрібно! Я ще не робив орієнтирів.

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