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

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

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

В этом материале мы посмотрим на то, какой прирост дисковой производительности можно получить сегодня, если вместо одного SSD установить в свой компьютер пару твердотельных накопителей. Компания Kingston любезно согласилась предоставить нам на тесты два 240-гигабайтных и один 480-гигабайтный SSD своей флагманской серии HyperX 3K, что и дало возможность прямого сравнения RAID 0-массива из двух дисков с одиночным накопителем.

⇡#Немного о RAID 0 из SSD

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

Массивы уровня RAID 0 поддерживаются большинством материнских плат средней и высшей ценовой категории. Однако надо иметь в виду, что наилучшим выбором для создания RAID 0 из SSD будут материнские платы на базе интеловских чипсетов последнего поколения. Преимущества Intel H87, B87 и Z87 заключаются в том, что они имеют поддержку более двух портов SATA 6 Гбит/с с одной стороны, а с другой — работают под управлением продвинутого драйвера Intel Rapid Storage Technology (RST). Этот драйвер специально оптимизирован для RAID 0-массивов из SSD и предлагает уникальные на сегодняшний день возможности: поддержку команды TRIM и прямой доступ к накопителям диагностическим и обслуживающим утилитам для всех входящих в массив дисков. Никакие другие контроллеры подобной функциональности в настоящее время не предлагают. В остальных платформах RAID-массив будет представляться в системе в виде виртуального физического диска без возможности какого-либо доступа к входящим в него SSD.

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

Дешевые способы поддать жару системе хранения с помощью SSD

В статьях про СХД из «конспекта админа» практически не рассматривались технологии софтовой организации дискового массива. Кроме того, за кадром остался целый пласт относительно дешевых сценариев ускорения хранилищ с помощью твердотельных дисков.

Поэтому в этой статье рассмотрю три неплохих варианта использования SSD-дисков для ускорения подсистемы хранения.

Почему просто не собрать массив из SSD — немного теории и рассуждений на тему

Чаще всего твердотельные накопители рассматривают просто как альтернативу HDD, с большей пропускной способностью и IOPS. Однако, такая замена «в лоб» часто стоит слишком дорого (брендовые диски HP, например, стоят от $2 000), и в проект возвращаются привычные накопители SAS. Как вариант, быстрые диски просто используются точечно.

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

В серверах используют SSD с интерфейсом SATA, либо более производительные SAS и PCI-E. Большинство представленных на рынке серверных SSD с интерфейсом SAS продаются под брендами HP, Dell и IBM. К слову, даже в брендовых серверах можно использовать диски OEM-производителей Toshiba, HGST (Hitachi) и других, которые позволяют сделать апгрейд максимально дешевым при схожих характеристиках.

С широким распространением SSD был разработан отдельный протокол доступа к дискам, подключенным к шине PCI-E — NVM Express (NVMe). Протокол разработан с нуля и значительно превосходит своими возможностями привычные SCSI и AHCI. С NVMe обычно работают твердотельные диски с интерфейсами PCI-E, U.2 (SFF-8639) и некоторые M.2, которые быстрее обычных SSD более чем вдвое. Технология относительно новая, но со временем она обязательно займет свое место в самых быстрых дисковых системах.

Немного про DWPD и влияние этой характеристики на выбор конкретной модели.

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

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

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

Расширяем кэш RAID-контроллера

От размера и скорости кэша RAID-контроллера зависит скорость работы массива в целом. Расширить этот кэш можно с помощью SSD. Технология напоминает решение Smart Response от Intel.

При использовании подобного кэша данные, которые используются чаще, хранятся на кэширующих SSD, с которых производится чтение или дальнейшая запись на обычный HDD. Режимов работы обычно два, аналогично привычному RAID: write-back и write-through.

В случае write-through ускоряется только чтение, а при write-back — чтение и запись.

Подробнее об этих параметрах вы можете прочитать под спойлером.

Для работы обычно требуется специальная лицензия или аппаратный ключ. Вот конкретные названия технологии у популярных на рынке производителей:

  • LSI (Broadcom) MegaRAID CacheCade. Позволяет использовать до 32 SSD под кэш, суммарным размером не более 512 ГБ, поддерживается RAID из кэширующих дисков. Есть несколько видов аппаратных и программных ключей, стоимость составляет около 20 000 р;
  • Microsemi Adaptec MaxCache. Позволяет использовать до 8 SSD в кэше в любой конфигурации RAID. Отдельно лицензию покупать не нужно, кэш поддерживается в адаптерах серии Q;
  • HPE SmartCache в серверах ProLiant восьмого и девятого поколения. Актуальная стоимость доступна по запросу.

Схема работы SSD-кэша предельно проста — часто используемые данные перемещаются или копируются на SSD для оперативного доступа, а менее популярная информация остается на HDD. Как итог, скорость работы с повторяющимися данными значительно возрастает.

В качестве иллюстрации работы RAID-кэша на базе SSD можно привести следующие графики:

StorageReview — сравнение производительности разных массивов при работе с базой данных: использованы обычные диски и их альтернатива на базе LSI CacheCade.

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

Быстрый кэш без контроллера

Помимо программного RAID существует и программный SSD-кэш. В Windows Server 2012 появилась интересная технология Storage Spaces, которая позволяет собирать RAID-массивы из любых доступных дисков. Накопители объединяются в пулы, на которых уже размещаются тома данных — схема напоминает большинство аппаратных систем хранения. Из полезных возможностей Storage Spaces можно выделить многоярусное хранение (Storage Tiers) и кэш записи (write-back cache).

Storage Tiers позволяет создавать один пул из HDD и SSD, где более востребованные данные хранятся на SSD. Рекомендованное соотношение количества SSD к HDD 1:4-1:6. При проектировании стоит учитывать и возможность зеркалирования или четности (аналоги RAID-1 и RAID-5), так как в каждой части зеркала должно быть одинаковое количество обычных дисков и SSD.

Кэш записи в Storage Spaces ничем не отличается от обычного write-back в RAID-массивах. Только здесь необходимый объем «откусывается» от SSD и по умолчанию составляет один гигабайт.

Общая схема работы выглядит так:

  • При записи на чистый диск данные сохраняются на SSD;
  • Когда SSD заполнены, данные пишутся в write-back кэш, который записывается на HDD;
  • Если кэш переполнен, запись ведется напрямую на HDD;
  • В процессе работы данные реорганизуются так, чтобы «горячая» информация хранилась на
  • SSD, а «холодная» — на HDD.

Если рассматривать другие операционные системы, то технологий доступно еще больше. Например, в GNULinux есть bcache, EnhanceIO, dm-cache и lvmcache, L2ARC в ZFS, Cache Tiering и Cache Pool в Cephs.

Если говорить о программном ускорении дисковой системы, то интересным вариантом выглядит использование для этих целей оперативной памяти. Существует ряд приложений, позволяющих «откусить» часть RAM под кэш — например PrimoCache. Подобные решения, помимо ускорения работы, помогут и продлить жизнь SSD. Главное предусмотреть защиту от проблем с питанием и не размещать в таких разделах слишком важные данные.

Итого

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



⇡#Выбираем SSD для RAID: Kingston HyperX 3K

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

И, как это ни удивительно, здесь неплохим вариантом могут быть накопители, построенные на контроллерах семейства SandForce. Эти модели, вне всяких сомнений, опробованы многочисленной армией их владельцев, и все свойственные им детские болезни давно и успешно излечены как на программном, так и на аппаратном уровне. Более того, флеш-диски с контроллерами SF-2281 имеют и ещё два важных преимущества. Во-первых, набор параметров S.M.A.R.T. у таких моделей очень подробен и сильно превосходит S.M.A.R.T. других SSD, позволяя получать доскональную картину состояния флеш-памяти. Во-вторых, SandForce-накопители располагают мощным набором технологий (в частности, DuraWrite и RAISE), направленных на продление жизненного цикла флеш-памяти. Поэтому с точки зрения надёжности среди потребительских SSD их можно причислить к одним из лучших вариантов.

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

Выбирая же среди многочисленных поставщиков SSD на базе контроллера SF-2281, остановиться, очевидно, стоит на наиболее крупных и авторитетных. Кто-то наверняка предпочтёт твердотельные накопители Intel, но нам понравились флеш-приводы Kingston HyperX 3K, которые зачастую стоят немного дешевле. Именно с ними мы и проводили наши эксперименты.

Накопители серии Kingston HyperX 3K — это типичные решения на базе контроллеров SandForce второго поколения. С ними мы уже сталкивались более года назад, но с момента прошлого знакомства многое изменилось. А именно, 25-нм флеш-память производства консорциума IMFT, устанавливавшаяся в них ранее, отошла к категории раритетной, поэтому Kingston использует теперь совсем другую память — 19-нм MLC NAND c интерфейсом Toggle Mode компании Toshiba. Надо сказать, что замена флеш-памяти произошла без каких-либо анонсов, несмотря на то, что при этом несколько изменились и заявленные в спецификациях показатели производительности.

Но выглядят накопители Kingston HyperX 3K сегодня точно так же, как и полтора года назад:

Флеш-приводы этой серии сохранили свой привлекательный внешний вид и высокое качество сборки. Внутренности же обновлённых моделей Kingston HyperX 3K отличаются от применявшихся ранее плат как набором микросхем флеш-памяти, так и цветом.

Kingston HyperX 3K 240 Гбайт

Kingston HyperX 3K 480 Гбайт

Паспортные характеристики участвующих в тестах моделей Kingston HyperX 3K ёмкостью 240 и 480 Гбайт с флеш-памятью Toshiba приведены в следующей таблице:

ПроизводительKingston СерияHyperX 3K Модельный номерSH103S3/240GSH103S3/480G Форм-фактор2,5 дюйма ИнтерфейсSATA 6 Гбит/с Ёмкость240 Гбайт480 Гбайт Конфигурация Микросхемы памяти: тип, интерфейс, техпроцесс, производительMLC, Toggle Mode DDR, 19 нм, Toshiba Микросхемы памяти: число / количество NAND-устройств в чипе16/216/4 КонтроллерSandForce SF-2281 Буфер: тип, объемНетНет Производительность Макс. устойчивая скорость последовательного чтения555 Мбайт/с540 Мбайт/с Макс. устойчивая скорость последовательной записи510 Мбайт/с450 Мбайт/с Макс. скорость произвольного чтения (блоки по 4 Кбайт)86000 IOPS74000 IOPS Макс. скорость произвольной записи (блоки по 4 Кбайт)73000 IOPS32000 IOPS Физические характеристики Потребляемая мощность: бездействие/чтение-запись0,455 Вт/2,11 Вт Ударопрочность20 g MTBF (среднее время наработки на отказ)1 млн час TBW (суммарное число записываемых байтов)192 Тбайт384 Тбайт AFR (annualized failure rate)НД Габаритные размеры: ДхВхГ100х69,85х9,5 мм МассаНД Гарантийный срок3 года Средняя розничная цена, руб.

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



⇡#Создание массива RAID 0 на базе Intel RST

Компания Intel проделала большую работу с тем, чтобы сделать создание RAID-массивов в платформах на базе её процессоров простой и прозрачной процедурой. На сегодняшний день драйвер Intel RST полностью ограждает пользователей от необходимости общения с BIOS RAID-контроллера и единственное, что необходимо сделать, чтобы получить возможность объединения SSD в массивы, — это переключить интегрированный в набор системной логики SATA-контроллер в RAID-режим через BIOS материнской платы.

Правда, здесь может возникнуть неприятность с операционной системой, которая после смены режима SATA-контроллера откажется загружаться и будет вываливаться в «синий экран». Причина состоит в том, что если при установке операционной системы RAID-контроллер не был включён, то необходимый драйвер деактивируется в ядре OC. Но в Windows 8 и 8.1 Microsoft предусмотрела достаточно простую процедуру решения проблемы без необходимости новой переустановки операционной системы, выполняемую через «безопасный режим». До смены режима SATA-контроллера (если система уже не стартует, но настройки SATA-контроллера в BIOS следует вернуть к первоначальным) необходимо открыть командную строку с правами администратора и выполнить команду bcdedit /set {current} safeboot minimal. Это запрограммирует старт OC в безопасном режиме, и при следующей перезагрузке можно будет беспрепятственно изменить режим SATA-контроллера в BIOS. Когда после активации RAID система загрузится в безопасном режиме, тип загрузки следует вернуть к обычному варианту, для чего в командной строке нужно выполнить команду bcdedit /deletevalue {current} safeboot. Больше встречи с «синим экраном» при старте возникать не должно.

Обладателям же Windows 7 перед сменой режима контроллера придётся повозиться серьёзнее, в этом случае без правки реестра не обойтись. Подробная информация по решению этой проблемы имеется на сайте Microsoft.

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

В процессе создания массива в первую очередь требуется указать его тип. В нашем случае это RAID 0.

Второй шаг: нужно выбрать те накопители, которые необходимо включить в массив.

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

И всё — массив готов.

Обратите внимание, несмотря на то, что два твердотельных накопителя Kingston HyperX 3K объединены в RAID 0, с их S.M.A.R.T.-диагностикой нет никаких проблем.

Что такое Raid массив?

Не вдаваясь в детали терминологии, Raid массив — это некий комплекс, построенный из нескольких жестких дисков HDD или SSD, который позволяет более грамотно распределять между ними функции.

Как обычно мы размещаем жесткие диски в компьютере? Подключаем к разъему SATA на материнской плате один жесткий диск, потом другой, третий. И появляются в нашей операционной системе диски D, E, F и так далее. Мы можем поместить на них какие-то файлы или установить Windows, но по сути это будут отдельные диски. Если вынуть один из них, мы ровным счетом ничего не заметим (если на нем не была установлена Windows). Кроме того, что нам не будут доступны записанные на них файлы.

Но есть другой путь — объединить эти жесткие диски в Raid массив, задать им определенный алгоритм совместной работы, в результате которого значительно повысится надежность хранения информации или скорость их работы. Причем, данный способ работает на всех типах дисков, как HDD, так и SSD.

⇡#Методика тестирования

Тестирование проводится в операционной системе Windows 8.1, корректно распознающей и обслуживающей современные твердотельные накопители. Это значит, что в процессе прохождения тестов, как и при обычном повседневном использовании SSD, команда TRIM поддерживается и активно задействуется. Измерение производительности выполняется с накопителями, находящимися в «использованном» состоянии, которое достигается их предварительным заполнением данными. Перед каждым тестом накопители очищаются и обслуживаются с помощью команды TRIM. Между отдельными тестами выдерживается 15-минутная пауза, отведённая для корректной отработки технологии сборки мусора. Во всех тестах, если не указано иное, используются рандомизированные несжимаемые данные.

Используемые приложения и тесты:

  • Iometer 1.1.0 RC1
  • Измерение скорости последовательного чтения и записи данных блоками по 256 Кбайт (наиболее типичный размер блока при последовательных операциях в десктопных задачах). Оценка скорости выполняется в течение минуты, после чего вычисляется средний показатель.
  • Измерение скорости случайного чтения и записи блоками размером 4 Кбайт (такой размер блока используется в подавляющем большинстве реальных операций). Тест проводится дважды — без очереди запросов и с очередью запросов глубиной 4 команды (типичной для десктопных приложений, активно работающих с разветвлённой файловой системой). Блоки данных выравниваются относительно страниц флеш-памяти накопителей. Оценка скорости выполняется в течение трёх минут, после чего вычисляется средний показатель.
  • Установление зависимости скоростей случайного чтения и записи при работе накопителя с 4-килобайтными блоками от глубины очереди запросов (в пределах от одной до 32 команд). Блоки данных выравниваются относительно страниц флеш-памяти накопителей. Оценка скорости выполняется в течение трёх минут, после чего вычисляется средний показатель.
  • Установление зависимости скоростей случайного чтения и записи при работе накопителя с блоками разного размера. Используются блоки объёмом от 512 байт до 256 Кбайт. Глубина очереди запросов в течение теста составляет 4 команды. Блоки данных выравниваются относительно страниц флеш-памяти накопителей. Оценка скорости выполняется в течение трёх минут, после чего вычисляется средний показатель.
  • Измерение производительности при смешанной многопоточной нагрузке. На накопитель посылаются разноплановые команды, включающие как чтение, так и запись с различными размерами блоков. Процентное соотношение между разнородными запросами приближено к реальной десктопной нагрузке (75 % — операции чтения, 25 % — запись; 75 % — случайные запросы, 25 % — последовательные; 55 % — блоки размером 4 Кбайт, 25 % — 64 Кбайт и 20 % — 128 Кбайт). Тестовые запросы генерируются четырьмя параллельными потоками. Блоки данных выравниваются относительно страниц флеш-памяти накопителей. Оценка скорости производится в течение трёх минут, после чего вычисляется средний показатель.
    • CrystalDiskMark 3.0.3

    Синтетический тест, выдающий типовые показатели производительности твердотельных накопителей, измеренные на 1-гигабайтной области диска «поверх» файловой системы. Из всего набора параметров, которые можно оценить с помощью этой утилиты, мы обращаем внимание на скорость последовательного чтения и записи, а также на производительность произвольных чтения и записи 4-килобайтными блоками без очереди запросов и с очередью глубиной 32 команды.

    • PCMark 8 2.0

    Тест, основанный на эмулировании реальной дисковой нагрузки, которая характерна для различных популярных приложений. На тестируемом накопителе создаётся единственный раздел в файловой системе NTFS на весь доступный объем, и в PCMark 8 проводится тест Secondary Storage. В качестве результатов теста учитывается как итоговая производительность, так и скорость выполнения отдельных тестовых трасс, сформированных различными приложениями.

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

    В качестве тестовой платформы используется компьютер с материнской платой Gigabyte GA-Z87X-UD3H, процессором Core i3-4340 и 4 Гбайт RAM DDR3-1600 МГц. Диски подключаются к контроллеру SATA 6 Гбит/с, встроенному в чипсет материнской платы, и работают в режиме AHCI или RAID. Используется драйвер Intel Rapid Storage Technology (RST) 12.9.0.1001 и операционная система Windows 8.1 Enterprise x64.

    Объем и скорость передачи данных в бенчмарках указываются в бинарных единицах (1 Кбайт = 1024 байт).

    ⇡#Последовательные операции чтения и записи, IOMeter

    Последовательные дисковые операции — это именно та среда, где лучше всего видно масштабируемость производительности RAID-массивов. Массив с чередованием оказывается значительно быстрее одиночных Kingston HyperX 3K объёмом 240 и 480 Гбайт как при последовательном чтении, так и при записи.

    ⇡#Случайные операции чтения и записи, IOMeter

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

    Начать тут следует с того, что при измерении скорости случайной записи крайне невысокие результаты показывает Kingston HyperX 3K ёмкостью 480 Гбайт. Эта странная особенность этого накопителя обуславливается неприспособленностью старого контроллера SandForce второго поколения к созданию SSD большого объёма. Именно поэтому массивы RAID 0 из SSD небольшого объёма могут иметь значительно более высокую скорость, нежели одиночные флеш-диски аналогичной ёмкости. Между тем по сравнению с одиночным Kingston HyperX 3K 240 Гбайт массив, составленный из таких флеш-дисков, отнюдь не быстрее. Впрочем, особо расстраиваться по этому поводу не стоит: такая ситуация наблюдается исключительно при случайной записи.

    Давайте теперь взглянем на то, как зависит производительность RAID 0 при работе с 4-килобайтными блоками от глубины очереди запросов.

    Приведённые графики служат ещё одной иллюстрацией к сказанному выше. Если при чтении RAID 0 демонстрирует более высокую скорость, чем одиночные твердотельные накопители, причём преимущество с ростом глубины очереди возрастает, то при операциях записи RAID 0 из Kingston HyperX 3K 240 Гбайт опережает лишь Kingston HyperX 3K 480 Гбайт. Один же Kingston HyperX 3K 240 Гбайт оказывается лучше массива.

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

    На самом деле, как оказывается, RAID 0-массив проигрывает по скорости записи одиночным накопителям, в него входящим, лишь в том случае, когда операции происходят 4-килобайтными блоками. Это и не удивительно. Как следует из графика, Kingston HyperX 3K 240 Гбайт оптимизирован под запросы размером 4 Кбайт, но RAID-контроллер в соответствии с выбранным нами размером страйп-блока преобразует их в 16-килобайтные запросы. К сожалению, использовать в массиве чередование 4-Кбайт блоков — далеко не самая выигрышная стратегия. В этом случае серьёзно возрастает создаваемая RAID-контроллером нагрузка на центральный процессор, и никакого реального прироста в скорости может и не оказаться.

    В завершение рассмотрения результатов IOmeter предлагаем взглянуть на производительность накопителей при синтетическом моделировании тяжёлой смешанной дисковой активности, в котором одновременно и в несколько потоков воспроизводятся разные типы операций.

    Массив RAID 0 из пары Kingston HyperX 3K 240 Гбайт показывает чуть более высокую скорость, нежели простой накопитель Kingston HyperX 3K 240 Гбайт. Однако Kingston HyperX 3K 480 Гбайт к смешанной нагрузке приспособлен ещё лучше — его результат выше. Впрочем, различие между тестируемыми конфигурациями в этом бенчмарке не носит принципиального характера.

    Как работает SSD-кэш в СХД

    Функция кэша — ускорять выполнение операции за счет размещения часто запрашиваемых данных на быстрых носителях. Для кэширования самых «горячих» данных используется оперативная память (RAM), в СХД это кэш первого уровня (L1 Cache).

    Кэш первого уровня может быть дополнен менее быстрыми твердотельными накопителями. В этом случае у нас появляется кэш второго уровня (L2 Cache). Такой подход используется для реализации SSD-кэширования в большинстве существующих СХД.

    Рисунок 3. Традиционный SSD-кэш второго уровня.

    Традиционный SSD-кэш второго уровня работает следующим образом: все запросы после RAM попадают в буфер SSD (рисунок 3).

    Работа кэша на чтение

    Система получает запрос на чтение данных, находит необходимые блоки на основном хранилище (HDD) и производит их чтение. При повторных обращениях система создает копии этих данных на SSD-накопителях. Последующие операции чтения будут выполняться уже с быстрых носителей, что увеличит скорость работы.

    Работа кэша на запись

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

    Алгоритмы заполнения кэша

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

    Для этого применяются алгоритмы заполнения кэша. Коротко рассмотрим наиболее распространенных в сегменте СХД.

    FIFO (First In, First Out) — из кэша последовательно вытесняются наиболее старые блоки, замещаясь наиболее свежими.

    LRU (Least Recently Used) — из кэша первыми вытесняются блоки данных с наиболее давней датой обращения.

    LARC (Lazy Adaptive Replacement Cache) — блоки данных попадают в кэш, если они были запрошены как минимум дважды за определенный промежуток времени, а кандидаты на замещение отслеживаются в дополнительной LRU-очереди в оперативной памяти.

    SNLRU (Segmented LRU) — данные из кэша вытесняются по принципу LRU, но при этом они проходят несколько категорий (сегментов), обычно это: «холодные», «теплые», «горячие». Степень «теплоты» здесь определяется частотой обращений.

    LFU (Least Frequently Used) — из кэша первыми вытесняются те блоки данных, к которым было меньше всего обращений.

    LRFU (Least Recently/Frequently Used) — алгоритм комбинирует работу LRU и LFU, вытесняя сначала те блоки, которые попадают под рассчитываемый параметр из даты и количества обращений.

    В зависимости от типа алгоритма и качества его реализации будет определяться итоговая эффективность SSD-кэширования.

    ⇡#Результаты в CrystalDiskMark

    CrystalDiskMark — это популярное простое тестовое приложение, работающее «поверх» файловой системы, которое позволяет получать результаты, легко повторяемые обычными пользователями. И то, что выдаёт этот бенчмарк, несколько отличается от показателей, которые были получены нами в тяжёлом и многофункциональном пакете IOmeter, хотя с качественной точки зрения никаких кардинальных различий нет. Производительность RAID-массива с чередованием отлично масштабируется с точки зрения последовательных операций. Нет никаких претензий и к работе RAID 0 из Kingston HyperX 3K 240 Гбайт при случайном чтении. В этом случае прирост скорости по сравнению с одиночными SSD зависит от глубины очереди запросов, и, когда её длина достигает большой величины, RAID 0 способен выдавать существенно более высокую скорость. При произвольной же записи картина несколько иная. RAID 0 проигрывает одному Kingston HyperX 3K 240 Гбайт в тех случаях, когда операции не буферизируются, но увеличение глубины очереди запросов ожидаемо возвращает преимущество двухдисковой конфигурации.

    Кроме того, CrystalDiskMark вновь обнажает проблемы с производительностью ёмкой модели Kingston HyperX 3K 480 Гбайт на операциях случайной записи, ещё раз подчёркивая преимущества RAID 0 в случае необходимости создания дисковых конфигураций значительного объёма.

    ⇡#PCMark 8 2.0, реальные сценарии использования

    Тестовый пакет Futuremark PCMark 8 2.0 интересен тем, что он имеет не синтетическую природу, а напротив — основывается на том, как работают реальные приложения. В процессе его прохождения воспроизводятся настоящие сценарии-трассы задействования диска в распространённых десктопных задачах и замеряется скорость их выполнения. Текущая версия этого теста моделирует нагрузку, которая взята из реальных игровых приложений Battlefield 3 и World of Warcraft и программных пакетов компаний Abobe и Microsoft: After Effects, Illustrator, InDesign, Photoshop, Excel, PowerPoint и Word. Итоговый результат исчисляется в виде усреднённой скорости, которую показывают накопители при прохождении тестовых трасс.

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

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

    Несмотря на то, что в синтетических тестах нам попадались ситуации, в которых массив RAID 0 оказывался медленнее одиночных накопителей, в него входящих, в реальной жизни такие ситуации, скорее всего, не возникнут. По крайней мере, PCMark 8 явно указывает на то, что в любом из популярных приложений RAID 0 работает быстрее. Уровень преимущества массива из пары Kingston HyperX 3K 240 Гбайт перед одним таким накопителем колеблется от 3 до 33 процентов. А у более ёмкой модификации Kingston HyperX 3K 480 Гбайт исследуемый RAID-массив выигрывает ещё сильнее.

    Тестирование скорости RAID 00


    Еще мне интересно было протестировать скорость RAID 00 против RAID 0, так как LSI пишет, что он быстрее обычного страйпа, на деле это не так, у меня он оказался медленнее.

    • Stripe Size — 256 kb
    • Read Policy — NoRead Ahead
    • Write Policy — Write Trough
    • I/O Policy — Direct IO
    • Disk cache policy — Enable

    Надеюсь, что мой скромный опыт окажет вам неоценимую помощь в вашем проекте. Мы с вами разобрали процесс увеличения производительности SSD дисков на контроллерах LSI. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

    ⇡#Выводы

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

    Надо сказать, что ранее к RAID из SSD мы относились с некоторой опаской, так как RAID-контроллеры блокировали использование команды TRIM, а также не давали наблюдать за состоянием входящих в состав массива накопителей. Однако на данный момент всё это осталось в прошлом, по крайней мере для контроллеров, встроенных в наборы системной логики компании Intel. Сегодня в RAID 0 нормально поддерживается TRIM, а драйвер позволяет свободно следить за S.M.A.R.T.-параметрами входящих в массив SSD.

    Что же касается участвовавших в нашем тестировании накопителей Kingston HyperX 3K, то их 240-гигабайтные модификации показали себя вполне достойным выбором для создания RAID-массивов. Компания Kingston перевела их на более новую, 19-нм память компании Toshiba, и новый аппаратный дизайн позволил несколько улучшить быстродействие, не вызвав при этом никаких неприятных эффектов.

    Пусть основанные на контроллерах SandForce накопители и кажутся далеко не самым свежим решением, но для RAID-массивов они подходят очень даже неплохо. С одной стороны, эти SSD всесторонне проверены и очень надёжны, а с другой — обладают весьма соблазнительной ценой. Что же до производительности, то составленный из двух SandForce-приводов дисковый массив уровня RAID 0, вне всяких сомнений, даст фору любой однодисковой конфигурации. Хотя бы потому, что быстродействие его последовательных операций не ограничивается полосой пропускания интерфейса SATA 6 Гбит/с.

    Замена дисков в RAID массиве и восстановление информации

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

    Достаточно просто:

  • Убираем из компьютера «полетевший» жесткий диск и вставляем на его место новый, идентичный по объему
  • Заходим в панель управления RAID массивом
  • Добавляем новый диск и запускаем функцию восстановления «Rebuild Array»
  • После этого все данные будут повторно продублированы с первого жесткого диска на второй, и массив RAID 1 заработает, как прежде.

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

    Вот собственно и все — RAID настроен и теперь компьютер будет воспринимать ваши диски как один. Вот так, например, будет виден Raid при установке Windows.

    Думаю, что вы уже поняли преимущества использования Raid. Напоследок приведу сравнительную таблицу замеров скорости записи и чтения диска отдельно или в составе режимов Raid — результат, как говорится, на лицо.