簡述:摘要:遠程直接內存訪問(即RemoteDirectMemoryAccess)是一種直接內存訪問技術,它將數(shù)據直接從一臺計算機的內存?zhèn)鬏數(shù)搅硪慌_計算機,無需雙方操作系統(tǒng)的介入。RDMA簡介傳統(tǒng)的TCP/IP技術在數(shù)據包處理過程中,要經過操作系
摘要:遠程直接內存訪問(即RemoteDirectMemoryAccess)它是一種直接內存訪問技術,它直接將數(shù)據從一臺計算機的內存?zhèn)鬏數(shù)搅硪慌_計算機,而無需雙方操作系統(tǒng)的干預。
RDMA簡介
傳統(tǒng)的TCP/IP在數(shù)據包處理過程中,通過操作系統(tǒng)的服務器資源和內存總線帶寬,數(shù)據在系統(tǒng)內存、處理器緩存和網絡控制器緩存之間來回復制和移動CPU內存造成沉重負擔。特別是網絡帶寬、處理器速度和內存帶寬”不匹配性”,網絡延遲效應加劇。
RDMA是一種新的內存訪問技術,RDMA在沒有處理器耗時處理的情況下,計算機可以直接訪問其他計算機的內存。RDMA在不影響操作系統(tǒng)的情況下,將數(shù)據從系統(tǒng)快速移動到遠程系統(tǒng)存儲器。RDMA技術原理及其和TCP/IP如下圖所示,
因此,RDMA它可以簡單地理解為直接讀寫服務器2的內存,最終達到高帶寬、低延遲、低資源利用率的效果。如下圖所示,應用程序不需要參與數(shù)據傳輸過程,只需指定內存讀寫地址,打開傳輸并等待傳輸完成。
支持哪些網絡協(xié)議?RDMA
InfiniBand(IB):從一開始就支持RDMA新一代網絡協(xié)議。由于這是一種新的網絡技術,需要支持網卡和交換機。
RDMA以太網以太網(RoCE):允許通過以太網進行RDMA網絡協(xié)議。其較低的網絡頭為以太網頭,其網絡頭(包括數(shù)據)為InfiniBand頭部。這允許用于標準以太網基礎設施(交換機)RDMA。只有NIC應該是特殊的,并支持它RoCE。
互聯(lián)網廣域RDMA協(xié)議(iWARP):允許通過TCP執(zhí)行RDMA網絡協(xié)議。在IB和RoCE中存功能,iWARP不支持這些功能。這允許用于標準以太網基礎設施(交換機)RDMA。只有NIC應該是特殊的,并支持它iWARP(如果使用CPU卸載),否則一切iWARP堆棧都可以SW實現(xiàn)并丟失了大部分RDMA性能優(yōu)勢。
RDMA優(yōu)勢
在實現(xiàn)上,RDMA它實際上是一種智能網卡和軟件架構完全優(yōu)化的遠端內存直接高速訪問技術RDMA協(xié)議固化于硬件,以及支持零復制網絡技術和內核內存旁路技術這兩種途徑來達到其高性能的遠程直接數(shù)據存取的目標。
(1)零復制:零復制網絡技術使網卡能夠直接與應用內存?zhèn)鬏敂?shù)據,從而消除應用內存與內核之間復制數(shù)據的需要。因此,傳輸延遲將顯著減少。
(2)內核旁路:內核協(xié)議棧旁路技術可以向網卡發(fā)送命令,無需內核內存調用。在沒有任何內核內存參與的情況下,RDMA請求從用戶空間發(fā)送到本地網卡,并通過網絡發(fā)送到遠程網卡,減少了內存空間與用戶空間之間的環(huán)境切換次數(shù)。
(3)沒有CPU參與:應用程序可以訪問遠程內存而不占用遠程機器中的任何內存CPU。遠程存儲器將被讀取,遠程過程(或處理器)無需任何干預。CPU緩存不會被訪問的內存填滿。
(4)基于消息的事務:數(shù)據被視為離散消息而不是流,消除了應用程序將流分為不同消息/事務的需要。
(5)支持分散/收集項目:RDMA支持本地處理多個分散/收集項目,即讀取多個內存緩沖區(qū),將其作為一個流或獲取一個流,并將其寫入多個內存緩沖區(qū)。
在具體的遠程內存讀寫中,RDMA遠程虛擬內存地址用于讀寫操作,包括RDMA遠程應用程序所要做的就是在其本地網卡中注冊相應的內存緩沖區(qū)。遠程節(jié)點CPU除了連接建立、注冊調用等。RDMA在數(shù)據傳輸過程中不提供服務,因此不會帶來任何負載。
RDMA的不同實現(xiàn)
常見的RDMA基于以太網集成的虛擬接口架構實現(xiàn)RDMA(RoCE)、[8][9]InfiniBand、iWARP。如下圖所示,RDMA實現(xiàn)主要分為InfiniBand和Ethernet兩種傳輸網絡。在以太網上,可以根據與以太網融合的協(xié)議棧的差異進行劃分iWARP和RoCE(包括RoCEv1和RoCEv2)。
其中,InfiniBand是最早實現(xiàn)RDMA高性能計算廣泛應用于網絡協(xié)議。InfiniBand和傳統(tǒng)TCP/IP網絡差異很大,需要特殊的硬件設備,價格昂貴。有鑒于此,這是錯誤的InfiniBand討論太多。
以下是基于以太網的版本的重點選擇RoCEv討論。RoCEv2協(xié)議棧包括IB傳輸層、TCP/UDP、IP和Ethernet,其中使用了后三層TCP/IP相應層次的封包格式。RoCEv如下圖所示。
其中,UDP目的端口號為4791,即包頭RoCEv2幀。IBBTH即InfiniBandBaseTransportHeader,定義了IB相應的頭部字段傳輸層。IBPayload即新聞負載。ICRC和FCS冗余檢測和幀校驗分別對應。
IBBTH格式和字段定義如下圖所示。其中,Opcode用來表示包type或IBPayLoad中高層協(xié)議類型。S是SolicitedEvent縮寫表明回應者應該發(fā)生事件。M是MigReq一般用于遷移狀態(tài)的縮寫。Pad表示填充了多少額外字節(jié)IBPayLoad中。TVer即TransportHeaderVersion,顯示包的版本號。PartitionKey用于表征和本Packet邏輯內存分區(qū)相關。rsvd是reserved該字段保留了縮寫。DestinationQP表明目的端QueuePair序號。A是AcknowledgeRequest,表示該packet響應者可以調度響應。PSN是PacketSequenceNumber,用于檢測丟失或重復的數(shù)據包。
最后,順便說一下RDMA網卡的出包。如前文所述,RDMA它是一種智能網卡和軟件架構完全優(yōu)化的遠端內存直接高速訪問技術RDMA在網卡上實現(xiàn)技術固化,即RoCEv2協(xié)議棧中,IBBTH、UDP、IP以及EthernetLayer都固化在網卡上。用戶空間的Application通過OFAStack(或其他組織編寫的)RDMAstack)提供的verbs編程如WRITE、READ、SEND等)形成IBpayload,然后直接進入硬件,從RDMA網卡實現(xiàn)負載層層封裝。
騰佑科技(mubashirfilms.com)成立于2009年,總部位于河南鄭州,是一家集互聯(lián)網基礎設施及軟硬件于一體化的高新技術企業(yè),具有IDC/ISP/ICP/云牌照、雙軟等資質,并擁有多個國家版權局認證。公司自成立以來,一直致力于發(fā)展互聯(lián)網IDC數(shù)據中心DataCenter、云計算Cloud、大數(shù)據BigDate、人工智能AI、內容加速CDN、互聯(lián)網安全、軟件定制開發(fā)等產品服務及行業(yè)客戶技術一體化智能解決方案;2018年成為百度智能云AI河南服務中心。
售前咨詢熱線:400-996-8756
備案提交:0371-89913068
售后客服:0371-89913000
搜索詞
熱門產品推薦