數據中心承載的網絡轉發數據量越來越大,建設高性能網絡勢在必行。以往我們將目光都集中在了軟件定義網絡技術的普及、100G/400G單端口帶寬的提升等方面的新技術,而忽略了性能。一個網絡的性能高低與每個環節都休戚相關,并不是簡單地將網絡出口由10G換成40G或100G就能改變的,從流量訪問一直到應用軟件的處理都需要提升,最大的瓶頸在哪里?
搞過網絡技術的人都知道,對于一個交換機,其上的端口能做線速轉發是基本要求,但對于服務器來說就很困難,一個1G網卡的服務器,處理流量能達到800M就相當不錯了,這是因為服務器收到數據流量還要解析(交換機往往做三層解析就足夠,而且是由專門芯片來完成,不消耗CPU資源),將每個報文的內容都要解析出來,然后提供給應用層軟件,例如圖1:
圖1:RDMA與TCP/IP技術對比圖
圖1中右側是經典的TCP/IP協議,是數據中心內部數據傳輸網絡使用的唯一網絡協議,分為五層,其中藍色標記的代表硬件部分,紅色標記的代表是系統軟件部分,綠色標記的代表是應用軟件部分。在TCP/IP的網絡世界里,一個服務器網卡接收到一個數據報文,要經過網絡層和傳輸層,再送給應用層,網絡和傳輸層就要消耗CPU資源,由CPU來查詢內存地址,檢驗CRC,還原TCP包到應用,占用CPU緩存,單位時間內進來的報文數量越多,消耗CPU的資源就越多,CPU除了處理數據報文還要運行其它的應用,CPU并不是完全平穩運行的,CPU的高低波動也會影響處理報文的速度,從而影響網絡傳輸性能。
左側是RDMA技術,最大的突破是將網絡層和傳輸層放到了硬件中,服務器的網卡上來實現,數據報文進入網卡后,在網卡硬件上就完成四層解析,直接上送到應用層軟件,四層解析CPU無需干預,這就是RDMA能帶來低延時、高帶寬和低CPU利用率的根本原因,也是RDMA技術的吸引人之處。利用RDMA技術,可以將網卡的帶寬利用率大幅提升,一個擁有1G網卡的服務器,使用RDMA技術,應用軟件處理的數據速度就可以接近1G。服務器可以將幾乎100%的CPU 資源都提供給計算,降低了CPU 在網絡協議處理中的占用率,服務器可以利用這些CPU 資源來做更多計算或提供其他的服務,相當于增加了虛擬機數量,節省了服務器資源。
RDMA技術的全稱叫做Remote Direct Memory Access,即遠程直接數據存取,就是為解決網絡傳輸中服務器端數據處理的延遲而產生的。RDMA通過網卡將數據直接傳入服務器的存儲區,不對操作系統造成任何影響,消除了外部存儲器復制和文本交換操作,解放內存帶寬和CPU資源。當一個應用執行RDMA讀或寫請求時,不執行任何數據復制。
在不需要任何內核內存參與的條件下,RDMA請求從運行在用戶空間中的應用中發送到本地網卡,然后經過網絡傳送到遠程服務器網卡。RDMA最早專屬于Infiniband架構,隨著在網絡融合大趨勢下出現了RoCE(RDMA over Converged Ethernet)和iWARP(RDMA over TCP/IP) ,這使高速、超低延時、極低CPU使用率的RDMA得以部署在目前使用最廣泛的數據中心網絡上。
隨著人工智能和5G網絡的興起,“喚醒萬物,萬物互聯”的時代已經來臨。計算量需求的爆發式增長無疑對數據中心的網絡提出了更苛刻的要求,需要更多的高性能數據中心。RDMA技術作為一種先進的網絡數據傳輸方式映入眼簾,引起了強烈關注。與傳統網絡相比,RDMA可更加顯著地提升應用效率,提供高性能的網絡傳輸。
RDMA這么好,為什么還沒有普及呢,仍只在HPC中有些應用,主要還是價格因素,現如今已經出現了像RoCE這樣兼容以太網的技術,相信在數據中心網絡領域,RDMA會真正的開花結果,尤其在存儲領域,IP存儲已經看上了RDMA,很多互聯網公司均開始考慮現在存儲網絡中部署RDMA,然后慢慢向其它網絡部分延伸。





