чи додавання купи накопичувачів до рейду 0 підвищує продуктивність?


10

чи додавання купи накопичувачів до рейду 0 підвищує продуктивність? я знаю, що два приводи в смугастій рейді зазвичай будуть швидшими, ніж на одному приводі, але я помічу різницю в продуктивності між скажімо, 2 дисками в смугастому рейді та 8? чи існує загальне обмеження кількості приводів у рейді, перш ніж ви дійсно не отримаєте більше користі?

подібне питання тут було задано

Чи додає більше дисків до масиву RAID 10 підвищує продуктивність?

але я дуже запитую, якщо додавання багатьох дисків до рейду 0 покращить, ніж просто додавати скажімо 2 або 4. Чи продуктивність постійно збільшується?

Відповіді:


11

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

У будь-якій досить сучасній системі з рейдовим контролером або навіть при використанні програмного рейду з mdadm linux, використання 8 приводів буде швидше, ніж використання 2, і ви не повинні стримувати решту продуктивності системи. ЦП, рейд та / або дисковий контролер, пам'ять, все це має бути в змозі впоратися з цим. Можливо, ви побачите посилене використання системних ресурсів, чим більше дисків ви додасте. Особливо, якщо ви використовуєте бортовий контролер SATA у комбінації програмного забезпечення. Але нічого, що дійсно перешкоджало б загальній юзабіліті. Якщо ви використовуєте linux, можливо, ви хочете використовувати ядро, налаштоване без "попередження", щоб завдання, орієнтовані на сервер, отримували перевагу перед реакцією користувача.

https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO

Звичайно, чим більше дисків ви додасте, тим вище шанс одного з них вийти з ладу і весь рейд буде знищений. Я б очікував, що рейд0 з 8 дисків не триватиме більше року чи двох, якщо вам пощастить. Raid0 з 16 дисків попросить неприємностей, і тоді я вважаю рейд10, він все ще буде досить швидким, і вам менше турбуватися.

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

Природно, ви використовуєте raid0 лише для даних, які можна втратити будь-коли без проблем. Це було б чудово підходить для таких речей, як сервер збирання або нульовий простір для великих наукових обчислень. Насправді саме ці сценарії - це те, для чого я часто використовував рейд0, і це прекрасний спосіб вичавити трохи більше життя з купою старих, меншої ємності та недорогих дисків, які інакше збирали б пил. Ви навіть можете змішувати розміри, принаймні, з mdadm.

Якщо використовувати mdadm, можливо, варто розглянути можливість просто використовувати raid10, оскільки в певних конфігураціях він може наблизитись до продуктивності raid0, тобто читання raid0 та вже поліпшеної продуктивності запису над іншими рівнями рейду (крім raid0). Ви отримаєте кращу надмірність, ніж інші рівні рейду, лише невелика швидкість покарання порівняно з рейдом0. Це було б найкраще в обох світах, їх ви не часто зустрічаєте.

https://en.wikipedia.org/wiki/RAID#Non-standard_levels

Linux MD RAID 10 забезпечує загальний драйвер RAID, який у своїй "близькій" компоновці за замовчуванням відповідає стандартному RAID 1 з двома накопичувачами та стандартному RAID 1 + 0 з чотирма накопичувачами; однак він може включати будь-яку кількість дисків, включаючи непарні номери. Завдяки своїй "далекій" компоновці MD RAID 10 може працювати як з смугастим, так і з дзеркальним відображенням, навіть із лише двома накопичувачами в макеті f2; це запускає дзеркальне відображення з смугастими зчитуваннями, що дає продуктивність зчитування RAID 0. Регулярний RAID 1, передбачений програмою Linux RAID, не здійснює зчитування смуг, але може виконувати зчитування паралельно.

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

Також час пошуку не покращиться в рейді0 і навіть може стати трохи повільніше. Для рейду на основі SSD0 час пошуку буде таким малим (між 0,08 та 0,16 мс https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristics#cite_note-HP_SSD-6 ), це не мало би великого значення, я очікую.


Якщо ви хочете змішати розміри, ви не можете застосувати RAID0, принаймні, використовувати весь простір, який мають ці диски. Ви повинні використовувати JBOD, що не підвищує продуктивність.
Теро Кілканен

Ви можете змішувати розміри за допомогою mdadm, це дуже гнучко, mdadm навіть дозволяє налаштувати рейд 3 диска10. Я не очікував, що ви можете змішувати розміри в рейдових контролерах, вони менш гнучкі, але швидші.
aseq

1
Я перевірив це, і якщо ви хочете RAID0, то найменший пристрій масиву визначає розмір повного масиву. Тобто, якщо у вас є накопичувачі на 100 ГБ, 200 ГБ і 300 ГБ, ви отримаєте масив RAID0 на 300 ГБ та вільний простір 100 ГБ та 200 ГБ, який можна використовувати для інших цілей. У лінійному режимі ви отримуєте повну потужність усіх пристроїв, але не паралельну продуктивність.
Теро Кілканен

1
Це звучить правильно.
aseq

2
З ротаційними носіями, чи не існує також питання пошуку часу та часу передачі? Додавання більше диска поширює кількість, яку читають / записують на більше плат (кожен повинен робити менше == швидше), але всі вони все ще повинні виконати операцію пошуку (не зменшуючи додавання більше дисків). Отже, залежно від типу операцій, які ви виконуєте (тобто втрати малих читання проти кількох великих читання), збільшення швидкості передачі (додаючи більше дисків) може змінити невелику або велику різницю.
Моломбі

1

Це залежить від завантаженості, але IMHO так, додавання 2 додаткових дисків до існуючого масиву 2 дисків повинно забезпечити кращу загальну продуктивність.

Вам потрібно усвідомити, де є вузькі місця:

  • CPU - скільки потоку даних CPU може обробляти,
  • шина / контролер - скільки даних він може нести,
  • SSD / HDD - скільки даних він може дати / взяти.

Припустимо, що існує програмне забезпечення RAID Linux, а потім додавання двох додаткових дисків МОЖЕ отримати результат:

  • ~ вдвічі коротший час доступу до досить великого блоку даних, що призводить до;
  • ~ подвійний IOPS,
  • ~ подвійна пропускна здатність, припускаючи, що у контролера є достатня шина і процесор може обробляти трафік.

* ~ це ніколи не збільшується в два рази за наступних факторів, завжди менше 10-20%. Це схоже на більш-менш лінійне. Будь ласка, не ставтесь до цього як до авторитетної відповіді, я не робив жодних досліджень з цього приводу.

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