Обзор NVMe over Fabric, NVMe-oF

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

Обзор по материалам
http://nvmexpress.org/wp-content/uploads/NVMe_Over_Fabrics.pdf

Обзор NVMe-oF

NVM Express over Fabrics определяет общую архитектуру, которая использует ряд сетевых структур для передачи протокола блочного хранения NVMe. Она добавляет внешний интерфейс в системы хранения, позволяющий масштабировать подсистему NVMe. Увеличивается дистанция, через которую можно получить доступ к отдельным устройствам и целым системам.

Приблизительно 90% протокола NVMe over Fabrics соответствует локальному протоколу NVMe. Остались без изменения пространства имен, команды ввода / вывода и административные команды, регистры и свойства, состояния питания, асинхронные события, резервирование и другие.
Основные различия заключаются в четырех областях, перечисленных в таблице ниже.

Разница между локальным интерфейсом NVMe и сетевым NVMe-oF
Разница между локальным NVMe и NVMe-oF

Архитектура подсистемы NVMe-oF разделяется на уровни, показанные ниже на рисунке.
Зона ответственности NVMe over Fabrics находится выше уровня «Fabric». Транспортный протокол не относится к спецификации, протокол NVMe-oF лишь опирается на него.

Уровни протокола NVMe-oF

Работа над спецификацией NVMe over Fabrics началась в 2014 году. В качестве транспорта NVMe использует протоколы Ethernet, Fibre Channel и InfiniBand.
Спецификация NVMe over Fabrics предназначена для работы с любой подходящей технологией передачи данных.
Спецификация была опубликована в июне 2016 года.

Два направления NVMe-oF

Транспортные протоколы, которые использует NVMe-oF

Принято разделять протоколы транспортного уровня для NVMe over Fabrics на два типа:

  • Fibre Channel (FC-NVMe). Над ним работает комитет INCITS T11, который разрабатывает общий стандарт Fibre Channel;
  • На базе технологии прямого доступа к памяти RDMA (Remote Direct Memory Access). Сюда относятся InfiniBand, RoCE и iWARP. Над этой группой протоколов работает отдельная подгруппа в NVM Express.
  • Несколько особняком добавился NVMe/TCP
Классификация транспортных протоколов, которые использует NVMe-oF

С включением NVMe/TCP в пул транспортных протоколов, стройная классификация на RDMA — не-RDMA протоколы несколько нарушилась. Несколько иной взгляд на классификацию NVMe-oF протоколов представлен на рисунке.

Целью NVMe over Fabrics является обеспечение удаленного подключения к устройствам NVMe с дополнительной задержкой не более 10 микросекунд (мкс) по сравнению с собственным устройством NVMe внутри сервера.
Программная реализация NVMe/TCP не вписывается в установленные рамки. Это компромиссное решение, которое, тем не менее, позволяет резко повысить производительность системы хранения в большинстве случаев.

Технические требования к фабрике NVMe и их реализация

Спецификацией NVMe-oF сформулировано требование к сети передачи: наличие надежного механизма управления кредитами (Quality of Service, QoS) и надежного механизма доставки. То есть, транспортная сеть должна быть без потерь и все оборудование на пути следования пакетов должно уметь выделять гарантированные ресурсы для приоритетного трафика, коим является NVMe.
При этом, не должно теряться основное преимущество NVMe — минимальные задержки передачи данных.

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

Программный стек NVMe-oF детализированный по транспортному протоколу (https://solarflare.com/networked-storage/).
FC-NVMe

Fibre Channel создавался и всегда был протоколом хранения данных.

Управление потоками на основе кредитов свойственно для сетей Fibre Channel.
Fibre Channel всегда был сетью без потерь. По каждому линку отправитель и получатель используют буферные кредиты и точно знают, сколько пакетов можно отправить безопасно. Данная технология гарантирует, что пакеты не будут отбрасываться из-за нехватки места.

Несмотря на то, что Fibre Channel создавался в эпоху SCSI, протокол NVMe не является для него проблемой. FC позволяет передавать команды NVMe напрямую, без какой-либо трансляции. Реализация NVMe over Fibre Channel описывает новый тип трафика верхнего уровня FC-NVMe, который определяет специфические NVMe фреймы. Таким образом, протокол Fibre Channel одновременно поддерживает как NVMe, так и SCSI трафик в одной инфраструктуре.

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

FC-NVMe логично применять в датацентрах и ИТ-структурах компаний, уже имеющих предустановленные сети Fibre Channel. Конечно, речь идет о FC сетях последних поколений, с высокой скоростью передачи по каналу.
Также FC-NVMe может использоваться в структурах и подразделениях, требующих беспрецедентной защищенности от внешних угроз. Нет прямого пути к инфраструктуре, чтобы добраться из протокола Интернет до стека протоколов Fibre Channel. Даже если FC трафик передается через Интернет.

Еще подробности о FC в сетях NVMe-oF на странице FC-NVMe.

Фабрики на основе RDMA

Как уже указывалось, RDMA при передаче используют InfiniBand, RoCE и iWARP.

NVMe/IB

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

Это нишевый протокол, но он без проблем может быть задействован для подключения NVMe подсистемы в InfiniBand фабрике.
Как это осуществить описано в материалах академии Mellanox.

К кластеру серверов, объединенных InfiniBand добавляется производительная NVMe подсистема с «родным» интерфейсом. Нет необходимости в отдельной скоростной сети хранения и в мостах, объединяющих разные типы сетей.

RoCE

http://www.roceinitiative.org

RDMA over Convergent Ethernet (RoCE, произносится как «роки») — «удаленный прямой доступ к памяти поверх конвергентного Ethernet». Это транспортный протокол, определяющий RDMA соединения поверх Ethernet и UDP/IP.

В чистом виде Ethernet довольно плохо подходил под требования спецификации NVMe-oF.
Если с управлением кредитами еще куда-ни-шло (и то, при наличии соответствующего уровня оборудования), то с гарантированной доставкой дело обстояло плохо. Любые повторные пересылки — это потеря драгоценного времени.
Стек протокола поддерживает все-что-было-изобретено-за-время-существования, соответственно — опять-таки, тратит на это время.

Конвергентный Ethernet — термин, связанный с набором основанных на стандартах расширений для традиционного Ethernet. Они обеспечивают: а) передачу без потерь, б) конвергенцию (объединение, слияние) технологий локальной вычислительной сети (LAN) и сети хранения данных (SAN) в единую унифицированную матрицу.

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

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

В 2014 году IBTA добавила возможность маршрутизации в спецификацию и сегодня компании-члены поставляют адаптеры RoCE, поддерживающие IP-маршрутизацию. Релиз позволил использовать маршрутизацию по сетям уровня 3, расширив RoCE. Таким образом, обеспечивается лучшая изоляция трафика и упрощается развертывание масштабных центров обработки данных. Фактически, подавляющее большинство инсталляций RoCE маршрутизируются через сети уровня 3.

RoCE использует инкапсуляцию IPv4 и IPv6 в Ethernet, так же, как и большинство другого трафика Ethernet. Это позволяет отслеживать и управлять RoCE с помощью стандартных инструментов.

Продукты разных производителей, поддерживающие технологию RoCE совместимы между собой — за этим следит ассоциация IBTA. Лист совместимости RoCE Interoperability List обновляется два раза в год.
Такие производители сетевого оборудования, как Mellanox, Xilinx и Broadcom входят в ассоциацию IBTA.

Demartek выпустил руководство по развертыванию RoCE, его можно скачать по ссылке.

Еще больше подробности о RoCE приведено на странице RoCE.

iWARP

iWARP — Internet Wide Area RDMA Protocol.
Это надстройка, «выводящая» RDMA за пределы одного сервера через транспортный протокол TCP/IP.

iWARP стандартизован. Его описывает набор документов IETF.

TCP/IP не очень подходил по требованиям к сети NVMe-oF, но его использование в качестве транспорта виделось целесообразным.
Комплекс техник и дополнений, не затрагивающий собственно TCP/IP, позволил разрешить противоречия.
Использование iWARP привязано к адаптерам-ускорителям TCP Offload Engines (TOE), продвигаемым компаниями Intel, Chelsio, Marvell и Kazan. TCP берут большую часть обработки сетевых пакетов на свой аппаратный уровень, разгружая центральный процессор.

Подробности о iWARP на старнице описания iWARP.

NVMe/TCP

NVMe/TCP — самый «молодой» транспортный протокол NVMe-oF.

Точнее — это адаптация NVMe-oF под использование совершенно стандартного TCP/IP протокола в качестве транспортного уровня.

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

NVMe/TCP не подразумевает использование RDMA, поскольку TCP+RDMA решение уже есть — это iWARP.

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

Больше подробностей о NVMe/TCP.

Материалы по теме :

Вернитесь на главную страницу или перейдите в интересующий Вас раздел через меню.