Кратко

  • NVM Express, Inc. — некоммерческий отраслевой консорциум, который управляет семейством спецификаций NVMe; это не производитель SSD, контроллеров, коммутаторов и систем хранения.
  • NVMe заменил узкие и последовательные очереди эпохи HDD множеством очередей отправки и завершения, рассчитанных на параллельные флеш-накопители и многоядерные процессоры.
  • Одни и те же понятия контроллера, подсистемы и пространства имён работают как на локальном PCIe, так и через NVMe over Fabrics по TCP или RDMA.
  • NVMe 2.x имеет модульную структуру. Набор 2.4, опубликованный 4 августа 2026 года, объединяет Base, транспорты PCIe/RDMA/TCP, NVMe-MI, Boot и несколько специализированных наборов команд.
  • NVMe делает ёмкость композитной, но не определяет файловые системы, долговечность, RAID, erasure coding, проектирование сетей, эксплуатационную безопасность и согласованность приложений.

Команды хранилища выходят за пределы сервера, не меняя базового языка

Одна команда чтения может быть направлена как в локальное пространство имён, подключённое по PCIe, так и в удалённую подсистему в фабрике. Носитель, контроллер и путь меняются, но базовая модель команд и очередей сохраняется.

Эта преемственность и делает возможной дезагрегацию. Ёмкость можно собрать в общий пул и выделять её хостам по мере необходимости, поэтому все устройства не обязаны находиться в одном шасси.

Однако вынос за пределы сервера добавляет обнаружение, сеть, многопутевой доступ, аутентификацию, переподключение и новые домены отказов. NVMe превращает хранилище в программируемый сервис, но не отменяет топологию.

Флеш-памяти нужен был протокол, рассчитанный на параллелизм, а не на механические задержки

Традиционные интерфейсы хранения строились вокруг задержек вращающихся дисков и ограниченного параллелизма. Флеш-память способна обрабатывать множество операций параллельно, а современные серверы имеют много ядер CPU.

NVMe размещает в памяти пары очередей отправки и завершения. Хост записывает команду, уведомляет контроллер через doorbell и получает завершение через прерывание или опрос. Если распределить очереди по ядрам или процессам, можно уменьшить общие блокировки и конкуренцию.

Реальная производительность зависит от прошивки контроллера, топологии PCIe, NUMA, глубины очередей, настроек прерываний и рабочей нагрузки. Само название NVMe не гарантирует конкретных значений задержки или пропускной способности.

Консорциум отделяет управление протоколом от конкуренции за продукты

Работа над NVMe началась в конце 2000-х годов, версия 1.0 вышла в 2011-м, а NVM Express, Inc. была основана в 2014 году. В консорциум входят компании, работающие над CPU, носителями, контроллерами, сетями, облаками и системами.

На момент исследования президентом была Amber Huffman из Google, казначеем — Curtis Ballard из AMD, секретарём — David Allen из Microchip; в открытом совете директоров было 13 представителей промоутеров.

Консорциум обеспечивает общие соглашения и комплаенс. Члены продолжают конкурировать в области чипов, прошивок, систем, поддержки и производительности. Членство не означает реализации всех функций.

NVMe 2.0 превратил разросшийся единый документ в семейство модульных спецификаций

С появлением нескольких транспортов и новой модели данных поддерживать всё в одном документе становилось всё труднее. Реорганизация 2.0 в 2021 году разделила Base, наборы команд и транспорты.

Такая структура позволяет развивать TCP, не переписывая все команды, а Zoned Namespace — расширяться без изменения стандартного блочного контроллера. Плата за это — усложнение матрицы версий.

В набор 2.4, опубликованный 4 августа 2026 года, вошли Base 2.4, PCIe Transport 1.4, RDMA Transport 1.3, TCP Transport 1.3, NVMe-MI 2.2, Boot 1.4, а также наборы команд NVM, Key Value, Zoned Namespace, Computational Programs и Simple Log Memory. «NVMe 2.4» — это не один файл.

Очереди отправки и завершения приближают работу хранилища к ядрам CPU

Хост записывает команды в очередь отправки, а контроллер возвращает статусы в очередь завершения. Отдельные пары очередей для каждого ядра или приложения позволяют снизить конкуренцию.

Doorbell уведомляет о новой работе. Опрос может снижать задержку, но потребляет CPU. Объединение прерываний снижает нагрузку на CPU, но способно увеличить время ожидания. Глубина очереди влияет и на утилизацию, и на хвостовую задержку.

Глубокая очередь — не всегда хорошо: она может скрывать насыщение и растягивать задержки. Настройки нужно подбирать под рабочую нагрузку и SLA.

Контроллер, подсистема и пространство имён отделяют логическую конечную точку от физического носителя

Контроллер предоставляет очереди и команды. Подсистема может включать несколько контроллеров. Пространство имён — это логическая ёмкость, видимая хосту, которую можно предоставлять по нескольким путям.

Идентичность, которую видит хост, не обязана совпадать с одним SSD. Массив может объединять множество носителей и представлять стабильное пространство имён.

NVMe не определяет размещение, репликацию и защиту данных. RAID, erasure coding, thin provisioning, снапшоты и согласованность — ответственность окружающих систем.

Административные команды не менее важны, чем обычный ввод-вывод

Административная очередь управляет идентификацией, созданием очередей ввода-вывода, функциями, журналами, прошивкой, пространствами имён и безопасностью. Это слой, который создаёт условия для обычных операций чтения и записи.

Ошибочная административная команда может удалить пространство имён, активировать неверную прошивку или изменить состояние питания. Нужны права доступа, аудит и контроль изменений.

Разделение административного и обычного ввода-вывода не снижает важность плоскости управления. В фабрике обе они могут зависеть от одной и той же сети и идентичности.

PCIe приближает локальный путь к памяти и оборудованию

NVMe over PCIe использует общие структуры памяти и регистры контроллера на локальной шине. Это самый прямой способ подключения SSD и карт внутри сервера.

Физическая близость не означает простоты топологии. Устройство может находиться за PCIe-коммутатором, на другом NUMA-сокете или на разделяемых линиях. Расположение CPU, памяти и устройств определяет производительность.

Одного количества дисков недостаточно. Задержка может возникнуть уже на пути PCIe внутри хоста, до обращения к носителю.

NVMe over Fabrics превращает локальные отношения контроллера в сетевой сервис

NVMe-oF 1.0 и NVMe-MI 1.0 были опубликованы 9 июня 2016 года. NVMe-oF доставляет командные капсулы и данные в удалённые подсистемы, а хост создаёт очереди в фабрике.

Пул ёмкости можно разделить между несколькими хостами, отделив вычисления от хранилища. При замене хоста данные перемещать не нужно.

С другой стороны, в путь данных входят NIC, коммутаторы, маршруты, обнаружение, контроллеры, аутентификация и многопутевой доступ. Сеть становится не просто соединением, а частью системы целостности данных.

Discovery-контроллер упрощает динамические подключения, но создаёт важную зависимость

Хост обращается к discovery-контроллеру и узнаёт доступные подсистемы, адреса и сервисы. Уменьшается ручная настройка каждого целевого устройства, ресурсы можно добавлять динамически.

Неверные данные или сбой сервиса мешают новым подключениям и могут направить хост не к тому целевому устройству. Нужны резервирование, кэш, проверка и защита идентичности.

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

NVMe/TCP распространил storage-фабрику на обычные IP-сети

Стандартизированный в 2019 году NVMe/TCP отображает команды и данные в TCP-соединения. Операторы могут использовать маршрутизируемый Ethernet, IP-инструменты, межсетевые экраны и существующие практики — RDMA-фабрика не обязательна.

У простоты есть цена. Стек TCP, копирование, прерывания и CPU влияют на хвостовую задержку. Важны реализация в ядре, разгрузка (offload), размер передачи и тонкая настройка.

Транспорт предусматривает специальные кадрирование и контрольные суммы (digest) для хранилища, а также поддерживает TLS. Наличие поддержки TLS не означает, что TLS включён и корректно управляется.

NVMe/RDMA нацелен на низкую задержку и требует строгого проектирования фабрики

RDMA использует пары очередей, зарегистрированную память и разгрузку на NIC, перемещая данные с меньшим участием CPU. Это эффективно в HPC и ИИ, где важны микросекунды и циклы CPU.

RDMA — это не одна сеть. Такие варианты, как RoCE и iWARP, предъявляют разные требования к перегрузкам, потерям, PFC, ECN и регистрации памяти.

Высокоскоростные бенчмарки не гарантируют лёгкой эксплуатации. Сбои фабрики проявляются как таймауты хранилища, поэтому нужны знания и о сети, и о системе.

Multipath превращает избыточность в политику хоста

Одно пространство имён может быть видно через несколько контроллеров и путей. Хост выбирает балансировку нагрузки и переключение при сбое. Asymmetric Namespace Access показывает оптимизированные, неоптимизированные и недоступные пути.

Два линка могут разделять один коммутатор, контроллер, источник питания или маршрут. Независимость нужно проверять реальными тестами отказов.

Неверная политика направит ввод-вывод по медленному пути и будет долго удерживать сломанный путь. Избыточность оценивается по поведению, а не по числу портов.

Резервирование регулирует общий доступ, но не заменяет консенсус

Резервирование NVMe регистрирует хосты и резервирует пространство имён, блокируя несанкционированных писателей. Это полезно для кластеров и переключения при сбое.

Однако оно не заменяет кластерный консенсус и согласованность приложений. Сбойный хост может оставить состояние, и fencing должен предотвращать записи со старых узлов.

Ошибки при восстановлении могут превратить защитный механизм в причину простоя или повреждения данных.

Когда хранилище покидает PCIe, аутентификация и TLS становятся обязательными

Локальное устройство могло полагаться на определённые физические границы. В сети инициатор и целевое устройство должны доказывать свою идентичность и защищать необходимые каналы.

NVMe определяет аутентификацию, а NVMe/TCP может использовать TLS. Эффективность зависит от ключей, сертификатов, ротации, алгоритмов, политик доступа и реализации. Одной поддержки недостаточно для безопасной эксплуатации.

Оценивать нужно вместе обнаружение, администрирование и плоскость данных. Даже подлинная идентичность опасна, если права слишком широки.

NVMe-MI предоставляет путь управления, отдельный от прикладного ввода-вывода

NVMe Management Interface позволяет обнаруживать подсистемы, считывать состояние здоровья, вести инвентаризацию устройств и выполнять управляющие действия — в том числе когда основной путь ввода-вывода не используется.

Это полезно для обслуживания и восстановления, но добавляется ещё один интерфейс с высокими привилегиями. Централизованный инструмент может читать чувствительные данные и изменять множество устройств.

NVMe-MI можно интегрировать с Redfish и другими средствами. Интеграция не сводит воедино ответственность за каждый стандарт и каждого вендора.

Zoned Namespace показывает ограничения носителя программному обеспечению хоста

ZNS делит ёмкость на зоны последовательной записи. Если хост знает раскладку носителя, можно сократить сборку мусора внутри контроллера и улучшить ресурс и предсказуемость.

Чтобы получить выгоду, нужны файловые системы, базы данных и слои хранения с поддержкой зон. Приложения, рассчитанные на традиционные блочные устройства, не получают преимущества автоматически.

ZNS отражает компромисс, на который идёт NVMe: раскрытие поведения носителя повышает эффективность, но повышает и требования к переносимости программного обеспечения.

Key Value, Simple Log Memory и Computational Programs расширяют смысл пространства имён

Специализированные наборы команд допускают key/value, простую лог-память и выполнение программ рядом с хранилищем, сокращая преобразования и перемещение данных.

Для внедрения нужны контроллер, драйвер, библиотеки и приложения. Даже если функция есть в спецификации, не все SSD и массивы её предоставляют.

Чем больше опций, тем важнее обнаружение возможностей и запасные варианты. Модульность даёт гибкость, но порождает и новую коммерческую матрицу.

Комплаенс — полезное свидетельство, но не сертификат сквозной производительности

Программа комплаенса и семинары по интероперабельности проверяют конкретное взаимодействие хоста и контроллера и выявляют расхождения, которые не видны в документации.

Включение в список не гарантирует задержку, ресурс, восстановление и безопасность во всех топологиях. Опциональные функции и матрица «драйвер — прошивка» меняются.

Покупателям стоит рассматривать комплаенс как минимальный порог и тестировать собственные нагрузки, сбои и обновления.

Дезагрегация отделяет ёмкость от хоста и перераспределяет ответственность

При локальном хранении устройство, сервер и системные команды часто оказывались связаны. Удалённый пул обслуживает несколько потребителей, а распределение можно менять программно.

Сетевые, storage-, платформенные, security- и прикладные команды имеют дело с одним и тем же инцидентом. Деградация фабрики может выглядеть как сбой базы данных, а сбой прошивки контроллера — как потеря сети.

Экономика зависит не только от цены за единицу, но и от утилизации ёмкости и операционных возможностей.

ИИ превращает задержку хранилища в стоимость вычислений

Обучение читает наборы данных, пишет контрольные точки и перемещает крупные состояния. Если тысячи ускорителей ждут, хвостовая задержка хранилища расходует дорогие вычислительные ресурсы.

TCP, RDMA, multipath и общие пространства имён предлагают разные архитектуры. Выбирать нужно с учётом перегрузок, метаданных, поведения очередей, отказов и восстановления.

Цель — не только пиковая пропускная способность, но и предсказуемая задержка очередей и восстановление при синхронной нагрузке.

NVMe 2.4 демонстрирует широту охвата и давление версий

Набор 2.4 объединяет Base, транспорты, Boot, Management Interface и специализированные наборы команд. NVMe превратился из разъёма для SSD в стек протоколов хранения.

Хост, поддерживающий Base 2.4, не обязательно имеет все наборы команд; возможности TCP-контроллеров и RDMA-продуктов тоже различаются. Заявления о поддержке должны быть конкретными.

На практике частью протокола становится комбинация драйвера, ОС, прошивки, транспорта и инструментов управления.

NVMe сделал хранилище композитным, но не простым

Общий контракт снижает стоимость перехода. Команды и пространства имён могут переезжать с PCIe в фабрику или между вендорами. Миграция данных, безопасность, сеть, наблюдаемость и поддержка остаются.

Преимущество — разделение протокола и продуктов. Риск — в том, что одно и то же имя NVMe скрывает очень разные архитектуры.

Хранилище становится программируемым и распределённым, но остаётся системой целостности данных, все пути которой нужно понимать при сбоях.