Выпущена версия 2.0 спецификации NVM Express, поддерживающая примерно двухлетнюю периодичность для интерфейса хранилища, которому уже десять лет. Как и другие обновления спецификации NVMe, версия 2.0 содержит множество новых функций и возможностей, которые могут быть реализованы накопителями (обычно в качестве дополнительных функций). Но наиболее существенное изменение — и причина, по которой это называется версией 2.0 вместо 1.5 — заключается в том, что спецификация была радикально реорганизована, чтобы лучше соответствовать широкому спектру функций, которые теперь охватывает NVMe. Из своего скромного начала в качестве протокола блочного хранилища, работающего через PCI Express, NVMe превратился в один из самых важных протоколов сетевого хранилища, а теперь также поддерживает парадигмы хранилища, которые полностью отличаются от первоначально предоставленной абстракции блочного хранилища, подобной жесткому диску. пользователя NVMe.

Вместо базовой спецификации для типичных твердотельных накопителей PCIe и отдельной спецификации NVMe over Fabrics версия 2.0 разработана как более модульная спецификация и разбита на несколько документов. Базовая спецификация теперь охватывает как локально подключенные устройства, так и NVMeoF, но более абстрактно — достаточно было перемещено из базовая спецификация что уже недостаточно определить все функции, необходимые для реализации простого SSD. Настоящие устройства также должны ссылаться хотя бы на один Транспортная спецификация и хотя бы один Спецификация набора команд. Для типичных потребительских твердотельных накопителей это означает использование спецификации транспорта PCIe и набора команд блочного хранилища. Другие варианты транспорта в настоящее время включают сетевой NVMe через фабрики с использованием TCP или RDMA. Другие параметры набора команд включают в себя наборы команд «Зональное пространство имен» и «Ключ-значение». Мы уже подробно рассмотрели зонированные пространства имен, когда они были одобрены для включения в прошлом году. Три стандартизованных набора команд (блочный, зональный, ключ-значение) охватывают различные точки в спектре от простых твердотельных накопителей с тонкими абстракциями над базовой флеш-памятью до относительно сложных интеллектуальных дисков, которые берут на себя некоторые задачи управления хранилищем, которые традиционно выполнялись бы. обрабатывались программным обеспечением в хост-системе.

Читайте также:
Samsung представила самый мощный в мире робот пылесос

Многие из новых функций в NVMe 2.0 являются незначительными расширениями существующих функций, что делает их более полезными и более широко используемыми. Например, разделение хранилища устройства на наборы NVM и группы выносливости было введено в NVMe 1.4, но в спецификации не говорилось, как эти подразделения будут созданы; эта конфигурация должна быть либо жестко запрограммирована микропрограммой накопителя, либо обрабатываться с помощью команд, специфичных для производителя. NVMe 2.0 добавляет стандартный механизм управления емкостью для групп надежности и наборов NVM, которые должны быть выделены, а также добавляет еще один уровень разделения (домены) для массивных устройств хранения NVMeoF, которым требовалось больше инструментов для разделения их пула доступного хранилища, или изоляция влияния различных пользователей на производительность общих дисков или массивов.

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

Наборы команд зонированного и ключевого значения уже были в поле зрения, когда NVMe 1.4 был завершен, и теперь эти технологии были включены в 2.0 с таким же статусом, что и исходный набор команд блочного хранилища. Будущие наборы команд, например, для вычислительных накопителей, все еще находятся в стадии разработки и не готовы к стандартизации, но теперь спецификация NVMe может более легко включать такие новые разработки. В принципе, NVMe может также добавить набор команд Open Channel, который раскрывает большую часть или все необработанные детали управления флэш-памятью NAND (страницы, стирание блоков, управление дефектами и т. Д.), Но в целом отраслевой консенсус состоит в том, что парадигма зонированного хранилища поражает более разумный баланс, и интерес к SSD с открытым каналом ослабевает в пользу зонированных пространств имен.

Читайте также:
LG разрабатывает сворачиваемый в трубочку 55" OLED телевизор

Для случаев использования на предприятии NVMe унаследовал поддержку информации о защите от SCSI / SAS, связывая некоторую дополнительную информацию с каждым логическим блоком, которая используется для проверки целостности данных от конца до конца. NVMe 2.0 расширяет существующую поддержку информации о защите от поддержки 16-битных CRC до поддержки 32-битных и 64-битных CRC, обеспечивая более надежную защиту данных для крупномасштабных систем хранения.

NVMe 2.0 представляет новую важную функцию безопасности: управление группой команд, настраиваемое с помощью новой команды Lockdown. В NVMe 1.4 добавлена ​​возможность защиты от записи пространства имен, которая позволяет хост-системе переводить пространства имен в режим защиты от записи до тех пор, пока не будет явно разблокирована или пока диск не будет выключен и выключен. Блокировка NVMe 2.0 позволяет аналогичным образом запрещать другие команды. Это можно использовать для перевода диска в состояние, в котором разрешены как обычные чтения, так и записи, но различные команды администратора заблокированы, поэтому другие функции диска не могут быть перенастроены. Как и в случае с предыдущей функцией защиты от записи, этот элемент управления группой команд поддерживает установку этих ограничений до тех пор, пока они не будут явно сняты, или до выключения и отключения питания.

Для вариантов использования NVMe over Fabrics NVMe 2.0 разъясняет, как обрабатывать обновления микропрограмм и безопасное завершение работы устройства в сценариях, когда общее хранилище доступно через несколько контроллеров. Также теперь есть явная поддержка жестких дисков. Несмотря на то, что маловероятно, что жесткие диски в ближайшее время переключатся на использование соединений PCIe вместо SAS или SATA, поддержка ротационных носителей означает, что предприятия могут объединить свои сети хранения данных с помощью NVMe over Fabric и отказаться от старых протоколов, таких как iSCSI.

Читайте также:
AMD запускает EPYC 3-го поколения 15 марта: Милан с Zen 3

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

Связанное чтение: