Архив метки: ssd

Обзор SSD Kingston E50

Очередной обзор SSD на нашем основном сайте: http://www.truesystem.ru/review/360953/
По просьбе трудящихся — дополнительные графики. Два последних пункта в легенде: блоки с 50% содержанием сжимаемых данных (по умолчанию — просто нули, SandForce SF-2581 умеет сжимать данные, больше IO помещается в кэш, и как следствие растёт производительность). Ешё добавлен результат с O_DSYNC (direct=1 вместе sync=1 в fio, фиолетовый график).

 

 

Обновление от 29.12.2014: дополнительный тест Host Idle Recovery из SNIA PTS Enterprise 1.1. Наглядно показывает способность SSD использовать свободное время для сборки мусора и очистки кэша. Перед основным тестом идут две подготовительных ступени: последовательная запись 128КиБ до достижения 2-кратной ёмкости и случайная запись блоками 4КиБ в течение 120 минут (25 минут, предложенных в официальной спецификации явно не хватает для выхода на установившееся состояние) — это соответствует предыдущему тесту Write Saturation Test, производительность с 14000 IOPS падает до 2000:

Каждый из цветных участков на следующем графике (State 1 AB, State 2 AB и т.д.) соответствует 360-ти раундам, состоящим из 5 секунд нагрузки (всё та же случайная запись 4КиБ) и простоя длительностью 5, 10, 15, 25, 50 секунд соответственно. Чёрные участки (State x C) — 360 5-секундных раундов с нагрузкой, но без пауз:

Заметно, что уже на первом участке (State 1, 5+5 секунд) Kingston E50 успевает выйти из насыщения и восстановиться с 2000 IOPS до 15-20 тысяч. Чем больше время паузы, тем более стабильным становится значение IOPS — SSD за это время успевает подготовить определённое количество чистых блоков и частично освободить кэш. На графиках средней и максимальной задержки видна аналогичная ситуация:

 

 

Автор: Dmitry Nosachev

Обзор SSD Toshiba HK3R

SSD корпоративного класса Toshiba HK3R предназначены для использования в серверах с высокими требованиями к производительности дисковой подсистемы с преимущественной нагрузкой на чтение.

В настоящее время Toshiba выпускает четыре линейки корпоративных SSD:

  • на базе MLC: PX03SN с интерфейсом SAS и H3KR c интерфейсом SATA
  • на базе eMLC: PX02SM и более производительные PX02SS

Участвующий в обзоре диск принадлежит к младшей линейке на базе 19нм MLC NAND, имеет ёмкость 480ГБ (существуют варианты на 120ГБ и 240ГБ) и ресурс в 880ТБ записи. Полное обозначение SSD серии HK3R — THNSNJxxxPCS3, где xxx соответствует объему в ГБ.

Заявленные характеристики

  • Емкость: 120ГБ (THNSNJ120PCS3), 240ГБ (THNSNJ240PCS3), 480ГБ (THNSNJ480PCS3)
  • Форм-фактор: 2,5″, высота 7мм
  • Тип памяти: 19нм MLC NAND
  • Интерфейс: SATA 6Gb/s (SATA III)
  • Ресурс на запись
    • 120ГБ: 220ТБ
    • 240ГБ: 440ТБ
    • 480ГБ: 880ТБ
  • Последовательное чтение/запись: 500/270 МиБ/с
  • Случайное чтение/запись 4K: 8500/10000 IOPS (для THNSNJ120PCS3) и 12000 IOPS (THNSNJ240PCS3, THNSNJ480PCS3)
  • Потребляемая мощность: 1 Вт
  • Рабочая температура: 0°C – +55°C
  • Вес: 60 г

Зачем нужны SSD корпоративного класса на базе MLC NAND

Многие заказчики интересуются, зачем вообще нужно использовать SSD корпоративного класса с обычными MLC ячейками. Действительно, в отличие от eMLC, мы не получаем ни высокой производительности на запись, ни ресурса, позволяющего без опасений долгое время использовать такие SSD под высокой нагрузкой на запись. Почему бы не использовать обычные бытовые SSD?
Причина номер один — защита по питанию. Контроллер SSD использует обычную DRAM как для кэширования записываемых хостом данных (или перемещаемых при сборке мусора), так и для хранения таблицы трансляции (в зависимости от производителя — management table или translation table. В таблице хранится соответствие между логической нумерацией блоков, которая показывается хосту, и реальным размещением данных. Аварийное выключение питания приводит к тому, что часть данных, ещё не записанных в энергонезависимую NAND-память, будет потеряна. Ситуация аналогична использованию кэша на запись (режим write-back) в RAID-контроллере без обеспечения его защиты. Естественно, для серверного применения SSD без защиты кэша не подходят.
Помимо традиционного способа обеспечения резервного питания (массив обычных электролитических конденсаторов или суперконденсаторов) в SSD Toshiba применяются дополнительные алгоритмы для защиты пользовательских данных и таблицы трансляции.

Технология Toshiba Power Loss Protection (PLP) — обычная схема, которая отвечает за обнаружение проблем с питанием, при необходимости переключает SSD на суперконденсаторы, отдавая контроллеру команду на сброс содержимого кэша на NAND.
Технология Toshiba Power Failure Management (PFM) реализована на уровне микрокода контроллера и реализует ряд дополнительных мер защиты от потери данных:

  • Обеспечивается хранение двух копий таблицы трансляции в разных страницах NAND.
  • Для запись обновлений происходит поочерёдно в разные копии.
  • При повреждении таблицы используется вторая копия.
  • Данные сохраняются на флеш при получении от хоста стандартной ATA-команды FLUSH_CACHE или во время простоя SSD.
  • Стандартная технология выравниявания нагрузки: каждая операция записи всегда осуществляется в другую страницу NAND даже при записи в тот же логический блок. При повреждении данных из-за аварийного отлючения питания всегда остается предыдущее состояние блока по старому адресу.

Методы, используемые в PFM, помогают снизить риск потери данных, но полная защита осуществляется только при наличии схемы резервного питания (PLP). Все SSD корпоративного класса Toshiba имеют поддержку и PLP и PFM в отличие от обычных бытовых SSD HG5d и HG6.
Причина номер два — предсказуемые ресурс и производительность. Корпоративные SSD на базе MLC имеют ресурс на 1-2 порядка меньше старших собратьев с eMLC, но в отличие от бытовых SSD он указывается в характеристиках, так что вы можете оценить применимость SSD для конкретной нагрузки. В производительности на запись MLC тоже уступает eMLC/SLC, но благо

Как мы тестируем SSD: Kingston E100 vs Intel S3700

В описанных ниже методиках тестирования производительности SSD нет ничего нового. Это первые четыре теста в соответствии со спецификацией SNIA Solid State Storage Performance Test Specification Enterprise v1.1: IOPS, Throughtput, Latency, Write Saturation. Описание и условия есть в статье на основном сайте True System: Обзор SSD OCZ Intrepid 3800.
Сам по себе обзор Kingston E100 и сравнение результатов синтетических тестов производительности с Intel S3700 тоже не представляют особой ценности. Соответствующие обзоры были опубликованы 1,5 года назад на StorageReview с примерно аналогичными результатами. Цель проста: показать, какие методики тестирования производительности SSD мы используем сейчас и намерены использовать в дальнейшем при тестировании новинок, продемонстрировать серьезность подхода в сочетании с возможностью представления результатов на красивых графиках (за что, в частности, любят тот же StorageReview). Особенно интересны будут пока еще не доехавшие до нас NVMe SSD от Intel и других производителей.

Как упоминалось выше, описание тестов, конфигурацию стенда и другие подробности можно найти в обзоре новых eMLC SSD от возрожденной OCZ (OCZ Storage Solutions) — Intrepid 3800. Остается добавить, что для самих тестов используется fio, для построения графиков (кроме 3D) — gnuplot. Для проверки выхода на установившееся состояние используется способ, описанный в спецификации SNIA PTS — проверка на выход линейной аппроксимации графика в выбранном окне за пределы +-10% от среднего значения. Пример:

В нашем распоряжении находится Kingston E100 (SE100S3200G) объемом 200ГБ, с последней прошивкой 515ABBF0.

Результаты

IOPS Test

График IOPS при различных значения размера блока и соотношениях чтение/запись:

Обычно для SSD указывают значение IOPS для блока 4КиБ на чтение и запись (значение задержки при этом не контролируется): 57147 IOPS на чтение и 22262 IOPS на запись. Производитель указывает 59000/76000 IOPS без указания методики тестирования (т.е. это пиковые значения для «свежезануленного» SSD), но и реальные результаты неплохи. Де-факто эталонный на сегодняшний день среди eMLC SSD с интерфейсом SATA, Intel S3700 продемонстрировал 30425/40524 IOPS на чтение и запись соответственно. На блоках 8К отрыв S3700 на запись увеличивается: 24125/30730 (Intel S3700) и 35514/8932 IOPS (Kingston E100).

Throughtput Test

На графике дополнительно представлен вышеупомянутый OCZ Intrepid 3800:

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

Latency Test

Проверяется задержка (средняя и максимальная) при одном потоке с глубиной очереди = 1.
Средняя задержка:

Максимальная задержка:

Сравнение с Intel S3700 для блока 4K:

 

Сами по себе результаты неплохи для eMLC 2012 года, но в сравнении с Intel S3700 выглядят не очень хорошо.

Write Saturation Test

Непрерывная нагрузка на случайную запись (8 потоков с QD=16) блоками 4K в течение 10 часов. Такая нагрузка приводит к исчерпанию пула свободных блоков и показывает способность SSD эффективно справляться со сборкой мусора. На графиках IOPS и задержек у любых можно увидеть резкое снижение производительности после того, как заканчиваются свободные для записи блоки в основном и резервном пространстве. После этого контроллер SSD вынужден заниматься своего рода дефрагментацией ячеек с мусорными данными, размещая незавершенные IO в кэше. От эффективности алгоритма сборки мусора и аппаратных возможностей контроллера будет зависеть степень деградации производительности заполненного SSD.
График 1: IOPS.

Начинают оба SSD одинаково. Производительность в состоянии «из коробки» — порядка 43 тыс. IOPS на запись, но после заполнения Kingston проседает до 8000 против 32000 у Intel S3700. Разумеется, Write Saturation Test — это экстремальный синтетический тест и в реальности непрерывная нагрузка со 100% записью практически не встречается, у SSD практически всегда есть достаточно времени на сборку мусора для пополнения запаса чистых блоков.
Графики 2 и 3. Средняя задержка, максимальная задержка.

 

Среднее значение задержки в тесте WSAT вычисляется в пределах 1-минутного раунда (всего их 600), максимальное значение задержки в пределах раунда тоже записывается и по нему строится отдельный график.
Ситуация со средней задержкой опять не в пользу Kingston: после заполнения контроллер SSD начинает тратить много времени на подготовку чистых блоков и задержка вырастает в 6 раз.
Несмотря на существенно более низкий уровень средней задержки Intel S3700 демонстрирует периодические пики, превышающие среднее значение более чем на два порядка, что может не лучшим образом сказаться на реальной производительности приложений. Kingston E100 демонстрирует более стабильное поведение.

Заключение

Остается реализовать остальные, более сложные тесты SNIA PTS. Особенно важным будет Demand Intensity / Response Time Histogram, показывающий зависимость соотношения IOPS/задержка от нагрузки (количества потоков и глубины очереди) и распределение значения минимальной/средней/максимальной задержки.

Автор: Dmitry Nosachev

NVMe

NVMe (NVM Express) — спецификация нового интерфейса, предназначенного для подключения SSD непосредственно к PCI Express. Форм-фактор NGFF и другие аспекты использования NVMe в настольных системах рассматриваться не будут, нам интересно исключительно серверное применение.

Что такое NVMe?

NVMe — новый масштабируемый интерфейс, предназначенный для замены SATA и SAS для работы с SSD: другой набор команд, физические интерфейсы с обратной совместимостью, оптимизация работы с очередями.
В списке разработчиков находятся крупные компании: Intel, Micron, LSI, Marvell, Cisco, EMC, Dell, Oracle, NetApp, sTec, Samsung, SanDisk, PMC Sierra.

Зачем нужен NVMe?

Зачем нужен отказ от стабильного и развивающегося SAS? Появился 12-гигабитный SAS3, есть соответствующие SSD, контроллеры, экспандеры, кабели. Неужели этого мало?
Стоит вспомнить основное предназначение энергонезависимых носителей в транзакционных задачах: максимально быстро переместить большое количество блоков с данными в оперативную память и обратно. То есть идет постоянная борьба за рост IOPS и минимизацию задержек. Ради этого происходит регулярное сокращение лишних звеньев: контроллер памяти переместился на один кристалл с процессором, следом переместился контроллер шины PCI-E.

PCI-E и SSD

Дело осталось за малым — передвинуть ближе к процессору данные из постоянной памяти, т.е. из SSD (с медленными традиционными HDD снижение накладных расходов интерфейса не имеет смысла). Действительно, зачем подключать к NAND сложный контроллер, который будет заниматься обслуживанием многослойного стека SAS и прочими вещами, такими как эмуляция 512-байтных секторов, а затем передавать его не менее сложному контроллеру на хосте?
Подобная оптимизация уже существует. Это многочисленные на сегодняшний день PCI-E SSD.

Множество форм-факторов, типов NAND (MLC, eMLC, SLC), архитектурных особенностей. В самых примитивных вариантах даже преимуществ никаких: обычный контроллер, к которому по SATA подключены несколько SSD, просто распаяно все на одной плате. Более совершенные PCI-E SSD используют специализированные контроллеры с быстрыми интерфейсами доступа к NAND. Ограничения форм-фактора 2.5″ отсутствуют и можно разместить более производительный контроллер и даже оптимизировать работу с NAND со стороны хоста (например, ioMemory в Fusion-io). Результатом является минимальная задержка всего в несколько десятков микросекунд, что недостижимо для связки SAS HBA + SAS/SATA SSD.
PCI-E SSD неудобны своим форм-фактором: замена такой платы требует остановки сервера и вскрытия корпуса, платы требуют крайне аккуратного обращения по сравнению с защищенными металлическим кожухом 2.5″ SSD.

Разъем

Удобным было бы гибридное решение: SSD в привычном форм-факторе 2.5″ и возможностью горячей замены, но с новым интерфейсом (и желательно, обратной совместимостью).
Подобный форм-фактор был разработан — SFF-8639.

К привычным двум линкам SAS добавлены четыре линка PCI-E, т.е. бэкплейн с разъемами SFF-8639 остаются обратно совместимыми и допускают подключение обычных SAS и SATA дисков.

Преимущества

  • Пропускная способность. Для PCI-E 3.0 получается порядка 1ГиБ на линию.
  • Снижение задержек. Полученный на сегодняшний день показатель — 3 микросекунды.
  • Оптимизация под архитектурные особенности SSD. Доступ к NAND выгодно осуществлять параллельно, с большим количеством потоков. NVMe поддерживает до 64k потоков с глубиной очереди до 64k в каждом.
  • Оптимизация работы с прерываниями. Работать с NVMe устройством можно через большее количество процессорных ядер.
  • Упрощенный набор команд. Из-за отсутствия необходимости обеспечи
    вать совместимость со SCSI удалось сократить набор команд до 13-ти, без учета сервисных команд и управления резервированием.
  • Унификация драйверов. Вместо большого количества несовместимых между собой устройств, требующих собственных драйверов, а иногда и дополнительного ПО, мы получаем взаимозаменяемость и отсутствие возможных конфликтов между устройствами разных производителей.

Когда?

Драйверы под Windows, Linux, FreeBSD, Solaris, ESXi, UEFI уже давно существуют и совершенствуются.
Представить, как все это будет выглядеть в железном воплощении можно уже сейчас, но формально это еще не NVMe: сервер Dell R820 и SSD Micron P320h 2.5″ (обзор от StorageReview):

Существует прототип от IDT в FHHL, low-profile и 2.5″ форм-факторах:

Прототип 2.5″ SSD NVMe — Samsung XS1715:

Обещают емкости в 400, 800 и 1600ГБ и до 740000 IOPS. Нет оснований полагать, что у остальных ведущих игроков на рынке нет аналогичных прототипов.

Одна из новых плат Supermicro для платформы Intel Grantley (это 2-процессорные системы под процессоры Haswell-EP, они же Xeon E5-2600 v3) будет иметь поддержку 2.5″ NVMe:

Автор: Dmitry Nosachev