Кратко
- NVM Express, Inc. — некоммерческий консорциум, который управляет семейством NVMe; он не производит SSD, контроллеры, коммутаторы и системы хранения данных.
- NVMe заменил унаследованные допущения механических дисков на множественные очереди отправки и завершения (submission и completion queues) в памяти, лучше согласованные с параллельной флэш-памятью и многоядерными CPU.
- Одна и та же модель контроллера, подсистемы и namespace может работать локально через PCIe или удалённо через NVMe over Fabrics, с транспортами TCP и RDMA с разными операционными профилями.
- NVMe 2.x модульный. Набор 2.4, опубликованный 4 августа 2026 года, координирует Base, транспорты PCIe/RDMA/TCP, NVMe-MI, Boot и несколько специализированных наборов команд.
- Протокол делает доступ к ёмкости более компонуемым. Он не определяет файловую систему, долговечность, RAID, erasure coding, проектирование сети, операционную безопасность или согласованность приложений.
Команда хранения может покинуть сервер, не меняя базового языка
Чтение может быть направлено к локальному namespace NVMe по PCIe или к удалённой подсистеме через fabric. Меняются среда, контроллер и путь, но модель команд сохраняется.
Эта непрерывность позволяет дезагрегировать. Ёмкость можно группировать и назначать хостам по мере необходимости, вместо установки каждого устройства в шасси, которое его потребляет.
Дезагрегация добавляет зависимости: discovery, сеть, multipath, аутентификацию, переподключение и новые домены отказов. NVMe превращает хранилище в программируемый сервис, а не в ресурс без топологии.
Флэш-памяти был нужен протокол, рассчитанный на параллелизм
Исторические интерфейсы отражали механическую задержку и узкие очереди. Флэш-память может обслуживать множество операций параллельно, а современные серверы имеют много ядер.
NVMe использует пары очередей отправки и завершения в памяти. Хост размещает команды, обновляет doorbell, получает завершения через прерывания или polling. Множество очередей уменьшают общие блокировки и могут быть привязаны к конкретным ядрам.
Результат зависит от прошивки, PCIe, NUMA, глубины очереди, прерываний и рабочей нагрузки. Название протокола не гарантирует универсальный уровень производительности.
Консорциум разделяет управление протоколом и конкуренцию на рынке продуктов
Работа началась в конце 2000-х; NVMe 1.0 появился в 2011 году, а NVM Express, Inc. была учреждена в 2014. Участвуют компании из области CPU, носителей, контроллеров, сетей, систем и облака.
На момент среза данных президентом была Amber Huffman из Google, казначеем — Curtis Ballard из AMD, секретарём — David Allen из Microchip. В публичный совет входило тринадцать представителей promoter.
Консорциум определяет контракты и программы соответствия (compliance). Члены конкурируют в чипах, прошивках, системах, поддержке и производительности. Членство в консорциуме не доказывает, что продукт реализует все функции.
NVMe 2.0 превратил растущий документ в модульное семейство
С несколькими транспортами и новыми моделями данных единую спецификацию стало трудно поддерживать. Реструктуризация 2.0 в 2021 году разделила Base, наборы команд и транспорты.
Так TCP может развиваться без переписывания каждой команды, а ZNS может продвигаться без изменения всех обычных контроллеров. Обратная сторона — более сложная матрица версий.
NVMe 2.4, опубликованный 4 августа 2026 года, скоординировал Base 2.4, PCIe 1.4, RDMA 1.3, TCP 1.3, NVMe-MI 2.2, Boot 1.4 и наборы команд NVM, Key Value, Zoned Namespace, Computational Programs и Simple Log Memory. Это не единый файл.
Очереди отправки и завершения приближают работу к ядрам
Хост записывает команды в очередь отправки; контроллер возвращает статус в очередь завершения. Разные ядра или процессы могут использовать разные пары и снижать конкуренцию.
Doorbell уведомляют о новой работе. Polling может снизить задержку за счёт CPU; коалесценция прерываний может экономить циклы, но добавляет ожидание. Глубина очереди меняет утилизацию и хвостовую задержку.
Более глубокая очередь не всегда лучше. Она может скрывать насыщение и увеличивать время ожидания. Конфигурация должна соответствовать рабочей нагрузке.
Контроллеры, подсистемы и namespace разделяют логическую конечную точку и физический носитель
Контроллер предоставляет очереди и команды. Подсистема может объединять несколько контроллеров. Namespace представляют логическую ёмкость и могут быть доступны по нескольким путям.
Идентичность, видимая хосту, больше не обязана совпадать с SSD. Массив может объединять много носителей и предлагать стабильные namespace.
NVMe не определяет размещение, репликацию или защиту данных. RAID, erasure coding, тонкое выделение и согласованность относятся к вышестоящей системе.
Административные команды управляют средой ввода-вывода
Административная очередь управляет идентификацией, созданием очередей, функциями, журналами, прошивкой, namespace и безопасностью. Это слой, который делает возможной обычную работу.
Административная команда может удалить namespace, активировать неправильную прошивку или изменить состояние питания. Она требует прав, аудита и контроля изменений.
Разделение административных и I/O операций улучшает архитектуру, но не снижает важность плоскости управления. В fabric оба могут зависеть от одной сети.
PCIe сохраняет локальный путь близким к памяти и оборудованию
NVMe поверх PCIe использует общую память и регистры контроллера на локальной шине. Это самый прямой способ подключить SSD или карты внутри сервера.
Топология по-прежнему важна. Устройство может находиться за коммутатором PCIe, в другом сокете NUMA или разделять линии. CPU, память и устройство должны быть правильно размещены.
Поэтому учёта «количества дисков» недостаточно. Часть задержки может возникать на сервере до достижения носителя.
NVMe over Fabrics превращает локальную связь в сетевой сервис
NVMe-oF 1.0 и NVMe-MI 1.0 были опубликованы 9 июня 2016 года. NVMe-oF переносит капсулы и данные в удалённую подсистему, где хост создаёт очереди и видит namespace по сети.
Архитектура допускает общие пулы и разделение вычислительных ресурсов и хранилища. Хосты могут меняться без перемещения данных.
Она также добавляет NIC, коммутатор, маршрутизацию, discovery, контроллер, аутентификацию и multipath в путь данных. Сетевая структура становится частью системы обеспечения целостности.
Контроллеры обнаружения облегчают динамику, но создают критическую зависимость
Хост обращается к контроллеру обнаружения, чтобы узнать подсистемы, адреса и сервисы. Это избавляет от ручной настройки каждой цели.
Ошибочная информация или недоступный сервис могут помешать новым подключениям или направить хост не туда. Нужны резервирование, кэши, проверка и защита идентичности.
Обнаружение — это не то же самое, что доступность пути данных. Существующие подключения могут продолжаться, пока новые хосты ничего не обнаруживают.
NVMe/TCP перенёс fabric в обычные IP-сети
NVMe/TCP, стандартизированный в 2019 году, отображает команды и данные поверх TCP. Операторы могут использовать маршрутизируемый Ethernet, IP-инструменты, межсетевые экраны и привычные практики без построения RDMA.
Простота добавляет накладные расходы. TCP, копирование, прерывания и CPU могут влиять на хвостовую задержку. Решающее значение имеют ядро, разгрузка, размер передачи и настройка.
Транспорт включает специальные обрамление и контрольные суммы (digests) и может использовать TLS. Наличие TLS не означает, что он включён и правильно эксплуатируется.
NVMe/RDMA стремится к низкой задержке за счёт более строгой дисциплины fabric
RDMA использует пары очередей, зарегистрированную память и возможности NIC для перемещения данных с меньшим участием CPU. Это привлекательно для HPC и ИИ.
RDMA — это не одна сеть. RoCE, iWARP и другие привязки имеют разные требования к перегрузке, потерям, PFC, ECN и памяти.
Быстрый бенчмарк не доказывает простоту эксплуатации. Проблема сети может выглядеть как таймаут хранилища и требовать комбинированных навыков.
Multipath превращает резервирование в решение хоста
Namespace может быть доступен через несколько контроллеров и путей. Хост выбирает балансировку или переключение при отказе. Asymmetric Namespace Access указывает оптимизированные, неоптимизированные или недоступные пути.
Два канала могут разделять коммутатор, контроллер, питание или маршрут. Независимость нужно проверять реальными сбоями.
Неверная политика может отправлять I/O медленным путём или медленно покидать мёртвый путь. Резервирование — это наблюдаемое поведение, а не число портов.
Резервирования координируют общий доступ, не заменяя консенсус
Резервирования NVMe позволяют регистрировать хосты и резервировать namespace, чтобы предотвратить несанкционированную запись. Это полезно в кластерах и при переключении при отказе.
Они не заменяют консенсус кластера или согласованность приложения. Упавший хост может оставить состояние, которое нужно очистить, а fencing должен не допускать записи со стороны старого узла.
Неправильно восстановленная резервация может привести к недоступности или повреждению данных.
Аутентификация и TLS важны, когда хранилище выходит за пределы PCIe
Локальное устройство имело физическую границу. В сети инициатор и цель должны аутентифицировать идентичности и защищать каналы.
NVMe определяет механизмы аутентификации, а TCP может использовать TLS. Результат зависит от ключей, сертификатов, обновления, алгоритмов и политики. Поддержка не означает безопасную конфигурацию.
Плоскости обнаружения, администрирования и данных должны анализироваться вместе. Аутентичная идентичность всё равно может обладать избыточными правами.
NVMe-MI создаёт плоскость управления, отдельную от I/O
NVMe Management Interface позволяет инвентаризировать подсистемы, считывать состояние здоровья и выполнять операции, даже когда путь приложения неактивен.
Это помогает обслуживанию и восстановлению, но добавляет ещё один привилегированный интерфейс. Платформа управления может читать чувствительные данные или изменять устройства в масштабе.
NVMe-MI интегрируется с Redfish и другими системами. Интеграция не объединяет обязанности каждого стандарта.
Zoned Namespace раскрывают ограничения носителя для программного обеспечения
ZNS делит ёмкость на зоны с последовательной записью. Предоставляя видимость хосту, он может уменьшить внутреннюю сборку мусора и улучшить ресурс или предсказуемость.
Польза требует файловой системы, базы данных или слоя хранения, осведомлённого о зонах. Приложение, спроектированное для обычного блочного устройства, не получает её автоматически.
ZNS иллюстрирует компромисс: больше знаний о носителе может повысить эффективность, но увеличивает стоимость переносимости программного обеспечения.
Key Value, Simple Log Memory и Computational Programs расширяют понятие namespace
Специализированные наборы команд допускают ключи/значения, простые журналы или выполнение программ рядом с хранилищем. Они направлены на сокращение преобразований и перемещения данных.
Их использование зависит от контроллеров, драйверов, библиотек и приложений. Наличие в спецификации не делает их универсальными.
Чем больше вариантов, тем важнее обнаружение возможностей и запасной путь. Модульность создаёт гибкость и новую коммерческую матрицу.
Соответствие даёт доказательства, но не сертифицирует сквозную производительность
Программы и семинары по интероперабельности проверяют конкретное поведение между хостом и контроллером. Они выявляют расхождения, которые не видны из текста.
Список не измеряет задержку, ресурс, восстановление или безопасность во всей топологии. Опции и матрицы драйвер-прошивка меняются.
Покупатель должен рассматривать соответствие как нижнюю границу и тестировать собственные нагрузки, сбои и обновления.
Дезагрегация отделяет ёмкость от сервера и перераспределяет ответственность
Локальное хранилище связывало устройство, хост и системную команду. Удалённый пул может обслуживать многих потребителей и менять назначения программно.
Теперь сетевые, хранилищные, платформенные, security и команды приложений совместно разбирают инциденты. Деградация fabric может выглядеть как проблема базы данных; прошивка может выглядеть как потеря сети.
Экономика зависит от утилизации и операционной способности, а не только от цены за терабайт.
ИИ превращает задержку хранилища в стоимость вычислений
Обучение и инференс загружают наборы данных, записывают контрольные точки и перемещают состояние в больших масштабах. Если тысячи ускорителей ждут, потери хранилища становятся значительными затратами.
TCP, RDMA, multipath и общие namespace дают возможности, но их нужно оценивать с учётом перегрузки, восстановления, метаданных и поведения очередей.
Цель — не только пиковая пропускная способность, но и предсказуемая задержка очереди и восстановление при синхронизированных нагрузках.
NVMe 2.4 показывает масштаб и давление версионирования
Набор координирует Base, транспорты, Boot, Management Interface и наборы команд. NVMe — это уже стек, а не разъём для SSD.
Хост может поддерживать Base 2.4 без каждого набора команд; контроллер TCP может отличаться от контроллера RDMA. Заявления о поддержке требуют детализации.
Драйвер, ОС, прошивка, транспорт и инструмент управления образуют матрицу, которая на практике является частью протокола.
NVMe сделал хранилище компонуемым, но не простым
Контракт снижает стоимость перехода: команды и namespace могут пережить переход с PCIe на fabric или от одного поставщика к другому. Остаются миграция данных, безопасность, наблюдаемость, сеть и поддержка.
Преимущество — разделение протокола и продукта. Риск — скрыть очень разные архитектуры под одной маркой NVMe.
Хранилище становится программируемым и распределяемым, но остаётся системой целостности, которую нужно понимать при сбое.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
