RDMA через конвергентный Ethernet ( RoCE ) [1] — сетевой протокол, который обеспечивает удаленный прямой доступ к памяти (RDMA) через сеть Ethernet . Существует несколько версий RoCE. RoCE v1 — это протокол уровня канала Ethernet , который, следовательно, обеспечивает связь между любыми двумя хостами в одном домене широковещательной передачи Ethernet . RoCE v2 — это протокол уровня Интернета , который означает, что пакеты RoCE v2 могут маршрутизироваться. Хотя протокол RoCE использует преимущества характеристик конвергентной сети Ethernet , его также можно использовать в традиционной или неконвергентной сети Ethernet. [2] [3] [4] [5]
Фон
Сетевые приложения, такие как сетевое хранилище или кластерные вычисления, нуждаются в сетевой инфраструктуре с высокой пропускной способностью и низкой задержкой. Преимущества RDMA по сравнению с другими сетевыми интерфейсами прикладного программирования, такими как сокеты Беркли, заключаются в меньшей задержке, меньшей загрузке ЦП и большей пропускной способности. [6] Протокол RoCE обеспечивает меньшие задержки, чем его предшественник, протокол iWARP . [7] Существуют RoCE HCA (Host Channel Adapter) с задержкой всего в 1,3 микросекунды [8] [9], в то время как самая низкая известная задержка iWARP HCA в 2011 году составляла 3 микросекунды. [10]
RoCE v1
Протокол RoCE v1 — это протокол уровня канала Ethernet с Ethertype 0x8915. [2] Это означает, что применяются ограничения длины кадра протокола Ethernet: 1500 байт для обычного кадра Ethernet и 9000 байт для кадра jumbo .
RoCE v1.5
RoCE v1.5 — необычный, экспериментальный, нестандартизированный протокол, основанный на протоколе IP. RoCE v1.5 использует поле протокола IP для дифференциации своего трафика от других протоколов IP, таких как TCP и UDP . Значение, используемое для номера протокола, не указано и выбирается при развертывании.
RoCE v2
Протокол RoCE v2 существует поверх протокола UDP/IPv4 или UDP/IPv6. [3] Номер порта назначения UDP 4791 зарезервирован для RoCE v2. [11] Поскольку пакеты RoCEv2 маршрутизируются, протокол RoCE v2 иногда называют маршрутизируемым RoCE [12] или RRoCE. [4] Хотя в целом порядок доставки пакетов UDP не гарантируется, спецификация RoCEv2 требует, чтобы пакеты с одинаковым исходным портом UDP и одинаковым адресом назначения не переупорядочивались. [4] Кроме того, RoCEv2 определяет механизм управления перегрузкой, который использует биты IP ECN для маркировки и кадры CNP [13] для уведомления о подтверждении. [14] Поддержка программного обеспечения для RoCE v2 все еще появляется [ когда? ] . Mellanox OFED 2.3 или более поздние версии поддерживают RoCE v2, а также Linux Kernel v4.5. [15]
RoCE против InfiniBand
RoCE определяет, как выполнять RDMA через Ethernet , в то время как спецификация архитектуры InfiniBand определяет, как выполнять RDMA через сеть InfiniBand. Ожидалось, что RoCE перенесет приложения InfiniBand, которые в основном основаны на кластерах, в общую конвергентную инфраструктуру Ethernet. [16] Другие ожидали, что InfiniBand продолжит предлагать более высокую пропускную способность и меньшую задержку, чем то, что возможно через Ethernet. [17]
Технические различия между протоколами RoCE и InfiniBand следующие:
Управление потоком на уровне канала: InfiniBand использует алгоритм на основе кредитов для гарантии связи HCA-HCA без потерь. RoCE работает поверх Ethernet. Реализации могут потребовать сеть Ethernet без потерь для достижения характеристик производительности, аналогичных InfiniBand. Ethernet без потерь обычно настраивается с помощью управления потоком Ethernet или управления приоритетным потоком (PFC). Настройка сети Ethernet моста центра обработки данных (DCB) может быть сложнее, чем настройка сети InfiniBand. [18]
Управление перегрузкой: Infiniband определяет управление перегрузкой на основе маркировки FECN/BECN, RoCEv2 определяет протокол управления перегрузкой, который использует ECN для маркировки, как это реализовано в стандартных коммутаторах, и кадры CNP для подтверждений.
Коммутаторы InfiniBand обычно имеют меньшую задержку, чем коммутаторы Ethernet. Задержка между портами для одного конкретного типа коммутатора Ethernet составляет 230 нс [19] против 100 нс [20] для коммутатора InfiniBand с тем же количеством портов.
RoCE против iWARP
В то время как протоколы RoCE определяют, как выполнять RDMA с использованием кадров Ethernet и UDP/IP, протокол iWARP определяет, как выполнять RDMA через транспорт, ориентированный на соединение, такой как протокол управления передачей (TCP). RoCE v1 ограничен одним широковещательным доменом Ethernet . Пакеты RoCE v2 и iWARP маршрутизируются. Требования к памяти большого количества соединений вместе с потоком и контролем надежности TCP приводят к проблемам масштабируемости и производительности при использовании iWARP в крупномасштабных центрах обработки данных и для крупномасштабных приложений (например, крупномасштабные предприятия, облачные вычисления, приложения Web 2.0 и т. д. [21] ). Кроме того, многоадресная передача определена в спецификации RoCE, в то время как текущая спецификация iWARP не определяет, как выполнять многоадресную RDMA. [22] [23] [24]
Надежность в iWARP обеспечивается самим протоколом, поскольку TCP надежен. RoCEv2, с другой стороны, использует UDP , который имеет гораздо меньшие накладные расходы и лучшую производительность, но не обеспечивает собственной надежности, и поэтому надежность должна быть реализована вместе с RoCEv2. Одним из решений является использование конвергентных коммутаторов Ethernet, чтобы сделать локальную сеть надежной. Это требует поддержки конвергентного Ethernet на всех коммутаторах в локальной сети и предотвращает передачу пакетов RoCEv2 через глобальную сеть, такую как Интернет, что не является надежным. Другое решение заключается в добавлении надежности в протокол RoCE (т. е. надежный RoCE), который добавляет подтверждение установления связи в RoCE, чтобы обеспечить надежность за счет производительности.
Вопрос о том, какой протокол лучше, зависит от поставщика. Chelsio рекомендует и поддерживает исключительно iWARP. Mellanox, Xilinx и Broadcom рекомендуют и поддерживают исключительно RoCE/RoCEv2. Intel изначально поддерживала iWARP, но теперь поддерживает и iWARP, и RoCEv2. [25] Другие поставщики, участвующие в сетевой индустрии, предоставляют поддержку обоих протоколов, такие как Marvell, Microsoft, Linux и Kazan. [26] Cisco поддерживает как RoCE [27] , так и свой собственный протокол VIC RDMA.
Оба протокола стандартизированы, причем iWARP является стандартом для RDMA через TCP, определенным IETF , а RoCE является стандартом для RDMA через Ethernet, определенным IBTA . [26]
Критика
Некоторые аспекты, которые могли быть определены в спецификации RoCE, были опущены. Это:
Как преобразовать первичные идентификаторы RoCE v1 GID в MAC-адреса Ethernet . [28]
Как транслировать между вторичными GID RoCE v1 и MAC-адресами Ethernet. Неясно, возможно ли реализовать вторичные GID в протоколе RoCE v1 без добавления протокола разрешения адресов, специфичного для RoCE.
Как реализовать VLAN для протокола RoCE v1. Текущие реализации RoCE v1 хранят идентификатор VLAN в двенадцатом и тринадцатом байтах шестнадцатибайтового GID, хотя спецификация RoCE v1 вообще не упоминает VLAN. [29]
Как преобразовывать между многоадресными GID RoCE v1 и MAC-адресами Ethernet. Реализации в 2010 году использовали то же самое сопоставление адресов, которое было указано для сопоставления многоадресных адресов IPv6 с MAC-адресами Ethernet. [30] [31]
Как ограничить многоадресный трафик RoCE v1 подмножеством портов коммутатора Ethernet. По состоянию на сентябрь 2013 года эквивалент протокола Multicast Listener Discovery для RoCE v1 еще не определен.
Кроме того, любой протокол, работающий по протоколу IP, не может предполагать, что базовая сеть имеет гарантированный порядок, равно как и не может предполагать, что перегрузка невозможна.
Известно, что использование PFC может привести к общесетевой тупиковой ситуации. [32] [33] [34]
Поставщики
Некоторые поставщики оборудования с поддержкой RoCE включают:
Mellanox (приобретена Nvidia в 2020 году, [35] бренд сохранен [36] )
^ "Блог Роланда » Архив блога » Две заметки о IBoE".
^ ab "InfiniBand™ Architecture Specification Release 1.2.1 Annex A16: RoCE". InfiniBand Trade Association . 13 апреля 2010 г. Архивировано из оригинала 9 марта 2016 г. Получено 29 апреля 2015 г.
^ ab "InfiniBand™ Architecture Specification Release 1.2.1 Annex A17: RoCEv2". InfiniBand Trade Association . 2 сентября 2014 г. Архивировано из оригинала 17 сентября 2020 г. Получено 19 октября 2014 г.
^ Мерритт, Рик (19 апреля 2010 г.). «Новая конвергентная сеть сочетает Ethernet и InfiniBand». EE Times .
^ Кернер, Шон Майкл (2 апреля 2010 г.). «InfiniBand переходит на Ethernet?». Enterprise Networking Planet .
^ Mellanox (2 июня 2014 г.). «Mellanox выпускает новое программное обеспечение для автоматизации, сокращающее время установки Ethernet-фабрики с часов до минут». Mellanox . Архивировано из оригинала 3 марта 2016 г.
^ "SX1036 - 36-портовая 40/56GbE коммутаторная система". Mellanox . Получено 21 апреля 2014 г. .
^ "IS5024 - 36-портовая неблокируемая неуправляемая система коммутаторов InfiniBand 40 Гбит/с". Mellanox . Получено 21 апреля 2014 г.
^ Рашти, Мохаммад (2010). "iWARP Redefined: масштабируемая связь без установления соединения через высокоскоростной Ethernet" (PDF) . Международная конференция по высокопроизводительным вычислениям (HiPC) .
^ H. Shah; et al. (октябрь 2007 г.). «Прямое размещение данных через надежные транспорты». RFC 5041 . doi : 10.17487/RFC5041 . Получено 4 мая 2011 г. .
^ C. Bestler; et al. (октябрь 2007 г.). Bestler, C.; Stewart, R. (ред.). "Stream Control Transmission Protocol (SCTP) Direct Data Placement (DDP) Adaptation". RFC 5043 . doi : 10.17487/RFC5043 . Получено 4 мая 2011 г.
^ P. Culley; et al. (октябрь 2007 г.). "Marker PDU Aligned Framing for TCP Specification". RFC 5044 . doi : 10.17487/RFC5044 . Получено 4 мая 2011 г.
^ "Intel® Ethernet 800 Series". Intel. Май 2021 г.
^ ab T Lustig; F Zhang; J Ko (октябрь 2007 г.). "RoCE против iWARP – следующий "великий спор о хранении"". Архивировано из оригинала 20 мая 2019 г. Получено 22 августа 2018 г.
^ «Преимущества удаленного прямого доступа к памяти через маршрутизируемые фабрики» (PDF) . Cisco. Октябрь 2018 г.
↑ Драйер, Роланд (6 декабря 2010 г.). «Две заметки о IBoE». Блог Роланда Дрейера .
^ Коэн, Эли (26 августа 2010 г.). «IB/core: Добавить поддержку VLAN для IBoE». kernel.org .
^ Коэн, Эли (13 октября 2010 г.). «RDMA/cm: Добавить поддержку RDMA CM для устройств IBoE». kernel.org .
^ Кроуфорд, М. (1998). "RFC 2464 - Передача пакетов IPv6 по сетям Ethernet". IETF . doi : 10.17487/RFC2464 .
^ Ху, Шуйхай; Чжу, Ибо; Чэн, Пэн; Го, Чуаньсюн; Тан, Кун; Падхье1, Джитендра; Чэнь, Кай (2016). Тупики в сетях центров обработки данных: почему они образуются и как их избежать (PDF) . 15-й семинар ACM по актуальным темам в сетях. стр. 92–98.{{cite conference}}: CS1 maint: числовые имена: список авторов ( ссылка )
^ Шпинер, Алекс; Захави, Эйтан; Здорнов, Владимир; Анкер, Таль; Кадош, Мэтти (2016). Разблокировка тупиков кредитной петли. 15-й семинар ACM по актуальным темам в сетях. С. 85–91.
^ Миттал, Радика; Шпинер, Александр; Панда, Ауроджит; Захави, Эйтан; Кришнамурти, Арвинд; Ратнасами, Сильвия; Шенкер, Скотт (21 июня 2018 г.). «Возвращаясь к сетевой поддержке RDMA». arXiv : 1806.08159 [cs.NI].
^ "Nvidia: сделка Mellanox может быть закрыта не раньше начала 2020 года". 14 ноября 2019 г.
^ «Израильская экосистема искусственного интеллекта приветствует предполагаемое приобретение Mellanox компанией NVIDIA | Блог NVIDIA». 27 марта 2019 г.
^ "Grovf Inc. выпускает IP-ядро RDMA RoCE V2 FPGA с малой задержкой для интеллектуальных сетевых карт". Yahoo News .