Проверка ssd в raid
Недавно мы попробовали «поиграть» с массивами RAID0 из пары NVMe-накопителей и пришли к выводу, что это лишено практического смысла. Точнее, смысл может быть лишь в том случае, когда массив создается из двух одинаковых топовых устройств, а возможность просто купить аналогичное устройство соответствующей емкости физически отсутствует. Да и то речь, скорее всего, будет идти только о «набивании попугаев», поскольку для прикладного программного обеспечения скоростные возможности даже бюджетных твердотельных накопителей избыточны. И даже если вдруг окажется, что старого маленького медленного SSD уже как-то не хватает, его проще заменить на новый большой и быстрый, а не пытаться докупить второй старый маленький медленный, дабы объединить их в RAID-массив.
С другой стороны, такой подход не всегда реализуем. Возьмем, например, старый SATA SSD: очевидным путем его модернизации является переход на NVMe, но в старой системе он не всегда возможен. Кроме того, менять, например, полтерабайта MLC с SATA-интерфейсом на терабайт TLC под PCIe не всем понравится, а вот покупка еще одного SSD, аналогичного имеющемуся, может оказаться куда менее затратным и более простым мероприятием. Да и никакой пугающей новизны в данном случае нет, о проблемах пропускной способности PCIe при использовании нескольких устройств можно не думать, да и вообще — подобный массив можно собирать на очень многих платформах, в то время как NVMe RAID без серьезных плясок с бубном создается только на самых «свежих», и то не на всех.
В общем, смысл вроде бы прослеживается. Но что получится на практике? Во всяком случае, интересно посмотреть — чем мы сегодня и займемся.
RAID 5 на базе SSD Kingston и контроллеров Broadcom
Для организации RAID-массива пятого уровня нам потребуется как минимум три накопителя, данные на которых чередуются (циклически записываются на все накопители в массиве), но не дублируются. При их организации следует учитывать их более сложное устройство, так как здесь появляется такое понятие, как “контрольная сумма” (или же “четность”). Под этим понятием подразумевается логическая алгебраическая функция XOR (она же исключающее „ИЛИ“), которая и диктует использование минимум трех накопителей в массиве (максимум – 32). При этом информация о четности записывается на все «диски» в массиве.
Для массива из четырех SATA SSD-накопителей Kingston DC500R с емкостью по 3,84 Тбайт каждый, мы получим 11,52 Тбайт пространства и 3,84 для контрольных сумм. А если объединить в RAID пятого уровня 16 NVMe-накопителей Kingston DC1000M U.2 с емкостью 7,68 Тбайт — поучим 115,2 Тбайт с потерей 7,68 Тбайт. Как видите, чем больше накопителей, тем в итоге лучше. Лучше еще и потому, что чем больше накопителей в RAID 5, тем выше суммарная производительность при операциях записи. А линейное чтение будет достигать уровня RAID 0.
Группа дисков RAID 5 обеспечивает высокую пропускную способность (особенно для больших файлов) и избыточность с минимальной потерей мощности. Лучше всего такой тип организации массива подходит для сетей, которые выполняют много небольших операций ввода-вывода (I / O) одновременно. А вот использовать его для задач, требующих большого количества операций записи небольших или небольших блоков, не стоит.
Есть и еще один нюанс: при отказе хотя бы одного из NVMe-накопителей, RAID 5 переходит в режим деградации и выход из строя еще одного устройства хранения может стать критичным для всех данных. В случае сбоя одного накопителя в массиве RAID-контроллер использует информацию о четности для воссоздания всех недостающих данных.
Последовательные операции
Окончательно убеждаемся в том, что этой программе «сносит крышу» дополнительное кэширование силами драйвера при использовании RAID-массивов. Во всяком случае, на операциях чтения — запись-то выглядит правдоподобно. И показывает нам, что пропускную способность интерфейса действительно можно удвоить при помощи создания массива RAID0. Но сейчас этим уже заниматься не нужно (чаще всего), поскольку появилась уже возможность мигрировать на еще более быстрый интерфейс.
Работа с большими файлами
В принципе, это в первую очередь задача на интерфейс — а он в настоящее время может быть и куда более быстрым, нежели «дабл сата». В итоге прирост производительности в массиве-то «сверхлинейный», но на фоне других устройств (в т. ч. и медленных в своем классе) эффект просто теряется.
Очень многое зависит от памяти, так что SATA-накопитель на «быстрой» MLC может с легкостью обгонять PCIe на медленной TLC, а в массиве удвоить свою производительность. Но, опять же, на сегодняшний день это уже не имеет особого значения, поскольку быстрые NVMe-устройства уходят далеко за гигабайт в секунду и в одиночестве.
Аналогичный случай. Хотя и это «удобный сценарий» для массивов, но, фактически, они чем-то «помогают» лишь тем накопителям, производительность которых искусственно ограничена интерфейсом (не только SATA600 — у Optane 800p аналогичная проблема из-за всего двух линий PCIe). Но после внедрения PCIe 3.0 x4 в этот сегмент подобное случается крайне редко.
Подводим итоги:
Несмотря на то, что зеркалирование обеспечивает большую отказоустойчивость, чем RAID 50/60, оно также требует гораздо больше места. Поскольку количество данных удваивается, вы фактически получаете только 50% от общей емкости установленных в сервере накопителей для записи и хранения информации. Выбор между RAID 50/60 и RAID 10, скорее всего, будет зависеть от имеющихся бюджетов, емкости сервера и ваших потребностей в защите данных. Причем стоимость выходит на первый план, когда мы говорим об SSD-решениях (как корпоративного, так и потребительского класса).
Не менее важно, что теперь мы точно знаем – RAID на базе SSD вполне безопасное решение и нормальная практика для современного бизнеса. В рамках домашнего применения тоже есть резон переходить на NVMe, если позволяют бюджеты. А если у вас еще остался вопрос, зачем же все это нужно, вернитесь к началу статьи – мы уже подробно ответили на него.
Данная статья подготовлена при поддержке наших коллег из Broadcom, которые предоставляют свои контроллеры инженерам Kingston для тестирования с накопителями SATA/SAS/NVMe корпоративного класса. Благодаря этому дружескому симбиозу, клиентам не приходится сомневаться в надежности и стабильности работы накопителей Kingston c HBA- и RAID-контроллерами производства Broadcom.
Дополнительную информацию о продуктах Kingston можно найти на официальном сайте компании.
Коллеги с соседнего отдела (UCDN) обратились с довольно интересной и неожиданной проблемой: при тестировании raid0 на большом числе SSD, производительность менялась вот таким вот печальным образом:
По оси X — число дисков в массиве, по оси Y — мегабайтов в секунду.
Я начал изучать проблему. Первичный диагноз был простой — аппаратный рейд не справился с большим числом SSD и упёрся в свой собственный потолок по производительности.
После того, как аппаратный рейд выкинули и на его место поставили HBA, а диски собрали в raid0 с помощью linux-raid (его часто называют 'mdadm' по названию утилиты командной строки), ситуация улучшилась. Но не прошла полностью -цифры возросли, но всё ещё были ниже рассчётных. При этом ключевым параметром были не IOPS'ы, а многопоточная линейная запись (то есть большие куски данных, записываемых в случайные места).
Ситуация для меня была необычной — я никогда не гонялся за чистым bandwidth рейдов. IOPS'ы — наше всё. А тут — надо многомногомного в секунду и побольше.
Я начал с определения baseline, то есть производительности единичного диска. Делал я это, скорее, для очистки совести.
Вот график линейного чтения с одной SSD.
Хотя меня смутила версия ядра на стенде — 3.2. По своему предыдущему опыту зная прискорбные особенности LSI, меняющие в драйверах (mpt2sas) от версии к версии буквально всё, я подумал, «а вдруг»?
Немного предыстории. mpt2sas — драйвер LSI для HBA. Живёт невероятно бурной жизнью, начав с версии с версии v00.100.11.15 через версии 01.100.0x.00 дойдя аж до версии 16.100.00.00 (интересно, что означает цифра «100»?). За это время драйвер отличился перестановкой имён букв дисков при обновлении минорной версии ядра, отличающемся от аносируемого биосом порядком дисков, падениями на «неожиданных» конфигурациях LUN'ов, на таймаутах бэкплейна, на неожиданном числе дисков, логгинг ошибок в dmesg со скоростью бесконечного цикла в самом ядре (де-факто это эквивалент зависания системы) и тому подобные весёлые вещи.
Обновились, запустили тест. И этот «вдруг» случился. Вот как выглядит тот же график на 3.14. А ведь я чуть-чуть было не забраковал невинные SSD'шки.
После того, как производительность дисков стабилизировалась, был проведён второй тест: на все диски запустили независимые тесты параллельно. Цель была проста — проверить, нет ли бутылочного горлышка где-то на шине или HBA. Производительность дисков оказалась вполне приличной, «затыка» по шине не было. Основная задача была решена. Однако, график производительности всё-таки отличался. Не сильно, но явно с намёком на хуже чем линейную скорость записи.
Почему запись так себя ведёт по мере увеличения числа дисков в массиве? График (в начале статьи) очень сильно напоминал график производительности многопоточных приложений по мере роста числа потоков, на которые обычно показывают программисты и Intel'овцы, когда говорят о проблемах у взаимных блокировок тредов…
Во время теста в blktop наблюдалось что-то странное: часть дисков загружена в потолок, часть почти простаивает. Причём загружены в потолок те, кто показывает низкую производительность, а «быстрые» диски простаивают. Более того, диски иногда меняются местами — то есть раньше загруженный на 100% диск вдруг показывает бОльшую скорость и меньшую загрузку, и наоборот, диск, который был загружен на 50%, вдруг оказывается загружен на 100% и при этом показывает меньшую скорость. Почему?
И тут до меня дошло.
Если мы пишем много данных, то запись обычно идёт большими кусками. Эти куски разделяются на меньшие куски драйвером raid0, который записывает их одновременно на все диски из raid0. За счёт этого мы получаем N-кратное увеличение производительности. (В raid0 на N дисков).
Но давайте рассмотрим запись подробнее…
Допустим, у нас raid использует chunk'и размером в 512k. В массиве 8 дисков. Приложение хочет записать много данных, и мы пишем на raid кусками по 4Мб.
- raid0 получает запрос на запись, делит данные на 8 кусков по 512кб каждый
- raid0 отправляет (параллельно) 8 запросов на 8 устройств по записи 512кб (каждый своё)
- raid0 ожидает подтверждение от всех 8 устройств о завершении записи
- raid0 отвечает приложению «записал» (то есть возвращает управление из вызова write())
Видите, как неровно гуляет запись в сравнении с чтением?
У SSD дисков latency на запись очень неровная. Связано это с их внутренним устройством (когда за раз записывается блок большого размера, при необходимости, перемещая и перенося данные с места на место). Чем больше этот блок, тем сильнее пики latency (то есть сиюминутные провалы в производительности). У обычных магнитных дисков графики совсем другие — они напоминают ровную линию практически без отклонений. В случае линейного последовательного IO эта линия проходит высоко, в случае постоянного случайного IO — постоянно низко, но, ключевое — постоянно. Latency у жёстких дисков предсказуема, latency у SSD — нет. Заметим, это свойство есть у всех дисков. У самых дорогих latency оказывается смещена (либо очень быстро, либо очень-очень быстро) — но разнобой всё равно сохраняется.
При подобных колебаниях latency производительность у SSD, в среднем, отличная, но в отдельные моменты времени запись может занять чуть больше, чем в другое время. У тестируемых дисков она падала в этот момент до позорных величин порядка 50Мб/с (что ниже, чем линейная запись у современных HDD раза в два).
Когда на устройство запросы идут стопкой и независимо, это не влияет. Ну да, один запрос выполнился быстро, другой медленно, в среднем всё хорошо.
Но если запись зависит от всех дисков в массиве? В этом случае, любой «тормознувший» диск тормозит всю операцию целиком. В результате, чем больше дисков массиве, тем больше вероятность, что хотя бы один диск отработает медленно. Чем больше дисков, тем больше кривая производительности их суммы в raid0 начинает приближаться к сумме производительности их минимумов (а не средних значений, как хотелось бы).
Вот график реальной производительности в зависимости от числа дисков. Розовая линия — предсказания, базирующиеся на средней производительности дисков, синяя — фактические результаты.
В случае 7 дисков различия составили около 10%.
Простое математическое симулирование (с данными по latency реального диска для ситуации множества дисков в массиве) позволило предсказать, что по мере увеличения числа дисков деградация может дойти до 20-25%.
В отличие от замены HBA или версии драйвера, в этом случае ничего существенно поменять уже нельзя было, и информацию просто приняли к сведению.
Сразу скажу: худшее ожидание от SSD оказывается лучше, чем постоянное от HDD (если прозвучало слишком сложно: SSD лучше, чем HDD).
Другое дело, что массив из 20-30 HDD — это нормально. 30 SSD в raid0 вызовут слюнки у гиков и приступ печёночной колики у финансового отдела. То есть обычно сравнивают множество HDD c несколькими SSD. Если же мы отнормируем цифры по IOPS'ам (охохо), то есть добьёмся от HDD тех же попугаев, что от SSD, то цифры станут, внезапно, другими — массив из большого числа HDD будет сильно обгонять массив из нескольких SSD по скорости записи.
Другое дело, что крупный массив из HDD — это уже экстрим другого рода, и там ждут сюрпризы из-за общего использования шины, производительности HBA и особенностей поведения бэкплейнов.
Легко понять, что для всех этих массивов проблема с ожиданием «самого медленного» сохраняется, и даже слегка усиливается (то есть проблема возникает при меньшем размере блока и меньшей интенсивности нагрузки).
Админское: Не люблю LSI. При обнаружении каких-либо нареканий в работе дисков при участии LSI в системе отладку следует начинать с сравнения поведения разных версий дравйера mpt2sas. Это как раз тот случай, когда смена версии может влиять на производительность и стабильность самым драматичным образом.
Академическое: При планировании высоконагруженных систем с использованием SSD в raid0 следует учитывать, что чем больше в массиве SSD, тем сильнее становится эффект от неравномерной latency. По мере роста числа устройств в raid0 производительность устройства начинает стремиться к произведению числа устройств на минимальную производительность дисков (а не среднюю, как хотелось бы ожидать).
Рекомендации: в случае с подобным типом нагрузки следует стараться выбирать устройства с наименьшим разбросом по latency на запись, по возможности использовать устройства с большей ёмкостью (для уменьшения числа устройств).
Особое внимание стоит обратить на конфигурации, в которых часть или все диски подключаются по сети с неравномерной задержкой, такая конфигурация вызовет значительно большие затруднения и деградацию, чем локальные диски.
Привет Хабр! В этом материале мы расскажем, стоит ли организовывать RAID-массивы на базе твердотельных решений SATA SSD и NVMe SSD, и будет ли от этого серьезный профит? Мы решили разобраться в этом вопросе, рассмотрев виды и типы контроллеров, которые позволяют это сделать, а также сферы применения таких конфигураций.
Так или иначе, каждый из нас хоть раз в жизни слышал такие определения, как “RAID”, “RAID-массив”, “RAID-контроллер”, но вряд ли придавал этому серьезное значение, потому что рядовому ПК-боярину все это вряд ли интересно. А вот высоких скоростей от внутренних накопителей и безотказности их работы хочется всем и каждому. Ведь, какой бы мощной ни была начинка компьютера, скорость работы накопителя становится узким местом, если говорить о совокупном быстродействии ПК и сервера.
Так было ровно до того момента, пока на смену традиционным HDD не пришли современные NVMe SSD со сравнимой емкостью в 1 Тбайт и более. И если раньше в ПК чаще встречались связки SATA SSD + парочка емких HDD, то сегодня их начинает сменять другое решение — NVMe SSD + парочка емких SATA SSD. Если говорить о корпоративных серверах и “облаках”, многие уже успешно переехали на SATA SSD, просто потому что они быстрее обычных “жестянок” и способны обрабатывать большее количество операций ввода/вывода одновременно.
Однако отказоустойчивость системы все равно находится на достаточно низком уровне: мы не можем как в “Битве экстрасенсов” предугадать с точностью даже до недели, когда тот или иной твердотельный накопитель прикажет долго жить. И если HDD “умирают” постепенно, позволяя уловить симптомы и принять меры, то SSD “мрут” сразу и без предупреждений. И вот теперь самое время разобраться, зачем все это вообще нужно? Стоит ли организовывать RAID-массивы на базе твердотельных решений SATA SSD и NVMe SSD, и будет ли от этого серьезный профит?
Методика и объекты тестирования
Методика подробно описана в отдельной статье, там же можно познакомиться с используемым аппаратным и программным обеспечением.
Основным рабочим телом нам послужит Silicon Power Velox V85 480 ГБ: уже пожилое устройство на базе контроллера Phison PS3110-S10 и 15-нанометровой MLC-памяти Toshiba. Второго в точности такого не нашлось, но такой же емкости и построенный на идентичной платформе — без проблем. Это еще один плюс идеи SATA RAID0: симметричность обеспечить очень легко.
Из прошлого материала мы взяли также результаты Intel SSD 600p и WD Black первого поколения по 512 ГБ — поодиночке и в массиве. Пусть массив получился бестолковым с практической точки зрения, но для сравнения он нам подойдет. Также возьмем Intel Optane SSD 800P 118 ГБ и два Optane SSD 800P в массиве RAID0, благо в свое время мы такой массив собирали. Три немножко разных массива RAID0 дадут нам в сумме немного больше информации о собственно RAID0 на современных платформах. И это важно, поскольку основная наша задача сегодня — все-таки исследовательская, а не практическая :)
Поскольку сегодняшнее тестирование достаточно специфично, мы не стали заносить результаты тестов в общую таблицу: они доступны в отдельном файле в формате Microsoft Excel. Так что желающие покопаться в цифрах (тем более, что не все они попадают на диаграммы) могут скачать его и удовлетворить любопытство.
Рейтинги
Жизненное наблюдение: ранее к нам на тестирование регулярно привозили ноутбуки с RAID0 из пары SATA SSD, причем часто такие модели предназначались специально для тестовых лабораторий, а в розницу эти же модели, как правило, поступали с одиночным твердотельным накопителем либо с одним SSD и одним винчестером, а иногда и вовсе с одним только винчестером. После внедрения NVMe подобная практика прекратилась мгновенно, и причина хорошо видна на диаграммах: массив из пары SATA-накопителей способен побороться с одиночным «медленным» NVMe-устройством, но вот быстрый NVMe SSD в любых «попугаях» длиннее. Поэтому в случае современных платформ незачем и возиться. Владельцы же «старых» платформ (без поддержки NVMe) могут извлечь какую-то практическую пользу из SATA RAID0 и сейчас — но небольшую и не всегда.
Общие понятия по видам кэш
Существует три разновидности cache на RAID контроллерах:
- read policy
- write policy
- i/o policy
Рассмотрим более детально, что из себя представляет каждая политика кэширования.
Виды и типы RAID-контроллеров
Существует три вида RAID-контроллеров, основанные на принципах реализации RAID-массивов:
1. Программные, в которых управление массивом ложится на CPU и DRAM (то есть исполнение программного кода происходит на процессоре).
2. Интегрированные, то бишь встроенные в материнские платы ПК или NAS-сервера.
3. Аппаратные (модульные), представляющие собой дискретные платы расширения для разъемов PCI/PCIe системных плат.
В чем их принципиальное отличие друг от друга? Программные RAID-контроллеры уступают интегрированным и аппаратным по производительности и отказоустойчивости, но при этом не требуют специального оборудования для работы. Однако важно убедиться, что процессор хост-системы является достаточно мощным для запуска программного обеспечения RAID, не оказывая негативного влияния на производительность приложений, которые также работают на хосте. Интегрированные контроллеры, как правило, оснащаются собственной кэш-памятью и задействуют некоторое кол-во ресурсов CPU.
А вот аппаратные обладают и собственной кэш-памятью, и встроенным процессором для выполнения программных алгоритмов. Обычно они позволяют реализовать все виды уровней RAID-массивов и поддерживают сразу несколько видов накопителей. Например, к современным аппаратным контроллерам компании Broadcom можно одновременно подключать SATA-, SAS- и NVMe-устройства, что позволяет не менять контроллер при апгрейде серверов: в частности, при переезде с SATA SSD на NVMe SSD контроллеры менять не придется.
Собственно, на этой ноте мы подошли к типологизации самих контроллеров. Если есть трехрежимные, должны быть и какие-то еще? В данном случае ответ на этот вопрос будет утвердительным. В зависимости от функций и возможностей RAID-контроллеры можно поделить на несколько типов:
1. Обыкновенные контроллеры с функцией RAID
Во всей иерархии это самый просто контроллер, который позволяет объединять HDD и SSD в RAID-массивы уровней “0”, “1” или “0+1”. Программно это реализовано на уровне прошивки. Однако, такие устройства вряд ли можно рекомендовать для использования в корпоративном сегменте, ведь у них отсутствует кэш и не поддерживаются массивы уровней “5”, “3” и т.п. А вот для домашнего сервера начального уровня они вполне подойдут.
2. Контроллеры, работающие в паре с другими RAID-контроллерами
Этот тип контроллеров может работать в паре с интегрированными контроллерами материнских плат. Реализовано это по следующему принципу: дискретный RAID-контроллер берет на себя решение “логических” задач, а встроенный — функции обмена данными между накопителями. Но есть нюанс: параллельная работа таких контроллеров возможна только на совместимых системных платах, а значит область их применения серьезно сужается.
3. Самостоятельные RAID-контроллеры
Эти дискретные решения содержат на борту все необходимые чипы для работы с серверами корпоративного класса, обладая собственным BIOS’ом, кэш-памятью и процессором для быстрой коррекции ошибок и вычисления контрольных сумм. К тому же они отвечают высоким стандартам надежности в плане изготовления и обладают высококачественными модулями памяти.
4. Внешние RAID-контроллеры
Нетрудно догадаться, что все перечисленные выше контроллеры являются внутренними и получают питание через разъем PCIe материнской платы. О чем это говорит? А о том, что выход из строя системной платы может привести к ошибкам в работе RAID-массива и потере данных. Внешние же контроллеры избавлены от этого недоразумения, так как размещаются в отдельном корпусе с независимым блоком питания. В плане надежности такие контроллеры обеспечивают самый высокий уровень хранения данных.
Broadcom, Microsemi Adaptec, Intel, IBM, Dell и Cisco — это лишь некоторые из компаний, которые предлагают аппаратные RAID-контроллеры в настоящее время.
Оптимальные настройки для контроллеров Intel
Ниже представлена таблица с рекомендуемыми настройками для контроллеров Intel, для достижения максимальной производительности. О таких параметрах как Stripe size, Virtual Drive initialization, Consistency Check, Patrol Read мы поговорим ниже. Как видите лучшим режимом чтения является Adaptive Read Ahead, а режимом записи Write Back.
Оптимальные настройки для HP контроллеров
RAID 1 на базе SSD Kingston и контроллеров Broadcom
Итак, RAID-массив первого уровня на базе контроллера Broadcom MegaRAID 9460-16i объединяет от двух до 32 накопителей Kingston, которые являются копиями друг друга, и обеспечивает полную избыточность. Если при использовании традиционных HDD скорость записи и чтения данных оставалась на уровне этого самого HDD, то с использование NVMe SSD-решений мы получаем десятикратный прирост производительности. Особенно по части времени доступа к данным. Например, с двумя SSD Kingston DC1000M U.2 NVMe в серверном RAID 1 мы получим 350 000 IOPS при чтении случайных данных и 75 000 IOPS при записи.
В отношении последовательной скорости чтения результаты будут соответствовать характеристикам накопителя — 3200 Мбайт/с. Но, поскольку оба NVMe SSD находятся в рабочем состоянии, данные могут считываться с них одновременно, что делает операции чтения довольно быстрыми. А вот скорость записи (заявленная составляет 2000 Мбайт/с) будет медленнее, потому что каждая операция записи выполняется дважды.
Массив RAID 1 идеально подходит для небольших баз данных или любой другой среды, которая требует отказоустойчивости, но небольшой емкости. Зеркальное копирование накопителей особенно выручает в сценариях аварийного восстановления (производительность при этом немного ухудшается), поскольку обеспечивает мгновенную “реанимацию” важных данных, если один из накопителей в массиве выходит из строя. Но, поскольку этот уровень защиты требует удвоения емкости для хранения зеркальной копии данных (для хранения 100 Тбайт потребуется 200 Тбайт места), во многих корпоративных системах используются более экономичные варианты хранения: RAID 5 и RAID 6.
Зачем нужен RAID-массив?
Само слово “массив” уже подразумевает то, что для его создания используется несколько накопителей (HDD и SSD), которые объединяются с помощью RAID-контроллера и распознаются ОС, как единое хранилище данных. Глобальная задача, которую позволяют решить RAID-массивы — минимизация времени доступа к данным, повышение скорости чтения/записи и надежности, которая достигается благодаря возможности быстрого восстановления в случае сбоя. К слову, для домашних бэкапов использовать RAID совсем не обязательно. А вот если у вас есть свой домашний сервер, к которому необходим постоянный доступ 24/7 — тут уже другое дело.
Существует свыше десятка уровней RAID-массивов, каждый из которых отличается количеством используемых в нем накопителей и имеет свои плюсы и минусы: например, RAID 0 позволяет получить высокую производительность без отказоустойчивости, RAID 1 — наладить автоматическое зеркалирование данных без прироста скорости, а RAID 10 объединяет в себе возможности вышеперечисленных. RAID 0 и 1 — самые простые (поскольку не требуют произведения программных вычислений) и, как следствие, — самые популярные. В конечном счете выбор в пользу того или иного уровня RAID зависит от возлагаемых на дисковый массив задач и возможностей RAID-контроллера.
I/O Policy (Политика ввода/вывода)
Политика ввода/вывода определяет, будет ли RAID контроллер сохранять данные в кэше, который может уменьшить время доступа к ним при последующих запросах на чтение сделаными в те же самые блоки данных.
Политика direct IO : чтение происходит с дисков. Прямой режим I/O рекомендуется в большинстве случаев. Большинство файловых систем и множество приложений имеют свой собственный кэш и не требуют кэширования данных на уровне контроллера RAID.
Политика Cached IO : При ее включении чтение происходит с дисков, но прочитанные данные одновременно кладутся в кэш. Запросы тех же данных в последствии берутся из кэша. Этот режим может потребоваться, если приложение или файловая система не кэширует запросы чтения
Disk cache policy : это политика кэша диска. Если ее включить то на дисках будет храниться дополнительный кэш, это будет влиять на скорость записи в худшую сторону, но будут быстрее считывание, так же при включенном режиме есть риск потери данных.
Как SSD Kingston живут в режиме RAID с контроллерами Broadcom
На заре появления SSD-накопителей RAID-конструкции таили в себе много нюансов. В том числе из-за использования менее отказоустойчивых HDD-дисков. Твердотельные накопители гораздо надежнее своих собратьев на основе магнитных дисков. Как мы знаем, в SSD-решениях нет движущихся элементов, поэтому механические повреждения сведены к нулю. Выход твердотельных накопителей из строя вследствие скачков напряжения тоже маловероятен, учитывая, что на уровне домашнего ПК и любого сервера вас предохраняют ИБП, сетевые фильтры и даже блок питания.
При этом у твердотельных накопителей есть еще один существенный плюс: даже если ячейки памяти износятся на запись – чтение данных с них все равно можно будет произвести, а вот при повреждении магнитного диска – увы.
На сегодняшний день использовать SSD-решения в RAID-массивах разных уровней вполне нормальная практика. Главное – выбирать правильные твердотельные накопители, латентность которых минимальна. А еще в идеале использовать SSD одного и того же производителя и одной и той же модели, чтобы не получилась мешанина из накопителей, поддерживающих разные типы нагрузок и построенных на базе разных типов памяти, контроллеров и прочих технологий. То есть, если уж мы решили закупить для создания RAID-массива четыре или 16 NVMe SSD компании Kingston – пусть лучше все они будут из одной серии и модельного ряда.
К слову, в прошлой статье мы неспроста приводили в пример контроллеры Broadcom, когда говорили о NVMe SSD от Kingston. Дело в том, что в мануалах к этим устройствам сразу прописываются совместимые накопители (включая решения от вышеупомянутого американского производителя SSD), с которыми контроллер будет работать без нареканий. На эту информацию и нужно опираться при выборе связки «контроллер-SSD» для RAID.
Случайный доступ
Как видим, все сценарии ведут себя по-разному — это тот случай, когда на производительность могут влиять любые факторы. Объединение накопителей в массив с чередованием — еще один дополнительный. Который может скорость как повысить (например, если при исходных данных немного «не хватает» пропускной способности интерфейса и/или степени внутреннего параллелизма), так и наоборот. В любом случае, «сменить класс» устройства этим способом не выйдет. Т. е., например, скорость чтения с единичной длиной очереди команд (что как раз и наиболее значимо на практике) зависит только от задержек самой памяти — и поэтому любые Optane здесь вне конкуренции. А никакой сменой протоколов или интерфейсов это не изменить. Тем более, объединением устройств в массив RAID0.
Факторы влияющие на производительность
Рассмотрим что такое Stripe size, Virtual Drive initialization, Consistency Check, Patrol Read.
Virtual Drive initialization - это зануление, блоков раздела, перед тестирование скорости советую дождаться полной инициализации. По времени занимает по разному все зависит от размеров массива.
Stripe size - Размер блока данных одной ячейки раздела, по сути карта как данные распределены по жестким дискам. Размер страйпа может иметь большое влияние на
Конфигурирование RAID для оптимальной производительности и других факторов эффективности. Как правило при последовательных данных увеличить скорость RAID контроллера можно с помощью размеров stripe 512 kb или 1 mb. При случайном виде доступа лучше 16 кб, все зависит от того какое По у вас будет крутиться на данном разделе. Но в большинстве случаев лучше оставить стандартный размер, предлагаемый производителем.
Consistency Check - Проверка целостности является важной функцией, которая помогает обнаружить несоответствия в данных, хранящихся на жестких дисках в RAID массивах и выявляет возможные повреждения данных.
Проверка целостности генерирует значительное количество запросов к диску, которые могут уменьшить производительность RAID. В идеале ее вообще отключить, но этим вы жертвуете оповещением о ранних проблемах с дисками.
Patrol Read - помогает обнаруживать и исправлять плохие блоки на жестких дисках и предотвращать возможную потерю данных. Patrol Read генерирует значительное количество запросов к диску, которые могут уменьшить производительность RAID контроллера.
Вы должны включить или отключить Patrol Read в зависимости от цели вашей работы
измерения.
В прошлом материале мы уже рассмотрели вопрос о том “Применим ли RAID на SSD” на примере накопителей Kingston, но сделали это только в рамках нулевого уровня. В текущей статье мы разберем варианты использования профессиональных и домашних NVMe-решений в самых популярных типах RAID-массивов и расскажем о совместимости контроллеров Broadcom с накопителями Kingston.
RAID 50 на базе SSD Kingston и контроллеров Broadcom
Комбинированный массив, аналогичный RAID’у десятого уровня, который представляет собой массив нулевого уровня, созданный из массивов пятого уровня. Как и в предыдущем случае, основная цель данного массива состоит в получении удвоенной производительности при сохранении надежности данных в массивах RAID 5. При этом RAID 50 обеспечивает повышенную производительность записи и лучшую защиту данных, нежели стандартный RAID 5 в случае сбоя диска, а также способен к более быстрому восстановлению в случае отказа одного из накопителей.
Группа дисков RAID 50 разбивает данные на более мелкие блоки, а затем распределяет их на каждый массив RAID 5. Группа дисков RAID 5, в свою очередь, также разбивает данные на более мелкие блоки, вычисляет четность, производит логическую операцию OR для блоков, а затем выполняет операции записи в блоки данных и контроля четности для каждого диска в группе дисков.
И хотя производительность неизбежно снижается в случае сбоя одного из накопителей, это не столь существенно, как в массиве RAID 5, поскольку один сбой влияет только на один из массивов, оставляя другой полностью работоспособным. На самом деле RAID 50 может выдержать до восьми отказов HDD/SSD/NVMe-накопителя, если каждый отказавший “диск” находится в отдельном массиве RAID 5.
RAID 50 лучше всего использовать для приложений, которым требуется высокая надежность и которые должны обрабатывать большое количество запросов при сохранении высокой скорости передачи данных и более низкой стоимости накопителей, чем в массиве RAID 10. Однако, поскольку для настройки массива RAID 50 требуется минимум шесть накопителей, стоимость не полностью исключается как фактор. Одним из недостатков RAID 50 является то, что, как и RAID 5, ему нужен сложный контроллер: такой как упомянутый нами в прошлой статье MegaRAID 9460-16i от Broadcom.
Стоит также отметить, что RAID 50 имеет меньше используемого дискового пространства, чем RAID 5, из-за выделения емкости для содержания записей контроля четности. Тем не менее, он все еще имеет больше полезного пространства, чем другие уровни RAID, особенно те, которые используют зеркалирование. При минимальном требовании в шесть дисков RAID 50 может быть дорогостоящим вариантом, но дополнительное дисковое пространство оправдывает затраты, защищая корпоративные данные. Этот тип массива рекомендуется для работы с данными, требующими высокой надежности хранения, высокой частоты запросов, высокой скорости передачи и большой емкости для размещения.
Настройка RAID контроллера для лучшей производительности
Любой инженер по системам хранения данных, хочет чтобы его инфраструктура работала как можно быстрее и использовала весь функционал заложенный в ней. Каждый вендор RAID контроллеров, имеет некий best prictice для своей продукции, давайте сегодня рассмотрим их на примере контроллеров Intel и LSI.
Зачем нужен RAID на SSD?
Преимущества массивов хранения на основе SSD по сравнению с массивами хранения на жестких дисках включают сокращение времени доступа к данным на накопителе и превосходную производительность в операциях чтения/записи. Однако для идеальной производительности RAID’а на базе SSD требуется оптимальное сочетание процессора, кэша, программного и аппаратного обеспечения. Когда все эти факторы идеально работают вместе, RAID-массив из SSD может значительно превзойти сопоставимую конфигурацию с применением традиционных HDD.
Типичный SSD потребляет меньше энергии, чем жесткие диски, поэтому при объединении большого количества твердотельных накопителей в RAID-массив экономия энергии по сравнению с RAID-массивом из HDD может привести еще и к снижению расходов при оплате корпоративных счетов за электроэнергию.
Однако SSD RAID имеет ограничения и недостатки: в частности, более высокая цена за гигабайт пространства по сравнению с жесткими дисками сопоставимой емкости. А время наработки флеш-памяти на отказ ограничено определенным количеством циклов перезаписи. То есть у SSD-накопителей есть определенный срок службы, который зависит от эксплуатации: чем активнее перезаписывается информация на нем, тем быстрее накопитель выйдет из строя. С другой стороны, корпоративные твердотельные накопители имеют приличный срок службы, сопоставимый с механическими жесткими дисками.
Read policy (Политика чтения)
Политика Read Ahead Policy: При ее включении контроллер начинает считывать последовательно сектора на диске, находящиеся за сектором с которого извлекается информация. При низкой фрагментации данная политика позволяет увеличить скорость чтения. Каждая операция чтения будет потреблять больше ресурсов жесткого диска, но если запросы на чтение последовательные это может существенно уменьшить количество запросов на чтение на жесткие диски и может существенно повысить производительность. Этот параметр будет работать только если типичный размер запроса на чтения меньше, чем ширина полосы пропускания.
Политика No Read Ahead (Normal) : При данном режиме контроллер не будет считывать последовательно данные, данный режим предпочтительнее когда будут производиться рандомные (случайные) чтения. Также этот режим рекомендуется при измерении последовательного чтения с помощью I/O meter под Windows.
Политика Adaptive Read Policy : по сути политика адаптивного чтения при которой контроллер запускает политику упреждающего чтения только после того, как две последние операции запрашивали доступ к последовательно идущим блокам данных. Если далее идут блоки рандомно разбросанные по дисковой подсистеме контроллер возвращается в нормальный режим работы. Этот режим рекомендуется использовать, если нагрузка на RAID контроллере подразумевает смешанные и последовательные операции.
Оптимальные настройки для SSD
Размер stripe 256 kb, включение disk Cache Policy включен, выбран I/O Policy Direct IO, нужно дать закончить lun инициализацию, режимы записи для разных видов RAID разные.
MegaRAID Settings for Maximum SSD Performance
Если вам позволяет время то советую протестировать все возможные варианты кэширования для вашего RAID контроллера
Оптимальные настройки для HDD
Размер stripe 256 kb, включение disk Cache Policy включен, выбран I/O Policy Direct IO, нужно дать закончить lun инициализацию
MegaRAID Settings for Maximum HDD Performance
Домашний и корпоративный RAID: в чем разница?
Основа любого современного бизнеса — большие объемы данных, которые должны надежно храниться на серверах компаний. А еще, как мы уже отмечали выше, к ним должен обеспечиваться постоянный доступ 24/7. Понятное дело, что наравне с “железом” важна и софтверная часть, но в данном случае мы говорим все-таки об оборудовании, которое обеспечивает надежное хранение и обработку информации. Никакой софт не спасет компанию от разорения, если “железное” оснащение не соответствует возложенным на него задачам.
Для этих задач любой производитель “железа” предлагает так называемые корпоративные устройства. У Kingston — это мощные твердотельные решения в лице SATA-моделей Kingston 450R (DC450R) и серии DC500, а также NVMe-моделей DC1000M U.2 NVMe, DCU1000 U.2 NVMe и DCP-1000 PCI-e, предназначенных для использования в ЦОД (центрах обработки данных) и суперкомпьютерах. Массивы из таких накопителей, как правило, используются в связке с аппаратными контроллерами.
Для потребительского же рынка (то есть для домашних ПК и NAS-серверов) доступны такие накопители как Kingston KC2000 NVMe PCIe, но в этом случае необязательно покупать аппаратный контроллер. Можно ограничиться встроенным в материнскую плату ПК или NAS-сервера, если вы конечно не планируете самостоятельно собрать домашний сервер для нетипичных задач (завести маленький домашний хостинг для друзей, к примеру). К тому же, домашние RAID-массивы, как правило, не предполагают наличие сотен и тысяч накопителей, ограничиваясь двумя, четырьмя и восемью устройствами (чаще SATA).
RAID 6 и RAID 60: про них мы тоже не забыли
Раз уж мы поговорили о массивах пятого и пятидесятого уровней, грех не упомянуть и о таких типах организации массивов как RAID 6 и RAID 60.
Производительность RAID 6 аналогична RAID 5, но здесь уже минимум два накопителя отдаются под контроль четности, что позволяет массиву пережить выход из строя двух накопителей без потери данных (в RAID 5 такая ситуация крайне нежелательна). Благодаря этому обеспечивается более высокая надежность. В остальном все так же, как и в массиве пятого уровня: в случае сбоя одного или двух дисков контроллер RAID использует блоки четности для воссоздания всей недостающей информации. При сбое двух накопителей восстановление происходят не одновременно: сначала реанимируется первый накопитель, затем – второй. Таким образом, выполняются две операции по восстановлению данных.
Нетрудно догадаться, что, если RAID 50 представляет собой массив нулевого уровня из массивов пятого уровня, то RAID 60 – это массив нулевого уровня из массивов шестого уровня, о которых мы только что рассказали. То есть такая организация RAID-хранилища позволяет пережить потерю двух SSD в каждой группе накопителей RAID 6. Принцип работы схож с тем, про который мы рассказывали в разделе про RAID 50, но количество сбоев, которые может выдержать массив шестидесятого уровня, вырастает с 8 до 16 накопителей. Обычно такие массивы используются для онлайн-обслуживания клиентов, которое требует высокой отказоустойчивости.
Write policy (Политика записи)
Политика W rite-Through : Включая данную политику контроллер начинает посылает сигнал о завершении записи только тогда, когда информация упадет на физические носители, т.е. 100 процентов будет уже на жестких дисках. Обеспечивает более высокую безопасность. Данный режим не использует кэш для ускорения записи, и будет медленнее других, однако позволяет так же достичь хороших показателей при RAID 0 и RAID 10.
Политика Write-Back : Включая данный режим политика кэширования RAID контроллера начинает посылать сигнал о завершении записи только тогда, когда информация попадает в кэш контроллера, но еще не записана на дисковый массив. Обеспечивает более высокую прозводительность чем при политике write-through. Приложение продолжает работать, не дожидаясь, чтобы данные были физически записаны на жесткие диски. Но есть одно большое, но если во время работы RAID контроллера в таком режиме у вас пропадет электричество, то с 99 процентной вероятностью вы потеряете данные, для предотвращения этого есть BBU батарейки или модули защиты данных, так же советую проверить что у вашего сервера есть UPS (источник бесперебойного питания) и дублирующее подключение питания от блока питания.
Политика Write-Back with BBU : Данный режим это все тот же Write-Back, но разница в том, что у нас есть батарейка BBU, которая предотвращает потерю данных при выключении электропитания.
BBU или Battery Backup Unit (Модуль Резервной Батареи). BBU дает батарейную защиту питания для cache RAID контроллера. В случае сбоя питания, BBU поможет сохранить данные в кэше.
Производительность в приложениях
Два симметричных массива работают чуть быстрее, чем накопители, из которых они построены — асимметричный наоборот. С другой стороны, разброс производительности здесь настолько не велик, чтобы об этом вообще стоило задумываться. Причина озвучена неоднократно — и самого медленного из испытуемых уже достаточно для того, чтобы производительность определялась не им.
Да и потенциальный выигрыш не так уж велик — даже когда он есть. Это для Optane 800p фактическое удвоение ширины интерфейса и степени чередования полезно, но в случае SATA и протокола AHCI (а другой тут неприменим) много уже не наработаешь. Даже Intel SSD 600p (один из самых медленных накопителей в своем классе) и то заметно быстрее в этом тесте, а попытка использовать его в паре с еще одним «неторопливым» SSD результат только уменьшает — но все равно не до уровня «увеличенного» SATA RAID0.
Предыдущая версия пакета, оперирующая более «легкими» нагрузками, более благосклонна к любым массивам. Однако не менее очевидно, что какой-то внятный прирост можно увидеть только на паре маленьких, но шустреньких «опташ», да и то — в синтетическом режиме. SATA RAID же медленнее одиночного (и медленного же) NVMe-накопителя. Такие дела.
Стоит ли создавать RAID-массив на SSD?
Итак, мы уже поняли, что RAID-массивы – это залог высокого быстродействия. Но стоит ли собирать RAID из твердотельных накопителей для домашнего и корпоративного использования? Многие скептики говорят о том, что прирост в скорости получается не столь существенным, чтобы разоряться на NVMe-накопители. Но так ли это на самом деле? Вряд ли. Самым большим ограничением для использования SSD в RAID (как в домашних условиях, так и на корпоративном уровне) может стать только цена. Как ни крути, а стоимость гигабайта пространства у HDD значительно дешевле.
Подключение нескольких твердотельных “дисков” к контроллеру RAID для создания массива из SSD в определенных конфигурациях может оказать огромное влияние на производительность. Не стоит, однако, забывать, что максимальная производительность ограничена пропускной способностью самого контроллера RAID. Уровнем RAID, который предлагает лучшую скорость работы, является RAID 0.
Организация обычного RAID 0 с двумя SSD-накопителями, в которой используется метод разбиения данных на фиксированные блоки и их чередования между твердотельными хранилищами, приведет к удвоению производительности (если сравнивать со скоростями, которые выдает один SSD). При этом массив RAID 0 с четырьмя твердотельными накопителями будет уже в четыре раза быстрее, чем самый медленный SSD в массиве (в зависимости от ограничения пропускной способности на уровне контроллера RAID SSD).
Если исходить из простой арифметики, SATA SSD примерно в 3 раза быстрее традиционного SATA HDD. NVMe-решения еще эффективнее — в 10 раз и более. При условии, что два жестких диска в RAID’е нулевого уровня покажут удвоенную производительность, увеличив ее на 50%, два SATA SSD окажутся в 6 раз быстрее, а два NVMe SSD — в 20 раз быстрее. В частности, один накопитель Kingston KC2000 NVMe PCIe может достигать скорости последовательного чтения и записи до 3200 Мбайт/с, что в формате RAID 0 достигнет внушительных 6 Гбайт/с. А скорость чтения/записи случайных блоков размером 4 Кбайт превратится из 350 000 IOPS в 700 000 IOPS. Но… в то же время “нулевой” RAID не обеспечивает нам избыточности.
Можно сказать, что в домашних условиях избыточность хранилища обычно и не требуется, поэтому самой подходящей конфигурацией RAID для SSD действительно становится RAID 0. Это надежный способ получить значительное повышение производительности в качестве альтернативы использованию таких технологий, как твердотельные накопители на базе Intel Optane. А вот как поведут себя SSD-решения в самых популярных типах RAID (“1”, “5”, “10”, “50”) — мы поговорим в нашем следующем материале.
Данная статья подготовлена при поддержке наших коллег из Broadcom, которые предоставляют свои контроллеры инженерам Kingston для тестирования с накопителями SATA/SAS/NVMe корпоративного класса. Благодаря этому дружескому симбиозу, клиентам не приходится сомневаться в надежности и стабильности работы накопителей Kingston c HBA- и RAID-контроллерами производства Broadcom.
Дополнительную информацию о продуктах Kingston можно найти на официальном сайте компании.
Разбираем работу SSD Kingston в самых популярных типах RAID — “1”, “5”, “10”, “50”
Итак, “нулевой” уровень RAID не обеспечивает избыточности данных, а только увеличивает производительность. Никакой защиты данных RAID 0 не предоставляет вообще, поэтому в рамках корпоративного сегмента мы его рассматривать не будем. RAID 1, с другой стороны, обеспечивает полную избыточность, но лишь скромный прирост производительности, и поэтому его следует рассматривать в том случае, если повышение производительности не является основополагающим фактором при создании RAID-массива из SSD.
Оптимальные настройки для контроллеров LSI
Ниже представлена таблица с рекомендуемыми настройками для контроллеров LSI, для достижения максимальной производительности. Будут рассмотрены сводные таблицы для HDD и для SSd дисков.
Методика и объекты тестирования
Методика подробно описана в отдельной статье, там же можно познакомиться с используемым аппаратным и программным обеспечением.
Основным рабочим телом нам послужит Silicon Power Velox V85 480 ГБ: уже пожилое устройство на базе контроллера Phison PS3110-S10 и 15-нанометровой MLC-памяти Toshiba. Второго в точности такого не нашлось, но такой же емкости и построенный на идентичной платформе — без проблем. Это еще один плюс идеи SATA RAID0: симметричность обеспечить очень легко.
Из прошлого материала мы взяли также результаты Intel SSD 600p и WD Black первого поколения по 512 ГБ — поодиночке и в массиве. Пусть массив получился бестолковым с практической точки зрения, но для сравнения он нам подойдет. Также возьмем Intel Optane SSD 800P 118 ГБ и два Optane SSD 800P в массиве RAID0, благо в свое время мы такой массив собирали. Три немножко разных массива RAID0 дадут нам в сумме немного больше информации о собственно RAID0 на современных платформах. И это важно, поскольку основная наша задача сегодня — все-таки исследовательская, а не практическая :)
Поскольку сегодняшнее тестирование достаточно специфично, мы не стали заносить результаты тестов в общую таблицу: они доступны в отдельном файле в формате Microsoft Excel. Так что желающие покопаться в цифрах (тем более, что не все они попадают на диаграммы) могут скачать его и удовлетворить любопытство.
RAID 10 на базе SSD Kingston и контроллеров Broadcom
Итак, RAID 0 предоставляет нам двукратный прирост скорости и времени доступа, а RAID 1 обеспечивает надежность. В идеале бы их совместить, и тут на помощь приходит RAID 10 (или же 1+0). “Десятка” собирается из четырех SATA SSD- или NVMe-накопителей (максимум – 32) и подразумевает массив из “зеркал”, количество накопителей в котором всегда должно быть кратно четырем. Данные в этом массиве записываются посредством разбиения на фиксированные блоки (как в случае с RAID 0) и чередования между накопителями, распределяя копии между «дисками» в массиве RAID 1. А благодаря возможности одновременного доступа к нескольким группам дисков, RAID 10 показывает высокую производительность.
Так как RAID 10 способен распределять данные по нескольким зеркальным парам, это означает, что он может допускать сбой одного накопителя в паре. Однако в случае сбоя обеих зеркальных пар (то есть всех четырех накопителей) произойдет неизбежная потеря данных. В итоге мы также получаем хорошую отказоустойчивость и надежность. Но стоит иметь в виду, что, как и RAID 1, массив десятого уровня использует только половину суммарной емкости, а потому является дорогостоящим решением. Да еще и сложным в настройке.
RAID 10 подходит для использования с хранилищами данных, которым требуется 100-процентная избыточность групп зеркальных дисков, а также повышенная производительность ввода-вывода RAID 0. Это лучшее решение для баз данных среднего размера или любой среды, которая требует более высокой отказоустойчивости, чем в RAID 5.
Режимы работы RAID контроллеров SAS/SATA/NVMe
Основной задачей трехрежимных HBA- и RAID-контроллеров (или контроллеров с функцией Tri-Mode) является создание аппаратного RAID на базе NVMe. У компании Broadcom это умеют делать контроллеры 9400 серии: например, MegaRAID 9460-16i. Он относится к самостоятельному типу RAID-контроллеров, оснащен четырьмя разъемами SFF-8643 и, благодаря поддержке Tri-Mode, позволяет коннектить к себе SATA/SAS- и NVMe-накопители одновременно. К тому же это еще и один из самых энергоэффективных контроллеров на рынке (потребляет всего 17 Ватт энергии, при этом менее 1,1 Ватт на каждый из 16 портов).
Интерфейсом подключения служит PCI Express x8 версии 3.1, что позволяет реализовать пропускную способность на уровне 64 Гбит/с (в 2020 году ожидается появление контроллеров для PCI Express 4.0). В основе 16-портового контроллера лежит 2-ядерный чип SAS3516 и 72-битная DDR4-2133 SDRAM (4 Гбайт), а также реализована возможность подключения до 240 накопителей SATA/SAS-, либо до 24 NVMe-устройств. По части организации RAID-массивов поддерживаются уровни “0”, “1”, “5” и “6”, а также “10”, “50” и “60”. К слову, кэш-память MegaRAID 9460-16i и других контроллеров в серии 9400 защищена от сбоев напряжения дополнительным модулем CacheVault CVPM05.
В основе трехрежимной технологии лежит функция преобразования данных SerDes: преобразование последовательного представления данных в интерфейсах SAS/SATA в параллельную форму в PCIe NVMe и наоборот. То есть контроллер согласовывает скорости и протоколы, чтобы беспрепятственно работать с любым из трех типов устройств хранения. Это обеспечивает бесперебойный способ масштабирования инфраструктур центров обработки данных: пользователи могут использовать NVMe без существенных изменений в других конфигурациях системы.
Однако при планировании конфигураций с NVMe-накопителями, стоит учитывать, что NVMe-решения используют для подключения 4 линии PCIe, а значит каждый накопитель задействует все линии портов SFF-8643. Выходит, что напрямую к контроллеру MegaRAID 9460-16i можно подключить только четыре накопителя NVMe. Либо ограничиться двумя NVMe-решениями при одновременном подключении восьми SAS-накопителей (см. схему подключения ниже).
На рисунке показано использование разъема «0» (С0 / Connector 0) и разъема «1» для подключений NVMe, а также разъемов «2» и «3» для подключений SAS. Это расположение может быть изменено на обратное, но каждый накопитель x4 NVMe должен быть подключен с использованием соседних линий. Режимы работы контроллера устанавливается через конфигурационные утилиты StorCLI или Human Interface Infrastructure (HII), которая работает в среде UEFI.
Режим по умолчанию — профиль «PD64» (поддержка только SAS / SATA). Как мы уже говорили выше, всего профилей три: режим «SAS/SATA only mode» (PD240 / PD64 / PD 16), режим «NVMe only mode» (PCIe4) и смешанный режим, в котором могут работать все типы накопителей: «PD64-PCIe4» (поддержка 64 физических и виртуальных дисков с 4 NVMe-накопителями). В смешанном режиме значение задаваемого профиля должно быть таким – «ProfileID=13». К слову, выбранный профиль сохраняется в качестве ведущего и не сбрасывается даже при откате к заводским настройкам через команду Set Factory Defaults. Сменить его можно будет только вручную.
Итого
На этом, как нам кажется, тему RAID-массивов в применении к массовым конфигурациям можно закрывать, благо мы рассмотрели уже почти все основные варианты. За кадром остались только связки из пары одинаковых топовых устройств (Optane SSD 800P все-таки на такое не совсем тянет), но и с ними тоже все уже ясно: где-то производительность увеличится, где-то — нет, но за пределы синтетики все эти отличия не выйдут. Во времена винчестеров, когда не хватало иногда даже последовательных скоростей, никаким способом хоть что-то ускорить пренебрегать было нельзя. Сейчас же есть более простые способы, иногда оказывающиеся и более дешевыми (можно сэкономить на платформе, да и цена твердотельных накопителей с ростом емкости увеличивается не линейно). Со всеми вытекающими.
Всем привет, давно хотел написать для себя напоминалку, по поводу того какие виды кэша на рейд контроллерах LSI и Intel бывают, и какие настройки лучше всего выставлять для достижения максимальной производительности на ваших RAID контроллерах. Сразу хочу отметить, что если у вас есть запас времени, перед, тем как отдать сервер в продашен заказчику, то не поленитесь все же провести несколько тестов с разными настройками, и не забывайте, до их начала обновить все прошивки на оборудование и RAID контроллер.
Читайте также: