国产亚洲人成在线视频网站

<th id="ssz4z"></th>
  • <th id="ssz4z"></th>

    1. 您現在的位置:CDN高防 > 服務器租用幫助 > 什么是RDMA?RDMA(遠程直接內存訪問)技術淺析

      什么是RDMA?RDMA(遠程直接內存訪問)技術淺析

      發布時間:2020-04-02 12:00:05 ??文章來源:CDN高防 ??作者:江雯鵑
      本文由江雯鵑編輯,關鍵詞:RDMA,RDMA技術,RDMA原理,遠程直接內存訪問,標題:什么是RDMA?RDMA(遠程直接內存訪問)技術淺析,主要內容講解的是:RDMA遠程直接內存訪問(即Remote Direct Memory Access)是一種直接內存訪問技術,它將數據直接從一臺計算機的內存傳輸到另一臺計算機,無需雙方操作系統的介入。
      什么是RDMA?RDMA(遠程直接內存訪問)技術淺析
      摘要:遠程直接內存訪問(即Remote Direct Memory Access)是一種直接內存訪問技術,它將數據直接從一臺計算機的內存傳輸到另一臺計算機,無需雙方操作系統的介入。
      RDMA簡介
      傳統的TCP/IP技術在數據包處理過程中,要經過操作系統及其他軟件層,需要占用大量的服務器資源和內存總線帶寬,數據在系統內存、處理器緩存和網絡控制器緩存之間來回進行復制移動,給服務器的CPU和內存造成了沉重負擔。尤其是網絡帶寬、處理器速度與內存帶寬三者的嚴重”不匹配性”,更加劇了網絡延遲效應。
      RDMA是一種新的內存訪問技術,RDMA讓計算機可以直接存取其他計算機的內存,而不需要經過處理器耗時的處理。RDMA將數據從一個系統快速移動到遠程系統存儲器中,而不對操作系統造成任何影響。RDMA技術的原理及其與TCP/IP架構的對比如下圖所示。
      什么是RDMA?RDMA(遠程直接內存訪問)技術淺析
      因此,RDMA可以簡單理解為利用相關的硬件和網絡技術,服務器1的網卡可以直接讀寫服務器2的內存,最終達到高帶寬、低延遲和低資源利用率的效果。如下圖所示,應用程序不需要參與數據傳輸過程,只需要指定內存讀寫地址,開啟傳輸并等待傳輸完成即可。
      什么是RDMA?RDMA(遠程直接內存訪問)技術淺析
      哪些網絡協議支持RDMA
      InfiniBand(IB): 從一開始就支持RDMA的新一代網絡協議。由于這是一種新的網絡技術,因此需要支持該技術的網卡和交換機。
      RDMA過融合以太網(RoCE): 一種允許通過以太網進行RDMA的網絡協議。其較低的網絡頭是以太網頭,其上網絡頭(包括數據)是InfiniBand頭。這允許在標準以太網基礎架構(交換機)上使用RDMA。只有NIC應該是特殊的,并支持RoCE。
      互聯網廣域RDMA協議(iWARP): 允許通過TCP執行RDMA的網絡協議。在IB和RoCE中存在功能,iWARP不支持這些功能。這允許在標準以太網基礎架構(交換機)上使用RDMA。只有NIC應該是特殊的,并支持iWARP(如果使用CPU卸載),否則所有iWARP堆棧都可以在SW中實現,并且丟失了大部分的RDMA性能優勢。
      RDMA優勢
      在實現上,RDMA實際上是一種智能網卡與軟件架構充分優化的遠端內存直接高速訪問技術,通過在網卡上將RDMA協議固化于硬件,以及支持零復制網絡技術和內核內存旁路技術這兩種途徑來達到其高性能的遠程直接數據存取的目標。
      (1)零復制:零復制網絡技術使網卡可以直接與應用內存相互傳輸數據,從而消除了在應用內存與內核之間復制數據的需要。因此,傳輸延遲會顯著減小。
      (2)內核旁路:內核協議棧旁路技術使應用程序無需執行內核內存調用就可向網卡發送命令。在不需要任何內核內存參與的條件下,RDMA請求從用戶空間發送到本地網卡并通過網絡發送給遠程網卡,這就減少了在處理網絡傳輸流時內核內存空間與用戶空間之間環境切換的次數。
      (3)沒有CPU參與: 應用程序可以訪問遠程內存,而不占用遠程機器中的任何CPU。遠程存儲器將被讀取,無需任何干預的遠程進程(或處理器)。遠程CPU中的緩存將不會被訪問的內存內容填滿。
      (4)基于消息的事務:數據被作為離散消息處理,而不是作為流,這消除了應用將流分成不同消息/事務的需要。
      (5)分散/收集條目支持: RDMA支持本地處理多個分散/收集條目,即讀取多個內存緩沖區并將其作為一個流或獲取一個流并將其寫入多個內存緩沖區。
      在具體的遠程內存讀寫中,RDMA操作用于讀寫操作的遠程虛擬內存地址包含在RDMA消息中傳送,遠程應用程序要做的只是在其本地網卡中注冊相應的內存緩沖區。遠程節點的CPU除在連接建立、注冊調用等之外,在整個RDMA數據傳輸過程中并不提供服務,因此沒有帶來任何負載。
      RDMA的不同實現
      常見的RDMA實現包括虛擬接口架構、基于融合以太網的RDMA(RoCE)、[8][9]InfiniBand、iWARP。如下圖所示,RDMA的實現方式主要分為InfiniBand和Ethernet兩種傳輸網絡。而在以太網上,又可以根據與以太網融合的協議棧的差異分為iWARP和RoCE(包括RoCEv1和RoCEv2)。
      什么是RDMA?RDMA(遠程直接內存訪問)技術淺析
      其中,InfiniBand是最早實現RDMA的網絡協議,被廣泛應用到高性能計算中。但是InfiniBand和傳統TCP/IP網絡的差別非常大,需要專用的硬件設備,承擔昂貴的價格。鑒于此,這里不對InfiniBand做過多的討論。
      在基于以太網的版本中,下面重點選擇RoCEv2來討論??梢钥闯?,RoCEv2的協議棧包括IB傳輸層、TCP/UDP、IP和Ethernet,其中,后面三層都使用了TCP/IP中相應層次的封包格式。RoCEv2的封包格式如下圖所示。
      什么是RDMA?RDMA(遠程直接內存訪問)技術淺析
      其中,UDP包頭中,目的端口號為4791即代表是RoCEv2幀。IB BTH即InfiniBand Base Transport Header,定義了IB傳輸層的相應頭部字段。IB Payload即為消息負載。ICRC和FCS分別對應冗余檢測和幀校驗。
      IB BTH格式和字段定義如下圖。其中,Opcode用于表明該包的type或IB PayLoad中更高層的協議類型。S是Solicited Event的縮寫,表明回應者產生應該產生一個事件。M是MigReq的縮寫,一般用于遷移狀態。Pad表明有多少額外字節被填充到IB PayLoad中。TVer即Transport Header Version,表明該包的版本號。Partition Key用來表征與本Packet關聯的邏輯內存分區。rsvd是reserved的縮寫,該字段是保留的。Destination QP表明目的端Queue Pair序號。A是Acknowledge Request,表示該packet的應答可由響應者調度。PSN是Packet Sequence Number,用來檢測丟失或重復的數據包。
      什么是RDMA?RDMA(遠程直接內存訪問)技術淺析
      最后,順帶說下RDMA網卡的出包。如前文所述,RDMA是一種智能網卡與軟件架構充分優化的遠端內存直接高速訪問技術,通過將RDMA技術固化于網卡上實現,即,在RoCEv2協議棧中,IB BTH、UDP、IP以及Ethernet Layer全是固化在網卡上的。用戶空間的Application通過OFA Stack(亦或其他組織編寫的RDMA stack)提供的verbs編程接口(比如WRITE、READ、SEND等)形成IB payload,接下來便直接進入硬件,由RDMA網卡實現負載的層層封裝。
      本文tag: RDMA RDMA技術 遠程直接內存訪問 RDMA原理
      本文鏈接:http://www.salomontrails.com/news/1158.html
      下一篇:關于RDMA技術原理、三種主流實現技術對比
      上一篇:詳解RDMA(遠程直接內存訪問)架構原理

      相關推薦:

      隨機推薦:

      QQ:317197518

      電子郵箱:317197518@qq.com

      公司業務:我們提供海內外服務器租用,公司產品豐富:獨立服務器、虛擬主機、ADSL撥號、VPS云主機等,價格便宜,歡迎選購

      公司地址:重慶市渝北區賽迪路2號金山商業中心A座6F

      CDN高防:一家全國領先的真實硬防服務器的提供商
      Copyright 2018-2020 ? www.salomontrails.com All Rights Reserved.

      分享按鈕 国产亚洲人成在线视频网站
      <th id="ssz4z"></th>
    2. <th id="ssz4z"></th>