Чому RAID 0 не може використовувати весь диск на двох дисках різного розміру?


10

Щоб процитувати статтю у Вікіпедії про RAID :

RAID 0 можна створити з дисками різної величини, але місце для зберігання, додане до масиву кожним диском, обмежено розміром найменшого диска. Наприклад, якщо диск об'ємом 100 ГБ разом із диском об'ємом 350 ГБ, розмір масиву складе 200 ГБ (100 ГБ × 2).

Однак у статті не зазначено, чому він не може RAID їх разом і використовувати весь дисковий простір. Я розумію, що смужка пише між цими двома, але, безумовно, це не повинно перешкоджати запису на пізніші сектори другого диска, в той час як він працює із зниженою продуктивністю? Чи існує альтернативна система RAID (наприклад, програмний RAID), яка пропонує таку функцію?


Я не впевнений, чи вдасться це працювати з деякими апаратними рейдами, але з програмними рейдами. Щоб скористатися деякими аспектами рейду 0, використовуючи більше наявного місця на двох дисках різного розміру, таких як один 100 Гб і один 350 Гб, ви можете спробувати створити 3 100 ГБ розділів на великому диску, а смугу - 100 КБ на першому та 3 - 100 ГБ на другому диску. Рівень Raid 0 дасть вам 400 гігів, забезпечуючи деяке збільшення продуктивності читання / запису, але це, ймовірно, буде менше, ніж якби ви знімали два накопичувачі 200 Гб.
Кіт Рейнольдс

Зазвичай ви цього не хотіли б робити. Для демонстраційних цілей я встановив RAID0, використовуючи одну флешку 1G та 16G. Я зробив розширені розділи, заповнюючи кожен диск. Потім я зробив розділи на 981 Мб на кожному диску, поки вони не заповнилися. Потім я здійснив рейд, використовуючи 16 розділів з командою на Linux mdadm --create --verbose /dev/md0 --chunk=512 -l0 -n16 /dev/sdd5 /dev/sde5 /dev/sde6 /dev/sde7 /dev/sde8 /dev/sde9 /dev/sde10 /dev/sde11 /dev/sde12 /dev/sde13 /dev/sde14 /dev/sde15 /dev/sde16 /dev/sde17 /dev/sde18 /dev/sde19. У мене залишилось менше місця, ніж я щойно використав накопичувач на 16 ГБ
Кіт Рейнольдс

Відповіді:


11

Причина обмеження розміру розміром найменшого диска пов'язана з тим, що смужки написані "поперемінно" і повинні бути однакового розміру.

У двох дискових системах всі непарні смуги - на одному диску, парні - на іншому. Пише чергування між дисками, непарними / парними / непарними / парними / ...

Оскільки смужки повинні бути однакового розміру та спарені (для двох дисків), ви обмежені максимальним розміром 2 * (розмір найменшого диска).


3

Ви можете використовувати решту місця. Ви можете створити том, використовуючи залишився простір, або навіть використовувати його як частину іншого RAID. Однак використання цього додаткового простору погіршить продуктивність, яку дає RAID 0, оскільки два різні процеси можуть намагатися отримати доступ до одного фізичного контролера та диска.

Чому не можна додати цей додатковий простір до оригінального RAID? Ну, не вникаючи в деталі, це через алгоритми використання RAID. RAID 0 записує на перший диск в RAID, потім на наступний. Це збільшує продуктивність, оскільки не потрібно чекати, коли попередній диск закінчить читання чи запис. Якби 250 Гб у вашій публікації було використано, більшість записів було б на першому диску, що значною мірою виключає будь-які підвищення продуктивності.

RAID, можливо, не є рішенням, яке ви шукаєте, якщо ви хочете використовувати весь простір накопичувачів, ви повинні мати об'ємні обсяги. Розтягування дозволяє взяти багато томів і об'єднати їх в один великий об'єм. Spanning не передбачає збільшення продуктивності або надмірності.


Це не пояснює, чому він не може використовувати всі два накопичувачі в одному томі. Крім того, окрема частина томів взагалі не спричинить проблеми з продуктивністю - управління диском IO на низькому рівні обробляється перериваннями через disk.sys, тому запити читання / запису так чи інакше конфігуруються, і підтримка Windows також перекриває IO.
Поліном

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

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

1
-1 "Це збільшує продуктивність, оскільки не потрібно чекати, коли попередній диск закінчить читання чи запис" те саме можна сказати для двох жорстких дисків різного розміру в RAID 0
Celeritas

2
@Polynomial Це не був би RAID 0. Ви запитали, чому RAID 0 не може використовувати весь простір на диску, і тоді ви відповідаєте "чому не може просто ...". Це не може, тому що це RAID 0. Якби це робило щось інше, це було б щось інше.
Девід Шварц

0

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

Рейд-0: Смуга. Кожен блок даних розділений на кожен член пристрою RAID. Ніяких надмірностей, тому це більше лише масив недорогих дисків, а не надмірний масив недорогого диска.

Рейд-1: Дзеркальне відображення. Кожен блок даних зберігається на кожному диску в масиві. Це справді робиться лише з двома дисками. RAID 1/0 або просто RAID 10 - це комбінація дзеркальних дзеркал та смужок і може бути використана для використання більш ніж двох дисків.

Рейд-5: Паритет. Кожен блок даних розділений на кожного члена пристрою RAID + один диск призначений для паритету.

Raid-6: Подвійний паритет: Те саме, що Raid-5, але з двома дисками паритетності.

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

Відступивши від RAID як спосіб створення великого масиву дисків, ви можете використовувати такі речі, як ZFS та просто додавати диски в пул пам’яті. ZFS завжди намагатиметься використовувати обидва диски максимально ефективно, і ви можете сказати ZFS, яким рівнем надмірності ви задоволені.

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


0
A RAID 0 can be created with disks of differing sizes, but the storage
space added to the array by each disk is limited to the size of the
smallest disk.

Це може бути правдою і буде правдою для більшості реалізацій RAID0. Однак не для всіх.

Існує дві причини використання RAID 0:

  1. Складіть кілька дисків в один великий об'єм.
  2. Продуктивність.

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

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

Тепер наша нова книга "R0" поводиться так, якщо це одна книга з подвоєною кількістю сторінок і вдвічі швидшою.


Варіант 1 може бути таким же простим, як "склеювати книги назад до спини". У такому випадку у вас немає швидкості, але ви можете склеювати книги з різною кількістю сторінок. Здається, я пригадую такі реалізації RAID0, як, наприклад, близько 1990 року. Але це не те, що більшість людей вважають «належним RAID 0».

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