Easy RoCE:在SONiC交換機上一鍵啟用無損以太網

RDMA(遠程直接內存訪問)技術是一種繞過 CPU 或操作系統,在計算機之間直接傳輸內存數據的技術。它釋放了內存帶寬和 CPU,使節點之間的通信具有更低的延遲和更高的吞吐量。目前,RDMA 技術已廣泛應用于高性能計算、人工智能工作負載、存儲和許多其他場景。

1、RoCEv2對網絡的需求和挑戰

RoCEv1 基于以太網鏈路層實現,通過交換機上的流量控制技術確保物理層的可靠傳輸。RoCEv2 在 UDP 層之上實現,彌補了 InfiniBand 的一些局限性,支持更廣泛的 RDMA 應用。

與 TCP 協議相比,UDP 速度更快,消耗的資源更少,但沒有TCP的滑動窗口和確認響應等機制來確保可靠傳輸。在 RoCEv2 網絡中,如果出現數據包丟失,網卡將丟棄所有收到的數據包,而發送方需要重新傳輸所有后續數據包,導致網絡傳輸性能大幅下降。因此,我們通常使用 PFC(優先級流量控制)和 ECN(顯式擁塞通知)等功能來保證可靠性。

在以太網交換機上配置上述功能需要熟悉 QoS 機制、配置邏輯和相關命令行。對于長期為客戶配置 RoCEv2 網絡的工程師來說,這可能并不困難。但對于大部分從事高性能計算和存儲領域的技術人員,他們通常專注于服務器側的相關技術,這種相對復雜的,但又必須調通的網絡配置給他們帶來了很多麻煩,甚至以往運維過IB網絡的工程師也需要花時間學習相關知識。

2、在SONiC交換機上用常規步驟配置無損以太網

現在讓我們快速回顧一下如何在SONiC交換機上按常規方法配置 RoCEv2 無損以太網。這里使用的是星融元CX-N系列超低時延交換機,搭載SONiC企業級發行版AsterNOS3.1 R0405P01版本,但沒有使用其上的 EasyRoCE 功能。

在部署 RoCEv2 網絡時,務必首先確認網絡硬件條件:低延遲網絡交換機需要能支持 PFC 和 ECN 等功能,服務器側的網卡也需要支持 RoCEv2 。常規步驟下:

  1. 啟用和取消需要分別配置 PFC 和 ECN。
  2. 故障排除或狀態檢查通常需要進入不同的命令行視圖并多次執行 “show “命令,以確定當前隊列映射、緩沖區、啟用的隊列、閾值、隊列吞吐量、暫停和 CNP 觸發器。

第一步,確保服務器網卡工作在 RoCEv2 模式下,為業務流量配置 PCP 或 DSCP,并啟用 ECN。

#設置網卡RDMA CM的工作模式
[root@server ~]# cma_roce_mode -d mlx5_0 -p 1 -m#設置網卡的優先級類型為DSCP
[root@server ~]# mlnx_qos -i enp1s0f0 –trust=dscp
DCBX mode: OS controlled
Priority trust state: dscp#在隊列3上開啟PFC
[root@server ~]# mlnx_qos -i enp1s0f0 -f 0,0,0,1,0,0,0,0#在隊列3上開啟DCQCN
[root@server ~]# echo 1 > /sys/class/net/enp1s0f0/ecn/roce_np/enable/3
[root@server ~]# echo 1 > /sys/class/net/enp1s0f0/ecn/roce_rp/enable/3#設置CNP DSCP
[root@server ~]# echo 48 >

然后,在交換機端口配置以啟用 PFC 和 ECN 功能并指定隊列。您需要在以太網交換機的指定隊列(需與服務器上的隊列匹配)上啟用 PFC 和 ECN,并調整緩沖區和閾值。

# 設置PFC門限值
sonic(config)# buffer-profile pg_lossless_100000_100m_profile
sonic(config-buffer-profile-pg_lossless_100000_100m_profile)# mode lossless dynamic -2 size 1518 xon 0 xoff 46496 xon-offset 13440
sonic(config-buffer-profile-pg_lossless_100000_100m_profile)# exit# 在3、4隊列開啟PFC功能(AsterNOS的PFC功能默認使能3、4隊列,無需配置)
sonic(config)# priority-flow-control enable 3
sonic(config)# priority-flow-control enable 4
sonic(config)# exit# 設置ECN門限值
sonic(config)# wred roce-ecn
sonic(config-wred-roce-ecn)# mode ecn gmin 15360 gmax 750000 gprobability 10
sonic(config-wred-roce-ecn)# exit# 配置Diffserv map
sonic(config)# diffserv-map type ip-dscp roce-dmap
sonic(config-diffservmap-roce-dmap)# ip-dscp 48 cos 6# 配置Class map
sonic(config)# class-map roce-cmap
sonic(config-cmap-roce-cmap)# match cos 3 4
sonic(config-cmap-roce-cmap)# exit# 配置Policy map
sonic(config)# policy-map roce-pmap
sonic(config-pmap-roce-pmap )# class roce-cmap
sonic(config-pmap-c)# wred roce-ecn
sonic(config-pmap-c)# priority-group-buffer pg_lossless_100000_100m_profile
sonic(config-pmap-c)# exit
sonic(config-pmap-roce-pmap )# set cos dscp diffserv roce-dmap
sonic(config-pmap-roce-pmap )# exit# 進入以太網接口視圖,綁定策略,將RoCE網絡配置在接口上使能
sonic(config)# interface ethernet 0/0
sonic(config-if-0/120)# service-policy roce-pmap

3、使用AsterNOS上的Easy RoCE快捷配置無損以太網

星融元在 AsterNOS 上推出了 “EasyRoCE” 功能,該功能將無損以太網相關的配置命令行進行了封裝和模板化,大大簡化了RoCEv2網絡配置和部署流程。請注意,以下命令行僅簡單展示交換機上與該功能相關的部分關鍵配置,完整的驗證演示流程請參考文末視頻。

一鍵啟用無損以太網

故障排除或狀態檢查

AsterNOS 的 Easy RoCE 功能支持 show roce 命令行,用于一站式查看全局或接口視圖的RoCE 配置和計數,以及清除所有配置和計數。

# 檢查RoCE配置
sonic# show qos roce

# 查看特定接口的計數
sonic# show counters qos roce interface 0/0 queue 3
# 清除全部計數
sonic# clear counters qos roce

自動化配置和網絡可見性

上述命令可幫助您快速配置無損以太網,如果您需要微調參數,Easy RoCE也支持自定義更改設備提供的默認模板,該模板也可通過上層管理平臺向設備下發。

基于 AsterNOS 的開放式架構,我們還開發了一個容器化部署的 roce_exporter,用于提取設備 RoCE 相關信息,并與 Prometheus 無縫對接以提高網絡可見性。

快速配置RoCEv2無損以太網

關注vx公號“星融元Asterfusion”,獲取更多技術分享和最新產品動態。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20440.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20440.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20440.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

車流量監控系統

1.項目介紹 本文檔是對于“車流量檢測平臺”的應用技術進行匯總,適用于此系統所有開發,測試以及使用人員,其中包括設計背景,應用場景,系統架構,技術分析,系統調度,環境依賴&#xf…

MongoDB~存儲引擎了解

存儲引擎 存儲引擎是一個數據庫的核心,主要負責內存、磁盤里數據的管理和維護。 MongoBD的優勢,在于其數據模型定義的靈活性、以及可拓展性。但不要忽略,其存儲引擎也是插件式的存在,支持不同類型的存儲引擎,使用不同…

導線防碰撞警示燈:高壓線路安全保障

導線防碰撞警示燈:高壓線路安全保障 在廣袤的大地上,高壓線路如同血脈般縱橫交錯,然而,在這看似平靜的電力輸送背后,卻隱藏著不容忽視的安全隱患。特別是在那些輸電線路跨越道路、施工等區域的路段,線下超…

頂點著色技術在AI去衣中的作用

在當今的數字時代,人工智能(AI)已經滲透到我們生活的方方面面,從智能家居到自動駕駛汽車,再到在線購物推薦。然而,AI的影響遠不止于此。近年來,AI在圖像處理和計算機視覺領域的應用取得了顯著進…

c++字符串相關接口

c字符串相關接口 1.str2wstr(str轉換wstr)2.wstr2str(str轉換wstr)3.Utf8ToAsi(Utf8轉換ANSI)4.AsiToUtf8(ANSI轉換Utf8)5.stringformatA/stringformatW(按照指定的格式格式化字符串)6.GetStringBetween(獲取cStart cEnd之間的字符串)7.Char2Int(char轉int)8.Str2Bin(字符串轉換…

視覺語言大模型llava學習

1. 拉取 https://github.com/haotian-liu/LLaVA 視覺語言大模型是人工智能領域一種重要的多模態模型,它結合了計算機視覺(CV)和自然語言處理(NLP)的技術,使得模型能夠同時理解圖像和文本信息。這類模型在多…

hadoop部署

需要3臺機子,Linux為centos7 分別設置靜態ip,設置主機名,配置主機名映射,配置ssh免密登入 hadoop1 192.168.1.7 hadoop2 192.168.1.8 hadoop3 192.168.1.9 vi /etc/sysconfig/network-scripts/ifcfg-ens33TYPE"Ethernet" PROX…

Kotlin 泛型

文章目錄 定義泛型屬性泛型函數泛型類或接口 where 聲明多個約束泛型具體化in、out 限制泛型輸入輸出 定義 有時候我們會有這樣的需求:一個類可以操作某一類型的對象,并且限定只有該類型的參數才能執行相關的操作。 如果我們直接指定該類型Int&#xff…

機器人抓取檢測(Robot Grasping Detection)

目錄 前言 一、物體檢測 二、抓取點生成 三、運動規劃 四、控制 五、總結 前言 機器人抓取檢測(Robot Grasping Detection)是指通過計算機視覺和機器學習技術,自動識別并確定機器人如何抓取物體的一種技術。這個過程涉及多個步驟和關鍵…

【Python系列】Python 中方法定義與方法調用詳解

💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

詳細介紹運算符重載函數,清晰明了

祝各位六一快樂~ 前言 1.為什么要進行運算符重載? C中預定義的運算符的操作對象只能是基本數據類型。但實際上,對于許多用戶自定義類型(例如類),也需要類似的運算操作。這時就必須在C中重新定義這些運算符&#xff…

短信發送驗證碼及郵件發送驗證碼

發送短信驗證碼 阿里云發送驗證碼 public Integer sendTelCode(String tel) {String url "https://dfsns.market.alicloudapi.com/data/send_sms";String appcode "a3198282fbdf443d97aa9f3cfbe1232e";int code RandomUtil.randomInt(1000,10000);emai…

【DSP】xDAIS算法標準

1. 簡介 在安裝DSP開發支持包時,有名為 “xdais_7_21_01_07”文件夾。xDAIS全稱: TMS320 DSP Algorithm Standard(算法標準)。39條規則,15條指南。參考文檔。參考文章。 2. 三個層次 3.接口 XDAIS Digital Media。編解碼引擎。VISA(Video&…

LeetCode前端刷題指南:探索四大領域,精通五大技能,掌握六大題型,運用七大策略

LeetCode前端刷題指南:探索四大領域,精通五大技能,掌握六大題型,運用七大策略 在前端開發的廣闊領域中,刷題是提高自身能力、深入理解算法和數據結構的重要途徑。LeetCode作為知名的在線刷題平臺,為前端開…

牛客小白月賽95VP

早上藍橋杯大寄&#xff0c;算是交了300元買了件T恤qaq 1.簽到&#xff1a;https://ac.nowcoder.com/acm/contest/83687/A 下面是AC代碼&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int a,b;cin>>a>>b;if(ab) cout<<&quo…

簡述你對 SPA 單??的理解,它的優缺點分別是什么 ?

SPA&#xff08;Single-Page Application&#xff0c;單頁應用&#xff09;是一種在Web開發中廣泛使用的應用架構模式。它允許用戶通過交互操作來更新頁面的部分內容&#xff0c;而無需重新加載整個頁面。以下是關于SPA的理解、優點和缺點的簡要說明。 SPA的理解 SPA的核心思…

qi5uxeel算法分析流程記錄libmsec.so

動態注冊函數主要方法在so層。 libmsec.so 通過regsiterNative方法注冊62個函數 加殼混淆ollvm動態反調試等你還能再惡心點不 分析流程定位關鍵點 算法設計SM4以及各類自定義簽名算法 涉及到的知識包含Java C Android 完整混淆流程如下圖&#xff0c; 不得不說你開發的…

微信小程序canvas畫圖使用百分比適配不同機型屏幕達到任何屏幕比例皆可!完美適配任何機型!指定canvas尺寸適配亦可!保證全網唯一完美

錯誤代碼示例: // 在onLoad中調用 const that = this wx.getSystemInfo({success: function (res) {console.log(res)that.setData({model: res.model,screen_width: res.windowWidth/375,screen_height: res.windowHeight})} }) 我看到網上很多使用上面這種代碼去適配,其…

C語言 指針——函數指針

目錄 什么是函數指針&#xff1f; 函數指針的定義 定義函數指針時的常見錯誤 函數指針有什么用&#xff1f; 函數指針的主要應用 什么是函數指針&#xff1f; 函數指針 (Function Pointer) 就是指向函數的指針變量 數據類型 ( * 指針變量名 ) ( 形參列表 ); 例如&#x…

【回眸】牛客網刷刷刷(九) ——面試經驗篇(含參考回答)

前言 度過了忙碌的4個月&#xff0c;經歷了加班、籌備wedding、更新簡歷&#xff0c;終于有些許喘息時間。 下面的規劃比較簡單&#xff0c;一個是備考3個月后的雅思&#xff0c;一個是積累牛客網沖浪經驗&#xff0c;最后一個是記錄工作交接項。 牛客網刷刷刷這個系列也終于迎…