RoCE

Источники:
https://docs.broadcom.com/docs/12380095
https://docs.nvidia.com/networking/pages/viewpage.action?pageId=19798092
https://community.mellanox.com/s/article/roce-v2-considerations
https://www.mellanox.com/related-docs/deployment-guides/Demartek_IBTA_RoCE_Deployment_Guide_2018-07.pdf

RoCE — RDMA over Converged Ethernet (произносится «роки»).
Протокол RoCE определяет RDMA соединения с использованием Ethernet и UDP/IP.

История RoCE

в 2009 году группы IETF TRansparent Interconnection of Lots of Links (TRILL) и IEEE Data Center Bridging (DCB) начали разрабатывать стандарт, чтобы сделать lossless-Ethernet (Ethernet без потерь данных).
TRILL был создан для того, чтобы сделать доступной любую топологию Ethernet, не поддерживаемую протоколом Spanning Tree Protocol IEEE.
DCB занимался управлением потоком на основе приоритетов (Priority based Flow Control), расширенным выбором передачи (Enhanced Transmission Selection) и обменом данными между ЦОД (Data Center Bridging eXchange).

Торговая ассоциация InfiniBand (IBTA, InfiniBand Trade Association) использовала свой опыт в RDMA в новом технологическом пространстве и разработала спецификацию RDMA over Converged Ethernet (RoCE). Термин Converged Ethernet – «конвергентный Ethernet» уже использовался группой DCB.

Так же, как и iWARP, который нуждался в поддержке специализированных адаптеров для обеспечения эффективности zero copy, протокол RoCE привязан к сетевым картам с поддержкой RDMA (RNIC) для достижения высокой производительности (это уже не так, но RNIC не занимают мощности ЦП). IBTA продвигает протокол RoCE как более высоко производительный по сравнению с iWARP.

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

Протоколы RoCE для сетей InfiniBand и Ethernet используют общий пользовательский интерфейс API, но при этом у них разные физический и канальный уровни.

RoCEv2

В результате реализации концепции Layer 3 to Top of Rack (уровень 3 на уровне стойки), широкое распространение получили подсети IP на уровне стойки, что позволило IBTA создать RoCEv2 (иногда называемый «Routable RoCE»). В отличие от iWARP на основе TCP, RoCEv2 работает поверх UDP, который не имеет режима дозирования с “медленным стартом” (slow start throttling). Переход к UDP означает, что фреймы RoCEv2 несовместимы с фреймами RoCEv1. При этом, сетевые платы с RDMA, поддерживающие RoCEv2, обычно могут быть настроены на использование формата RoCEv1. Поскольку в UDP отсутствует поддержка TCP для IETF Explicit Congestion Notification (ECN, RFC 3168, 4301, 6040), IBTA указала, что RoCEv2 также поддерживает IETF ECN, реализуя управление потоком в транспортном слое IB по UDP.

Протокол RoCE с поддержкой уровня 3 просто продолжает стек и заменяет необязательный заголовок глобальной маршрутизации L3 (GRH) стандартным сетевым заголовком IP и добавляет заголовок UDP в качестве инкапсуляции без сохранения состояния полезной нагрузки уровня 4.

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

Разница между стеками RoCE v1 и RoCE v2

Инфраструктура RoCE

Сетевые адаптеры Mellanox ConnectX-4 и адаптеры последующих поколений используют технологию Resilient RoCE. Она обеспечивает высокую производительность путем внедрения в сетевых коммутаторах функции явного уведомления о перегрузке (ECN).
Таким образом, больше не требуется использовать инфраструктуру, не допускающую потерь данных, что достигалось за счет внедрения PFC. Технология управления перегрузками Resilient RoCE, внедренная в устройства ConnectX NIC, обеспечивает надежное функционирование устройств даже при использовании UDP в сети с потерями.

Коммутаторы Mellanox Spectrum Ethernet обеспечивают пропускную способность линии канала связи 100GbE и стабильно низкую задержку без потери пакетов. Коммутаторы характеризуются высокой производительностью, низким задержкам, интеллектуальному комплексному управлению перегрузками и возможностям QoS. Благодаря этому, коммутаторы Mellanox Spectrum Ethernet идеально подходят для внедрения инфраструктуры RoCE в любом масштабе. Кроме того, коммутаторы Spectrum позволяют без труда производить настройку RoCE и обеспечивают сквозную видимость уровней потоков.

Soft RoCE

Soft RoCE — это программная реализация RoCE, которая позволяет использовать RoCE в любом сетевом адаптере Ethernet, независимо от того, поддерживает он аппаратное ускорение или нет. Soft RoCE выпускается как часть развивающегося ядра 4.8, а также как часть Mellanox OFED 4 (и более поздних версий).

Комплект поставки Soft-RoCE можно загрузить отсюда: Soft-RoCE на github

Руководство по внедрению Soft-RoCE:
http://www.roceinitiative.org/wp-content/uploads/2016/11/SoftRoCE_Paper_FINAL.pdf

Вернитесь в раздел Сеть NVMe-oF или перейдите в интересующий Вас раздел через основное меню.