Интегрированные RAID контроллеры сейчас присутствуют на любой уважающей себя системной плате. Это подталкивает нас к возможности по увеличению производительности дисковой системы путем сбора массива RAID 0 из пары SSD. Давайте рассмотрим масштабируемость данного решения ssd raid с использованием накопителя Kingston HyperX 3K.

Распараллеливание нагрузки и дублирование устройств является достаточно популярной темой на современных компьютерных рынках. Разработчики производят создание видеоподсистем, где есть 2-е графические карты или больше. Пользователи, которым нужна непревзойденная вычислительная техника, делают ставки на многопроцессорные рабочие станции.

Данный подход можно использовать в отношении дисковой подсистемы. Достаточно простым способом по увеличению скорости ее работы будет формирование RAID массива из двух или большего числа жестких дисков. В массивах с чередованием 0 уровня (stripe) предполагается дробление на небольшие равные части всей сохраняемой информации. Эти части распределяются по разным физическим накопителям. В теории, при обеспечении параллельного выполнения дисковых операций с несколькими накопителями одновременно, можно в несколько раз повысить рабочую скорость системы в сравнении с одним диском.

Еще несколько лет назад RAID массивы, которые состояли из механических традиционных жестких дисков, являлись обязательными атрибутами в высокопроизводительном компьютере. Затем подобные многодисковые конфигурации не выдержали конкуренции с твердотельными накопителями. SSD предложили более высокую производительность без использования подобных ухищрений.

Проверенная временем технология не утратила собственного значения. Сейчас RAID массивы собираются на основе SSD. Данной возможностью пользуются те энтузиасты, которым кажется малой скорость представленных твердотельных накопителей на рынке.

Внимание к RAID массивам вернулось из-за появления непреодолимой преграды в развитии потребительских SSD – используемый ими интерфейс. В широко распространенном интерфейсе SATA3 имеется пропускная способность, которая ограничена показателем 6 Гбит/с. Потенциал этого интерфейса современными твердотельными накопителями уже почти полностью исчерпан.

Пока только в отдаленной перспективе виден выход на переход к более скоростным интерфейсам типа PCI Express или SATA Express. Поэтому оптимальным и единственным путем к получению более высокой производительности, чем конфигурация SSD с SATA 6 Гбит/с, будет применение RAID массивов. Собирать их требуется на основе обычных твердотельных массовых накопителей. Сейчас повсеместно распространены RAID контроллеры. Их встраивают в огромнейшее количество наборов системной логики. Для сборки RAID массивов не потребуется никакое специальное оборудование, кроме нескольких SSD.

Немного про RAID 0 из SSD


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

Суммарная емкость RAID 0 массива равняется сумме объемов накопителей, которые входят в него. Для его создания можно применять 2, 3 или большее число дисков. Из-за отсутствия потерь в емкости и явного масштабирования, RAID 0 остается наиболее популярным видом RAID массива.

Большинство системных плат в ценовой категории среднего и высшего уровня поддерживают массивы RAID 0 уровня. Наиболее лучшим вариантом для создания RAID 0 из SSD будут системные платы, созданные на базе чипсетов Интел последнего поколения.

Преимущества Intel Z87, B87 и H87:

  1. Поддержка более двух SATA портов 6 Гбит/с.
  2. Работа с помощью драйвера Intel Rapid Storage Technology (RST).

Данный драйвер отличается специальной оптимизацией для массивов RAID 0 из SSD. Сейчас предлагаются уникальные возможности драйвера:

  1. Поддержка TRIM команды.
  2. Наличие прямого доступа к накопителям у обслуживающих и диагностических утилит, которые входят в массив.

Ни в каких иных контроллерах подобной функциональности нет. В остальных платформах массив RAID в системе представляется как виртуальный физический диск, где нет доступа к SSD, входящим в него.

При сборе массива RAID 0 с применением встроенных контроллеров Intel чипсетов 8-ой серии, нет надобности в беспокойстве про относительную деградацию SSD, когда они переходят из нового в использованное состояние. Здесь не теряются возможности по наблюдению за физическим состоянием накопителей, входящих в массив. Это имеет огромное практическое значение.

К наибольшей неприятной черте массива с чередованием относится более низкая надежность, чем у одиночных SSD. Если выходит из строя один накопитель, то теряется весь массив целиком.

Современные флеш-диски имеют обширные средства самодиагностики. Им сообщается набор S.M.A.R.T параметров, который обеспечивает хорошую достоверность слежки за здоровьем и жизненным циклом. Имеющаяся возможность в Intel RST по обращению к S.M.A.R.T, находящихся в массиве накопителей, будет достаточно полезной. Это сможет предотвратить сбои и потерю данных, а также будет простым способом самоуспокоения.

Выбор SSD для RAID: Kingston HyperX 3К

Если учитывать особенности массивов с чередованием, то наиболее логичным выбором для них будут стабильные и испытанные SSD. От данных накопителей не будет никаких неприятных сюрпризов. Подобных вариантом не очень много. При проведении непрерывной слежки через S.M.A.R.T за состоянием работы флеш-памяти, не гарантируются отказы SSD, которые происходят из-за ошибок в прошивках и контроллерах. Наилучшим выбором для RAID массивов будут те твердотельные накопители, которые на рынке представлены достаточно продолжительное время. Важно, чтобы они были проверенными на практике в надежности, а производители могут проявившиеся проблемы исправить.

Неплохим вариантом будут накопители, которые построены на SandForce контроллерах. Данные модели являются опробованными многочисленными владельцами. Свойственные им ошибки были исправлены на аппаратном и программном уровне.

Флеш-диски с SF-2281 контроллерами отличаются следующими важными преимуществами:

  1. Набор S.M.A.R.T параметров у подобных моделей достаточно подробен и сильно превосходит параметры других SSD. Это помогает получить про состояние флеш-памяти доскональную картину.
  2. Мощнейший набор технологий (в частности, RAISE и DuraWrite), которые ориентированы на продление долговечности флеш-памяти.

По параметрам надежности в категории потребительских SSD, они относятся к наиболее лучшим вариантам.

Важно отметить ценовой аспект. Твердотельные накопители с SandForce контроллерами сейчас подешевели, что повышает их привлекательность. Они имеют производительность, далекую от лидирующих позиций, но для массивов RAID с чередованием не столь необходимы быстродействующие SSD. В данных конфигурациях несет ответственность за высокие показатели производительности контроллер SATA.

Если выбирать из большого количества поставщиков SSD, имеющих базу на SF-2281 контроллере, то остановится необходимо на самых авторитетных и крупных. Для кого-то предпочтительными будут твердотельные Intel накопители, кому-то подойдут Kingston HyperX 3K флеш-приводы по более низкой цене. Серия накопителей Kingston HyperX 3K является отличным решением на базе SandForce контроллеров второго поколения. Флеш-приводы данной серии отличаются высокой надежностью сборки и привлекательным внешним видом.

Модель Kingston HyperX 3K с показателем емкости 480 Гб является заметно медленней, чем 240-гигабайтная модификация. SF-2281 контроллер показывает наивысшую производительность при четырехкратном чередовании NAND устройств в каждом канале. Восьмикратное чередование, нужное для получения емкости 480 Гб, будет вносить некоторые задержки. Использование флеш-памяти с Toggle Mode интерфейсом усугубило данный момент. Модель Kingston HyperX 3K на 240 Гб стала немного быстрее, чем предшественница с памятью Intel, но 480-гигабайтная модификация потеряла в показателях быстродействия.

Накопители, основанные на SandForce контроллерах, и не кажутся свежим решением, но они неплохо подходят для RAID массивов. Данные SSD очень надежны и всесторонне проверенные. Они имеют достаточно привлекательную цену. Показатели производительности показывают, что массив из двух приводов SandForce уровня RAID 0 даст фору любым однодисковым конфигурациям. Быстродействие последовательных операций не ограничивается 6 Гбит/с – полосой пропускания интерфейса SATA.

Приветствую всех, уважаемые читатели блога сайт! В этой статье я вновь затрону тему SSD дисков. Если в 2010 году твердотельных накопителей (SSD) по всему миру продали на сумму 2.3 млрд $, то уже в 2014 эта сумма выросла до 7.2 млрд $. Твердотельные диски применяются не только для создания мощных игровых ПК, их устанавливают в высокопроизводительные рабочие станции - где требуется большая скорость чтения: системы обработки медиаконтента, базы данных.

SSD диск превосходит обычный винчестер (HDD) по скорости чтения и записи блоков размером 4к. А ведь в этом и состоит основная нагрузка операционной системы на диск. Средний HDD при таких операциях выдает скорость около 1 мегабайта в секунду. Средний «твердотельник» окажется быстрее в десятки раз: 20-40 мегабайт в секунду. Но, не всё так хорошо. SSD диск имеет ограничение в количествах раз, когда вы записали или перезаписали данные, после которого он перестанет работать. У обычного HDD это количество раз - намного выше.

Чтобы повысить надежность хранящихся на SSD данных, придумали делать SSD RAID. Интегрированные RAID контроллеры присутствуют на любой «вменяемой» современной материнской плате. Поэтому есть 3 повода, чтобы сделать рейд из таких дисков:

  • для улучшения надежности. За это отвечает RAID 1;
  • для повышения скорости передачи данных. Для этого можно сделать RAID 0;
  • всё и сразу. За это у нас отвечает RAID 10.

Начнем с RAID 0. Повышать скорость и без того высокоскоростного SSD диска - придет в голову не каждому, но уж если пришло, тогда вам надо знать, что улучшения будут заметны лишь при простых файловых операциях, например при действиях с файлами формата avi. В большинстве же приложений производительность обычно ограничивается центральным процессором, причем чаще всего скоростью какого-нибудь одного ядра. Важно, что скорость чтения записи мелких блоков данных все равно не поменяется:

При этом, конфигурация из одного SSD будет проще в использовании, ведь его прошивку легко обновить, а массив надо будет еще разобрать. Плюс ко всему, будет затруднена диагностика в случае появления проблем. И уж если вы собрались использовать рейд массив из SSD для установки туда игр - оно того не стоит, сильно лучше не станет. Время загрузки игровых локаций будет примерно таким же, как при использовании одного SSD диска, только для создания массива вам придется потратиться на дополнительный твердотельный накопитель.

Я не поленился и нашел на сайте overclockers график времени загрузки «Crysis Warhead» с рейдом и без него. В данном примере скорость загрузки и вовсе - одинаковая. Куда более важна мощность процессора, из-за которого процесс может затянуться.

И это еще без учета недостатков RAID 0 массива, как такового. Про преимущества и недостатки различных типов RAID массивов я уже рассказывал в статье про , не буду повторяться. Да и сама процедура создания массива из SSD - ничем не отличается от таковой, в случае с обычными жесткими дисками. Поэтому, рекомендую прочитать.

Хорошо, с RAID 0 разобрались. А есть ли смысл делать RAID 1 из SSD накопителей, спросите вы? Тут очень спорная ситуация. Теоретически создание массива первого уровня повысит надежность хранимых на твердотельных дисках данных. Массив RAID 1 спокойно переносит выход из строя любого одного диска, но ведь у SSD дисков ограниченное количество циклов перезаписи!

Появляется опасность возникновения ситуации, при которой оба диска могут выйти из строя, пускай и не одновременно, а один за другим, с небольшим интервалом по времени. Ситуация усугубляется, если твердотельные накопители одной модели, куплены в одно время и ранее не использовались.

А вот RAID 10 на 4-х SSD (минимальное необходимое количество) нивелирует недостатки предыдущих двух конфигураций. Тут вам и скорость - ничуть не хуже, чем у RAID 0. И надежность - на уровне. Согласитесь, выход из строя одновременно 3-х SSD накопителей в RAID массиве уже менее вероятен. А к поломке любых 2-х из них RAID 10 «относится» спокойно. В случае чего, вы успеете заменить их на исправные.

Какой SSD выбрать для создания массива?

Учитывая особенности массивов с чередованием, наиболее логично будет выбрать какие-нибудь стабильные и испытанные SSD, от которых уж точно можно не ждать неприятных «сюрпризов» в самый неподходящий момент. Таких дисков полно. Можете зайти в «яндекс маркет» и отсортировать их по количеству отзывов. В отзывах о популярных моделях вы с большой вероятностью найдете информацию о том, как ведет себя данный диск в массиве.

Когда делаете рейд, полезно проверять состояние SSD накопителей с помощью параметров SMART, чтобы контролировать появление ошибок в прошивках и контроллерах. Хорошим вариантом будет SSD, основанный на контроллерах SF (SandForce) - эти модели опробовали много пользователей, а ошибки были исправлены на программном и аппаратном уровнях.

SSD, основанные на SF контроллерах, обладают мощным набором параметров SMART, в результате чего вы сможете получить всю необходимую информацию о его состоянии. «Бонусом» также будет наличие большого количества технологий, в том числе «RAISE» и «DuraWrite», которые продляют долговечность флеш-памяти. В общем, по надежности такие SSD будут самым лучшим вариантом.

Могу порекомендовать поискать SSD на контроллере SF-2281. При этом, фирмы-производители могут быть разные. Кто-то предпочитает Intel за их качество, а кому-то придется «по душе» более дешевый Kingston HyperX. Но учтите, что модели с объемом в 480 Гб могут оказаться медленнее тех, что имеют на борту всего 240 Гб. Всё дело в том, что для первых - используется восьмикратное чередование NAND, а это вносит некоторые задержки.

Один SSD против двух в RAID | Два лучше, чем один?

Всего за несколько лет твердотельный накопитель превратился из дорогого экзотического продукта в один из основных комплектующих высокопроизводительных ПК или ноутбуков. Как уже известно, это было обусловлено двумя основными факторами: во-первых, SSD обладают гораздо более высоким быстродействием, чем жёсткие диски, и на порядок более эффективны. Во-вторых, цена за гигабайт NAND-памяти продолжает снижаться благодаря новым технологическими достижениям и экономии за счет роста производства.

Сегодня можно найти множество моделей ёмкостью 128 Гбайт по цене ниже $100. Переход на носители объёмом 256 Гбайт зачастую означает ещё более выгодную цену за гигабайт (почти всегда менее $1, а иногда и $ 0,60 за Гбайт).

Сейчас твердотельные накопители достигли в своем развитии такого уровня, что компьютерные энтузиасты должны принять важное решение: купить один ёмкий SSD или приобрести пару SSD-накопителей меньшей ёмкости и объединить их в конфигурацию RAID 0. Это в значительной степени вопрос производительности. Мы знаем, что производительность одиночных накопителей ограничена возможностями интерфейса SATA 6 Гбит/с. Но существуют ли задачи, требующие пропускной способности двух совместно работающих SSD (в особенности, при последовательной передаче данных)?

Мы попытаемся ответить на этот вопрос, протестировав производительность современных твердотельных накопителей разных ёмкостей. Компания Samsung предоставила нам шесть своих SSD: две модели Samsung 840 Pro по 128 Гбайт, которые будут противостоять модели ёмкостью 256 Гбайт и еще два накопителя по 256 Гбайт для сравнения с ёмкой моделью 512 Гб.

Если вы хотите более подробно узнать о Samsung 840 Pro , ознакомьтесь с нашим обзором "SSD Samsung 840 Pro: непревзойденная скорость, меньшее энергопотребление" , а также с нашими последними исследованиями в статье "Установка SSD в систему с SATA 3 Гбит/с: Есть ли смысл?" .

Один SSD против двух в RAID | Тестовый стенд и бенчмарки

Чтобы измерить и сравнить производительность различных конфигураций из двух и одного SSD Samsung 840 Pro , мы использовали наш свежий набор тестов для твердотельных накопителей. Сначала мы протестировали их по отдельности: по одному SSD объёмом 128, 256 и 512 Гбайт. Затем мы объединили два твердотельных накопителя по 128 Гбайт и два по 256 Гбайт в RAID 0 и провели серию тестов этих массивов.

Реалистичные тесты:

  1. Загрузка . Отсчёт начинается с момента, когда экран POST показывает нули и заканчивается, когда появляется рабочий стол Windows.
  2. Выключение . После трёх минут работы мы выключаем систему и начинаем отсчёт. Таймер останавливается, когда система выключена.
  3. Загрузка и Adobe Photoshop. После загрузки командный файл запускает редактор изображений Adobe Photoshop CS6 и загружает фотографию с разрешением 15 000x7 266 пикселей и размером 15,7 Мбайт. После Adobe Photoshop закрывается. Отсчёт начинается после экрана POST и заканчивается, когда Adobe Photoshop выключен. Мы повторяем тест пять раз.
  4. Пять приложений. После загрузки командный файл запускает пять различных приложений. Отсчёт начинается с запуском первого приложения и заканчивается с закрытием последнего. Мы повторяем тест пять раз.

Скриптовая последовательность для теста пяти приложений:

  • Загрузка презентации Microsoft PowerPoint и затем закрытие Microsoft PowerPoint.
  • Запуск рендерера командной строки Autodesk 3ds Max 2013 и рендеринг изображения в разрешении 100x50 пикселей. Картинка такая маленькая, потому что мы тестируем SSD, а не CPU.
  • Запуск встроенного в ABBYY FineReader 11 бенчмарка и конвертирование тестовой страницы.
  • Запуск встроенного в MathWorks MATLAB бенчмарка и его выполнение (один раз).
  • Запуск Adobe Photoshop CS6 и загрузка изображения, которое использовалось в третьем тесте реальной производительности, но в оригинальном формате TIF с разрешением 29 566x14 321 пикселей и размером 501 Мбайт.

Тестовый стенд

Конфигурация тестового стенда
CPU Intel Core i7-3770K Extreme Edition (22 нм Ivy Bridge), 4 ядра/4 потока, 3,5 ГГц, кэш L2 4 x 256 Кбайт, общий кэш L3 6 Мбайт, TDP 95 Вт, 3,9 ГГц max. Turbo Boost
Материнская плата Asus P8Z77-V Pro, Chipset: Intel Z77 Express, BIOS: 1805
Оперативная память 2 x 8 Гбайт DDR3-1600 CL10-10-10-27 (Corsair Vengeance CMZ16GX3M2A1600C10)
Системный SSD (тесты ввода/вывода и общей производительности) Samsung 840 Pro, 256 Гбайт, Прошивка DXM04B0Q, SATA 6 Гбит/с
Тестируемые SSD Samsung 840 Pro, 128 Гбайт, Прошивка DXM04B0Q, SATA 6 Гбайт/с
Samsung 840 Pro, 256 Гбайт, Прошивка DXM04B0Q, SATA 6 Гбайт/с
Samsung 840 Pro, 512 Гбайт, Прошивка DXM04B0Q, SATA 6 Гбайт/с
Питание Seasonic X-760 760 Вт, SS-760KM Active PFC F3
Тесты
Общая производительность h2benchw 3.16
PCMark 7 1.0.4
Производительность ввода/вывода IOMeter 2006.07.27
Fileserver-Benchmark
Webserver-Benchmark
Database-Benchmark
Workstation-Benchmark
Линейное чтение
Линейная запись
Случайное чтение блоков по 4 Кбайта
Случайная запись блоков по 4 Кбайта
Реалистичные тесты 3ds Max 2013
Finereader 11
Matlab 2012b
Photoshop CS6
Powerpoint 2010
ПО и драйверы
Операционная система Windows 8 x64 Pro
Intel RST 11.7.0.1013

Один SSD против двух в RAID | Результаты тестов

Скорость последовательного чтения и записи

Как и ожидалось, конфигурации из двух SSD на 128 Гбайт и 256 Гбайт в RAID 0 в нашем тесте последовательного чтения с лёгкостью обошли одиночные накопители. По сути, два диска ёмкостью 256 Гбайт с чередованием данных обеспечивают примерно вдвое более высокую производительность, чем один SSD. Два SSD по 128 Гбайт не так сильны в последовательной записи, но этого следовало ожидать, учитывая результат отдельного накопителя Samsung 840 Pro 128 Гбайт.

Согласно характеристикам Samsung, модель Samsung 840 Pro 128 Гбайт демонстрирует меньшую скорость чтения и записи, чем более ёмкие версии. Итак, мы получаем стабильные результаты.

Скорость произвольных операций блоками по 4 Кбайт (AS-SSD)

В настольных системах вы чаще всего сталкиваетесь с низкой глубиной очереди. Все конфигурации в этом случае работают почти одинаково. Фактически объединённые накопители даже немного медленнее, чем одиночные диски. Это происходит потому, что мы заполняем полосу пропускания флэш-памяти NAND. Для распределения нагрузки между несколькими устройствами на нескольких каналах необходим параллелизм.

Сразу после перехода на очень высокую глубину разница между работой обеих конфигураций и одиночными накопителями в RAID 0 становится более заметной. Жаль, что такие условия не характерны для задач, исполняемых на обычных ПК, и такие показатели Samsung 840 Pro можно наблюдать в основном в корпоративных средах.

Скорость произвольного чтения и записи блоками по 4 Кбайт (Iometer)

Наш тест Iometer очень хорошо демонстрирует связь между глубиной очереди и скоростью произвольного чтения и записи.

Диаграммы ниже отражают зависимость средней скорости передачи данных от глубины очереди, которая может составлять от 1 до 32. Как видно из измерений, в произвольном чтении блоками по 4 Кбайт лидируют две конфигурации RAID 0. С результатами скорости записи ситуация не так очевидна. Samsung 840 Pro на 512 Гбайт обходит два SSD ёмкостью 128 Гбайт, которые сами по себе лишь немного быстрее, чем одиночный SSD на 256 Гбайт.


Однако график роста производительности на разных глубинах очереди более нагляден. Операции чтения при низкой глубине очереди, похоже, снова ограничены возможностями NAND-памяти, и преимущества RAID 0 проявляются лишь при значительной степени параллелизма конфигурации. Запись даёт более высокую нагрузку: два накопителя по 256 Гбайт едва обходят один SSD на 512 Гбайт, а два Samsung 840 Pro по 128 Гбайт работают чуть быстрее, чем накопитель на 256 Гб.


Время доступа

Результаты тестов показывают, что все конфигурации с одним накопителем обеспечивают более низкий показатель времени доступа, чем объединённые массивы. Однако различия совсем небольшие.

Тесты различных профилей ввода/вывода (Iometer)

Диаграммы представляют среднюю производительность на глубине очереди от 1 до 32 в трёх тестовых профилях: базе данных (Database), веб-сервере (Web server) и рабочей станции (Workstation).


В тестовом профиле веб-сервера Iometer два массива RAID 0 явно обгоняют одиночные накопители на любой глубине очереди. Угадайте, какая модель доступа преобладает в этом тесте? Правильно, 100% чтение.


Тем не менее, профили базы данных и рабочей станции показывают меньшее масштабирование производительности при глубине очереди до восьми. До этого момента Samsung 840 Pro ёмкостью 512 Гбайт работает примерно так же, как два SSD по 256 Гбайт в RAID 0. Такая же тенденция прослеживается и для одного SSD на 256 Гбайт и двух объединённых дисков по 128 Гбайт.


Синтетические тесты PCMark 7 и PCMark Vantage демонстрируют практически идентичную производительность всех конфигураций SSD. Более заметные различия наблюдаются при отдельных рабочих нагрузках, но они, похоже, взаимоисключаемы.


PCMark Vantage


Тест копирования AS-SSD и общая производительность

Копирование файлов – это операция, для выполнения которой хорошо иметь производительную систему данных, такую, как SSD в конфигурации RAID. В трёх тестах копирования два SSD в связке превысили ограничения интерфейса SATA 6 Гбит/с, показав более высокую пропускную способность, чем может обеспечить любой накопитель в одиночку.

Общая производительность

Благодаря превосходной производительности массивы RAID 0 выигрывают в ряде синтетических тестов как по общему баллу AS-SSD, так и по производительности в условиях нагрузок, свойственных настольным системам. Но всё не так-то просто: реалистичные тесты рисуют иную картину. Высочайшая пиковая скорость последовательной передачи данных в синтетических тестах не обязательно означает такие же показатели в реальности.


Быстрее всего наша тестовая система под управлением загружается на одном Samsung 840 Pro 256 Гб, за ним следует модель ёмкостью 512 Гбайт. Два массива RAID 0 занимают третье и четвёртое места, а замыкает список один накопитель на 128 Гбайт. Тем не менее, разница между первым и последним местом составляет всего 1,1 секунды.


При выключении , лидирует массив RAID из двух SSD по 128 Гбайт. Опять же, перевес незначительный. Разница между первым и последним местом составляет всего лишь 0,4 секунды.


Наш третий реалистичный тест показывает почти такой же результат, что и первые два. Нет практически никакой разницы между конфигурациями из одного SSD или двух в RAID 0. В данном тесте мы загружаем , запускаем Adobe Photoshop CS6 и загружаем изображение.


Реалистичные тесты: Пять приложений

При проведении четвертого и последнего реалистичного теста мы вновь испытали дежавю. После загрузки мы запустили несколько приложений. Различные конфигурации SSD ведут себя идентично, лишь Samsung 840 Pro ёмкостью 512 Гбайт показал незначительный отрыв.


Один SSD против двух в RAID | RAID 0 - отличный вариант для тестов, но не в реальном мире

Забавная вещь тестирование SSD. Вы можете целый день запускать синтетические испытания, создавая нереальные рабочие нагрузки, которые раскрывают твердотельные накопители с одной стороны. Затем вы можете провести реалистичные тесты, которые рисуют совсем другую картину.

Для энтузиастов зачастую лучше всего подходит золотая середина. Большинство выполняемых задач действительно включают в себя основные операции, такие как открытие веб-браузера, редактирование изображений, работа с электронной почтой и просмотр видео. Но иногда от наших систем требуется более высокая производительность, например, для компиляции большого проекта, перемещения десятков гигабайт медиафайлов или захвата несжимаемых файлов AVI для анализа FCAT. В таких случаях хочется получить требуемое быстродействие.

Как мы и ожидали, два твердотельных накопителя в массиве RAID 0 демонстрируют феноменальные показатели последовательного чтения и записи. В обоих тестах показатели RAID 0 из двух Samsung 840 Pro по 256 Гбайт достигают почти 1 Гбайт/с. В значительной степени из-за ограничений интерфейса SATA 6 Гбит/с показатели одиночных накопителей достигают чуть более половины этих значений.

Конфигурации на базе RAID, несомненно, лидировали в первом тесте, показывая исключительные результаты в рамках последовательного чтения и записи, однако для одиночных накопителей игра ещё не была проиграна. Отдельные твердотельные накопители отвоевали позиции в последующих тестах, даже показав в некоторых из них лучшие результаты. Хорошим примером является скорость произвольных операций ввода/вывода. Накопители с чередованием данных, безусловно, обеспечивают больше IOPS, но только в случае, если вы даёте более четырёх команд сразу. Очерёдность в 32, 16 или даже 8 команд совсем не характерна для настольных ПК или рабочих станций. В результате на практике разница в производительности выражена гораздо меньше.

Одиночные SSD неоднократно лидировали в проведённых нами тестах. Разницу в производительности при перезагрузке и выключении , а затем при запуске различных приложений в лучшем случае можно назвать минимальной, а на практике она вообще не заметна. Иногда отдельные накопители даже умудрялись превзойти RAID массивы.

Если вы планируете обновление и хотите знать, стоит ли покупать пару SSD по 128 Гбайт и объединять их в RAID 0 или, например, просто купить один накопитель ёмкостью 256 Гбайт, ответ для нас очевиден: один накопитель большей ёмкости лучше. К примеру, в данный момент приобретение пары SSD Samsung 840 Pro по 128 Гбайт обойдется вам в $300. Модель ёмкостью 256 Гбайт стоит $240 (может быть, поэтому её сейчас и нет в наличии). Также встаёт вопрос о надёжности. Если один из дисков в конфигурации RAID 0 даёт сбой – то это касается всего массива. По крайней мере, в качестве основного системного накопителя один SSD является более безопасным вариантом.

Есть, конечно, и исключения. Предел интерфейса SATA 6 Гбит/с в настоящее время составляет 500+ Мбайт/с для чтения и до 500 Мбайт/с для записи. Иногда этого просто недостаточно. В качестве примера возьмите необработанные видеоролики в формате AVI, упомянутые ранее. Чтоб не пропускать кадры, мы используем четыре Crucial m4 в RAID 0. В этом случае RAID 0 – обязательное условие, и тот факт, что в массиве находится только отснятое видео, означает, что сбой массива приведет к относительно поверхностным потерям (за исключением стоимости диска). Если вы используете подобное приложение, то наверняка знаете, что один накопитель большого объёма не справится с такой задачей.

Когда сегодня заходит речь о производительности системы хранения обычно разговор сразу переходит на современные накопители SSD. При этом лидерами являются устройства с интерфейсом PCIe, способные обеспечить на последовательных операциях скорости на уровне нескольких гигабайт в секунду. Если же говорить о моделях с SATA, то здесь у быстрых устройств можно увидеть производительность до 600 МБ/с. На случайных операциях разница между этими классами тоже есть, но она уже менее заметна.

При этом продукты стандартного формата 2,5’’ с интерфейсом SATA имеют несколько преимуществ – они обычно дешевле, могут работать практически в любой системе нескольких последних поколений, из них удобно делать массивы для обеспечения большой емкости СХД (и/или повышения отказоустойчивости), их можно устанавливать в большом количестве в стандартные корпуса.

Использовать чипсетный RAID не очень интересно, так что в этот раз посмотрим, насколько хорошо аппаратные RAID-контроллеры могут работать в подобных конфигурациях. Заметим, что использованное оборудование преимущественно относится скорее к среднему массовому сегменту, чем к наиболее производительным продуктам. Все-таки на рынке уже есть контроллеры и накопители с интерфейсами SAS и PCIe, но это уже совсем другой ценовой уровень.

Выбранные условия тестирования, конфигурации и инструменты наверняка вызовут много вопросов, которые можно будет обсудить и наметить направления для следующих материалов. Все-таки подобные тестирования имеют слишком много вариантов и тонкостей настройки (в том числе и в зависимости от задач), что охватить их все в одной публикации просто невозможно.

Конфигурация тестовой системы была следующей:

    материнская плата Asus Z87-A

    процессор Intel Core i7-4770

    32 ГБ оперативной памяти

    отдельный SSD для операционной системы

В роли SSD-накопителей выступали четыре Samsung 850 EVO второго поколения по 1 ТБ. Отметим отдельно, что накопители перед этим отработали около семи месяцев в сервере с Linux и никогда не знали TRIM (и по время проведения данных тестов они этого тоже не узнали). При этом прошлая нагрузка была преимущественно на чтение. Объем проведенной записи не превышал двух емкостей диска. По всем параметрам накопители были в отличном состоянии.

Контроллеров удалось найти сразу пять – четыре модели от Adaptec/Microsemi и один от LSI/Broadcom (на фото попали не все):

    Adaptec ASR-6805

    Adaptec ASR-7805

    Adaptec ASR-81605ZQ

    AdaptecSmartRAID 3152-8i

Первый, конечно, уже морально устарел, однако по факту еще много где используется. Так что будет интересно посмотреть, насколько эффективно он сможет работать с новыми накопителями. Второй уже имеет 6 Гбит/с порты и работает на шине PCIe 3.0, так что вполне актуален. Третий представляет собой последнее поколение «классических» решений Adaptec и поддерживает 12 Гбит/с интерфейс для дисков SAS. Реализованную в данной модификации технологию maxCache в этой статье мы использовать не будем. SmartRAID был представлен в конце прошлого года и относится к актуальному поколению RAID-решений компании. К сожалению, он использует новую разметку и схему хранения конфигурации и поэтому не может быть использован для замены прошлых моделей с сохранением данных на дисковых томах. MegaRAID 9361-16i можно считать представителем актуальной линейки продуктов LSI для массивов с накопителями SATA и SAS.

SSD подключались через обычный бекплейн с раздельными каналами для каждого диска. От бекплейна к контроллеру шел один стандартный кабель SAS на четыре канала.

На контроллерах, если не указано обратное, были активированы кэши на чтение и на запись. Все контроллеры имели резервные батареи. Том создавался заново на каждом контроллере, хотя по факту серии 6-7-8 у Adaptec позволяют переносить его без потери данных «в любом направлении».

Поскольку мы ходим протестировать в основном контроллеры, то в качестве основной конфигурации для дискового массива был выбран RAID0 с блоком 256 КБ. При этом надо отметить, что подобное решение может быть использовано и на практике, когда хочется иметь относительно большой и быстрый массив на небольшие деньги. Конечно при условии, что есть резервные копии и время простоя не критично. Да и заявленные производителями цифры по надежности SSD все-таки внушают доверие.

В качестве тестового пакета выступал уже очень немолодой, но все еще пользующийся популярностью IOMeter. Прежде всего, отметим, что опций по выбору конфигураций как массива, так и собственно теста слишком много. С этой стороны это хорошо – вы можете подобрать их исходя из требований своих приложений. С другой – это делает бессмысленно долгим их перебор в рамках одной статьи. Так что были выбраны шесть вариантов шаблонов – три (чтение, запись, 50% чтения и 50% запись) на последовательные операции блоками по 256 КБ (совпадающим с размером блока массива) и три на случайные операции с блоками 4 КБ (наиболее часто используемый размер). В первой группе будем ориентироваться на МБ/с, во второй – на IOPS. Во время тестов использовался один worker, в настройках указывалось для Outstanding I/O значение 32. Тесты проводились на неразмеченном «сыром» томе.

BIOSы, драйвера и программное обеспечения для контроллеров использовались последний версий на момент проведения тестов.

Для начала посмотрим на результаты одного SSD, полученные на встроенном в материнскую плату контроллере.

Итак, один диск показывает скорость линейного чтения около 400 МБ/с и линейной записи около 160 МБ/с. На случайных операциях получается примерно 95 000 IOPS на чтении и 7 500 IOPS на записи. Для «использованных» устройств это, пожалуй, неплохие результаты. Напомним, что если оценивать современные жесткие диски, то можно рассчитывать примерно на 150-250 МБ/с на линейных операциях и 100-200 IOPS на случайных.

На следующих графиках представлены результаты тестирования массива со стандартными для дисковых массивов настройками контроллеров – когда для тома используется и кэш самого контроллера. Заметим, что при организации тома на SSD некоторые производители рекомендуют не использовать кэш контроллера для увеличения производительности и снижения задержек. Этот вариант мы рассмотрим далее.

Итак, на линейном чтении мы ожидаемо видим пропорциональный количеству дисков в массиве рост. Все контроллеры показывают около 1 600 МБ/с. А вот на записи и смешанной нагрузке уже можно что-то выбрать исходя из своих требований и возможностей. Даже немолодой Adaptec ASR-6805 смотрится не так уж и плохо в этом сценарии.

А вот случайные операции существенно меняют картину. Здесь уже играют роль возможности установленного на контроллерах процессора и можно увидеть существенные отличия. Старший контроллер Adaptec уже явный аутсайдер. Да и ASR-7805 тоже уже не может обеспечить существенного роста на случайном чтении и записи. Так что если важен именно такой сценарий - стоит смотреть на контроллеры последних поколений. Хотя и они способны только в два раза улучшить IOPS на чтении и записи при использовании четырех SSD. Отметим также, что на смешанной нагрузке заметно лучше других выступили Adaptec SmartRAID 3152-8i и LSI 9361-16i.

Посмотрим теперь, что будет если не использовать кэширование на контроллерах. Для модели Adaptec SmartRAID 3152-8i здесь используется специальный предусмотренный производителем режим SSD IO bypass.

На последовательных операциях чтения результаты мало отличаются от приведенных выше, что вполне ожидаемо. На записи контроллеры при отключении кэша ведут себя по разному и скорость может значительно меняться, так что стоит обратить внимание на тип нагрузки и подобрать оптимальный вариант

Еще более интересно выглядят цифры в сценарии случайных операций. Отключение кэша может существенно увеличить скорость доступа на чтении, но и в два раза снижает IOPS на операциях записи. Так что если не стоит задачи снижения времени отклика на большой нагрузке чтением, лучше оставить кэш включенным.

Заметим, что были протестированы только «крайние» варианты - включение кэшей и на чтение на запись и полное отключение кэширования. В реальности у контроллеров есть независимые настройки на чтение и запись, так что конфигураций можно получить больше. Учитывая, что параметры массива можно менять и «на лету» без потери данных, можно самостоятельно подобрать оптимальный для сценария применения вариант. Кроме того, и сами контроллеры могут иметь множество опций «тонкой настройки», которые стоит хотя бы быстро просмотреть.

Подведем итоги. «Бытовые» SATA SSD при работе с RAID-контроллерами чувствуют себя достаточно хорошо. Для раскрытия их возможностей желательно использовать контроллеры последних поколений, способные обеспечить высокие IOPS на случайных операциях. При этом существенное влияние на результаты оказывают настройки тома на контроллере и очень желательно подбирать их исходя из потребностей задач, поскольку «сделать хорошо» одновременно для всех сценариев невозможно.

В качестве бонуса - результаты тестирования конфигурации RAID5 на контроллере Adaptec ASR-7805 на том же оборудовании.



Коллеги с соседнего отдела (UCDN) обратились с довольно интересной и неожиданной проблемой: при тестировании raid0 на большом числе SSD, производительность менялась вот таким вот печальным образом:

По оси X - число дисков в массиве, по оси Y - мегабайтов в секунду.

Я начал изучать проблему. Первичный диагноз был простой - аппаратный рейд не справился с большим числом SSD и упёрся в свой собственный потолок по производительности.

После того, как аппаратный рейд выкинули и на его место поставили HBA, а диски собрали в raid0 с помощью linux-raid (его часто называют "mdadm" по названию утилиты командной строки), ситуация улучшилась. Но не прошла полностью -цифры возросли, но всё ещё были ниже рассчётных. При этом ключевым параметром были не IOPS"ы, а многопоточная линейная запись (то есть большие куски данных, записываемых в случайные места).

Ситуация для меня была необычной - я никогда не гонялся за чистым bandwidth рейдов. IOPS"ы - наше всё. А тут - надо многомногомного в секунду и побольше.

Адские графики

Я начал с определения baseline, то есть производительности единичного диска. Делал я это, скорее, для очистки совести.

Вот график линейного чтения с одной SSD.

Увидев результат я реально взвился. Потому что это очень сильно напоминало ухищрения, на которые идут производители дешёвых USB-флешек. Они помещают быструю память в районы размещения FAT (таблицы) в FAT32 (файловой системе) и более медленную - в район хранения данных. Это позволяет чуть-чуть выиграть по производительности при работе с мелкими операциями с метаданными, при этом предполагая, что пользователи, копирующие большие файлы во-первых готовы подождать, а во вторых сами операции будут происходить крупными блоками. Подробнее про это душераздирающее явление: lwn.net/Articles/428584

Я был уверен в том, что нашёл причину и корень всех проблем и уже готовил язвительное послание (см. подписи на картинке), объясняющее, какое унылое некачественное оборудование класса «удобрение» оказалось на тесте, и многие другие слова, которые лучше не повторять.

Хотя меня смутила версия ядра на стенде - 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 зависит от latency худшего из дисков

Если мы пишем много данных, то запись обычно идёт большими кусками. Эти куски разделяются на меньшие куски драйвером raid0, который записывает их одновременно на все диски из raid0. За счёт этого мы получаем N-кратное увеличение производительности. (В raid0 на N дисков).

Но давайте рассмотрим запись подробнее…

Допустим, у нас raid использует chunk"и размером в 512k. В массиве 8 дисков. Приложение хочет записать много данных, и мы пишем на raid кусками по 4Мб.

Теперь следите за руками:

  1. raid0 получает запрос на запись, делит данные на 8 кусков по 512кб каждый
  2. raid0 отправляет (параллельно) 8 запросов на 8 устройств по записи 512кб (каждый своё)
  3. raid0 ожидает подтверждение от всех 8 устройств о завершении записи
  4. raid0 отвечает приложению «записал» (то есть возвращает управление из вызова write())
Представим теперь, что у дисков запись произошла за такое время (в милисекундах):
Диск 1 Диск 2 Диск 3 Диск 4 Диск 5 Диск 6 Диск 7 Диск 8
4.1 2.2 1.9 1.4 1.0 9.7 5.4 8.6

Вопрос: за какое время произойдёт запись блока в 4Мб на этот массив? Ответ: за 9.7 мс. Вопрос: какая будет в это время утилизация у диска №4? Ответ: порядка 10%. А у диска №6? 100%. Заметим, для примера я выбрал наиболее экстремальные значения из лога операций, но и при меньшем расхождении проблема будет сохраняться. Сравните график чтения и записи (привожу ту же картинку ещё раз):


Видите, как неровно гуляет запись в сравнении с чтением?

У SSD дисков latency на запись очень неровная. Связано это с их внутренним устройством (когда за раз записывается блок большого размера, при необходимости, перемещая и перенося данные с места на место). Чем больше этот блок, тем сильнее пики latency (то есть сиюминутные провалы в производительности). У обычных магнитных дисков графики совсем другие - они напоминают ровную линию практически без отклонений. В случае линейного последовательного IO эта линия проходит высоко, в случае постоянного случайного IO - постоянно низко, но, ключевое - постоянно. Latency у жёстких дисков предсказуема, latency у SSD - нет. Заметим, это свойство есть у всех дисков. У самых дорогих latency оказывается смещена (либо очень быстро, либо очень-очень быстро) - но разнобой всё равно сохраняется.

При подобных колебаниях latency производительность у SSD, в среднем, отличная, но в отдельные моменты времени запись может занять чуть больше, чем в другое время. У тестируемых дисков она падала в этот момент до позорных величин порядка 50Мб/с (что ниже, чем линейная запись у современных HDD раза в два).

Когда на устройство запросы идут стопкой и независимо, это не влияет. Ну да, один запрос выполнился быстро, другой медленно, в среднем всё хорошо.

Но если запись зависит от всех дисков в массиве? В этом случае, любой «тормознувший» диск тормозит всю операцию целиком. В результате, чем больше дисков массиве, тем больше вероятность, что хотя бы один диск отработает медленно. Чем больше дисков, тем больше кривая производительности их суммы в raid0 начинает приближаться к сумме производительности их минимумов (а не средних значений, как хотелось бы).

Вот график реальной производительности в зависимости от числа дисков. Розовая линия - предсказания, базирующиеся на средней производительности дисков, синяя - фактические результаты.


В случае 7 дисков различия составили около 10%.

Простое математическое симулирование (с данными по latency реального диска для ситуации множества дисков в массиве) позволило предсказать, что по мере увеличения числа дисков деградация может дойти до 20-25%.

В отличие от замены HBA или версии драйвера, в этом случае ничего существенно поменять уже нельзя было, и информацию просто приняли к сведению.

Что лучше - HDD или SSD?

Сразу скажу: худшее ожидание от SSD оказывается лучше, чем постоянное от HDD (если прозвучало слишком сложно: SSD лучше, чем HDD).

Другое дело, что массив из 20-30 HDD - это нормально. 30 SSD в raid0 вызовут слюнки у гиков и приступ печёночной колики у финансового отдела. То есть обычно сравнивают множество HDD c несколькими SSD. Если же мы отнормируем цифры по IOPS"ам (охохо), то есть добьёмся от HDD тех же попугаев, что от SSD, то цифры станут, внезапно, другими - массив из большого числа HDD будет сильно обгонять массив из нескольких SSD по скорости записи.

Другое дело, что крупный массив из HDD - это уже экстрим другого рода, и там ждут сюрпризы из-за общего использования шины, производительности HBA и особенностей поведения бэкплейнов.

А raid1/5/6?

Легко понять, что для всех этих массивов проблема с ожиданием «самого медленного» сохраняется, и даже слегка усиливается (то есть проблема возникает при меньшем размере блока и меньшей интенсивности нагрузки).

Заключение

Админское: Не люблю LSI. При обнаружении каких-либо нареканий в работе дисков при участии LSI в системе отладку следует начинать с сравнения поведения разных версий дравйера mpt2sas. Это как раз тот случай, когда смена версии может влиять на производительность и стабильность самым драматичным образом.

Академическое: При планировании высоконагруженных систем с использованием SSD в raid0 следует учитывать, что чем больше в массиве SSD, тем сильнее становится эффект от неравномерной latency. По мере роста числа устройств в raid0 производительность устройства начинает стремиться к произведению числа устройств на минимальную производительность дисков (а не среднюю, как хотелось бы ожидать).

Рекомендации: в случае с подобным типом нагрузки следует стараться выбирать устройства с наименьшим разбросом по latency на запись, по возможности использовать устройства с большей ёмкостью (для уменьшения числа устройств).

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