Заказ звонка

*
*
Защита от автоматических сообщений
CAPTCHA
Введите слово на картинке*

Тестирование NVMe-совместимого PCI-E SSD HGST SN150.

17.02.16

Что такое NVMe и зачем он нужен

NVMe (NVM Express, NVMHCI, Non-Volatile Memory Host Controller Interface Specification) — набор спецификаций, определяющих протоколы доступа к накопителям на основе энергонезависимой памяти через шину PCI Express. Подробную информацию о NVMe можно получить на сайте рабочей группы, в состав которой входят такие известные компании, как Intel, Oracle, HGST, PMC, Seagate, Micron, Sandisk и NetApp.

NVMe разрабатывался как новый промышленный стандарт для высокопроизводительных SSD, подключаемых напрямую к PCI Express. Разработка новой системы команд позволила существенно сократить задержки в сравнении с SAS и AHCI. NVMe уже давно не находится на стадии прототитипов — готовые продукты выпускаются уже несколько лет, драйверы для всех актуальных ОС готовы.

Чем плохи AHCI и SAS?

AHCI и SAS хорошо работают с традиционными механическими HDD. При последовательном доступе к носителю вполне достаточно однопоточной работы с дисковой очередью сравнительно небольшой глубины (32 для AHCI). NVMe поддерживает 64k (65536) очередей с глубиной 64k каждая, а существенно упрощённый набор команд позволяет тратить меньше процессорных тактов на обслуживание ввода-вывода. Всё это позволяет наращивать производительность одиночного накопителя — использовать более производительный контроллер, увеличить объём буфера и число каналов доступа к NAND. Самые производительные SSD с интерфейсом SAS3.0 на сегодняшний день могут обеспечить порядка 270 тыс. IOPS на чтение. Дальнейшее увеличение производительности одиночного SSD SAS, а тем более SATA имеет мало смысла — снизить уровень задержек уже нельзя. Использование массива из нескольких SAS или SATA SSD сейчас позволяет получить более миллиона IOPS с одного SAS HBA, но не решает проблему с задержкой. C одного NVMe HGST SN150 можно получить 750 тыс. IOPS при более низких задержках — например, при достаточной глубине очереди (8 потоков с QD 4) можно получить разницу в 200-300 микросекунд.

SSD в форм-факторе PCI-E плат существовали и раньше. В чём преимущество NVMe?

Во-первых, стоит обратить внимание на тот факт, что многие PCI-E SSD представляют из себя всё тот же AHCI или SAS HBA контроллер с несколькими подключенными к нему SATA или SAS SSD, это простая экономия кабелей и дисковых отсёков. Пример — Intel SSD 910, предшественник сегодняшних NVMe накопителей Intel, состоял из SAS HBA на базе чипа LSI 2008 и четырёх SAS SSD HGST Ultrastar SSD400S.

Существуют и «настоящие» PCI-E SSD. Пожалуй, самые известные из них — Fusion IO (в настоящее время — Sandisk). Уже несколько лет назад они могли обеспечить сотни тысяч IOPS при задержках от 20-30 микросекунд. Современные Micron P420m, HGST Flashmax II/III, Huawei ES3000 V2 при своей действительно высокой производительности (те же 400-750 тыс. IOPS на чтение 4k, задержка на запись от 15-30 мкс) не являются NVMe накопителями, они используют собственные уникальные способы повышения эффективности работы с флэш-памятью.

Основное преимущество NVMe SSD перед другими PCI-E SSD заключается в унификации — любое NVMe устройство может работать со стандартными драйверами NVMe:

  • Microsoft Windows 8.1 и Windows Server 2012 R2 — драйвер встроен. Windows 7/8 и Windows Server 2008 R2, Server 2012 — драйвер доступен в виде пакетов обновления.
  • Linux — драйвер интегрирован в ядро с марта 2012 года.
  • FreeBSD — драйвер интегрирован в ядро начиная с FreeBSD 10.2. Драйвер доступен для дистрибутивов 9-й ветки.
  • VMware ESXi — драйвер интегрирован начиная с ESXi 6.0, доступен для 5.5.
  • Solaris — поддерживается в Oracle Solaris 11.2.
  • UEFI — поддерживается в большинстве современных системных плат. Например, UEFI во всех платах Supermicro X9/X10/X11 поддерживает NVMe.
Каждый вендор по-прежнему разрабатывает собственные утилиты для работы со своими накопителями (управление, мониторинг, диагностика) и предлагает собственный NVMe-драйвер, но возможность работы со стандартным драйвером всё равно существенно упрощает установку и администрирование: накопитель NVMe будет доступен на этапе установки любой из поддерживаемых современных ОС.

Второе преимущество — кроме обычный плат расширения серверные накопители NVMe существуют в форм-факторе U.2. Это корпус 2,5" высотой 15 мм и разъёмом SFF-8639 — для замены накопителя не нужно выдвигать сервер из стойки и снимать крышку, процедура замены накопителя U.2 ничем не отличается от таковой для обычных дисков. Разъём SFF-8639 интересен тем, что его ответная часть имеет обратную совместимость с SFF-8482, т.е. в бэкплейн с разъёмами SFF-8639 можно подключить не только NVMe, но и обычные диски SAS и SATA. Обычно на входе такой универсальный бэкплейн имеет разъём SFF-8643, он же miniSAS HD x4: подключаем контроллер SAS и SAS/SATA диски, а если появляется необходимость существенно нарастить производительность дисковой подсистемы — ставим накопители NVMe, подключаем бэкплейн к специальному порту на системной плате или к дополнительной плате-ретаймеру.

Дисковых отсеков с поддержкой NVMe в сервере может быть несколько. Всё начиналось с четырёх или восьми, но сейчас появились платформы Supermicro с поддержкой десяти NVMe в корпусе 1U, 24-х и даже 48-ми NVMe в корпусе 2U.

HGST серии SN100/150

NVMe-совместимые накопители HGST SN100 и SN150 — это линейка из 10 моделей, отличающихся объёмом (800-3200ГБ), форм-фактором (2,5" U.2 или низкопрофильная плата PCI-E) и поддержкой шифрования. Накопители SN100 отличаются от SN150 только форм-фактором и наличием модели объёмом 800ГБ. О начале отгрузок SN150 компания HGST заявила в апреле 2015 года. В данном обзоре мы планируем измерить производительность HGST SN150 объёмом 1600ГБ и сравнить результаты с конкурентами: HGST Flashmax III 2200ГБ (SSD с интерфейсом PCI-E, не являющийся NVMe-совместимым) и Intel P3600 1600ГБ.

HGST SN150 поставляется в картонной коробке. Форм-фактор — низкопрофильная плата (HH/HL), в комплект входит дополнительная планка полной высоты. На лицевой стороне платы расположен закрытый небольшим квадратным радиатором контроллер, за ним — двухэтажная конструкция с чипами NAND.

На обратной стороне — дополнительная обвязка и 5 чипов памяти DDR3.

HGST SN150 может работать со штатным драйвером NVMe, но для работы утилиты Hitachi Device Manager (HDM) требуется установка NVMe-драйвера от Hitachi.

Характеристики HGST SN150

  • Объём: 1600ГБ, 3200ГБ
  • Форм-фактор: низкопрофильная плата PCI-E
  • Интерфейс: PCI-E 3.0 x4
  • Производительность
    • Последовательный доступ (блок 128КиБ): чтение — 3000 МБ/с, запись — 1600 МБ/с
    • Случайный доступ (блок 4КиБ): чтение — 743000 IOPS, запись — 140000 IOPS
    • Случайный доступ (блок 8иБ): чтение — 385000 IOPS, запись — 75000 IOPS, 70/30 чтение/запись — 310000 IOPS
    • Задержка (блок 512 байт): 20 мкс
  • Ресурс: 3 DWPD
  • Максимальное энергопотребление: 25 Вт
  • Гарантийный срок: 5 лет
При помощи Hitachi Device Manager можно менять эмулируемый размер сектора — 512 или 4096 байт, можно включить поддержку T10 DIF (секторы 520/4104 байт).

Официальная спецификация.

Результаты тестирования

Условия тестирования

Конфигурация тестового стенда:
  • Процессор Intel Xeon E5-2660 V3 (10 ядер, 2,6 ГГц, HT включен)
  • 32 ГБ памяти
  • Системная плата Supermicro X10SRi-F (1x socket R3, Intel C612)
  • CentOS Linux 6.7 X86_64
  • Для генерации нагрузки применялся FIO версии 2.5
  • Драйвер nvme-hgst-1.1.1508.1410
Тестируемое устройство:
  • HGST Ultrastar SN150 HUSPR3216AHP301 1,6 ТБ
  • Серийный номер: 15D0A029TZQ1
  • Прошивка: KMGNP120
  • Объём: 1600321314816 байт (1,46 ТиБ)*
*Указан штатный объём. При помощи Hitachi Device Manager объём этих SSD можно менять не только в сторону уменьшения, но и в сторону увеличения — в диапазоне от 1120 до 1920 ГБ. Чем меньше объём, тем больше резервная область, что положительно сказывается на ресурсе и производительности.

Использованы модифицированные тесты из SNIA Solid State Storage Performance Test Specification Enterprise v1.1. Данная спецификация описывает алгоритмы различных тестов и формат отчетов. Ниже приведены параметры тестов и отличия от SNIA PTS:

  • IOPS Test. Измеряется количество IOPS (операций ввода-вывода в секунду) для блоков различного размера (1024КиБ, 128КиБ, 64КиБ, 32КиБ, 16КиБ, 8КиБ, 4КиБ, 0.5КиБ) и случайного доступа с различным соотношением чтение/запись (100/0, 95/5, 65/35, 50/50, 35/65, 5/95, 0/100). Параметры: 16 потоков с глубиной очереди 16. Отличие от спецификации — из теста был исключён блок 0,5КиБ.
  • Throughput Test. Тестируется пропускная способность при последовательном доступе: чтение и запись блоками 1МиБ и 128КиБ.
  • Latency Test. Измеряется значение средней и максимальной задержки для различных размеров блока (8КиБ, 4КиБ, 0.5КиБ) и соотношений чтение/запись (100/0, 65/35, 0/100) при минимальной глубине очереди (1 поток с QD=1). Отличие от спецификации: добавлена глубина очереди 32, исключён блок 0,5КиБ, приводятся не только средние и максимальные значения, но и перцентили 99% и 99,99%.
  • Write Saturation Test. Тестируется изменение производительности (IOPS и задержка) при непрерывной нагрузке (600 раундов по 1 минуте) на случайную запись блоками 4КиБ. Цель — добиться перехода SSD в режим насыщения, при котором контроллеру приходится непрерывно заниматься сборкой мусора для подготовки пригодных для записи блоков NAND. Отличие от спецификации — дополнительные графики перцентилей задержки (99%, 99,99%, 99,99%) помимо среднего и максимального значения.
  • Host Idle Recovery. Тестируется эффективность работы алгоритмов сборки мусора. После перехода в режим насыщения: непрерывная нагрузка на случайную запись чередуется с облегчённой нагрузкой (5 секунд + паузы 5, 10, 15, 25, 50 секунд).

Для первых трех тестов проводится серия замеров из 25 раундов длительностью 1 минута каждый. Перед тестом производится зануление (в данном случае — Secure Erase через HDM:./hdm secure-erase --force --type user --path /dev/nvme0), затем — предварительная нагрузка: последовательная запись блоками 128КиБ до достижения 2-кратной емкости. Далее выбирается по одной из величин окно установившегося состояния (4 раунда), которое проверяется построением графика. Критерии установившегося состояния: линейная аппроксимация в пределах окна не должна выходить за границы 90%/110% среднего значения.

Для теста Write Saturation Test используется 600 раундов длительностью 1 минута каждый. Среднее и максимальное значение задержки замеряется в пределах каждого раунда.

SNIA PTS: IOPS test (IOPS при варьировании размера блока и соотношения чтение/запись)

Сравним результаты с заявленными:
  • 4 КиБ чтение: 725 тыс. IOPS (заявлено 743)
  • 4 КиБ запись: 379 тыс. IOPS (140)
  • 8 КиБ чтение: 373 тыс. IOPS (385)
  • 8 КиБ запись: 215 тыс. IOPS (75)
  • 8 КиБ 65/35 чтение/запись: 283 тыс. IOPS (310 для 70/30)
Стоит отметить, что HGST вполне добросовестно указывает характеристики в спецификации. Методика измерений указана не была, просто «max IOPS» без всяких подробностей, но судя по цифрам всё-таки были указаны значения после предварительной нагрузки с выходом в режим насыщения. Данный тест SNIA PTS предполагает лишь выход на установившееся состояние после 2-кратной последовательной записи. Для перехода в состояние насыщения, когда свободных для записи ячеек постоянно не хватает, такой нагрузки недостаточно. Производительность на запись при таком, наихудшем для SSD сценарии, будет оцениваться в тесте «Write Saturation Test».

SNIA PTS: throughtput test

Пропускная способность при последовательном однопоточном доступе блоками 128 КиБ с глубиной очереди 128:

Для сравнения приведены результаты HGST Flashmax III и конкурента — NVMe SSD Intel P3600. Характеристики Intel P3600 взяты из документации Intel. При этом Intel прямо указывает на то, что результаты приведены в десятичных мегабайтах (1 МБ = 106 байт), так что был произведен соотвествующий пересчёт (1 МиБ = 220 байт).

HGST SN150 демонстрирует высокую производительность на последовательном доступе и уступает лишь не представленному на графике Intel P3608 с его 4768 МиБ/с на чтение. Но P3608 представляет из себя сдвоенный P3600 на шине PCI-E x8 и теплопакетом в 40 Вт.

SNIA PTS: latency test

В данных таблицах приведены значения задержки в микросекундах (средняя, максимальная и перцентили 99%, 99.99%) при одном потоке с глубиной очереди 1 в зависимости от размера блока и соотношения чтение/запись (100% чтение, 65/35 чтение/запись, 0/100 = 100% запись).

HGST SN150 HGST Flashmax IIIIntel P3600Toshiba PX02SM
Задержка4КиБ 8КиБ4КиБ 8КиБ4КиБ 8КиБ4КиБ 8КиБ
Средняя
Чтение 94 104 143 154 120 н/д 188 184
Запись 21 24 41 53 30 н/д 57 79
Чтение/запись 65/35% 203 269 192 220 н/д н/д 252 287
99%
Чтение 251 175 159 178 120 н/д 673 259
Запись 36 39 124 200 90 н/д 108 143
Чтение/запись 65/35% 2030 2820 227 630 н/д н/д 550 999
99,99%
Чтение 3962 223 181 329 4000 н/д 2768 526
Запись 54 62 224 254 2000 н/д 3310 7955
Чтение/запись 65/35% 5782 6650 2983 3096 н/д н/д 6624 7485

Для сравнения приведены результаты тестов HGST Flashmax III и одного из самых высокопроизводительных SSD с интерфейсом SAS — Toshiba PX02SN (SAS3, 10 DWPD). Характеристики Intel P3600 взяты из документации.

SN150 демонстрирует явный прогресс — в сравнении с предшественником задержка на запись уменьшилась. Стоит добавить, что важно обращать внимание не только на среднее значение задержки, но и на её стабильность, для оценки которой удобно использовать не пиковые значения (которые могут быть измерены на неопределённом промежутке времени), а перцентили. Например, значение 99,99%-перцентиля в 90 микросекунд говорит нам о том, что в 99,99% случаев значение задержки будет меньше 90 мкс.

SAS SSD демонстрирует среднюю задержку на запись 57 мкс и, скорее всего, меньше обеспечить уже просто нельзя, мешает связка «контроллер NAND -> SAS -> SAS HBA». Тут видна самая экономия в 20 мкс, которую даёт на NVMe за счёт от традиционной архитектуры, основанной на SAS-транспорте и наборе команд SCSI.

http://blog.pmcs.com/having-fun-at-queue-depth-1-what-next-generation-non-volatile-memory-ng-nvm-means-for-pcie-ssds-and-ssd-drivers/

SNIA PTS: Write Saturation Test (насыщение при случайной записи блоками 4КиБ)

Из 600 минут для наглядности на графике оставлены первые 300 минут, так как переход в режим насыщения для данного накопителя происходит примерно к 180-й минуте.

Через 3-4 часа производительность падает с 430 тыс. IOPS до соответствующих заявленным 130-140 тыс. Для Intel P3600 объёмом 1,6 ТБ заявлено 56 тыс. IOPS.

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

Заключение

Накопители HGST SN150 появились на российском рынке позже Intel. Можно сказать, что по состоянию на начало 2016 Intel P3500/P3600/P3700 занимают значительную долю рынка NVMe накопителей. В HGST не теряли времени зря и смогли выпустить хорошо отлаженный продукт, обладающий отличной производительностью — при сопоставимой с P3600 цене HGST SN100/150 обеспечивает в 1,5 раза более высокую производительность при случайном доступе малыми блоками. Сказался большой опыт в области создания SSD с интерфейсом PCI-E — в 2013 году была приобретена компания Virident и вышедшее позже последнее поколение накопителей Flashmax получилось весьма удачным.

Плюсы:

  • Отличное соотношение цена/объём и цена/производительность
  • Поддержка стандарта NVMe 1.1a
Минусы:
  • Максимальный объём 3200ГБ против 6400ГБ у Samsung PM1725 и OCZ Z-Drive 6300

Вернуться к списку

Контакты:

  • Адрес: 115487, г. Москва, ул. Нагатинская, дом 16 (Метро "Нагатинская")
  • Телефон: (495) 747-3113
  • Факс: (495) 747-3112
  • Гарантийный отдел: (495) 747-3113 (доб. 333, 304)
  • Отдел продаж: (495) 747-3113
© 2006-2017 True System inc