Конфигурация nvme что это в биосе

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Как правильно выбрать NVMe SSD диск

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосеТвердотельные накопители (SSD) за последние годы стремительно улучшают свои показатели, выходя на рубежи производительности, которые еще недавно казались недостижимыми. Это сделалось возможным при переходе на шину PCI Express и протокол NVMe, такие диски не имеют ничего общего с SATA и являются новым типом накопителей, изначально рассчитанных на использование твердотельной памяти. При этом вокруг них до сих пор гуляет множество мифов и заблуждений, что порой очень мешает сделать правильный выбор, поэтому сегодня мы постараемся отделить зерна от плевел и рассказать о том, что действительно важно при выборе такого диска.

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

Чтобы лучше понимать, о чем пойдет речь дальше мы рекомендуем ознакомиться с нашей статьей: Твердотельные накопители: что такое SLC, MLC, TLC, QLC, NVMe и прочие аббревиатуры? Мы не будем подробно останавливаться на рассмотренных в ней вопросах.

Основные понятия

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

Поэтому говоря о современных NVMе дисках следует понимать, что это прежде всего накопитель с подключением по шине PCI Express и с поддержкой протокола NVM Express, для подключения к компьютеру такой диск может использовать разъем M.2. Именно в этом порядке, потому как форм-фактор M.2 вовсе не говорит о том, что перед нами именно NVMe диск, так как с данным разъемом выпускается большое количество SATA-моделей. Точно также NVMe диски могут использовать иные разъемы для подключения к ПК, например, U.2.

Что нужно знать про шину PCI Express

Так как NVMe накопители подключаются к шине PCI Express, то начнем разбираться с нее. Первая спецификация шины PCI Express представлена в 2002 году и это означает, что нет принципиальных препятствий для подключения NVMe дисков даже к достаточно старым устройствам и они даже будут работать. Но следует учитывать, что пропускная способность одной линии различных версий PCIe имеет разные значения. На сегодняшний день массовое применение имеет третья версия PCIe и только начинают появляться устройства с поддержкой четвертой. Ниже в таблице представлена пропускная способность одной, двух и четырех линий разных поколений PCIe.

Версия PCIeПропускная способность МБ/с
x1x2x4
1.02505001000
2.050010002000
3.098519693938
4.0196939387877

Существующие модели NVMe дисков поддерживают две или четыре линии PCI-е. Как видим, несмотря на то что скорость одной линии PCI Express с каждым поколением практически удваивалась, но только к третьей версии достигла значений, дающих серьезное преимущество над SATA даже в недорогом варианте с двумя линиями.

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

Чтобы не быть голословными, давайте разберем несколько примеров. Проще всего с Intel, так как там практически каждое поколение процессоров имеет собственный сокет и вариативность не так велика. Кроме того, последние поколения процессоров имеют одинаковую конфигурацию PCIe вне зависимости от модели, так все процессоры 10-го поколения, от Celeron G до Core i9 имеют 16 линий PCIe 3.0 с возможными конфигурациями 1×16, 2×8, 1×8+2×4.

Как ни странно, проще всего с недорогими моделями. Возьмем, к примеру Gigabyte H410M S2H V3, данная материнская плата имеет единственный разъем M.2 M-key c PCIe Gen3 x4, а так как кроме процессоров 10-го поколения установить туда больше ничего нельзя, то вы при любом раскладе получаете 4 линии PCIe третьего поколения с пропускной способностью до 3,9 ГБ/с.

Берем более дорогую ASRock B460 Pro4, эта плата имеет два разъема M.2, каждый из которых поддерживает PCIe до уровня Gen3 x4, кроме того, в один из разъемов можно установить SATA-устройство. Опять-таки процессоры только 10-го поколения, что гарантирует отсутствие неприятных сюрпризов.

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосеИтак, самый верхний разъем M.2, предоставляющий четыре линии PCIe 4.0 доступен только при установке процессора 11-го поколения, если вы купите процессор 10-го поколения данный разъем «превратится в тыкву», т.е. не будет работать вообще. Оставшиеся разъемы предоставляют линии третьего поколения в количестве x4 и x2, таким образом подсистема хранения B560 Pro4 оказывается даже более ограниченной, чем у более дешевой B460 Pro4 и раскрывается только при использовании процессоров 11-го поколения.

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

И снова проще всего с недорогими платами, скажем ASRock AB350M Pro4-F имеет два разъема M.2, один из них поддерживает только SATA3 и нас не интересует, а вот второй предоставляет 4 линии PCIe 3.0 при использовании старших моделей процессоров и всего две линии при установке Athlon или процессоров A-Series APU. При этом несмотря на то, что плата поддерживает процессоры третьего поколения (Zen2) линий PCIe 4.0 на слотах хранения вы не получите.

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

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

Несколько слов о разъемах М.2

К выбору нового форм-фактора для накопителей NVMe имеет опосредованное отношение, любой, кто заглядывал внутрь 2,5″ SSD диска знает сколько там неиспользуемого пустого места. Добавьте к этому корпус и разъем. Переход на M.2 позволил еще раз удешевить производство, а также, за счет меньших размеров, упростить проектирование компактных устройств. Пользователи тоже не остались в накладе, компактный накопитель устанавливается непосредственно на плату устройства и позволяет обойтись без кабелей, что улучшает внешний вид и вентиляцию собранного компьютера.

Изначально для SSD выбрали форм-фактор M.2 с разъемом B key, данный разъем предусматривал вывод на свои контакты интерфейса SATA и двух линий PCIe. На первых порах этого было достаточно, но с развитием быстрых NVMe дисков пропускной способности двух линий PCIe стало не хватать. При этом возможности разъема B key не позволяли увеличить количество линий PCIe, потому что стандартом также предусмотрен вывод на него интерфейсов USB 2.0 / 3.0, HSIC, SSIC, Audio, UIM, I2C. Они могут быть разведены или не разведены на каждый конкретный разъем, но разъем должен оставаться электрически совместимым с любым типом устройств, которые могут быть подключены к нему. Проще говоря, устройство может там обнаружить или не обнаружить требуемые линии, но ничего неожиданного там оказаться не должно.

Поэтому был разработан новый тип разъема с ключом M key, который предусматривает вывод на него только интерфейсов PCIe x4 и SATA, при этом в части двух линий PCIe и SATA разъем сохраняет совместимость с B key. Таким образом разработанные для разъема B key накопители могут успешно работать в разъеме M key, но не наоборот.

Практически все современные материнские платы выпускаются с разъемом M key, с ним же идут все PCIe x4 NVMe диски, в то время как SATA и PCIe x2 модели оснащаются комбинированным разъемом B&M keу и могут быть установлены как на старые, так и на новые платы.

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосеИногда здесь возникает непонимание, ведь раньше мы говорили, что PCIe x4 диски совместимы с интерфейсом PCIe x2, а теперь оказывается, что подключить рассчитанный на четыре линии накопитель к разъему с двумя линиями PCI Express нельзя. Однако противоречия тут нет. Спецификация PCIe требует от устройств поддержки работы с любым количеством линий, начиная от одной, максимальное количество ограничивается возможностями устройства, также все новые версии PCIe обязаны сохранять обратную совместимость со старыми устройствами (и наоборот). Но, оставаясь совместимыми по интерфейсу, диски PCI x4 электрически несовместимы со старым разъемом.

Загрузка с NVMe

Для загрузки с NVMe устройств низкоуровневое ПО материнской платы должно уметь работать с такими дисками и именно это подразумевается, когда на коробках пишут «поддерживает NVMe». Без поддержки со стороны материнской платы вы также сможете использовать NVMe диски, но не сможете загрузитьcя с них. Для плат с UEFI такую поддержку во многих случаях можно добавить, просто обновив прошивку (существуют также прошивки от энтузиастов для старых плат), для устройств с BIOS такая возможность обычно недоступна. Есть, конечно, вариант с самостоятельной ручной модификацией для некоторых моделей, но это сугубо на свой страх и риск.

Если же вы не готовы взять на себя такую ответственность, то можно пойти обходным путем и использовать Clover EFI bootloader. Работа с данным инструментом выходит за рамки этой статьи, однако в сети можно найти достаточно инструкций.

Возвращаемся к выбору диска

Теперь, вооружившись необходимым объемом знаний, можно приступать к выбору NVMe диска. Прежде всего следует определиться с выбором материнской платы и процессора, а затем, при помощи спецификаций на них, уточнить количество линий PCIe на разъемах M.2 и поколение интерфейса.

И если вы внимательно читали эту статью, то в ряде случаев вам даже не придется заглядывать в спецификации, так, например, увидев заявленную для SAMSUNG 980 PRO максимальную скорость чтения в 6900 МБ/с сразу можно понять, что речь идет о PCIe 4.0 и без поддержки этого интерфейса со стороны материнской платы и процессора такой диск покупать не имеет смысла.

Если у вас в наличии 4 линии PCIe 3.0 то можете смело выбирать диски со скоростями 3900 МБ/с, т.е. практически любой производительный диск, кроме топов, с поддержкой четвертой версии интерфейса. При этом часто на плате остается еще один разъем M.2 с меньшим количеством линии или более старой версией интерфейса. Поэтому вполне разумно желание установить туда еще один накопитель, все равно производительность даже двух линий PCIe 3.0 существенно превосходит пропускную способность SATA. Как быть в этом случае? Очень просто, из таблицы выше получаем значение пропускной способности двух линий третьего поколения (или четырех линий второго) как 2000 МБ/с, если грубо округлить в большую сторону, вот на эту цифру и будем ориентироваться.

В любом случае принцип прост: выясняем пропускную способность разъема и согласно нее подбираем подходящий диск. Также не забываем обратить внимание на тип ключа, если для современных плат это несущественно, практически везде стоит M key и вы сможете установить любой накопитель, то на более старых платах вы можете встретить B key и диски PCIe x4 подключить туда не получится чисто физически.

Еще один неочевидный фактор: на многих платах разъемы M.2 делят линии PCIe с каким-либо слотом и при подключении накопителя определенный слот перестанет работать. Обязательно учитывайте это, если используете дополнительные PCIe устройства помимо видеокарты.

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

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

Или подпишись на наш Телеграм-канал: Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

Источник

NVMe Namespaces: возможности и подводные камни

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

Уверен, многие слышали про NVM Express, или просто NVMe. Изначально для меня это были просто быстрые диски. Потом я осознал, что это интерфейс для подключения этих дисков. Затем стал понимать NVMe как протокол для передачи данных по PCIe-шине. И не просто протокол, а протокол, разработанный специально для твердотельных накопителей!

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

Так что же такое NVMe? Рассмотрим подробнее.

Началось все с SATA-интерфейса. На самом деле до него существовала масса других интерфейсов — SCSI, UltraSCSI, ATA, PATA и прочие, но это уже дела давно минувших дней. В этой статье мы рассмотрим только актуальные сейчас интерфейсы.

Скорость передачи данных по SATA-интерфейсу достигает 560 Мбайт/с, чего с лихвой хватает для HDD-дисков, производительность которых варьируется от 90 до 235 Мбайт/с (есть отдельные прототипы, скорость которых достигает 480 Мбайт/с). Но вот для SSD-дисков этого недостаточно, уже сейчас их производительность достигает от 3000 до 3500 Мбайт/с. SAS-интерфейс также не подойдет, его максимальная скорость всего лишь 1200 Мбайт/c.

Для того, чтобы реализовать весь потенциал твердотельных накопителей, великие умы решили использовать PCIe-интерфейс. Сейчас он позволяет передавать данные со скоростью от 8 до 32 Гбайт/c. Чтобы унифицировать подключение SSD к PCIe-интерфейсу, была разработана спецификация NVMe. Точно так же, как в свое время была создана спецификация для подключения USB-Flash-накопителей.

Полностью разбирать NVMe мы не будем. В этой статье я хочу поделиться с вами сильно заинтересовавшей меня особенностью — NVMe Namespaces, или Пространства имен.

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

Ближе к NVMe

NVMe в Linux

Начну издалека. К изучению и поиску информации о пространствах имен меня побудил вопрос: «Почему NVMe-диски в Linux называются именно так?»

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

Здесь перечислены все NVMe-устройства, подключенные к рабочей машине. Рассмотрим блочное устройства /dev/nvme0n1p1. Часть nvme, как ни странно, применяется для NVMe-устройств. Число, идущее следом, обозначает порядковый номер контроллера диска, который отвечает за все операции, производимые с накопителем. Заключительная часть p1 указывает на номер раздела на диске. И наконец, часть, которая заслуживает нашего внимания, — n1. Это и есть номер пространства.

Для простоты можно также провести некоторую аналогию с обыкновенными SSD:

/dev/sda — аналог /dev/nvme0n1
/dev/sda1 — аналог /dev/nvme0n1p1

Обратите внимание на устройство /dev/nvme0. Это NVMe-контроллер. Он является символьным устройством. Таким образом, мы можем обращаться к нему, отправляя определенные команды, чем мы и воспользуемся далее.

Namespace vs Partition

У вас может возникнуть вопрос: чем namespace отличается от partition? Отбросим все возможности и преимущества NVMe Namespace. Partition — это раздел диска на уровне хоста. Namespace же является разделом на уровне контроллера. То есть Namespace является неким логическим пространством, с которым хост работает как с блочным устройством.

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

Параметры NVMe-контроллера

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

Метаданные хранятся в контроллере в виде последовательности байтов в порядке от старшего к младшему, поэтому далее я буду придерживаться следующего формата записи:
[интервал в байтах (формата Big-Endian)] / название параметра / расшифровка.

Пример для лучшего понимания. Следующая запись означает, что с 71 по 64 байт хранится значение параметра fr, который расшифровывается как firmware revision:

[71:64] / fr / firmware revision.
[23:4] / sn / serial number. Содержит серийный номер контроллера.
[63:24] / mn / model number. Содержит номер модели, или part number.
[71:64] / fr / firmware revision. Содержит номер ревизии прошивки контроллера.
[257:256] / oacs / optional admin command support. Указывает на наличие дополнительных команд и функций контроллера. Состоит он из 16 бит, каждый из которых отвечает за определенную команду. Если бит равен 1, то контроллер дает возможность:

Параметры NVMe-пространств

Теперь рассмотрим метаданные NVMe-пространств:

[7:0] / nsze / namespace size. Это максимальный размер пространства в логических блоках. В данном случае — 500118192 512-байтных блоков, что, кстати, и указано в выводе blockdev:

[15:8] / ncap / namespace capacity. Это количество логических блоков, выделенных пространству для хранения данных в текущий момент.

[23:17] / nuse / namespace use. Это количество логических блоков, занятых данными в текущий момент.

Обратите внимание, что параметры nsze и ncap равны. Какой смысл указывать максимальный объем и объем, который выделен в текущий момент? Значит ли это, что в текущий момент может быть выделено меньше, чем доступно? Да!

Дело в том, что пространства имен поддерживают технологию Thin Provisioning. Это означает, что пространству выделяется только часть от указанного объема. Другая часть будет оставаться в общем пуле и выделяться этому или другим пространствам по требованию: при заполнении выделенного объема или при достижении критического порога. В общем, эта технология позволяет эффективнее использовать ресурсы для хранения данных. Подробнее и нагляднее с этой технологией можно ознакомиться в этой статье.

В нашей же ситуации nsze и ncap равны, так как пространство было создано без поддержки тонкого распределения. Выглядеть такое пространство на диске будет так:

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

ncap и nsize будут указывать на одно 一 общий объем пространства. В случае с использованием тонкого распределения на диске пространство будет выглядеть так:

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

Здесь nsze указывает на максимальный объем, ncap — на выделенный, а nuse в обоих случая показывает только то, что занято. Когда значение nuse достигнет значения ncap, то ncap увеличится, но не больше, чем nsze.

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

[24:24] / nsfeat / namespace features. Этот параметр особенно интересен. Он указывает на наличие дополнительных особенностей пространства. Состоит он из 8 бит (перечислены они тоже в Big Endian), каждый из которых отвечает за определенную функцию. Если значение бита равно 1, то функция активна, 0 — нет:

[29:29] / dps / end-to-end data protection type settings. Указывает на тип сквозной защиты данных. Состоит из 8 бит:

Публичные и приватные пространства

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

Одним из этапов создания пространства является его закрепление за NVMe-контроллером. Доступ к пространству и будет осуществляться через тот контроллер, за которым оно закреплено. Но пространство может быть закреплено не только за одним контроллером — приватное, но и за несколькими контроллерами — публичное.

Если приватное пространство можно назвать обычным, так как из него ничего интересного слепить нельзя, то публичное пространство позволяет использовать такую возможность, как namespace multi-path.

Взаимодействие с NVMe

Приступим к вопросу взаимодействия с NVMe-устройствами: как посылать различные команды контроллеру, создавать пространства имен, форматировать их и т. д. Для этого в мире Linux существует утилита — nvme-cli. С ее помощью и можно выполнять данные операции.

nvme list

Чтобы вывести список NVMe-устройств, не обязательно обращаться к devfs подобным образом:

Или использовать lspci, чтобы узнать что же такое подключено к машине:

Достаточно использовать команду nvme list:

В качестве примера я вывел информацию в формате JSON. Как вы можете наблюдать, здесь выводится не просто список устройств, а еще и различная информация о них. Думаю, что часть атрибутов (например, DevicePath или ModelNumber) в комментариях не нуждаются, поэтому обращаю внимание только на некоторые:

nvme id-ctrl, nvme id-ns

Ранее в статье, чтобы получить метаданные об устройстве, я отправлял контроллеру команду Identify. Для этого я использовал команду nvme id-ctrl для идентификации контроллера:

И nvme id-ns для идентификации пространства:

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

nvme create-ns, nvme delete-ns

Создание пространств имен проходит в несколько этапов. Сначала его нужно сформировать. Для этого используется команда nvme create-ns:

Аргументы, которые указываются этой команде, вам уже знакомы. Мы их рассмотрели в разделе «Параметры NVMe-пространств».

Для удаления пространства используется команда nvme delete-ns:

nvme attach-ns, nvme detach-ns

Второй этап создания NVMe-пространств — привязка к контроллеру сформированного пространства. Для этого необходимо использовать команду nvme attach-ns:

Данной командой мы привязываем пространство с идентификатором 1 к контроллеру /dev/nvme0. Также обратите внимание на аргумент —controllers. Здесь перечисляются идентификаторы NVMe-контроллеров, к которым можно привязать пространство. Этот аргумент опционален и используется при создании публичных пространств.

Чтобы отвязать пространство, используется команда nvme detach-ns:

nvme reset

После привязки пространства к контроллеру, как правило, его можно использовать для работы. Однако случается так, что контроллер не может увидеть пространства. В таком случае его необходимо перезапустить — использовать команду nvme reset.

nvme format

В случае если необходимо изменить формат LBA у пространства, на помощь приходит команда nvme format:

Однако эту команду также можно использовать и для безопасной затирки данных на NVMe-накопителе:

Применение

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

Spare Area

Начнем с довольно обычной практикой использования. Spare Area, или Резервная область, была придумана еще до NVMe. Это специальное пространство на твердотельном накопителе, которое используется самим контроллером для внутренних операций и недоступно хосту.

Изменяя размер пространств, мы можем изменить и размер резервной области. Дело в том, что весь объем диска равен сумме объемов всех пространств и объема резервной области:

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

Соответственно, если мы уменьшим общий объем пространств, то оставшийся объем уйдет в пользу резервной области.

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

Шифрование и изоляция

NVMe-диски поддерживают самошифрование по спецификации OPAL. Более того, для каждого пространства имен используются различные ключи шифрования.

Также контроллер предоставляет возможность защиты от записи. Существует три уровня:

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

Это часто применяется в стационарных и мобильных ПК. В пространство, доступное только для чтения, можно поместить, например, загрузчик, чтобы избежать его повреждения. Таким же образом можно защитить другие важные данные.

Multiple Using

Как упоминалось ранее, пространства являются разделами на уровне контроллера, которые видны конечному хосту как отдельное устройство. А можно ли разделить NVMe-накопитель большого объема не несколько приватных пространств, каждое из которых затем выделить разным хостам? Можно! А с использованием сетевого протокола NVMe-oF (NVMe Over Fabrics) выделить эти пространства можно не только виртуальным хостам, но и физическим.

При таком использовании накопителя схема разделения будет выглядеть следующим образом:

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

NVMe-контроллер позаботится о том, чтобы пространства были изолированы друга от друга: данные будут храниться в отделенных друг от друга областях накопителя, у каждого хоста будет собственная очередь для ввода-вывода. Тем не менее, spare area, или резервные области, по-прежнему будут общими.

Namespace Multi-path и Namespace Sharing

Namespace Sharing, или Public Namespaces, подразумевает под собой возможность совместного доступа одного или нескольких хостов к пространству через два и более контроллеров.

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

Для чего это необходимо? На рисунке показана схема использования публичных пространств. Да, интересно: мы можем обратиться к пространству NS B через контроллер NVMe Controller 1 и NVMe Controller 2. Но я не вижу в этом какой-то полезности… пока схема не будет выглядеть следующим образом:

Конфигурация nvme что это в биосе. Смотреть фото Конфигурация nvme что это в биосе. Смотреть картинку Конфигурация nvme что это в биосе. Картинка про Конфигурация nvme что это в биосе. Фото Конфигурация nvme что это в биосе

Здесь мы видим, что контроллеры находятся на совершенно разных хостах и у нас есть несколько независимых путей к данным: через хост-контроллеры Host A (синие контроллеры) и Host B (фиолетовые контроллеры). Теперь это можно использовать для резервирования или для наращивания производительности: если синий путь будет сильно нагружен, то мы пойдем по фиолетовому.

Такой подход позволяет организовать высокопроизводительные и высоконадежные гибкие программно-определяемые СХД из обычных серверных платформ с использованием NVMe-oF.

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

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

Послесловие

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

Источник

Добавить комментарий

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