Nvme vmware что это

Обновлено: 04.07.2024

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

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

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

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

Первая часть «Hardware for Use with VMware vSphere» посвящается моментам, на которые необходимо обратить внимание при выборе серверного оборудования и начальной конфигурации.

Validate Your Hardware

Всегда необходимо проверять серверное оборудование, планируемое для использования под задачи виртуализации на совместимость с устанавливаемой версией vSphere. Проверять по Support Matrix необходимо все:

  1. HBA, NIC, CPU;
  2. Версии Firmware, драйвера;
  3. СХД, протокол подключения;
  4. Версии гостевых ОС.

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

При новых инсталляциях, рекомендуется тестировать ОЗУ в течение 72 часов, для выявления возможных ошибок.

CPU Hardware Considerations

Hardware-Assisted Virtualization

Большинство современных процессоров Intel и AMD включают в себя функции «помощи в виртуализации» и улучшают производительность виртуальной среды. Данные функции ниже:

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

Memory Hardware Considerations

Persistent Memory (PMem)

Планки энергонезависимой памяти, которые включаются в стандартные слоты DIMM. Дешевле, данные сохраняются при перезагрузке, большие объемы памяти, по сравнению с классической ОЗУ, обладают более низкой скоростью доступа. Пример – Intel Optane (DCPMM – DC Persistent Memory Modules), NVDIMM-N.

Intel Optane работает в двух режимах:

  1. Memory mode – DCPMM выступает для операционной системы как основная оперативная память. В этом случае «классическая ОЗУ» DRAM выступает в качестве кэша для DCPMM. Данный режим позволяет «сэкономить» на более дорогой DRAM, не без уменьшения скорости доступа. Производительность зависит от размера DRAM под кэш, как часто необходимо обращаться к ОЗУ и т.п. Подробнее.;
  2. App Direct Mode – В данном случае приложение, либо ОС понимает, что работает как с классической DRAM, так и с Persistent Memory, в связи с чем само выбирает, какую память использовать в конкретный момент. DCPMM может представляться в виртуальной машине виде классического диска (vPMEMDisk) также, как и устройство, выступающее в качестве виртуальной NVDIMM (vPMEM). В этом случае, гостевая операционная система должна понимать, что работает с NVDIMM памятью (PMem aware). Подробнее.

VMware рекомендует использовать режим App Direct как устройство vPMEM. Для получения максимальной производительности приложение должно быть PMem-aware, например, MS SQL Server 2019.

NVDIMM – тип Persistent Memory, работающий на тех же скоростях, что и DRAM, но сохраняет данные при перезагрузках. Всегда подключается в виртуальную машину как PMem и не может работать в режиме Memory Mode, как DCPMM.

В App Mode работает аналогично DCPMM как vPMEMDisk, либо как vPMEM. Подробнее.

Storage Hardware Considerations

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

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

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

VMware vStorage APIs for Array Integration (VAAI)

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

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

Основные возможности VAAI для SAN:

  1. Scalable Lock (hardware-assisted locking, atomic test & set он же ATS). Используется при обновлении метаданных VMFS. Ранее, при изменении метаданных ненадолго, но блокировались обращения ко всему VMFS-тому. С использованием Scalable Lock эта проблема решается, блокируется только доступ к изменяемому элементу, но не ко всему Datastore. Выражается в ускорении многих операций, типа изменения конфигураций машин, снапшотов, расширения диско, увеличивается производительность «тонких» VMDK и т.п.;
  2. Extended Copy (XCOPY, copy offload) перекладывает операции по копированию (в рамках одной СХД) на систему хранения данных. Например, при клонировании машин, Storage vMotion. Снижает нагрузку на ESXi. Не будет работать при копировании\клонировании между двумя разными СХД;
  3. Block zeroing (Write Same) – «зануление» дисков thick provision eager-zeroed тоже перекладывается на СХД, уменьшая работу гипервизора;
  4. Dead space reclamation (UNMAP) – крайне полезная вещь, при использовании тонких LUN на СХД. Возвращает освобожденное на Datastore пространство обратно в СХД. Удалил виртуальную машину – стал меньше размером тонкий LUN на СХД (конечно, не моментально).

Основные возможности VAAI для NAS:

Исходя из вышеуказанных возможностей VAAI для SAN и NAS, очевидно, что использование массивов с поддержкой данной технологии настоятельно рекомендуется.

iSCSI and NFS Storage

Убеждаемся, что у нас на сети нет узких мест, желательно, роутинга (точнее крайне настоятельно рекомендуется).

Держим в голове, что использование software-initiated iSCSI адаптера, а также NFS могут потребовать дополнительных ресурсов CPU на хосте, поскольку заниматься обработкой дискового трафика придется ему.

NVMe Storage

NVMe быстрее, но так же требует больше процессорных ресурсов. Рекомендуются к использованию многоядерные процессоры, хотя бы от 8 ядер. Больше процессоров – лучше, но хотя бы 2. С частотой так же – выше – лучше.

NVMe over Fabrics (NVMe-oF) Storage

Начиная с версии 7, ESXi поддерживает технологию NVMe-oF с помощью FC, либо RDMA в качестве транспорта.

NVMe-oF позволяет получить больше значения IOPS при меньших задержках.

Network Hardware Considerations

Убеждаемся, что мы используем «server-class» сетевые адаптеры для получения максимальной производительности. Убеждаемся, что на сети нет узких мест, все кабеля, коммутаторы работают на максимально доступных скоростях.

Так же рекомендуется использовать карты, поддерживающие функции Checksum offload, TSO, LRO, RSS, Jumbo и т.д. (если они, конечно, планируют использоваться).

По аналогии с HBA адаптерами, сетевые карты должны быть установлены в соответствующие PCI слоты, для получения максимально-доступной скорости приема/передачи.

Однопортовые 10Gb/s адаптеры рекомендуется устанавливать в слоты PCIe x8 (или выше), в то время как двухпортовые уже в PCIe x16.

При этом 40 гигабитные адаптеры следует устанавливать в PCI Gen3 x8/16 (либо выше).

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

Использование LACP может увеличить пропускную способность и доступность.

Hardware BIOS Settings

Всегда следует использовать последнюю версию BIOS, доступную для системы (но матрицу совместимости глянуть все равно стоит).

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

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

  1. Следует убедиться, что в BIOS задействованы все процессорные сокеты и все ядра на установленных процессорах, включен Hyper-Threading и Turbo Boost;
  2. Не стоит переводить Node Interleaving в параметр enabled (это отключит использование NUMA). Для использования NUMA – выставляем этот параметр в disabled, для использования UMA – enabled. В большинстве случаев, при правильном сайзинге виртуальных машин, с NUMA мы получим большую производительность;
  3. Необходимо убедиться, что все функции hardware-assisted virtualization включены (VT-x, AMD-V, EPT, RVI);
  4. Неплохим решением будет отключить в BIOS устройства, которые не используются. Например, USB, либо сетевые порты.

Power Management BIOS Settings

Не про употребление электропитанием сервера, а про управление питанием CPU.

Рекомендуется переложить управление питанием с плеч BIOS на плечи ESXi, и выставить в BIOS значение “OS Controlled Mode”, либо аналогичное.

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

Всего таких уровней 6. Чем выше уровень – тем больше элементов процессора в режиме минимального энергопотребления.

Все выглядит прекрасно до тех пор, пока нагрузка не начинает расти и процессору необходимо перейти из состояния с отключёнными компонентами в полностью рабочее состояние (из режима C6 в C0). Этот переход занимает какое-то время, и это может сказаться на работе некоторых приложений. Подробнее.

  1. Использование C1E (аппаратно-управляемое состояние) зачастую уменьшает потребление электроэнергии с минимальным, либо вообще без влияния на производительность. Однако, некоторые приложения, крайне чувствительные к I/O latency, например, финансовые платформы, могут быть к этому чувствительны. В таком случае рекомендуется отключение C1E в BIOS;
  2. C-States глубже чем C1 и C1E управляются программно. Чтобы получить максимальную производительность на ватт электроэенергии, рекомендуется оставить включенными все C-States, которые в дальнейшем будут управляться с помощью vSphere;
  3. При использовании технологии Turbo Boost или Turbo Core, использование C-States в некоторых ситуациях могут даже увеличить производительность некоторых немногопоточных приложений (в случае, если некоторые ядра процессора простаивают).

На этом раздел по «железной» части подходи к концу. В следующей части посмотрим на все, что касается раздела ESXi and Virtual Machines этого замечательного гайда.

В связи с выходом VMware vSphere 7.0 стала доступна технология NVMe over Fabric (NVMe-oF) для управления операциями с накопителями и передачи данных по протоколу NVMe вместо SCSI.

Dmitriy Shevchenko прислал инструкцию, которую мы сегодня и публикуем.

Перечень оборудования и ПО

Система хранения: Netapp AFF A320; версия ПО: ONTAP Release 9.7P1.

Коммутаторы сети хранения данных: Brocade 6505 16Gb 24 Port 2 шт. ; FOS FW 8.2.1c.

Сервер: Fujitsu PRIMERGY RX2530 M5 c FC-адаптерами Broadcom (EMULEX) LPe32002, версия FW 12.4.243.17 (рекомендованная в матрице совместимости Netapp).

Гипервизор: ESXi-7.0.0-15843807.

Схема подключения:


Предварительная подготовка:

  1. Обновляем Netapp AFF A320 до рекомендуемой версии ПО, на момент написания инструкции это версия ONTAP 9.7P1.
  2. Обновляем FW на коммутаторах Brocade, на момент написания мануала это версия Fabric OS v2.1c.
  3. Проверяем, что N_Port ID virtualization (NPIV) на порту включен. Для этого заходим на интерфейс управления командной строкой коммутаторов Brocade и запускаем команду, например, для 3 порта:

И второй драйвер (без него не взлетело):

Смотрим, что же стоит у нас по умолчанию:



Из коробки драйвер как бы есть, но nvme мы не видим.


LPFC


NVMe



Как видим, всё прошло успешно.

Так же перед перезагрузкой необходимо установить параметр lpfc_enable_fc4_type=3


Если необходимо прошить HBA, то следует выполнить следующие шаги.

И устанавливаем следующей командой:

Перезагружаем сервер (reboot).


После перезагрузки мы увидим ещё 2 адаптера

Подключение к СХД и раздача namespace’оф

Подключаемся к нашему хосту по SSH для получения Host NQN:


Дальнейшие действия необходимо выполнить на стороне СХД.

Необходимо создать SVM:


После данного шага необходимо настроить зоны на коммутаторах Brocade, так как при создании SVM также создаются и виртуальные NWWN, и PWWN.


Создаём наш NVMe Subsystem:



Если всё сделано правильно, то вы должны увидеть namespace:






Переходим к настройкам виртуальной машины

Добавляем NVMe контроллер:


Добавляем непосредственно сам диск:


Дополнительные материалы

Настройка NVMe-oF подключения к VMware vSphere 7.0: 4 комментария

а как в эксплуатации данная связка, не подскажете?

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

Перейти с Порше на Жигули - такое себе решение!

Мысли в слух " а может перейти на proxmox " Что-то в последняя время ESXi не стабильно стал по обновлениям.…

Привет, Хабр! Сегодня мы поговорим о виртуальных машинах, программном обеспечении VMware и накопителях Kingston, конечно же. В частности, разберем вопросы на тему “зачем нужна сертификация VMware Ready, какие из SSD-решений получают статус VMware Ready for Storage, и о чем это говорит?”. Начнем с самого банального.




Безусловно, аудитории Хабра знакома компания VMware, которая занимается разработкой программного обеспечения для виртуализации и организации облачных вычислений. Продукты VMware включают в себя средства виртуализации, управления сетью и безопасностью, программное обеспечение для ЦОД и хранения данных.

Первым таким продуктом стала программа VMware Workstation, которая позволяла любому пользователю установить на своем ПК одну или несколько виртуальных машин: то бишь имитацию аппаратной начинки компьютера в лице процессора, видеокарты, накопителей, оптических приводов и т.д. Эдакий компьютер в компьютере.


В рамках серверной среды VMware Workstation вкупе с установленным гипервизором VMware ESX позволяет запускать несколько виртуальных машин на одном физическом сервере, при этом каждая из ВМ может работать со своей операционной системой. Следовательно — на одном сервере могут быть активными сразу несколько разных ОС.

При этом все установленные ВМ совместно используют доступные ресурсы (сетевую карту и оперативную память), но работают независимо друг от друга. Основными продуктами в этом направлении является платформа VMware vSphere, гипервизор VMware ESX и VMware ESXi, VMware Server и vCenter Server. Впрочем, серверная виртуализация — не единственный тип абстрагирования от аппаратной реализации.

Типы виртуализации VMware

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

Виртуализация десктопов и облачные среды

Виртуализация десктопов, которую иногда называют инфраструктурой виртуальных десктопов (VDI), — это такой тип виртуализации, при котором ОС настольных ПК работает как виртуальная машина на физическом сервере с другими виртуальными десктопами. Обработка нескольких виртуальных рабочих мест происходит на одном или нескольких физических серверах, обычно – в централизованном ЦОД. Копия ОС и приложений, которые использует каждый конечный пользователь, обычно кэшируется в памяти, как один образ на физическом сервере.


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

Сетевая виртуализация

При развертывании данного типа виртуализации используется ПО для выполнения сетевых функций путем отделения виртуальных сетей от базового сетевого оборудования. Как только вы начнете использовать виртуализацию сети, физическая сеть будет использоваться только для пересылки пакетов, поэтому все управление осуществляется с помощью виртуальных или программных коммутаторов. Поставщиками сетевой виртуализации являются внутренние виртуальные коммутаторы гипервизора. Кроме того, сторонние поставщики, такие как Cisco и IBM, разработали виртуальные коммутаторы, которые могут использоваться гипервизорами, такими как ESXi.

Виртуализация хранилищ

Как мы уже отмечали, для каждого типа виртуализации компания VMware предлагает определенный набор софта. Например, если мы говорим о хранении данных, то следует принимать во внимание такие решения, как VMware vSAN и VMware Site Recovery Manager (SRM). VMware vSAN — программная функция хранения, встроенная в гипервизор ESXi и интегрированная с vSphere. Она объединяет дисковое пространство от нескольких хостов ESXi и выделяет его с помощью интеллектуальных политик, таких как ограничения защиты, тонкое выделение ресурсов и кодирование стирания. А еще эта опция интегрируется с функцией vSphere High Availability, обеспечивая повышенную производительность вычислений и самого хранилища.


VMware Site Recovery Manager (SRM) предназначен для управления аварийным восстановлением, что позволяет администраторам создавать планы восстановления, которые автоматически выполняются в случае сбоя, а также автоматически организовывать аварийное переключение и восстановление виртуальных машин. SRM также интегрируется с VMware NSX (инструмент управления сетевыми операциями) для сохранения сетевых политик и политик безопасности на виртуальных машинах, перемещенных на новые физические сервера.

Зачем нужна сертификация VMware Ready

Начнем с того, что сертификация VMware Ready означает высокий уровень одобрения для продуктов, созданных партнерами компании VMware. Нетрудно догадаться, что Kingston Digital входит в их число: в частности, является членом “Партнерского технологического альянса VMware”. Участники этого альянса разрабатывают свои устройства в соответствии со стандартами VMware и предоставляют их техническим специалистам компании, которые проводят различные сертификационные тесты.

По итогам проверок, сервера, компьютеры, устройства хранения и другие устройства, отвечающие сертификационным требованиям, получают заветный логотип VMware Ready. Кроме того, в дальнейшем эти продукты поддерживаются как со стороны компании-партнера, так и со стороны VMware. Подробную информацию о твердотельных накопителях Kingston из линейки, которые прошли сертификацию VMware можно найти и на портале VMware Solution Exchange (VSX). Там же размещаются обновления ПО для пользователей “железа” сертифицированного VMware.


Возвращаясь к “Партнерскому технологическому альянсу VMware”, стоит упомянуть о том, что участие в нем позволяет клиентам быстро находить сертифицированное оборудование партнеров, не занимаясь точечным и индивидуальным подбором компонентов, которые в итоге могут не обеспечить ожидаемую производительность. Не в последнюю очередь это способствует росту продаж накопителей Kingston. Только за первое полугодие 2019 года компании удалось реализовать более 13,3 миллиона твердотельных накопителей (по исследованиям TrendFocus). Если говорить о глобальных поставках, хорошие продажи обеспечили Kingston третье место в списке лидеров по реализации SSD-накопителей после Samsung и Western Digital.

Какие SSD-накопители обладают статусом VMware Ready

Применительно к накопителям Kingston серверного класса, сертификацию VMware Ready for Storage имеют твердотельные SATA-накопители Kingston DC500R и Kingston DC500M, рекомендованные для использования в ЦОД. Как мы уже отметили выше, присвоенный данным SSD-решениям статус говорит о том, что DC500R и DC500M получили полное одобрение от специалистов VMware, успешно пройдя все тесты.


Именно эта сертификация позволяет представителям Kingston Digital говорить о том, что при использовании SSD DC500R и DC500M в среде vSAN и серверах vSphere можно ожидать высокой производительности при выполнении большого количества операций чтения данных и смешанных нагрузках. К слову, для прохождения сертификации серверные накопители настраиваются в соответствии с требованиями от VMware и в итоге обеспечивают высокую пропускную способность, кол-во IPOS, а также минимальную задержку в 99% сценариев.

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

Для получения дополнительной информации о продуктах Kingston Technology обращайтесь на официальный сайт компании.

Также обращаю внимание, что проблема разбирается на конкретной модели Samsung 970 pro и VMWare 6.7. Не надо думать, что все виртуалки и все диски NVMe ведут себя одинаково и бездумно тиражировать текущий подход статьи ко всему. В каждом конкретном случае надо проходить полный путь расследования, как в статье.

Проблема с дисковой производительностью

Ситуация: сервер 1С/СУБД, на котором наблюдаются существенные проблемы с производительностью дисковой подсистемы : время обслуживания дисковых операций исчисляется не единицами миллисекунд (как хотелось бы), не десятками (как ещё допустимо), а несколькими сотнями, причём это же видно и средствами операционной системы.

Выглядит это например вот так:



Первая реакция: такие показатели характерны для загруженного механического (дефакто медленного) диска.

Первые тесты

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


Результаты выглядят вполне прилично для недорогого NVMe SSD (отклик должен быть около 10 мс, а не сотнями мс как у нас). Идём выяснять, что же там “под капотом”. Выясняем, что данные расположены на неплохом (для десктопа, не для сервера) NVMe SSD Samsung 970 Pro, который хоть и не “энтерпрайз класса”, но и вот настолько проседать под такой нагрузкой вроде как не должен.


Вот нормальный результат диска на физическом сервере для сравнения.
Идём разбираться дальше: сервер развёрнут на виртуальной машине на базе VMWare ESXi 6.7, SSD используется в “виртуализованном” виде:


Из диспетчера устройств виртуальной Windows устройство видно например так:


В данном виде гостевая операционная система видит SSD как некий сетевой массив, и управлять этим SSD не может (например, не передаётся команда TRIM). И явно для данного SSD это не является “комфортным” режимом работы. Попробуем это изменить.

Вносим изменения в конфигурацию

И вот здесь наступает пора внести изменения!

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

Затем идём в консоль ESXi хост-машины, где развёрнута наша система, и делаем следующее:



Что же изменилось?

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


Теперь этот SSD надо заново отформатировать (мы использовали размер кластера 8 килобайт, так как именно таков размер страницы данных в MS SQL, а именно базы СУБД на этом диске и будут расположен).

И настала пора сравнить результаты тестов CrystalDiskMark:


Итоговый результат

Разница оказалась весьма существенной, хороший десктопный (хоть и не серверный) SSD начал работать заметно лучше.

Результаты снимков монитора ресурсов “до и после” для удобства свели в одну картинку.


Обратите внимание, насколько ускорилось время ответа дисковой подсистемы, и при этом насколько увеличились объёмы чтения и записи. Оборудование сервера по факту не изменилось, но драматически выросла его производительность!

Вывод

Как минимум в данном сценарии, использование десктопного NVMe SSD в VMWare ESXi 6.7 в виртуализованном варианте приводило к существенному ухудшению производительности SSD, при этом “формальный” тест CrystalDiskMark мог выглядеть “вполне прилично” (если не сравнивать “в лоб” с показателями ровно такого же устройства, подключенного напрямую). Подключение же NVMe SSD напрямую в виртуализованную операционную систему привело к тому, что ОС смогла управлять диском напрямую (например, подавать команды TRIM), и производительность диска увеличилась и стала больше соответствовать данной модели NVMe SSD.

В последние годы мы наблюдаем рост производительности технологий хранения данных, которая, в конечном счете, достигла физических пределов, обусловленных устаревшими протоколами обмена данными в дата-центрах. Несмотря на использование 100GbE и новых сетевых технологий, таких как InfiniBand, эти устаревшие протоколы продолжают замедлять производительность флэш-накопителей, поскольку изолированы внутри устройств. В этой статье мы поговорим о спецификации Non-Volatile Memory Express (NVMe). Затем мы уделим внимание NVMe over Fabrics (NVMe-oF) и NVMe over RDMA over Converged Ethernet (NVMe over RoCE) — новым спецификациям протокола, разработанным для устранения проблемных точек в современных сетях хранения данных.

NVMe-oF

Поскольку небольшая задержка и широкая пропускная способность всегда были важны для облаков и дата-центров, речь часто заходит о NVMe over Fabrics. Эта спецификация появилась менее 10 лет назад. И поскольку является относительно новой, люди часто имеют ошибочное представление о ней и о том, какие преимущества она несет бизнесу. Технология NVMe-oF постоянно развивается и набирает популярность в ИТ-индустрии, а многие вендоры начали выпускать решения с поддержкой NVMe-oF для корпоративного сектора. И сегодня, для того чтобы соответствовать уровню развития технологий для дата-центров, важно иметь правильное представление о том, что такое NVMe-oF, возможности спецификации и производительность, которую она способна предложить. А также понимать, как ее можно взять на вооружение и использовать вкупе с различными новыми решениями.

NVMe и NVMe-oF

Флэш-массивы, целиком построенные на флэш-памяти (All-Flash Array — AFA) появились как ответ на потребность в более высокой производительности в дата-центрах. Способные обеспечить 1 млн операций ввода-вывода в секунду (IOPS) без особых усилий, - они оказались существенно быстрее по сравнению с существующими на рынке технологиями хранения данных. Однако многие из этих массивов продолжали использовать не совсем новую технологию хранения данных SATA SSD, базирующуюся на командном протоколе Advanced Host Controller Interface (AHCI) и поддерживающую IDE. AHCI изначально был разработан для жестких дисков, а не для отличающихся более высокой скоростью работы твердотельных накопителей. Эта технология, в основе которой лежит SCSI, привела к возникновению так называемого «узкого горлышка» в современных твердотельных накопителях и контроллерах массивов, поскольку шина SATA III с AHCI не позволяет достигать скоростей обмена данными более 600 МБ/с.

Теоретическая скорость

Скорость передачи данных

Чтобы полностью реализовать потенциал твердотельных накопителей, нам нужна технология, которая сможет осуществлять обмен данными на более высокой скорости. NVMe — вот та спецификация, которая позволяет твердотельным накопителям реализовать потенциал флэш-памяти. Эта технология была представлена в 2014 г, и её основными задачами стали повышение скорости работы приложений (сокращение времени отклика) и внедрение новых и улучшенных возможностей. Существует множество форм-факторов твердотельных накопителей на базе NVMe, и наиболее известные — это AIC (карта расширения), U.2, U.3 и M.2. Твердотельный накопитель на базе NVMe соединяется с компьютером или сервером посредством высокоскоростной шины Peripheral Component Interconnector Express (PCIe), к которой он подключается напрямую. NVMe снижает дополнительную работу центрального процессора и сокращает время между операциями, увеличивая количество операций ввода-вывода в секунду и пропускную способность. К примеру, NVMe SSD предлагает скорость записи свыше 3000 МБ/с, что в 5 раз выше в сравнении с твердотельным накопителем, оборудованным интерфейсом SATA, это в 5 раз выше и в 30 раз выше по сравнению с жестким диском.

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

Теоретическая скорость

Скорость передачи данных

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


В случае с NVMe-oF цели представляются как пространства имен, что эквивалентно LUN в протоколе SCSI. NVMe-oF позволяет серверам связываться с этими накопителями на гораздо более длинных дистанциях, сохраняя ультракороткое время задержки, лежащее в пределах микросекунд. Короче говоря, мы получаем более высокую скорость обмена данными между системами и флэш-накопителями без заметного увеличения времени задержки фабрики. Короткое время отклика частично обусловлено длиной очереди NVMe, о которой мы упомянули выше. NVMe-oF поддерживает очереди такой же длины, как и NVMe — 65 тысяч. Благодаря этому выдающемуся значению спецификация NVMe-oF применима для строительства мощных параллельных архитектур между серверами и накопителями, в которых для каждого отдельного устройства будет своя очередь.

Реализация NVMe в фабрике

Существуют 3 способа реализации NVMe в фабрике — с помощью RDMA, Fiber Channel и TCP.

NVMe-oF TCP

NVMe-oF over RDMA

Эта спецификация базируется на технологии Remote Direct Memory Access (RDMA) и позволяет данным и памяти перемещаться между компьютерами и накопителями по сети. RDMA — это способ обмена информацией между оперативной памятью двух компьютеров через сеть без вовлечения в эту процедуру процессоров, кэшей и операционных систем этих компьютеров. Поскольку RDMA работает без участия операционной системы, это обычно самый быстрый механизм передачи данных по сети, который нагружает систему в наименьшей степени.

NVMe over RDMA

Для передачи данных по IP-сетям используется протокол TCP. Внедрение RDMA обычно осуществляется посредством модели Virtual Interface Architecture, через конвергентную сеть Ethernet (RDMA over Converged Ethernet — RoCE), с помощью технологий InfiniBand, Omni-Path или iWARP. Наиболее популярные на сегодняшний день — RoCE, InfiniBand и iWARP.

NVMe over Fibre Channel

Вариант NVMe over Fibre Channel (FC) часто обозначается как FC-NVMe, NVMe over FC или еще иногда NVMe/FC. Fiber Channel — это надежный протокол для передачи данных между массивами и серверами, который используется в большинстве корпоративных сетей хранения данных. Здесь команды инкапсулируются внутрь FC-фреймов. В основе лежат стандартные правила FC и стандартный протокол FC Protocol, который обеспечивает доступ к общей флэш-памяти NVMe. Несмотря на то, что команды SCSI инкапсулируются внутрь FC-фреймов, их интерпретация и перевод в команды NVMe требует ресурсов и влияет на производительность.

NVMe over TCP/IP

Вне зависимости от того, используете ли вы NVMe-oF на базе RDMA, Fibre Channel или TCP, вы получаете самодостаточное решение на базе NVMe. Любая реализация дает высокую производительность и низкое время отклика, присущие NVMe.

NVMe over RDMA over Converged Ethernet (RoCE)

Среди протоколов с технологией RDMA особо выделяется RoCE. Мы знаем, что собой представляют RDMA и NVMe-oF. И теперь у нас есть Converged Ethernet (CE), поддержка RDMA по сети Ethernet. CE — это как улучшенная версия Ethernet. Ее также называют Data Center Bridging и Data Center Ethernet. Она инкапсулирует транспортный пакет InfiniBand по Ethernet. Такое решение задействует механизм Link Level Flow Control для обеспечения нулевых потерь, даже если сеть перегружена. Протокол RoCE позволяет получить меньшее время задержки по сравнению с его предшественником, iWARP.

Существуют две версии RoCE — RoCE v1 и RoCE v2. RoCE v1 — это протокол уровня Ethernet Layer 2 (канал). Он позволяет соединить два хоста, которые находятся в одном и том же широковещательном домене Ethernet. Таким образом, он не может быть использован для маршрутизации между подсетями. Вторая версия, RoCE v2, базируется на протоколе UDP/IPv4 или UDP/IPv6. RoCE v2, в свою очередь, относится к уровню Ethernet Layer 3 (интернет), и здесь возможность маршрутизации пакетов имеется. Поддержка RoCE v2 в программном обеспечении встречается пока нечасто, но количество соответствующих продуктов постепенно увеличивается. Например, она была добавлена в Mellanox OFED начиная с версии 2.3, а также в ядро Linux 4.5.

Mellanox oF

NVMe over RoCE представляет новый тип сетей хранения данных. Этот протокол предлагает существующий уровень производительности служб корпоративных данных и широкий выбор аппаратного и программного обеспечения, присущий сетям хранения данных. Хотя протокол RoCE использует преимущества Converged Ethernet, он может работать и в неконвергентных сетях. Для использования NVMe over RoCE в фабрике, технологию Converged Ethernet должны поддерживать сетевая карта, коммутатор и флэш-массив. Кроме того, сетевая карта и флэш-массив должны поддерживать RoCE (такие сетевые карты сокращенно называются R-NIC). Серверы с R-NIC и флэш-массивы с поддержкой NVMe over RoCE подключатся к имеющимся коммутаторам CE автоматически.

Поддержка NVMe-oF over RoCE в продуктах VMware

VMware добавила поддержку общего хранилища NVMe на базе NVMe-oF. Поддержка NVMe over Fibre Channel и NVMe over RDMA для внешних подключений появилась в vSphere 7.0. Хосты ESXi могут использовать RDMA over Converged Ethernet v2 (RoCE v2). Осуществление доступа к NVMe-хранилищу посредством RDMA выполняется хостом ESXi с помощью адаптера R-NIC на вашем хосте и адаптера хранения SW NVMe over RDMA. Для обнаружения хранилищ NVMe настроить необходимо оба адаптера.


При использовании NVMe-oF цели представляются хосту в виде пространств имен в активном/активном или асимметричном режимах доступа (ALUA). Это позволяет хостам ESXi обнаруживать и использовать представленные пространства имен. Внутренне ESXi эмулирует цели NVMe как цели SCSI и представляет их как активные/активные цели SCSI или в виде целей SCSI ALUA.

Требования NVMe over RDMA:

  • массив NVMe поддерживает протокол RDMA (RoCE v2);
  • совместимый хост ESXi;
  • коммутаторы Ethernet поддерживают сеть без потерь;
  • сетевой адаптер поддерживает RoCE v2;
  • адаптер SW NVMe over RDMA;
  • контроллер NVMe;
  • сегодня RoCE работает на фабриках с потерями, которые поддерживают ZTR (Zero Touch RoCE) или требуют сконфигурированной сети для передачи данных без потерь только на уровне Layer 2 либо на уровнях Layer 2 и Layer 3 (с использованием PFC).

При настройке NVMe-oF на хосте ESXi существуют несколько рекомендаций, которым стоит следовать:

  • не используйте разные протоколы для доступа к одному и тому же пространству имен;
  • убедитесь, что хосту представлены все активные пути;
  • вместо NMP для целей NVMe должен быть использован HPP (High-Performance Plugin);
  • для ваших целей NVMe вы должны иметь выделенные линии, VMkernels и адаптеры RDMA;
  • выделенная линия с Layer 3 VLAN или Layer 2;
  • ограничения:
  • Namespaces-32;
  • Paths=128 (максимум 4 пути/пространства имен на хосте).

Заключение

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

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

Читайте также: