Летом 2021 года был представлен новый стандарт NVM Express 2.0 (NVMe 2.0). Изначально NVMe был разработан для твердотельных накопителей и сетей хранения данных, но в последней версии добавлена полноценная поддержка жестких дисков. Конечно, возникает логичный вопрос: зачем? Но обо всем по порядку.
Добавление поддержки жестких дисков — одно из самых крупных новшеств NVMe 2.0, которое удивило многих пользователей. Современные жесткие диски используют интерфейс SATA 3.0 с теоретической пропускной способностью 6 Гбит/с, которой вполне хватает. Конечно, жесткие диски продолжают эволюционировать, рано или поздно пропускная способность превысит возможности SATA 3.0. Например, Seagate анонсировала жесткие диски Mach.2 с двойным приводом, которые вплотную подбираются к уровню 6 Гбит/с. Емкость HDD достигла отметки 20 Тбайт, причем рост продолжится, поскольку дата-центрам нужны все большие объемы. Для подобных HDD увеличение пропускной способности неизбежно, чтобы копирование тех же 20 Тбайт не длилось вечность.
Но и в таком случае можно было просто доработать стандарт SATA до 12 Гбит/с, как это произошло со стандартом SAS. Почему консорциум производителей решил поставить точку на SATA и перейти на PCI Express и NVMe 2.0 даже для жестких дисков?
Основным стимулом добавления поддержки NVMe для жестких дисков является упрощение экосистемы. Тем более спецификация NVMe будет эволюционировать в сторону NVMeoF (NVME over Fabrics), в результате к жестким дискам можно будет обеспечить сетевой доступ без дополнительных уровней абстракции. Подсистема NVMe HDD будет напрямую поддерживаться современными и гибкими инфраструктурными решениями с открытым исходным кодом, например, Kubernetes. Конечно, можно будет использовать такие API, как Redfish.
Жесткие диски NVMe 2.0 можно назвать явным сигналом постепенного ухода протокола SATA с рынка, поскольку он не обновлялся уже 12 лет. Избавление от SATA и переход всех жестких дисков на NVMe позволит освободить место на материнских платах и упростит подключение накопителей только NVMe (по крайней мере, на потребительском сегменте). Но не следует ожидать, что это случится в ближайшее время. Вспомните, как долго производители устанавливали интерфейс IDE на материнские платы параллельно с SATA. Да и NVMe HDD пока не появились на розничном рынке. И раньше 2025 года их вряд ли можно ожидать.
Основные функции NVMe 2.0
Ниже мы приведем основные функции стандарта NVMe 2.0. В целом, они направлены на снижение информации избыточности NVMe, а также на более глубокие возможности управления SSD со стороны хост-системы.
Zoned Namespaces (ZNS) в стандарте NVMe 2.0 позволит SSD и хост-системе договариваться о физическом расположении данных на накопителе. ZNS позволит учитывать физические особенности SSD при размещении данных, что улучшит системную производительность в целом, а также увеличит емкость (+20%). Можно ожидать снижения избыточной записи (4-5x), уменьшения задержек ввода/вывода. С преимуществами ZNS можно ознакомиться здесь.
NVMe Key-Value Command Set позволяет использовать ключи для доступа к данным на NVMe SSD вместо логических адресов блоков (LBA). Переход с LBA на ключи позволит уменьшить избыточность, поскольку SSD не придется работать с таблицей трансляции LBA.
Rotational Media Support — здесь как раз подразумевается поддержка жестких дисков. Все функции NVMe обновлены с учетом требований поддержки HDD.
NVMe Endurance Group Management — накопители поддерживают распределение по группам (Endurance Groups, NVMe Sets). Для каждой группы можно выбрать, например, хранение разного числа битов на ячейку, что сказывается на плотности записи данных и скорости записи. Группы позволяют лучше адаптироваться к разным сценариям: хранилища с низкими задержками небольшой емкости или хранилища значительной емкости, но с высокими задержками. Подробнее о группах можно узнать здесь.
Конечно, NVMe 2.0 будет обратно совместим с предыдущими стандартами NVMe. В результате NVMe 2.0 SSD/HDD можно будет подключать к нынешним материнским платам со слотами M.2 или к картам M.2.
Seagate демонстрирует первый жесткий диск NVMe
Seagate на конференции Open Compute Project Summit 2021 показала первый жесткий диск, подключенный к хост-системе по интерфейсу PCIe. Подобно твердотельным накопителям, жесткий диск опирался на протокол NVMe. Конечно, использование одного протокола для различных типов накопителей существенно упростит инфраструктуру дата-центров.
Экспериментальный HDD использовал проприетарный контроллер Seagate, поддерживающий три основных протокола SAS, SATA и NVMe в виде «родного порта NVMe» без каких-либо мостов. Работа HDD была показана в корпусе 2U JBOD с довольно простым коммутатором PCIe, к которому через интерфейс PCIe были подключены 12 3,5-дюймовых жестких дисков.
Конечно, современные HDD вряд ли могут нагрузить даже один канал PCIe 2.0, но будущие HDD с несколькими приводами обещают намного большую пропускную способность. И в какой-то момент 6 Гбит/с, которые обеспечивает SATA, или 12 Гбит/с SAS окажутся недостаточными. Индустрии следует заблаговременно озаботиться поиском интерфейса для подключения HDD в будущем, и вариант PCIe/NVMe кажется вполне логичным. Кроме того, SSD отвоевывают себе место в дата-центрах, протокол NVMe начинает преобладать, поэтому поддержку этого протокола на HDD можно только приветствовать. Все сказанное как раз и привело к тому, что будущие жесткие диски обзаведутся поддержкой NVMe 2.0.
Не стоит забывать, что использование одного физического интерфейса и логического протокола для HDD и SSD упростит аппаратную и программную инфраструктуру дата-центров, ускорит разработку соответствующих решений, облегчит масштабирование и снизит себестоимость владения TCO.
Как мы отмечали, не стоит ожидать, что жесткие диски с подключением PCIe через NVMe появятся уже завтра. Seagate планирует начать поставки первых комплектов для разработки (EDU) жестких дисков PCIe/NVMe своим клиентам не раньше сентября 2022. А тестовые образцы (CTU) появятся не раньше 2024 года. Причем тестовые образцы будут поставляться крупным корпоративным клиентам для оценки перспектив использования, в рознице HDD NVMe не появятся даже в 2024 году. Пока что Seagate позиционирует PCIe/NVMe HDD только на дата-центры. Хотя и персональные компьютеры не мешает перевести на новый протокол, что тоже упростит инфраструктуру и повысит производительность. Но здесь все же речь идет о долгосрочных перспективах.
Заключение
Добавление поддержки жестких дисков в спецификацию NVMe 2.0 удивило многих. Все же современные HDD не преодолевают планку интерфейса SATA 6 Гбит/с. Но причина кроется отнюдь не в пропускной способности интерфейса. Протокол SATA постепенно устаревает и становится "неудобным", если можно так выразиться. Поэтому индустрия заблаговременно продумывает переход на более современные варианты интерфейсов, которые справятся с потребностями инфраструктуры хранения данных в будущем.
Вполне логичным интерфейсом здесь кажется NVMe с физическим подключением PCIe, поскольку он уже хорошо зарекомендовал себя для SSD. Единый интерфейс упростит инфраструктуру дата-центров, облегчит масштабирование, снизит себестоимость владения TCO. Поддержка NVMeoF (NVME over Fabrics) открывает дальнейшие перспективы доступа к массивам жестких дисков в сетях хранения данных, как и прямая интеграция в экосистему Kubernetes или поддержка современных API Redfish.
NVMe HDD появятся не раньше 2024 года, причем только в корпоративном сегменте. Позднее можно ожидать переход и на настольный сегмент. Как нам кажется, первые настольные Seagate PCIe/NVMe выйдут тогда, когда емкость достигнет 30-40 Тбайт, число приводов увеличится до двух, а технология HAMR будет распространена повсеместно.