Рейд 0 из 2 ssd. Как работает массив дисков. Тестовый стенд и методика тестирования

Приветствую всех, уважаемые читатели блога сайт! В этой статье я вновь затрону тему 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, а это вносит некоторые задержки.

Интегрированные 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.

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

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

Действительно, причин, по которым технология RAID не должна оказывать положительный эффект в случае с SSD, на первый взгляд не видно. Твердотельные накопители показывают хорошее быстродействие при работе с небольшими блоками данных, а чипсетные RAID-контроллеры предлагают прямую связь с процессором с пропускной способностью, вполне достаточной для получения скоростей, превосходящих SATA 6 Гбит/сек в несколько раз. Так что существенного увеличения производительности работы можно ожидать и от RAID 0 на базе SSD. Идея кажется особенно привлекательной ещё и потому, что она не сопряжена ни с какими дополнительными затратами. Общая ёмкость массива RAID 0 представляет собой сумму ёмкостей входящих в него накопителей, а стоимость SSD прямо пропорциональна их ёмкости. То есть, если для создания массива пользоваться «бесплатным» RAID-контроллером встроенным в чипсет материнской платы, то в итоге мы получим примерно такую же стоимость хранения гигабайта информации, как и в случае одиночного диска большего размера.

Учитывая кажущуюся привлекательность создания RAID 0 массивов из твердотельных накопителей, мы решили проверить их работу на практике. Компания Kingston любезно согласилась предоставить нам на тесты два 120-гигабайтных и один 240-гигабайтный SSD своей топовой серии HyperX, что и дало возможность прямого сравнения RAID 0 массива из двух дисков с одиночным накопителем аналогичного объёма.

Подробнее о Kingston HyperX SSD

Накопители серии Kingston HyperX SSD – это типичные решения на базе контроллеров SandForce второго поколения, нацеленные на энтузиастов. Они базируются на хорошо знакомом нам чипе SF-2281 и комплектуются 25-нм синхронной NAND-памятью производства компаний Intel или Micron. Проще говоря, накопители HyperX используют производительный вариант актуальной платформы SandForce и по своим внутренностям аналогичны таким популярным моделям как Corsair Force Series GT или OCZ Vertex 3.

Выделяет Kingston HyperX SSD в ряду подобных SandForce-накопителей разве только более броский дизайн корпуса, да и фирменная программа Toolbox, позволяющая просматривать различную информацию о диске, включая значение атрибутов S.M.A.R.T.

Утилита эта поразительно похожа на OCZ Toolbox с вырезанной функцией обновления прошивки (для этого у Kingston предлагается специализированная программа) и без возможности Secure Erase.



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



Причина различий состоит в количестве используемых в составе SSD оконечных NAND-устройств. Так как 25-нм кристаллы MLC флэш-памяти имеют объём 8 Гбайт, 120-гигабайтный диск содержит 16 флэш-устройств, в то время как более ёмкая модификация укомплектована 32 устройствами. Учитывая, что контроллер SandForce SF-2281 имеет восьмиканальную архитектуру, накопители с разной емкостью вынуждены использовать для каждого канала технику чередования обращений к флэш-устройствам с разной кратностью. Так, в случае 120-гигабайтного SSD чередование двукратное, а в случае 240-гигабайтного накопителя – четырёхкратное. Большая кратность чередования гарантирует более высокую производительность, так как вместо ожидания готовности NAND-устройства после очередной операции контроллер имеет возможность перейти к обслуживанию следующего устройства. По сути это похоже на реализацию подхода RAID 0, но внутри накопителя, на уровне контроллера SandForce.

Тестовая система

Для тестирования SSD-накопителей мы собрали специальную систему, построенную на материнской плате с набором логики Intel H67, который, как известно, обладает парой SATA 6 Гбит/сек портов. Именно на этих портах мы и испытываем твердотельные накопители.

В целом, тестовая конфигурация включает следующий набор оборудования:

Процессор – Intel Core i5-2400 (Sandy Bridge, 4 ядра, 3.1 ГГц, технологии EIST и Turbo Boost –отключены);
Материнская плата - Foxconn H67S (версия BIOS A41F1P01);
Память - 2 x 2 GB DDR3-1333 SDRAM DIMM 9-9-9-24-1T;
Системный накопитель – Crucial m4 256 Гбайт (CT256M4SSD2);
Тестовые накопители:

Kingston HyperX 120 Гбайт (SH100S3/120G, прошивка 332);
Kingston HyperX 240 Гбайт (SH100S3/240G, прошивка 332);

Операционная система - Microsoft Windows 7 SP1 Ultimate x64;
Драйверы:

Intel Chipset Driver 9.2.0.1030;
Intel HD Graphics Driver 15.22.1.2361;
Intel Management Engine Driver 7.1.10.1065;
Intel Rapid Storage Technology 10.8.0.1003.

Проблемы конфигурирования RAID 0 из SSD

Для создания массива из SSD-дисков мы решили пользоваться стандартным RAID-контроллером, встраиваемым в современные наборы системной логики. Чипсетные SATA-контроллеры хорошо показывают себя в работе с одиночными SSD, и вполне подходят для наших целей, тем более что врождённая поддержка RAID уже есть в большинстве современных систем, то есть не требует дополнительных финансовых затрат.

Наша стандартная тестовая платформа основывается на LGA1155-процессоре и системной плате с чипсетом H67, SATA-контроллер которого имеет встроенную поддержку RAID-массивов. Для её активации необходима смена режима работы SATA-контроллера с AHCI на RAID в BIOS. Однако простое изменение соответствующей опции в BIOS Setup приведёт скорее всего к неработоспособности операционной системы, выражающейся в возникновении «синего экрана» на этапе загрузки. Причина состоит в том, что драйвер RAID в Windows по умолчанию отключен. Обойти эту проблему можно двумя путями. Либо заново, уже в RAID-режиме, переустановить Windows, и тогда необходимый драйвер автоматически включится при установке. Либо, непосредственно перед изменением настроек SATA-контроллера в BIOS, установить в 0 значение переменной Start, находящейся в системном реестре в ветке HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Iastorv, а затем переустановить драйвер SATA-контроллера Intel Rapid Storage Technology (RST) уже в RAID-режиме.

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



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



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

И хотя скорость одиночного Kingston HyperX SSD 120 Гбайт при работе с блоками данных растёт при увеличении размера блока, это ещё ничего не значит.


Драйвер Intel Rapid Storage Technology (RST) способен достаточно интеллектуально обращаться с очередью запросов, обеспечивая высокую скорость RAID 0-массива из SSD и при использования небольших страйп-блоков. В доказательство этого мы оценили базовые характеристики производительности RAID 0-массива из пары Kingston HyperX SSD 120 Гбайт с разными размерами страйпа.

Data stripe size = 4 KB:



Data stripe size = 8 KB:



Data stripe size = 16 KB:



Data stripe size = 32 KB:



Data stripe size = 64 KB:



Data stripe size = 128 KB:



Как показывают результаты AS SSD Benchmark, скоростные показатели массива со страйп-блоками разного размера достаточно близки. Тем не менее, зависимость скорости последовательных операций, а также скорости работы с мелкими блоками при высокой глубине очереди от размера страйпа прослеживается. Наилучшее сочетание показателей производительности массива достигается при использовании 32-килобайтных блоков, так что, очевидно, настройки по умолчанию не являются оптимальными. Так как меньший размер страйпа более выгоден при работе с небольшими файлами, в случае использования дисков, основанных на платформе SandForce второго поколения, мы рекомендуем использовать размер блока в 32 Кбайта. Именно с такой настройкой мы создавали и используемый в основной части тестирования массив.



При создании RAID-массивов важно иметь в виду и ещё одну немаловажную деталь. Как только массив сформирован, он начинает рассматриваться системой как единое целое, и прямой доступ к составляющим его накопителям становится невозможен. Это – достаточно неприятный момент, сулящий серьёзные практические неудобства. Имея RAID-массив из SSD дисков, вы не сможете ни обновить их прошивку, ни посмотреть параметры S.M.A.R.T., ни выполнить операцию Secure Erase. Но что самое неприятное, учитывая специфику такого массива, операционная система не сможет передать накопителям команду TRIM, посредством которой возможно эффективное противодействие деградации производительности SSD.

Производительность

Скорость случайного и последовательного чтения/записи «свежего» накопителя

Для измерения скорости случайного и последовательного чтения и записи мы используем тест CrystalDiskMark 3.0.1. Этот бенчмарк удобен тем, что позволяет измерять скоростные характеристики SSD-накопителей как на случайных несжимаемых данных, так и при использовании полностью сжимаемых шаблонных данных. Поэтому, на приводимых далее диаграммах приводится по два числа – максимальная и минимальная скорость работы накопителя. Реальные же показатели, соответственно, будут лежать внутри изображённых диапазонов в зависимости от того, как их сможет уплотнить контроллер SF-2281.

Заметим, что приведенные в этом разделе результаты тестов производительности относятся к «свежему» (FOB - Fresh Out-of-Box) недеградировавшему состоянию накопителя.


















С точки зрения практических показателей быстродействия 120-гигабайтный SSD работает существенно медленнее своего 240-гигабайтного собрата. Тем не менее, RAID 0-массив из пары 120-гигабайтных дисков всё же превосходит по скорости единичный накопитель ёмкостью 240 Гбайт. Как видим, технология RAID 0 позволяет получить выигрыш в скорости линейных операций и при работе с небольшими блоками при использовании очереди запросов большой глубины. Обычные случайные же операции с 4-килобайтными блоками не ускоряются, более того, наблюдается даже некоторое замедление, обусловленное задержками на необходимость дополнительного арбитража.

Деградация и производительность в устойчивом состоянии

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

Например, если мы будем непрерывно записывать данные на флэш-накопитель, зависимость скорости записи от времени примет примерно следующий вид.



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

Впрочем, картина катастрофического падения скорости, показанная на графике выше, несколько искусственна и характерна лишь для случая непрерывной и безостановочной записи. В реальности же, находясь в состоянии покоя, контроллеры современных SSD-дисков частично восстанавливают производительность, предварительно освобождая неиспользуемые страницы флэш-памяти. На это направлено два ключевых алгоритма: Idle-Time Garbadge Collection (сборка мусора) и TRIM. Однако в случае с массивом RAID 0 ситуация осложняется тем, что операционная система не имеет прямого доступа к SSD, в результате чего технология TRIM не работает. В связи с этим вполне вероятна ситуация, что спустя какое-то время эксплуатации единичный диск может оказаться существенно лучше RAID-массива.

Никто не мешает проверить это предположение. Для получения картины деградации дисков и RAID 0 массива мы, основываясь на методике SNIA SSSI TWG PTS, провели специальные тесты. Их суть состоит в том, что мы последовательно измерили скорость операций записи в четырёх случаях. Вначале - для «свежего» состояния массива и накопителей. Затем – после полного двукратного заполнения информацией накопителей и RAID-массива. Далее – после получасовой паузы, дающей контроллеру возможность частично восстановить производительность накопителя за счёт операции сборки мусора. И в завершение – после подачи команды TRIM.

Измерения выполнялись при помощи синтетического бенчмарка IOMeter 1.1.0 RC1, в котором мы отслеживали скорость случайной записи при работе с выровненными относительно страниц флэш-памяти блоками объёмом 4 Кбайт с глубиной очереди запросов 32 команды. При тестировании использовалось заполнение псевдослучайными данными.



Деградация производительности – это не пустой звук, а реально существующая проблема. Как видим, скорость накопителей действительно снижается в разы. Причём, как это ни прискорбно, но сборка мусора у накопителей на основе контроллера SF-2281 практически не работает. Несмотря на то, что накопители с этой архитектурой имеют резервную область, составляющую примерно 7 % от общей ёмкости, это им совершенно не помогает. Возвращает производительность к более-менее нормальному уровню лишь команда TRIM. Однако так как для RAID-массивов она не работает, в конечном итоге одиночные накопители могут предложить куда лучшее быстродействие на операциях записи, чем составленный из них массив.

Всё это означает, что те скорости записи, которые были приведены на диаграммах в предыдущем разделе, отражают лишь незначительную часть общей картины. На самом же деле, после того, как SSD перейдут из свежего в использованное состояние, соотношение результатов коренным образом поменяется. Скорость записи в этом случае будет совсем иной: результаты её измерения бенчмарком CrystalDiskMark 3.0.1 приводятся на следующих диаграммах.









Как видим, в процессе использования скорость работы RAID 0 массива из SSD снижается до такой степени, что на операциях с 4-килобайтными блоками он становится даже медленнее одиночного 120-гигабайтного накопителя, производительность которого поддерживается на хорошем уровне командой TRIM. Так что в реальной жизни создание массива RAID 0 из SSD оправдывается преимущественно высокими скоростями чтения, которые не подвержены снижению по мере заполнения накопителя данными.

Тесты в Futuremark PCMark 7

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

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



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

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





















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

Тесты в Intel NAS Performance Toolkit

Intel NASPT – это ещё один основанный на использовании реальных сценариев тест дисковой подсистемы. Также как и PCMark 7, он воспроизводит заранее подготовленные типовые шаблоны дисковой активности, попутно измеряя скорость их прохождения. Данный бенчмарк вместе с PCMark 7 позволяет получить отличную иллюстрацию производительности дисковой подсистемы в реальных задачах. Также как и в предыдущем случае, тестирование мы выполняли с накопителями, находящимися в устоявшемся «использованном» состоянии.



Intel NASPT совершенно однозначно ставит на первое место по производительности RAID 0 массив, состоящий из пары 120-гигабайтных накопителей. Причём, скорость такого двухдискового массива по данным теста превосходит производительность одного SSD почти что вдвое. Впрочем, столь заметный успех технологии RAID способны омрачить некоторые результаты, полученные в индивидуальных подтестах.




































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

Выводы

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

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

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

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

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

Один 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 – обязательное условие, и тот факт, что в массиве находится только отснятое видео, означает, что сбой массива приведет к относительно поверхностным потерям (за исключением стоимости диска). Если вы используете подобное приложение, то наверняка знаете, что один накопитель большого объёма не справится с такой задачей.

Коллеги с соседнего отдела (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 на запись, по возможности использовать устройства с большей ёмкостью (для уменьшения числа устройств).

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