Что такое NVMe-oF?

Автор: Хуан Мулфорд

NVMe-oF

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

NVMe и NVMe-oF

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

Скорость шины NVMe-oF 

NVMe-oF bus speeds

Таблица 1: Скорость общей шины

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

 

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

 

Глубина очереди (QD) - еще одно преимущество NVMe перед AHCI. В то время как ACHI и SATA могут обрабатывать очереди с глубиной 32 (1 очередь и 32 команды), NVMe может обрабатывать очереди до 65 КБ. Это 65K очередей, где каждая очередь может содержать до 65K команд на очередь. Наряду с уменьшением задержки это увеличивает производительность серверов, обрабатывающих одновременные запросы.

 NVMe-oF q глубина

 NVMe-oF q depth
Таблица 2: Сравнение очередей

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


В 2016 году был запущен отраслевой стандарт NVMe-oF. Спецификация протокола расширяет невероятную производительность NVMe от контроллеров массива хранения до фабрики с использованием Ethernet, Fibre Channel, RoCE или InfiniBand. NVMe-oF использует альтернативный протокол передачи данных (по фабрикам) в качестве транспортного уровня вместо шины PCIe, используемой NVMe. Структуры построены на концепции отправки и получения сообщений без использования общей памяти между конечными точками. Транспорты сообщений фабрики NVMe инкапсулируют команды и ответы NVMe в систему на основе сообщений, которая включает одну или несколько команд или ответов NVMe.

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

 Транспорты NVMe Fabrics

NVMe поддерживает и использует три типа транспортных сетей: NVMe-oF с использованием RDMA, NVMe-oF с использованием Fibre Channel и NVMe-oF с использованием TCP.

 

 

NVMe-oF через RDMA

 

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

 

NVMe-oF через RDMA использует транспортный протокол TCP для доставки данных по IP-сетям. Типичные реализации RDMA включают архитектуру виртуального интерфейса, RDMA через конвергентный Ethernet (RoCE), InfiniBand, Omni-Path и iWARP. В настоящее время наиболее часто используются RoCE, InfiniBand и iWARP.

 

NVMe через Fibre Channel

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

 

NVMe через TCP / IP

Этот тип транспорта - одна из последних разработок в NVMe-oF. NVMe over TCP (протокол управления транспортом) использует NVMe-oF и транспортный протокол TCP для передачи данных по сетям IP (Ethernet). NVMe транспортируется внутри дейтаграмм TCP через Ethernet в качестве физического транспорта. Несмотря на наличие RDMA и Fibre Channel, TCP предоставляет более дешевую и гибкую альтернативу. Кроме того, сравнивая его с RoCE, который также использует Ethernet, NVMe / TCP работает больше как FC-NVMe, потому что они используют семантику обмена сообщениями для ввода-вывода.

 

Использование NVMe-oF с RDMA, Fibre Channel или TCP создает законченное решение для сквозного хранения данных NVMe. Эти решения обеспечивают особенно высокую производительность при сохранении очень низкой задержки, доступной через NVMe.

 

NVMe через RDMA через конвергентный Ethernet (RoCE)

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

Существует две версии RoCE: RoCE v1 и RoCE v2. RoCE v1 - это протокол Ethernet уровня 2 (канал), обеспечивающий связь между двумя хостами в одном и том же широковещательном домене Ethernet. Таким образом, он не может маршрутизировать между подсетями. Новым вариантом является RoCE v2, протокол поверх UDP / IPv4 или UDP / IPv6. RoCE v2 - это протокол Ethernet уровня 3 (Интернет), что означает, что его пакеты могут маршрутизироваться. Программная поддержка RoCE v2 все еще разрабатывается. Mellanox OFED 2.3 или более поздняя версия поддерживает RoCE v2, а также Linux Kernel v4.5.

 

 

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

 

Поддержка NVMe-oF через RoCE для VMware

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

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

 

Требования к NVMe через RDMA:

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

При настройке NVMe-oF на хосте ESXi следует соблюдать несколько правил.

 

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

Вывод

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

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

 


 

 


Свяжитесь с нами
Контактные данные
Нажимая на кнопку, вы даете согласие на обработку Персональных данных
Свяжитесь с нами
Контактные данные
Нажимая на кнопку, вы даете согласие на обработку Персональных данных
Мы вам перезвоним в течении 5 минут
Спасибо за оформление заказа
Нажимая на кнопку, вы даете согласие на обработку Персональных данных
Спасибо
Мы уже получили ваше сообщение и скоро свяжемся с вами!