Производительность накопителей NVMe в серверах
Abstract
Использование NVMe-накопителей в серверах. Масштабирование производительности накопителей NVMe и возможные ограничения. Влияние режима VMD на производительность накопителей NVMe. Сравнение RAID-массивов из накопителей NVMe на базе технологии VMD и контроллеров Tri-Mode.
Введение
На сегодняшний день наиболее производительными твердотельными накопителями являются накопители с интерфейсом NVMe. Производительность SSD-накопителей с интерфейсами SAS и SATA сдерживается пропускной способностью их интерфейсов. Хотя они используют такую же флэш-память, что и NVMe, их нельзя сделать столь же быстрыми из-за ограничений интерфейса.
В следующей таблице приведены данные по пропускной способности интерфейсов SATA, SAS и NVMe, а также типичные характеристики накопителей с интерфейсами этих типов.
Тип интерфейса | SATA3 | SAS3 | NVMe |
Пропускная способность интерфейса | 6 Gb/s | 12 Gb/s | 4 GB/s |
Пропускная способность интерфейса в IOPS (блок 4 KB) | 150'000 | 300'000 | 1'000'000 |
Типичная производительность SSD-накопителей (IOPS, чтение) | 95'000 | 440'000* | 640'000 |
* Такую производительность на накопителях SAS можно получить только в системах хранения с двумя активными контроллерами при одновременном использовании обоих портов накопителя. |
Таким образом, если для сервера требуется максимально быстрый накопитель, то выбор очевиден - NVMe. Но как будет изменяться производительность дисковой подсистемы при увеличении числа таких накопителей в сервере? Для накопителей с интерфейсами SAS и SATA производительность растет кратно их количеству, пока не достигнет предела производительности контроллера (смотрите, например, наш Калькулятор IOPS). Можно ли ожидать того же для накопителей NVMe? Чтобы ответить на этот вопрос, мы провели тестирование, результатами которого и спешим поделиться.
Немного теории
NVMe-накопители в серверах подключаются одним из двух способов:
- к Tri-Mode RAID-контроллеру (такой контроллер поддерживает накопители SAS, SATA и NVMe);
- напрямую к процессору через линии PCIe («стандартный» вариант).
К Tri-Mode RAID-контроллеру можно подключить обычно не более 4 накопителей NVMe. При этом Tri-Mode RAID-контроллер с NVMe-накопителями работает точно так же, как с накопителями SAS или SATA, и общая производительность накопителей будет ограничена максимальной производительностью контроллера по IOPS'ам (у современных контроллеров это 1.5 – 1.8 MIOPS).
Во втором случае NVMe-накопители подключаются к процессору по шине PCI Express. Как правило, накопитель использует для этого 4 линии PCIe 3.0 с пропускной способностью 1 GB/s на линию (итого суммарно 4 GB/s). Это «стандартный» способ подключения и именно для него разработан интерфейс NVMe.
Современные процессоры семейств Intel Xeon E5-2600 и Intel Xeon Scalable имеют 40 или 48 линий PCIe соответственно, поэтому к одному процессору теоретически можно подключить до 12 накопителей NVMe. Однако часть линий PCIe первого процессора сервера может быть занята другими устройствами (чипсет, сетевой адаптер, разъем для установки модулей ввода-вывода) и свободных линий у него может быть меньше. У второго процессора все линии PCIe обычно свободны и подключены к слотам расширения.
Физически накопители NVMe подключаются к процессору либо через разъемы OCuLink на системной плате сервера, либо через платы расширения с разъемами для NVMe-накопителей. Разъемы могут быть двух типов: OcuLink (стандарт для NVMe-интерфейса) или Mini-SAS HD.
Процессоры Intel Xeon Scalable (в отличие от предыдущего поколения Intel Xeon E5-2600) имеют встроенный аппаратный функционал для поддержки технологии VMD (Volume Management Device – устройство управления томами). VMD обеспечивает возможность горячей замены NVMe-накопителей, создание из них RAID-массивов (в том числе загрузочных), а также светодиодную индикацию состояния накопителей.
Применительно к технологии VMD 48 линий PCIe процессора разбиты на три домена, по 16 линий в каждом. RAID-массив из накопителей одного домена можно сделать загрузочным. RAID-массив из дисков разных доменов - нельзя. В RAID-массив можно объединить даже диски, подключенные к разным процессорам. Управление RAID-массивами выполняется в BIOS или при помощи специальной утилиты в операционной системе. Поддержка VMD RAID требует установки в сервер лицензионного ключа. Поддерживаются RAID-массивы уровней 0, 1, 10 и 5.
Тестирование, которое мы провели, должно было ответить на следующие вопросы:
- как будет меняться общая производительность дисковой подсистемы сервера при увеличении количества NVMe-накопителей и какие еще факторы могут влиять на производительность?
- как изменится производительность накопителей NVMe при включении режима VMD?
- какова производительность RAID-массивов из накопителей NVMe на базе технологии VMD?
- как отличаются по производительности RAID-массивы на VMD и контроллерах Tri-Mode?
Тестирование 1. Масштабирование производительности при увеличении числа накопителей NVMe. Расчет необходимой мощности процессорной подсистемы
Для тестирования мы использовали двухпроцессорный сервер SuperMicro на базе CPU Intel Xeon Scalable, операционную систему Windows Server 2019 и твердотельные NVMe-накопители Intel DC 4610 емкостью 6,4TB с заявленной производительностью на операциях чтения со случайным доступом 640 kIOPS (блоки 4K). Накопители подключались через четырехпортовый NVMe-адаптер PCIe 3.0 x16.
В этом и последующих тестах мы измеряли производительность только для операций чтения при случайном доступе, поскольку именно в этом режиме достигается максимальное количество операций ввода-вывода. В RAID-массивы диски не объединялись, тестирование выполнялось в режиме JBOD. Производительность измеряли при помощи утилиты Iometer.
На первом этапе мы выясняли, как масштабируется производительность дисковой подсистемы при увеличении количества накопителей от одного до четырех при выключенном режиме VMD. Измерения провели для двух разных моделей процессоров:
- два процессора Intel Xeon Gold 6128 (6 ядер на CPU, номинальная частота 3.4 GHz);
- два процессора Intel Xeon Gold 6130 (16 ядер на CPU, частота 2.1 GHz).
Результаты тестирования приведены на следующем графике.
С процессорами Intel Xeon Gold 6130 суммарная производительность накопителей растет линейно, при этом загрузка CPU (синяя линия) при четырех накопителях не превышает 50%.
С процессорами Intel Xeon Gold 6128 производительность во всех случаях меньше на 10-25% и при четырех накопителях загрузка CPU составляет 100% (красная линия). Очевидно, мощности этих процессоров недостаточно для полной загрузки накопителей.
Вывод, который можно сделать по результатам теста: при увеличении количества накопителей NVMe их общая производительность растет кратно количеству накопителей при условии достаточной процессорной мощности.
Попробуем сформулировать правило для определения требуемой процессорной мощности для заранее известной суммарной производительности накопителей.
В следующей таблице приведены результаты тестов для процессора Intel Xeon Gold 6130.
Число накопителей | Суммарная производительность (kIOPS) | Загрузка CPU (%) |
1 | 680 | 12.7 |
2 | 1410 | 25.2 |
3 | 2140 | 37.9 |
4 | 2720 | 50.4 |
Из таблицы видно, что при увеличении количества накопителей их суммарная производительность и общая загрузка CPU растут линейно. При четырех накопителях загрузка CPU составляет 50% от общего ресурса процессорной подсистемы. Такой уровень загрузки для обслуживания дисковой подсистемы можно считать оптимальным, поскольку у процессоров остается достаточно свободных ресурсов для выполнения других операций. К тому же при таком уровне загрузки CPU нет «проседания» производительности накопителей.
Общий ресурс двух CPU Intel Xeon Gold 6130 можно представить как суммарную частоту их ядер:
2 CPU x 16 ядер x 2.1 GHz = 67 GHz
Как показывает тестирование, этого достаточно, чтобы получить 2'720'000 IOPS при 50% загрузке CPU. Тогда при таком же 50% уровне загрузки для получения 1'000'000 IOPS нам потребуется процессорная подсистема с суммарной частотой:
67 GHz / 2.720 MIOPS = 25 GHz / MIOPS
Зная эту «удельную» частоту и «штатную» производительность планируемых к установке в сервер NVMe-накопителей, можно рассчитать, сколько процессорной мощности нужно для этих NVMe-накопителей.
Например, чтобы получить с NVMe-накопителей 3 миллиона IOPS при 50% загрузке CPU, необходима процессорная подсистема с суммарной частотой 75 GHz:
25 GHz/MIOPS x 3MIOPS = 75 GHz
Примерно такую суммарную частоту обеспечат, например, два процессора Intel Xeon Gold 6132 (14 ядер, 2.6 GHz):
2.6 GHz x 14 ядер x 2 CPU = 73 GHz
Вышеприведенные цифры справедливы для операционных систем семейства Windows Server. Как пишет Intel на своем сайте, в операционных системах Linux загрузка процессора при работе с NVMe-накопителями в два раза ниже. Поэтому требования к мощности процессорной подсистемы будут тоже приблизительно в два раза ниже.
Тестирование 2. Влияние технологии VMD на производительность накопителей NVMe.
Этот и последующие тесты мы провели на платформе Intel R1208WF с двумя процессорами Intel Xeon Silver 4114 (10 ядер на CPU, номинальная частота 2.2 GHz) и накопителями Intel DC P4510 емкостью 1TB с заявленной производительностью на операциях чтения со случайным доступом 465 kIOPS (блоки 4K). При этом накопители, в отличие от первого тестирования, подключались не через плату расширения, а непосредственно к разъемам OCuLink на системной плате сервера.
Целью тестирования было выяснить, как влияет на производительность дисковой подсистемы включение режима VMD.
Как и в первом тестировании, мы измеряли суммарную производительность накопителей без их объединения в RAID-массив. Результаты измерений с выключенным и включенным режимом VMD приведены на следующем графике.
Как видим, поддержка VMD не бесплатна – падение производительности составляет от 10 до 25%. Но зато она обеспечивает возможность горячей замены накопителей, корректную работу индикаторов состояния накопителей, а также поддержку RAID-массивов.
Примечание. Более высокая по сравнению с заявленной производительность накопителей объясняется тем, что Intel приводит характеристики производительности накопителей в «устойчивом» состоянии («steady state»), когда накопитель заполнен на 100%, а мы тестировали новые накопители из коробки.
Тестирование 3. Производительность RAID-массивов на базе технологии VMD
Теперь выясним, какова производительность RAID-массивов, созданных с использованием технологии VMD. Мы протестировали массивы RAID0 и RAID1 из двух накопителей и RAID0 и RAID 10 – из четырех. Для наглядности в графики добавлены данные из второго тестирования без объединения накопителей в RAID (режим JBOD).
Производительность для операций чтения (100%) со случайным доступом:
На операциях чтения производительность RAID-массивов находится на уровне одиночного диска.
Производительность для операций записи (100%) со случайным доступом:
Здесь картина лучше. Для двух накопителей в RAID0 производительность выше вдвое по сравнению с одиночным диском и для RAID1 тоже все в порядке (данные записываются дважды на оба накопителя зеркала, поэтому производительность как у одиночного накопителя). При четырех накопителях показатели уже отстают от теории, хотя картина тоже сильно лучше, чем для чтения. Такое впечатление, что в режиме RAID алгоритмы VMD имеют пока предел производительности на уровне 700 kIOPS.
Вывод: RAID-массивы на базе технологии VMD обеспечивают рост производительности только на операциях записи.
Тестирование 4. Производительность RAID-массивов на базе Tri-Mode контроллера
В рамках финального тестирования посмотрим, как поведут себя с точки зрения производительности RAID-массивы из накопителей NVMe при подключении к Tri-Mode RAID-контроллеру. Мы протестировали массивы RAID0 и RAID1 из двух накопителей и RAID0 и RAID 10 – из четырех. Для наглядности в графики добавлены данные для контроллера в режиме JBOD (суммарная производительность накопителей без объединения в RAID). При тестировании использовался Tri-Mode RAID-контроллер LSI 9460-16i.
Результаты тестирования для операций случайного чтения (100%):
Здесь рост производительности присутствует, в отличие от случая VMD, однако тоже «упирается» в предел производительности контроллера по IOPS.
Результаты тестирования для операций случайной записи (100%):
Для RAID1 и RAID10 все хорошо. Для RAID0 в случае двух накопителей – тоже, в случае четырех накопителей производительность меньше на 20%, чем в теории. Опять сказывается недостаток производительности контроллера по IOPS.
Вывод: RAID-массивы на контроллере Tri-Mode обеспечивают более высокую производительность по сравнению с массивами на VMD. Однако и в этом случае производительность может быть ограничена возможностями контроллера
Резюме
Для получения максимальной производительности установленных в сервер накопителей NVMe необходима процессорная подсистема достаточной мощности.
Включение режима VMD снижает производительность накопителей NVMe на 10-20%.
RAID-массивы из накопителей NVMe на базе технологии VMD, обеспечивая целостность данных, увеличивают производительность дисковой подсистемы только на операциях записи.
RAID-массивы из накопителей NVMe на базе контроллеров Tri-Mode обеспечивают более высокую производительность дисковой подсистемы по сравнению с технологией VMD.
Послесловие
Подобрать необходимые твердотельные серверные накопители с интерфейсами SAS, SATA или NVMe вы можете в наших серверных конфигураторах. Там приведены основные характеристики накопителей по объему, производительности и ресурсу, а также указана их текущая цена, что весьма удобно для сравнения.
Ссылки на конфигураторы:
Серверы Team на платформе Supermicro
Серверы Team на платформе Intel
15.04.2019