Главная / Компьютеры / Спецификация NVMe 1.4. Часть 2.

Спецификация NVMe 1.4. Часть 2.

Наборы NVMe и группы выносливости

NVM Sets и Endurance Groups – это две новые высокоуровневые организационные конструкции для управления пулами хранения, которые больше, чем отдельное пространство имён NVMe. Поскольку поддержка нескольких пространств имён в основном зарезервирована для высокопроизводительных корпоративных твёрдотельных накопителей, некоторые функции, которые зависят от наборов NVMe или групп выносливости, имеют смысл только для многопортовых дисков, виртуализированных сред или  NVMe через массивы структур – ситуации, когда один контроллер NVMe предоставляет доступ к нескольким дискам. Но некоторые из этих новых функций по-прежнему полезны даже на накопителях, которые предоставляют только одну группу выносливости, содержащую один набор NVMe.

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

Двухчиповая архитектура контроллера NVMe от Marvell, отличный кандидат для нескольких групп выносливости.

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

Прогнозируемый режим задержки

Новая функция Predictable Latency Mode позволяет хосту временно приостанавливать любую фоновую работу, которую выполняет контроллер SSD, гарантируя, что ничто не мешает немедленно обрабатывать новые команды ввода-вывода, поступающие из хост-системы. Это позволяет накопителям предлагать наилучшую и наиболее стабильную производительность. Твёрдотельные накопители не могут работать в этом режиме бесконечно, и в конечном итоге им придётся выйти из детерминированного режима, чтобы справиться с фоновой работой. Накопитель даёт оперативные оценки того, как долго он может оставаться в детерминированном режиме, прежде чем ему придётся переключиться обратно на недетерминированную производительность, с точки зрения времени и с точки зрения того, сколько ещё может он выполнить произвольное чтение 4 КБ и операций записи оптимального размера.

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

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

Ассоциации очереди отправки

Твёрдотельные накопители NVMe обычно поддерживают несколько очередей отправки и завершения команд. В настоящее время основным вариантом использования этого является предоставление каждому ядру ЦП свои собственные очереди, чтобы не требовалась синхронизация между ядрами на уровне драйверов для выполнения обычного ввода-вывода. Также недавно была проведена работа над драйвером Linux с NVMe для добавления поддержки использования очередей в специализированных целях, таких как выделение очередей для высокоприоритетных команд, которые будут опрашиваться для завершения вместо ожидания прерывания, или наличие отдельных очередей на ядро ​​для чтения и записи команды. NVMe 1.4 и режим предсказуемой задержки добавляют ещё один потенциальный вариант использования для нескольких очередей: связывание очереди с определённым набором NVMe. NVMe 1.4 позволяет хост-системе информировать SSD о том, с каким NVM Set она планирует использовать каждую очередь, что может дать контроллеру SSD возможность ещё больше снизить задержку или улучшить QoS при использовании режима предсказуемой задержки. Эта функция не является обязательной даже для накопителей, которые поддерживают режим предсказуемой задержки.

Защита от записи в пространство имён

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

Типичным вариантом использования будет ОС или минимальная система восстановления в пространство имён, защищенных от записи, и сохранение пользовательских данных и приложений в обычном пространстве имён для чтения и записи. Это одна из первых функций NVMe, которая начала предоставлять убедительные аргументы в пользу того, что клиентские твёрдотельные накопители поддерживают несколько пространств имён, поскольку защищенные операционные системы или разделы восстановления уже стали обычным явлением как для мобильных, так и для настольных операционных систем. Защищённые от записи пространства имён могут помочь самому накопителю помочь защитить ОС от случайного или злонамеренного взлома, и эта функция намного проще, чем существующая функция Replay Protected Memory Block.

А что дальше?

Открытые каналы SSD были в той или иной форме в течение нескольких лет. Они раскрывают больше внутренней работы SSD и перемещают весь или часть слоя трансляции флэш-памяти из накопителя на центральный процессор. Некоторые функции NVMe уже были частично вдохновлены твердотельными накопителями с открытым каналом, включая приведенные выше советы об оптимальных размерах блоков и выравнивании данных, а также о возможностях NVM Set и Endurance Groups. В прошлом году Microsoft сформировала Project Denali, чтобы изучить наилучший баланс между низкоуровневым управлением, предоставляемым твердотельными накопителями с открытым каналом, и простой в использовании абстракцией традиционного блочного хранилища, с конечной целью создания новых стандартов, которые могут быть приняты более широко, чем существующие усилия открытого канала. Эта и связанная с ней работа, вероятно, продолжат влиять на NVMe, но общий подход для NVMe заключается в том, чтобы предпочитать обмениваться подсказками, а не устанавливать ж`сткие ограничения на шаблоны ввода-вывода.

Аналогичным образом, в рабочей группе NVMe есть техническое предложение по реализации функции зонированного пространства имён, которая заимствует идеи из того, как обрабатываются жесткие диски с магнитной записью Shingled. Жёсткие диски SMR, управляемые хостом, имеют ограничения, аналогичные флэш-памяти NAND, поскольку они имеют большие области, которые могут поддерживать произвольное чтение, но не перезаписывать существующие данные; для NAND эти регионы являются блоками стирания. Программное обеспечение и файловые системы, которые уже были модифицированы для поддержки управляемых хостом дисков SMR, могут легко поддерживать зонированные твёрдотельные накопители. Совсем не тривиально модифицировать программное обеспечение для работы без поддержки произвольной записи, но большая часть этой работы уже выполнена. Его использование на твёрдотельных накопителях может уменьшить усиление записи, повысить задержку и сократить объём DRAM, которая необходима твёрдотельному накопителю.

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

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



Оставьте комментарий

Ваш email не будет опубликован. Обязательные поля помечены *

*