高效能網路 SIG 月度動態:長期投入得到業界認可,新增一位 virtio reviewer
高效能網路 SIG(Special Interest Group) :在雲端計算時代,軟硬體高速發展,雲原生、微服務等新的應用形態興起,讓更多的資料在程式之間流動,而網路則成為了這些資料流的載體,在整個雲時代扮演著前所未有的重要角色。在這個萬物互聯的時代,雲上的網路通訊效率對各種服務至關重要,高效能網路興趣組致力於利用 XDP、RDMA、VIRTIO 等新高效通訊技術,結合軟硬體一體化的思想,打造高效能網路協議棧,提升雲端計算時代資料中心應用的網路的效能.
01 本月 SIG 整體進展
本月高效能網路 SIG 的主要工作聚焦在 Anolis OS 核心網路、SMC 和 virtio 上。
本月關鍵進展:
-
SIG 成員 Xuan Zhuo 成為上游 Linux kernel 社群 virtio core/virtio-net 子系統的 reviewer。Xuan Zhuo 過去三年在 virtio 社群的投入得到了廣泛的認可。
-
SIG 本月完成了上游 virtio-net 對 XDP socket 零複製的支援,可以大幅提升 virtio 下 XDP socket 的發包效能。該特性在龍蜥的 ANCK 核心上已經支援了一年多的時間,現在,我們將該特性貢獻到 Linux 上游社群,目前社群已完成 virtio-net XDP 重構部分的 review,預計 5.8 視窗期後合入。
02 ANCK 核心網路
本月網路方向新增安全漏洞修復:CVE-2023-1074 (SCTP 相關)。
03 高效能網路協議棧 SMC
本月高效能網路 SIG 在 SMC 領域的工作,主要聚焦在推動本機高效能通訊,以及基於 eBPF 的策略替換兩個方案在 Linux 上游社群的討論。
本機高效能通訊方案
本機的 loopback 和容器間(跨 netns)通訊已經是一種常見的資料路徑,在資料處理和雲原生場景有著非常廣泛的使用。例如雲原生場景下,service mesh 透過 proxy 程式與業務程式、sidecar 進行通訊。SMC 提供了本機(loopback 和容器間)的高效能通訊方案,對比傳統的使用者態 IPC、以及核心的 TCP loopback 或者 UNIX domain socket 等方案,除了效能具有優勢之外(詳細資料可參考 LWN 連結 ),同時對於應用透明無侵入、無修改。
在之前版本的 review 中,社群給出了一些積極的反饋:s390 PCI maintainer Niklas 認可了使用 64bit 隨機 GID + 64 bit token 組成的 loopback 協商流程。從機率上看,要達到 10^(-15) 的衝突機率,需要嘗試 8.2×10^11 次,因此隨機 GID 可以接受。我們與 IBM 的協議所有者 Jerry 進行了充分的溝通,接下來等待社群討論完成並確定最終的方案。
本月 SIG 傳送了 SMC loopback 的方案 v5 版本至 Linux 上游社群,新版本中增加 SEID 的選擇邏輯,修復 unregister_dmb 的潛在問題,修復在 s390 架構下執行異常的問題。
基於 eBPF 策略替換方案
SMC 提供了動態回退 TCP 的能力,當前的回退策略的決策因素主要是由 RDMA / ISM 連線建立是否成功。由於 SMC 短連結效能不如 TCP,為了讓 SMC 更加通用,因此計劃給 SMC 增加基於策略的回退 TCP 的能力,幫助 SMC 更好的適配不同應用模型和場景。
本月傳送了 RFC 和正式的替換補丁到 Linux bpf 和 net 社群,得到了 eBPF maintainer 的反饋,包括一些模組符號到處、檔名等問題,我們正在修改並繼續推動 SMC 和 bpf 社群接受方案。
04 virtio
社群影響力
本月高效能網路 SIG 成員 Xuan Zhuo 成為 linux kernel 社群 virtio core/virtio-net 子系統的 reviewer。Xuan Zhuo 過去三年在 virtio 社群的投入得到了社群的廣泛認可。
本月 SIG 還修復一個 virtio net 的在 xdp 場景下的 bug:[PATCH net] virtio_net: bugfix overflow inside xdp_linearize_page() - Xuan Zhuo
virtio-net 支援 AF_XDP zerocopy
AF_XDP 是一個 bypass 核心協議棧的新收發包框架。它可以把驅動的收包直接傳遞到使用者態, 也可以把包直接從使用者態傳遞到驅動傳送出去。它的效能相比於核心的 UDP 協議棧可以提升 3-7 倍 PPS。但是它依賴驅動進行 zerocopy 的支援。這個工作分成幾個部分:
-
virtio core 支援 DMA premapped
這部分是讓 virtio core 框架支援提交 DMA address 操作(連結)。目前的實現中所有的 DMA 操作都在 virito core 裡面完成,我們要讓驅動支援傳遞 DMA address 給 virtio core,因為 AF_XDP 會提前完成所有的地址的 DMA 操作以及一些 virtqueue reset 相關的操作。
這部分涉及到了 virtio 的 DMA 相關的 API 使用問題。由於 virtio 在一些場景下不能使用 DMA API,我們希望 DMA API 或 AF_XDP 可以支援 virtio 這一場景。這引發了相對廣泛的討論,目前的結論是:
-
AF_XDP 在未來可能會轉向使用 dma-bufs 來處理 DMA API。
-
DMA API 不支援 virtio 這樣的特殊場景。
這些因素導致我們的推進工作陷入了非常大的困難。經過考慮與討論, 我們考慮暫時不支援 virtio 沒有 VIRTIO_F_ACCESS_PLATFORM 的場景,這通常出現在一些舊的 virtio 裝置上。
-
virtio-net XDP 重構
這部分已經完成 review,將會在 5.8 視窗期之後再提交一個版本。
virtio-net inner header hash
隧道協議有時會將不同流的資料包封裝成外頭部五元組相同的資料流,這些資料流會被雜湊到相同的接收佇列,進而損失 RSS 的效能。為了讓 virtio 對隧道協議支援內頭部雜湊,高效能網路 SIG 發起了 virtio_net: support inner header hash 的提案,希望將其在 virtio 中標準化下來。
本月 v12->v13 和 virtio 社群討論了之前 inner header hash 的設計把裝置側支援的隧道型別放置在 PCI device-specific 的配置空間的問題,這種設計的優點是作為裝置常駐能力可以在初始化時只被驅動讀取一次,但是隨著 virtio 現在越來越多新特性的增加,讓裝置特定的配置空間越來越臃腫對一些 tiny 裝置是十分不友好的,因此討論之後將從裝置配置空間移到 control queue(新方法的缺點是每次使用者的 GET 查詢都會返回 configured 和 supported 兩種欄位,但是可接受的)。
另外,inner header hash 支援的隧道型別的數量社群仍在質疑,社群更加傾向於對 legacy 協議的支援,以讓 legacy 協議享受到熵增加帶來的 rss 效能提升,例如 GRE-2784 等,但是我們想支援更多的 modern 隧道協議,例如 VXLAN/GENEVE 等,以讓這些協議可以基於內頭部來做對稱雜湊,在某些場景下獲取到 less locking,warm cache 等效能提升,這塊仍需討論。
以上為 4 月高效能網路 SIG 月度動態,歡迎大家加入共建。更多 SIG 動態前往龍蜥官網獲取。
相關連結可移步龍蜥公眾號(OpenAnolis龍蜥)2023年5月9日相同推送檢視。
—— 完 ——
為給大家提供更好的內容和服務,龍蜥社群誠摯地邀請大家參與問卷調研,請掃描下方二維碼或點此 填寫,我們將篩選出優質反饋,送出龍蜥周邊!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2951588/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 高效能網路SIG月度動態:virtio 動態中斷調節最佳化、多項核心網路缺陷修復
- 高效能網路SIG月度動態:virtio新裝置進入virtio規範、smc新特性IPC效能比tcp提升88%TCP
- 高效能網路 SIG 月度動態:推動 virtio 支援動態中斷調節及更靈活的分流機制
- 高效能網路SIG月度動態:virtio-net 支援動態中斷調節,SMC v2 協議增加新擴充套件協議套件
- 高效能網路SIG月度動態:SMC 與 IBM 就擴充套件協議達成一致,virtio 支援 XDP 新特性IBM套件協議
- OpenCloudOS Kernel SIG 月度動態:釋出 OCK 6.6.30-4 版本,新增特性支援Cloud
- 高效能儲存SIG月度動態:EROFS支援直接索引容器映象tar包等索引
- 高效能儲存SIG月度動態:ublk完成POC、dsms-storage在Anolis OS上成功適配
- Cloud Kernel SIG月度動態:釋出ANCK 5.10、4.19新版本,ABS新增倉庫構建功能Cloud
- 高效能儲存SIG月度動態:DSMS開始適配Anolis OS、將在ANCK 5.10中支援ublk
- Cloud Kernel SIG月度動態:釋出 Anolis 8.8 映象、kABI 社群共建流程Cloud
- 高效能儲存SIG月度動態:ANCK 5.10正式支援ublk、erofs容器映象按需讀時延最佳化60%
- 高效能儲存SIG月度動態:ANCK ublk完成POC測試,EROFS最佳化xattr後設資料開銷
- keycloak~為微信二維碼新增動態kc認可的動態state
- Cloud Kernel SIG月度動態:釋出 ANCK 新版本及 Plugsched v1.2.0Cloud
- 商密SIG月度動態:檔案加密支援SM4演算法、Anolis 8.8將預設整合 | 龍蜥 SIG加密演算法
- Cloud Kernel SIG 月度動態:釋出 ANCK 5.10-013 版本、完整支援 Intel SPR 處理器CloudIntel
- 友盟+:2020年疫期移動網際網路行業發展動態分析報告行業
- Cloud Kernel SIG月度動態:建立社群第三方驅動研發流程、釋出ANCK 4.19-027版本Cloud
- 配置高效能動態網站(例項)網站
- 電動兩輪車行業三大趨勢:長期成長、網際網路化、高階化(附下載)行業
- eBPF SIG年度動態: eBPF和Wasm深度融合、參與7場活動及2023展望 | 龍蜥 SIGeBPFASM
- VOL表格動態新增操作按鈕及彈窗確認方法
- Zenith:2018年世界盃期間企業投入廣告費用24億美元 中國佔35%
- 美公開承認對俄發動網路攻擊,全球網路戰態勢或將升級!
- 工業網際網路進入快速成長期 安全或成最大“絆腳石”
- 企業網際網路應用高效能解決之道
- DataPipeline成功入選微軟加速器 企業創新力獲業界專家認可API微軟
- 為.Net專案新增動態庫載入路徑
- mobx動態新增observable
- 龍蜥社群高效能儲存技術 SIG 11 月運營回顧 | 龍蜥 SIG
- SIG Cloud Provider Alibaba 網研會第 2 期順利召開 | 雲原生生態週報 Vol. 46CloudIDE
- virtio 1.2 來了!龍蜥社群攜手業界打造新版虛擬化 IO 標準
- 再獲認可 | 江民科技入選《CCSIP 2022中國網路安全產業全景圖》!產業
- **Linux 配置系統網路(動態)**Linux
- 雲原生月報丨阿里云云原生月度動態(202303)阿里
- 理解高效能網路模型模型
- [vmware to openstack] 安裝virtio驅動