Вплив рівнів RAID на IOPS [закрито]


11

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

Якщо моє розуміння IOPS правильне (і я зовсім не впевнений, що це так), я б подумав, що реальність залежатиме від багатьох інших факторів - рівня RAID. За допомогою RAID 1/10 всі дані дублюються щонайменше на двох дисках, що зменшує суперечки на певному диску для деяких моделей вводу-виводу. Однак у смугастих рівнях RAID, таких як RAID 0/5/6, дані розподіляються, а не дублюються, тобто послідовні запити на читання можуть бути для одного шпинделя, що призводить до блокування, коли попередній IO завершується. Писання ще більше сперечаються.

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


4
Ви спрощуєте це до точки, коли ви виключаєте вплив кешу RAID контролера, ОС, поведінки програми, синхронного або асинхронного вводу / виводу та типу диска. Так що ви шукаєте?
ewwhite

@ewwhite Вибачте, я мав би бути зрозумілішим. Я дуже сподіваюся побачити, чи основний принцип мого мислення правильний, а не робити прогнози в реальному світі. Я ціную, що насправді на речі сильно впливають всілякі оптимізації та інші складності. На задньому плані є ситуація в реальному світі, але як це часто буває, коли ти заглядаєш у щось, з чим ти не все знайомий, я вирішив піти і попрацювати з фоновим навчанням, тому я почуваюся трохи більш комфортно з основними принципами.
1717

Мене спокусило запитати, чи є у когось якісь рекомендації щодо якісного читання щодо теорії та концепцій щодо зберігання та його продуктивності, але я не зробив це, як я вважав, що це може вважатися невідповідним питанням для ServerFault. Здається, що в Інтернеті є досить мало якісного написання цього предмета, можливо, тому, що це досить складна тема, яку мало хто реально розуміє повністю.
1717

Продуктивність RAID набагато більше залежить від апаратних засобів та обмежень реалізації, ніж рівень RAID. Наприклад, RAID0, RAID1, RAID5 і RAID6 теоретично можуть використовувати всі диски для тривалого зчитування, тому вони можуть мати однакову швидкість читання на ідеальному контролері.
Zac67

Відповіді:


12

Для жорсткого диска в IOPS, як правило, переважає час доступу диска, що становить суму затримки пошуку + затримка обертання + затримка передачі. Оскільки ці змінні сильно залежать від шаблонів доступу та не мають очевидних взаємодій із конкретним макетом RAID (тобто: розміром смуги) та контролером (тобто: налаштування читання вперед), будь-яка проста відповідь БУДЕ НЕПРАВИЛЬНА.

Однак давайте спробуємо мати фігуру бального парку. При першому наближенні IOPS, гарантований масивом n-дисків, повинен бути в n-кратніший показник IOPS одного диска. Однак і рівень RAID, і схема доступу до даних , переміщуючи вагу між затримкою пошуку / обертання / передачі, різко змінює це наближення першого порядку.

Наведемо кілька прикладів, припускаючи 100 IOPS на один диск (типове значення для 7200 RPM дисків) та 4-дискові масиви (за винятком RAID1, часто обмеженого лише двосторонніми):

  • один диск становить 100 IOPS, як для читання, так і для запису (зауважте: завдяки зближенню запису IOPS запису, як правило, вище, ніж IOPS для читання, але дозволяє ігнорувати це для простоти)
  • RAID0 (4-стрільна смуга) має до 4 разів випадкові IOPS та до 4 рази послідовні IOPS. Ключове слово тут - "до": через характер смугастості та розподілення даних, якщо сектори з випадковим доступом переважно перебувають на одному диску, ви закінчитесь із значно меншими показниками IOPS.
  • RAID1 (двостороннє дзеркальне відображення) є складнішим за профілем. Оскільки різні диски можуть шукати різні дані, у нього є до 2 рази випадкове зчитування IOPS, але те саме 1x (або трохи нижче, через накладні) IOPS випадкового запису. Якщо всі речі добре вирівнюються (тобто великі, але не на 100% послідовні зчитування, RAID-контролер, що використовує шматки / смуги концепції / керування навіть у режимі дзеркального відображення, правильне читання вперед та ін.), Послідовне зчитування може колись бути до 2х разових значення диска, тоді як послідовне записування залишається обмеженим на 1x одиночному диску (тобто: немає прискорення)
  • RAID10 (4-х дзеркальне дзеркальне відображення) - це продуктивність, що знаходиться на півдорозі між 4-стрічковою смугою RAID0 та двостороннім дзеркальним відображенням. Він має до 4 разів IOPS випадкового зчитування та до 2 рази IOPS випадкового запису. Для послідовних передач застосовується застереження RAID1: воно колись має до 4 разів послідовне зчитування IOPS, але лише 2х послідовне записування IOPS. Зверніть увагу, що деякі реалізації RAID10 (а саме Linux MDRAID) надають різні схеми для масивів RAID10 з різним профілем продуктивності .
  • RAID5 (смугастий паритет) має до 4 разів випадковий зчитуваний IOPS, тоді як випадковий запис IOPS, залежно від ряду факторів, наскільки великим є запис щодо розміру смуги, наявності великого кешу смуги, алгоритму відновлення смуги Сам (читати-реконструювати-записувати проти читання-модифікувати-записувати) тощо, може знаходитися в будь-якому місці між 0,5x (або нижчим) та 2x IOPS одного диска. Послідовні навантаження більш передбачувані, з 3-кратним IOPS одного диска (як для читання, так і для запису)
  • RAID6 (смугастий подвійний паритет) поводиться так само, як і його брат RAID5, але з меншою швидкістю виконання записів. Він має до 4 разів випадковий зчитуваний IOPS одного диска, але його випадкова швидкість запису навіть нижча, ніж RAID5, з тими ж абсолютними значеннями (0,5x - 2x), але з нижчим реальним середнім словом. Послідовні читання та записи обмежені в 2X IOPS одного диска.

Повторюсь: вищезазначені прості та майже розбиті наближення. У будь-якому випадку, якщо ви хочете пограти з (сильно неповним) калькулятором RAID IOPS, подивіться тут .

Тепер поверніться до реального світу. У реальних робочих навантаженнях RAID10 часто є швидшим і кращим вибором , підтримуючи високу продуктивність навіть за умови деградованого масиву . RAID5 та RAID6 не слід застосовувати на робочих навантаженнях, залежних від продуктивності, якщо вони не є орієнтованими на читання або послідовними за своєю суттю. Варто відзначити, що серйозні контролери RAID мають великий кеш-пам'ять, захищений від втрат потужності, головним чином для подолання (за допомогою важкого кешування смугами) низької продуктивності запису RAID5 / 6. Ніколи не використовуйте RAID5 / 6 з RAID-контролерами без кешу , якщо ви дійсно не переймаєтесь швидкістю масиву.

SSD - це різні звірі, думав. Оскільки вони мають значно менший середній час доступу, RAID на основі паритету мають значно менші накладні витрати та є значно більш життєздатним варіантом, ніж на жорстких дисках. Однак у невеликому центрі навантаження з випадковим записом я б у будь-якому разі використовував налаштування RAID10.


Ніколи не використовуйте RAID5 / 6 з RAID-контролерами без кешу, якщо ви дійсно не переймаєтесь швидкістю масиву. Ви можете піти з цього, якщо ви дійсно знаєте, що робите, і чітко контролюєте свою схему вводу-виводу. Якщо ви нічого не робите, крім послідовного вводу-виводу, який відповідає розміру смуги масиву, ви можете піти з використання RAID5 / 6 без кешу. І кеш не може зберегти продуктивність, якщо ви виконаєте достатньо випадкових операцій запису з малого блоку в масив RAID5 / 6, хоча значення "достатньо операцій вводу-виводу", що вбиває продуктивність, може бути величезною кількістю для дійсно хорошого контролера RAID.
Ендрю Генле

@AndrewHenle Звичайно, якщо видавати лише послідовні читання / записи, які вирівнюються смугою, навіть кеш-контролер у режимі RAD5 / 6 може дати хороші результати. Однак це дуже вузька схема використання (тобто: потокове та резервне копіювання). Для загального навантаження, кеш-пам’ятник у поєднанні з будь-яким паритетом RAID буде дуже повільним. Деякі контролери навіть вимагають захищеного від керування зворотним зв'язком кешу, щоб створити RAID паритету.
shodanshok

Я більше замислювався над адміністраторами, які задаються питанням, чому їх корпоративний 21-накопичувальний поштовий накопичувач RAID6 масив з 19 Мб, тому що більший-повинен бути швидший розмір смуги повільний ....
Ендрю Генле

1

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

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

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