Обзор того, как новые протоколы влияют на производительность хранилища.
NVMe - относительно новый протокол для доступа к данным, хранящимся на твердотельных накопителях. В отличие от вращающихся дисков, твердотельные накопители хранят данные в той или иной форме энергонезависимой памяти (NVM). Этот NVM может быть либо флэш-памятью (NAND), либо NVM нового поколения, например 3D XPoint (3DXP). Обратите внимание, что протокол NVMe отличается от NVM, носителя данных.
NVMe («e» означает «экспресс») разработан, чтобы быть компактнее и быстрее, чем его предшественники, SAS и SATA. Это сокращает примерно на 20 мкс задержку, добавленную стеком ввода-вывода. Это улучшение незначительно по сравнению с внутренней задержкой вращающегося диска (5000 мкс), но оно заметно по сравнению с внутренней задержкой флеш-SSD (100 мкс) и было бы значительным по сравнению с внутренней задержкой будущего твердотельного накопителя с 3DXP. (менее 10 мкс). Таким образом, в то время как флэш-SSD доступны с интерфейсами SAS / SATA или NVMe, твердотельные накопители 3DXP будут доступны только с NVMe.
1-image.png
Помимо уменьшения задержки, NVMe улучшает пропускную способность каждого твердотельного накопителя. Он подключает ЦП к твердотельным накопителям напрямую через PCIe, что означает, что нет необходимости в промежуточном HBA, и можно использовать большее количество линий PCIe. Полоса SAS работает со скоростью 12 Гбит / с, которая сжимается примерно до 1 ГБ / с после накладных расходов. Полоса SATA поддерживает половину этого. Линия PCIe работает со скоростью 1 ГБ / с, и типичный твердотельный накопитель NVMe может быть подключен к четырем таким линиям, поддерживая до 4 ГБ / с. Действительно, энтузиасты NVMe быстро сравнивают твердотельный накопитель SATA со скоростью 0,5 ГБ / с и твердотельный накопитель NVMe со скоростью 3 ГБ / с. Это в 6 раз больше пропускной способности!
Но система хранения содержит несколько твердотельных накопителей, обычно более 10. При таком большом количестве твердотельных накопителей пропускная способность на уровне дисков редко является узким местом или определяющим фактором пропускной способности на уровне системы.
Производительность на системном уровне
Как правило, производительность системы хранения ограничивается одним из следующих ресурсов:
Интерфейсная сеть, соединяющая приложения с хранилищем. ЦП, на которых запущено программное обеспечение хранения. Связь ввода-вывода между процессорами и накопителями или модулями. Для системы, использующей диски SAS / SATA, это включает линии PCIe, SAS HBA, линии SAS и, возможно, расширитель SAS. Общая пропускная способность такого межсоединения обычно составляет 4-12 ГБ / с. Для системы, использующей NVMe, межсоединение включает линии PCIe и, возможно, коммутатор PCIe. Общая пропускная способность этого межсоединения обычно составляет 8-24 ГБ / с. Накопители, включая носители данных и контроллеры носителей.
2-image.png
Какой из этих четырех факторов станет узким местом производительности, зависит от архитектуры системы и рабочей нагрузки, например, чтение или запись, случайное или последовательное.
Традиционные системы хранения, использующие дисковые накопители, обычно привязаны к диску. Однако современные системы, использующие флеш-накопители, ведут себя совершенно иначе, потому что флеш-накопители намного быстрее дисков. Для большинства рабочих нагрузок системы на основе флеш-памяти ограничены процессором. Большая часть ЦП используется для предоставления услуг передачи данных, таких как высокая доступность, сокращение объемов данных и защита данных.
Реже системы на основе флеш-памяти могут быть привязаны к диску. Это может произойти, если в системе небольшое количество твердотельных накопителей, если она не распределяет нагрузку по дискам или если используются старые диски, которые не могут полностью использовать интерфейс SAS / SATA. Еще менее распространено то, что система может быть связана межсоединением или внешней сетью. Это могло произойти для выбранных рабочих нагрузок, например, при последовательном вводе-выводе с использованием большого размера ввода-вывода. Или это может произойти, если система хранения предназначена для обеспечения чистой производительности за счет сложных служб данных.
Когда система привязана к ЦП, использование NVMe вместо SAS / SATA по-прежнему может улучшить производительность, поскольку драйвер NVMe более эффективен для ЦП, чем драйвер SCSI. Но это небольшое увеличение - менее 20%, поскольку большая часть ЦП используется службами данных, а не драйверами протокола.
Ваш опыт может отличаться, и вам следует спросить любого поставщика хранилища, предлагающего NVMe, о том, какой прирост производительности вам следует ожидать от вашей рабочей нагрузки, а не об их тестах.
К счастью, NVMe можно включить в систему хранения, просто изменив схему межсоединений, без серьезных изменений в архитектуре хранения в целом. Есть одна загвоздка: твердотельные накопители NVMe с двумя портами стоят дорого. Но их цена, вероятно, упадет почти до уровня SATA SSD. Таким образом, со временем все системы на основе флеш-памяти будут использовать NVMe. Некоторые могут принять его раньше, чем другие, но это не принципиальное отличие.
В целом использование твердотельных накопителей NVMe в системе хранения данных похоже на использование «высокопроизводительных шин» на автомобиле. В большинстве случаев они дают небольшой прирост производительности и не требуют замены двигателя. Приятно иметь, но не принципиально.
Возможно, больший интерес представляет недавнее расширение NVMe, известное как NVMe over Fabrics (NVMf). NVMf выполняет ввод-вывод между хостами, используя сети с поддержкой RDMA, такие как RoCE. В то время как NVMe через PCIe сокращает примерно 10 мкс по сравнению с SAS, NVMf может сократить примерно на 100 мкс задержку двустороннего обмена между двумя хостами по сравнению с такими протоколами, как iSCSI. Это также экономит использование ЦП при обработке TCP / IP. Это может быть особенно полезно в горизонтально масштабируемых системах для передачи данных между хостами. Для этого действительно требуются сетевые адаптеры с поддержкой RDMA и коммутаторы с поддержкой DCB, поэтому для массового внедрения потребуется некоторое время.
Твердотельные накопители 3D XPoint
Хотя NVMe хорошо использовать для флэш-накопителей, он критически важен для твердотельных накопителей 3DXP.
Это неудивительно, учитывая, что Intel, которая выпустила NVMe в 2011 году, также является соавтором 3DXP. Внутренняя задержка для твердотельных накопителей 3DXP составляет менее 10 мксек, что намного меньше, чем 100 мксек для твердотельных накопителей с флэш-памятью. Это означает, что рабочие нагрузки с малой глубиной очереди - с несколькими невыполненными операциями ввода-вывода в любой момент - будут выполняться на твердотельных накопителях 3DXP намного быстрее, чем на твердотельных накопителях на флеш-памяти. Если бы кто-то использовал твердотельный накопитель 3DXP с SAS вместо NVMe, это увеличило бы задержку более чем втрое и сильно избавилось бы от соблазна 3DXP.
При задержке доступа 10 мкс 3DXP - более фундаментальное изменение, чем только NVMe. Он вводит новый дифференцированный уровень в пирамиде носителей информации - между флэш-памятью и NVRAM (на основе DRAM).
По сравнению с флэш-SSD, 3DXP SSD будет в 10 раз быстрее при низкой глубине очереди, в 10 раз более устойчивым по количеству операций записи, но также в 10 раз дороже на гигабайт. Учитывая 10-кратную разницу в цене и производительности, было бы выгодно комбинировать флэш-накопители и твердотельные накопители 3DXP, чтобы флэш-память использовалась для хранения данных, а 3DXP - для хранения метаданных или кэширования данных. Это сделает гибридные системы flash + 3DXP более привлекательными, чем чистые flash-системы.
3-image.png
По сравнению с модулями памяти NVRAM DIMM, твердотельный накопитель 3DXP более чем в 10 раз медленнее, менее долговечен и в 10 раз дешевле. Таким образом, варианты использования, такие как кэширование записи, которые наиболее чувствительны к задержкам и выносливости, но в которых нет необходимости, будут продолжать оптимально функционировать за счет использования NVRAM.
В конце концов, весь потенциал 3DXP также будет реализован не как твердотельные накопители с использованием NVMe, а как модули NVDIMM на канале памяти. Это связано с тем, что истинная задержка памяти 3DXP, как утверждается, составляет менее 1 мкс, и упаковка ее в SSD, по-видимому, увеличивает задержку до 10 мкс.
Таким образом, непрерывное развитие протоколов хранения и носителей информации будет продолжаться. Новый протокол хранения - скромная галочка. Новый носитель данных - это круто!