На виртуальном саммите Open Compute Project 2020 особый интерес вызвали две провокационные презентации. В них речь шла о том, что NVMe может стать универсальным протоколом блочного доступа для магнитных носителей. Насколько реалистична эта перспектива?
Замена интерфейсам SATA и SAS, если дело касается доступа к SSD или даже ленточным накопителям, назрела давно. Их использование строится на рудиментарной архитектуре: обмен данными с дисками и стримерами ведется из оперативной памяти платформы через шину PCI Express к SAS/SATA-контроллеру и далее в накопитель. Этот процесс требует ряд преобразований, сопряженных с немалыми накладными расходами.
Интерфейс SAS был разработан для доступа к дисковым и ленточным накопителям с помощью набора команд SCSI. Ему по силам восстановление передаваемых блоков после ошибок. SAS — полнодуплексный. Это означает, что чтение и запись можно вести одновременного. Более дешевый SATA — полудуплексный: вы либо читаете, либо пишете, но не можете делать это одновременно SATA наследовал основные принципы работы от стандарта Parallel ATA и получил распространение благодаря простоте в сопряжении дисковых, ленточных и твердотельных накопителей с хост-платформами. SATA, анонсированный еще в 2000 году, разрабатывался параллельно с SAS, дебютировавшим в 2004 году. SAS считается серверным протоколом, тогда как SATA применяется больше на пользовательских платформах.
Для обмена информацией SAS и SATA используют последовательный доступ, тогда как интерфейс обмена с энергонезависимой памятью NVMe может считывать и записывать данные параллельными потоками, оперируя с запоминающими элементами NAND SSD. Это быстрее, чем SAS и SATA, и позволяет передавать больше данных. По этой причине NVMe обеспечивает высокую производительность при доступе твердотельным накопителям, подключенным к PCIe-шине. Расширяя возможности PCIe с помощью ретаймеров и редрайверов можно обслуживать многотомные дисковые массивы точно так же, как SAS-экспандеры используются для подключения накопителей с SAS-интерфейсом.
На физическом уровне SAS, SATA и NVMe оперируют с блоками данных, наследуя архитектуру как ленточных, так и дисковых устройств (в равной мере, и HDD, и SSD). Однако, в отличие от твердотельных накопителей, природа дисковых и ленточных устройств определяется последовательным доступом. Оснащать их NVMe-интерфейсом — пустая затея, из пушки (пропускной способности протокола) — по воробьях (блокам данных). И все же, универсальный NVMe-интерфейс может существенно упростить проектирование систем хранения, если подключать накопители напрямую к шине PCI Express, избавляясь от конвертации SAS и SATA в низкоуровневый физический протокол.
На Open Compute Project 2020 компания Seagate неожиданно выдвинула концепцию универсального блочного протокола для доступа к магнитным носителям посредством NVMe-интерфейса. В настоящее время слайды официальной презентации пока недоступны, но в Forbes появился один интересный фрагмент, проливающий свет на происходящее. Его опубликовал аналитик Том Кофлин (Tom Coughlin):

В слайде идет речь о том, что NVMe вполне пригоден для жестких магнитных дисков, оснащенных сдвоенными актуаторами — приводами, которые содержат два набора головок чтения / записи. У истоков такого решения стояла компания Seagate, его жестко критиковала компания Western Digital, что, однако, не помешало последней в пылу конкурентной борьбы начать разработку аналогичного накопителя, обогащенного вдобавок еще и SMR — черепичной технологией магнитной разметки.

Теоретически, в качестве «дисководов» с доступом по NVMe могут выступать и составные системы, включающие в себя дисковое хранилище наряду с другими элементами — процессорами, графическими процессорами, памятью, твердотельными накопителями, сетевыми коммутаторами. Лишь бы за коммуникации отвечала шина PCI Express. В этом вся универсальность концепции.