<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          RDMA網(wǎng)絡(luò)最新技術(shù)

          共 4657字,需瀏覽 10分鐘

           ·

          2021-11-27 07:43

          一年一度的云棲大會近日在杭州如約舉行。今年的云棲大會上阿里云發(fā)布了第四代神架構(gòu),其中彈性 RDMA 加速能力尤其值得關(guān)注。基于彈性 RDMA,阿里云操作系統(tǒng) Alibaba Cloud Linux 3 和龍蜥社區(qū)操作系統(tǒng) Anolis OS 在網(wǎng)絡(luò)方面基于社區(qū) SMC-R 優(yōu)化形成兼容 socket 的 RDMA 產(chǎn)品方案,旨在幫助云上應(yīng)用無修改的享受 RDMA 帶來的性能提升。本文將為您闡述 SMC-R 的產(chǎn)生背景、原理架構(gòu)以及部分性能數(shù)據(jù)。

          來源:云巔論劍

          作者:古聞、無牙、榮旸


          近些年,隨著云計算的飛速發(fā)展,特別是阿里云神龍、AWS Nitro 等硬件虛擬化方案的出現(xiàn),云上的虛擬化網(wǎng)絡(luò)性能有了質(zhì)的飛躍。相比于云網(wǎng)絡(luò)的欣欣向榮,CPU 的性能提升卻似“擠牙膏”一般有些力不從心。因此,將部分原本由 CPU 承擔(dān)的工作卸載到后端硬件的解決思路成為了云計算領(lǐng)域研究的一個“熱點”。遠程內(nèi)存直接訪問 (Remote Direct Memory Access, RDMA) 這項追求極致性能,曾經(jīng)主要應(yīng)用在高性能計算、高頻交易等特定場景中的技術(shù)也因此進入了云廠商的數(shù)據(jù)中心。

          從 TCP 到 RDMA

          RDMA 作為一種旁路內(nèi)核的遠程內(nèi)存直接訪問技術(shù),被廣泛應(yīng)用于數(shù)據(jù)密集型和計算密集型場景中,是高性能計算、機器學(xué)習(xí)、數(shù)據(jù)中心、海量存儲等領(lǐng)域的重要解決方案。RDMA 在阿里巴巴已大規(guī)模穩(wěn)定運行多年,支撐了阿里云 ESSD、PolarDB 等核心業(yè)務(wù),并在雙十一等重大場景得到充分驗證。
          RDMA 具有零拷貝、協(xié)議棧卸載的特點。RDMA 將協(xié)議棧的實現(xiàn)下沉至 RDMA 網(wǎng)卡 (RNIC),繞過內(nèi)核直接訪問遠程內(nèi)存中的數(shù)據(jù)。由于不經(jīng)過系統(tǒng)內(nèi)核協(xié)議棧,RDMA 與傳統(tǒng) TCP/IP 實現(xiàn)相比不僅節(jié)省了協(xié)議處理和數(shù)據(jù)拷貝所需的 CPU 資源,同時也提高了網(wǎng)絡(luò)吞吐量、降低了網(wǎng)絡(luò)通信時延。
          在過去,RDMA 只能在一些數(shù)據(jù)中心網(wǎng)絡(luò)中通過網(wǎng)卡和交換機緊密配合使用,部署復(fù)雜度高。但如今,阿里云彈性 RDMA 將復(fù)雜的 RDMA 技術(shù)帶到云上,使普通的 ECS 用戶也能使用高性能的 RDMA 傳輸,無需關(guān)心底層復(fù)雜的網(wǎng)卡、交換機等物理網(wǎng)絡(luò)環(huán)境配置,使其成為一種親民、普惠的技術(shù)。

          從 verbs 到 socket

          不過,雖然 RDMA 性能優(yōu)異,但是由于 RDMA 使用的 IB verbs 接口和常用的 POSIX socket 接口存在巨大的差異,普通應(yīng)用要使用 RDMA 將面臨著大量的業(yè)務(wù)改造,高效的將 RDMA 應(yīng)用于現(xiàn)有業(yè)務(wù)存在較高的技術(shù)門檻。
          所以,歷史上存在一些將 RDMA 的 IB verbs 語義封裝成 socket 接口的嘗試,典型如 rsocket、libvma。其中,libvma 通過 LD_PRELOAD 攔截 socket 接口,轉(zhuǎn)而使用用戶態(tài) verbs 完成數(shù)據(jù)傳輸。但這些方案存在一些缺陷:由于轉(zhuǎn)換發(fā)生在用戶態(tài),一方面缺少內(nèi)核統(tǒng)一資源管理,另一方面在兼容性上也存在一些問題。
          從資源管理和兼容的角度上看,在內(nèi)核中實現(xiàn) socket 接口相比于用戶態(tài)來說有著天然的優(yōu)勢。在 Alibaba Cloud Linux 3 和 Anolis OS 中,我們提供并優(yōu)化了基于 RDMA 的共享內(nèi)存通信 (Shared Memory Communications over RDMA, SMC-R) 技術(shù),這是一次基于內(nèi)核 RDMA 實現(xiàn) TCP 應(yīng)用兼容的嘗試。
          原生的 SMC-R 支持標(biāo)準 RoCE 網(wǎng)絡(luò),我們對其進行了擴展,首次實現(xiàn)對 iWARP 的支持,可以完美的支持阿里云自研的彈性 RDMA,從而實現(xiàn)云上應(yīng)用零修改的享受 RDMA 帶來的性能紅利。

          兼?zhèn)?socket 和 RDMA 的內(nèi)核實現(xiàn):SMC-R

          用一句話來描述,SMC-R 是一套與 TCP/IP 平行的向上兼容 TCP socket 接口,底層使用 RDMA RC 進行數(shù)據(jù)傳輸?shù)膮f(xié)議族。
          SMC-R 工作于內(nèi)核空間,處于 socket 層和內(nèi)核 RDMA 的 IB verbs 層之間。SMC-R 像是一個能力卓越的翻譯兼管家,它接收用戶傳達的 socket 指令,轉(zhuǎn)而使用 RDMA 的 IB verbs 接口管理 RDMA 資源,完成底層基于 RDMA 的數(shù)據(jù)傳輸。所以,用戶只需將原有 socket 接口使用的協(xié)議族從 AF_INET(6) 修改為 AF_SMC 即可完成從 TCP 協(xié)議棧到 SMC-R 協(xié)議棧的轉(zhuǎn)變。
          但這還不夠,我們希望在零修改的前提下完成協(xié)議替換。為此,Alibaba Cloud Linux 3 和 Anolis OS 在 socket 層增加協(xié)議族替換相關(guān)的 sysctl 和白名單,提供了 net namespace 和單個應(yīng)用維度下的 TCP 至 SMC-R 協(xié)議棧透明替換能力,使應(yīng)用不需要任何修改即可讓數(shù)據(jù)在 RDMA 鏈路這條高速公路上飛馳起來。
          然而,僅本地一廂情愿的使用 SMC-R 可不行,遠端節(jié)點同樣得具備 SMC-R 能力才能讓高速公路有始有終。因此,SMC-R 具備自動協(xié)商和安全回退 TCP 的能力。
          SMC-R 建立 RDMA 鏈路時,首先會與通信對端建立 TCP 連接,雙方在握手過程中通過特殊的 TCP 選項表明自身支持 SMC-R。協(xié)商成功后,SMC-R 將為用戶態(tài)應(yīng)用申請必要的 RDMA 資源,將接收數(shù)據(jù)緩沖區(qū)注冊為可被遠程節(jié)點直接訪問的遠程內(nèi)存緩沖區(qū) (Remote Memory Buffer, RMB),并將對應(yīng)的訪問密鑰以及緩沖區(qū)起始地址封裝成遠程訪問令牌 (RToken) 告知遠程節(jié)點,作為其訪問 RMB 的重要驗證信息。
          特殊情況下,若在協(xié)商過程中發(fā)現(xiàn)收發(fā)兩端其一不具備 RDMA 傳輸條件時,將觸發(fā)安全回退機制。SMC-R 會使用協(xié)商過程中建立的 TCP 連接完成后續(xù)的數(shù)據(jù)傳輸,保證網(wǎng)絡(luò)的可靠穩(wěn)定。
          數(shù)據(jù)傳輸?shù)母咚俟方⑵饋砗螅煌ㄒ?guī)則也要安排妥當(dāng)。顧名思義,SMC-R 是一種通過 RDMA 實現(xiàn)共享內(nèi)存的通信方式,其將環(huán)形 RMB 作為共享內(nèi)存,配合數(shù)據(jù)游標(biāo)實現(xiàn)高效的數(shù)據(jù)傳輸
          SMC-R 使用 RDMA WRITE 單邊操作的方式將網(wǎng)絡(luò)應(yīng)用傳遞至內(nèi)核的數(shù)據(jù)直接、高效地寫入遠程節(jié)點環(huán)形 RMB 中。同時使用 RDMA SEND/RECV 雙邊操作的方式交互連接數(shù)據(jù)管理 (Connection Data Control, CDC) 消息,用于更新、同步 RMB 中的數(shù)據(jù)游標(biāo) (Cursor)。針對一側(cè) RMB,讀者更新消費者游標(biāo) (Consumer Cursor),標(biāo)識即將讀取的下一字節(jié)地址。為避免數(shù)據(jù)丟失,寫者不會將數(shù)據(jù)寫入超過消費者游標(biāo)的 RMB 空間中。相似的,寫者更新生產(chǎn)者游標(biāo) (Producer Cursor),標(biāo)識即將寫入的下一字節(jié)地址。為確保數(shù)據(jù)的正確性,讀者不會讀取超過生產(chǎn)者游標(biāo)的 RMB 空間中的內(nèi)容。就這樣,兩個數(shù)據(jù)游標(biāo)在環(huán)形 RMB 上你追我趕,貫穿網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)氖冀K,確保傳輸?shù)陌踩c可靠。
          最后,數(shù)據(jù)在高速公路上飛馳難免會遇到差錯,為了保證一切都在掌控之中,Alibaba Cloud Linux 3 和 Anolis OS 為 SMC-R 提供了一系列監(jiān)控診斷接口和工具,包括控制透明替換的 sysctl、查詢 SMC-R socket 狀態(tài)的 proc 文件、獲取 SMC-R 各維度信息的 smc-tools 工具集等,以保障網(wǎng)絡(luò)的可監(jiān)控性和易運維性。
          通過上述架構(gòu)概述和理論分析,SMC-R 展現(xiàn)了其兼容 socket 接口,透明替換 TCP,使用 RDMA 完成底層數(shù)據(jù)傳輸?shù)哪芰Α;谶@些,我們終于可以總結(jié)出 SMC-R 的核心優(yōu)勢:
          高性能
          • 更輕薄的協(xié)議棧;

          • 使用 RDMA 進行通信,網(wǎng)絡(luò)時延更低、CPU 占用更少、吞吐量更高;

          • 高效可靠的遠程環(huán)形緩沖區(qū)直接訪問。

          透明替換
          • 兼容 socket 接口的 RDMA 可靠流式傳輸;
          • 自動協(xié)議協(xié)商和安全回退 TCP 能力;
          • net namespace 和應(yīng)用維度的協(xié)議棧無損透明替換;
          • 底層兼容彈性 RDMA iWARP 和標(biāo)準 RoCE 網(wǎng)絡(luò)。

          性能表現(xiàn)

          基于上面的介紹,我們知道 SMC-R 的一個主要優(yōu)勢在于保證兼容的情況下提供更好的性能,但性能到底如何?我們一起來看看 SMC-R 配合阿里云彈性 RDMA 在幾個典型應(yīng)用場景中的表現(xiàn)吧。
          測試環(huán)境
          • CPU:Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz 104 核

          • 網(wǎng)卡:彈性 RDMA * 1

          • OS:Alibaba Cloud Linux 3

          「時延敏感的數(shù)據(jù)庫」 場景
          redis
          • 不同 data size 場景下,redis-benchmark 測試 SMC-R 對比 TCP 性能數(shù)據(jù)

          • 不同 clients 數(shù)量場景下,redis-benchmark 測試 SMC-R 對比 TCP 性能數(shù)據(jù)

          在時延敏感的數(shù)據(jù)查詢與處理場景中,SMC-R + 彈性 RDMA 幫助 Redis 在不同 data size 下平均提升約 50% 的 QPS,在不同 clients 數(shù)量下平均提升 20% 的 QPS。
          「高性能 RPC」場景
          1、thrift
          • 不同類型 RPC 接口下使用 TCP 和 SMC-R 所得 QPS 對比?

          2、netty
          • 不同類型 RPC 接口下使用 TCP 和 SMC-R 所得 QPS 對比?
          在高性能 RPC 場景中,不同類型接口下 SMC-R + 彈性 RDMA 幫助 thrift 平均提升約 30% 的 QPS;netty 平均提升約 12%?的 QPS。
          通過上述實驗數(shù)據(jù),我們清晰的看到 SMC-R 在時延敏感型數(shù)據(jù)查詢、高性能 RPC 場景下具備不俗的性能表現(xiàn)。其實除了上述實驗場景外,SMC-R 還可以應(yīng)用于集群大規(guī)模數(shù)據(jù)交互、高吞吐大文件傳輸?shù)绕渌麍鼍啊?/span>
          當(dāng)然,SMC-R 也不是萬能的,RDMA 的一些缺陷在 SMC-R 中同樣存在。特別是在建連性能上,由于 RDMA 需要與硬件交互,其建連性能遠不如 TCP,所以在大量短連接的場景下,SMC-R 的表現(xiàn)不如 TCP;SMC-R 需要為每個連接預(yù)先分配內(nèi)存,在連接數(shù)非常多的情況下,內(nèi)存占用也會比 TCP 更高。另外,SMC-R 作為一種數(shù)據(jù)中心內(nèi)部使用的通信方式,并不適合對公網(wǎng)暴露。
          未來,我們希望繼續(xù)優(yōu)化 SMC-R,普惠云上應(yīng)用。為此,我們將在龍蜥社區(qū)高性能網(wǎng)絡(luò) SIG (OpenAnolis: https://openanolis.cn/sig/high-perf-network) 上開源代碼并持續(xù)改進。同時,我們將 SMC-R 相關(guān)文檔發(fā)布于 Alibaba Cloud Linux 3 官網(wǎng)上(https://help.aliyun.com/document_detail/327118.htm)。相信在不久的將來,SMC-R 能夠幫助更多的用戶無侵入的改造應(yīng)用,方便快捷的享受 RDMA 帶來的網(wǎng)絡(luò)性能提升。2

          Linux學(xué)習(xí)指南

          有收獲,點個在看?

          瀏覽 89
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97人妻精品一区二区三区香蕉 | 肏屄视频在线免费看 | 操逼操欧美 | 日产精品一区二区乱码视频 | www.日本 爽久久.cou |