Обзор на нашем основном сайте.
Автор: Dmitry Nosachev
Очередной обзор 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 предназначены для использования в серверах с высокими требованиями к производительности дисковой подсистемы с преимущественной нагрузкой на чтение.
В настоящее время Toshiba выпускает четыре линейки корпоративных SSD:
Участвующий в обзоре диск принадлежит к младшей линейке на базе 19нм MLC NAND, имеет ёмкость 480ГБ (существуют варианты на 120ГБ и 240ГБ) и ресурс в 880ТБ записи. Полное обозначение SSD серии HK3R — THNSNJxxxPCS3, где xxx соответствует объему в ГБ.
Многие заказчики интересуются, зачем вообще нужно использовать 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) реализована на уровне микрокода контроллера и реализует ряд дополнительных мер защиты от потери данных:
Методы, используемые в PFM, помогают снизить риск потери данных, но полная защита осуществляется только при наличии схемы резервного питания (PLP). Все SSD корпоративного класса Toshiba имеют поддержку и PLP и PFM в отличие от обычных бытовых SSD HG5d и HG6.
Причина номер два — предсказуемые ресурс и производительность. Корпоративные SSD на базе MLC имеют ресурс на 1-2 порядка меньше старших собратьев с eMLC, но в отличие от бытовых SSD он указывается в характеристиках, так что вы можете оценить применимость SSD для конкретной нагрузки. В производительности на запись MLC тоже уступает eMLC/SLC, но благо
В описанных ниже методиках тестирования производительности 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 при различных значения размера блока и соотношениях чтение/запись:
Обычно для 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).
На графике дополнительно представлен вышеупомянутый OCZ Intrepid 3800:
Ситуация со случайным доступом повторяется. На последовательном доступе аналогичная картина: чуть лучше на чтение, хуже на запись.
Проверяется задержка (средняя и максимальная) при одном потоке с глубиной очереди = 1.
Средняя задержка:
Максимальная задержка:
Сравнение с Intel S3700 для блока 4K:
Сами по себе результаты неплохи для eMLC 2012 года, но в сравнении с Intel S3700 выглядят не очень хорошо.
Непрерывная нагрузка на случайную запись (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 (NVM Express) — спецификация нового интерфейса, предназначенного для подключения SSD непосредственно к PCI Express. Форм-фактор NGFF и другие аспекты использования NVMe в настольных системах рассматриваться не будут, нам интересно исключительно серверное применение.
NVMe — новый масштабируемый интерфейс, предназначенный для замены SATA и SAS для работы с SSD: другой набор команд, физические интерфейсы с обратной совместимостью, оптимизация работы с очередями.
В списке разработчиков находятся крупные компании: Intel, Micron, LSI, Marvell, Cisco, EMC, Dell, Oracle, NetApp, sTec, Samsung, SanDisk, PMC Sierra.
Зачем нужен отказ от стабильного и развивающегося SAS? Появился 12-гигабитный SAS3, есть соответствующие SSD, контроллеры, экспандеры, кабели. Неужели этого мало?
Стоит вспомнить основное предназначение энергонезависимых носителей в транзакционных задачах: максимально быстро переместить большое количество блоков с данными в оперативную память и обратно. То есть идет постоянная борьба за рост IOPS и минимизацию задержек. Ради этого происходит регулярное сокращение лишних звеньев: контроллер памяти переместился на один кристалл с процессором, следом переместился контроллер шины PCI-E.
Дело осталось за малым — передвинуть ближе к процессору данные из постоянной памяти, т.е. из 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 дисков.
Драйверы под 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