RDMA高速低延時網絡:流動緩存背后的功臣
戴爾Fuild Cache for SAN,在服務器閃存緩存與SAN陣列的集成方面可謂獨樹一幟。相信一些讀者對該技術已經不陌生,除了那500萬IOPS的Demo之外,網上也能找到相關資料和分析的文章,如:《性能與ILM的平衡:服務器閃存緩存的思考》。今天我們想回顧一下Fuild Cache for SAN的獨特技術優勢,以及在流動緩存背后的功臣——RDMA高速低延時網絡。
如果說PCIe/ NVMe打通了主機內部CPU與閃存之間通道的話,那么RDMA over InfiniBand或者RoCE則能夠有效改善跨節點的閃存訪問性能。
Fuild Cache for SAN的獨特優勢
1 SAN整合盡管有多家廠商都宣稱他們的服務器閃存緩存軟件,可以配合后端SAN存儲使用,但許多也標明了只是單機讀緩存。除了戴爾Fuild Cache for SAN之外,具備分布式緩存一致性和RAC支持的寥寥無幾。
這里要強調一下,早期的Server Flash Cache軟件通常不支持像Oracle RAC這樣的雙活(Active/Active)集群訪問,簡單說就是當一臺服務器向后端共享存儲中寫入數據時會鎖定整個LUN。而Oracle RAC需要的是傳統SCSI-3規范的細粒度鎖機制,一個LUN上的不同LBA允許同時接受來自多個服務器的寫操作。
分布式緩存一致性解決的就是協同,或者說數據一致性。如果由一臺服務器改寫了后端LUN內的數據,在另一臺服務器上Flash Cache內也有對應的數據塊,需要做過期處理,也就是說要維護一個同步的緩存元數據索引。
Server Cache Pool——戴爾將Fuild Cache for SAN稱為緩存池,是因為一臺服務器閃存緩存中的數據可以供集群中別的服務器加速存儲訪問,而后者并不是必須要作為這個閃存緩存池的貢獻者。
2 Server Cache Pool戴爾將Fuild Cache for SAN稱為緩存池,是因為一臺服務器閃存緩存中的數據可以供集群中別的服務器加速存儲訪問,而后者并不是必須要作為這個閃存緩存池的貢獻者。
3 異構服務器訪問既然Fuild Cache for SAN網絡中不是每個服務器節點都需要配置閃存緩存(最少2個貢獻節點+1個仲裁節點),那么也就允許第三方服務器加入集群。
4 Write-back(寫回)緩存支持盡管一家戴爾友商曾表示將支持write back寫緩存,但直到去年我們也沒有看到這一功能的發布。
閃存一旦用于讀&寫緩存,和自動分層存儲已經有相似之處。只是數據是否最終要持久化到后端的問題,因為這時閃存中的待寫入數據必須保證可靠性和高可用性。
這就涉及到本文的重點——RDMA網絡。為了緩存池中的全局訪問,還有把每臺服務器的閃存寫緩存鏡像到其它節點以實現冗余,最好能有一個低延遲的專用高速網絡。

5 低延時專用互連網絡戴爾Fuild Cache for SAN需要配置專用的40Gb或者10Gb RoCE(RDMA over Coverge Ethernet)緩存通信網絡,RoCE在相同速率下的性能/延時表現可以媲美InfiniBand。我們看到部分多控制器的高端存儲陣列,其節點間就是用IB網絡互連,而戴爾Fuild Cache for SAN的閃存緩存池更加靠近服務器,取得更好的性能也在情理當中。
延時大跳水:繞開TCP/IP協議棧開銷

如上圖,我們看到40GbE和10GbE交換網絡的物理延遲(當然不包括TCP/IP)分別只有0.6和0.8微秒,RoCE(RDMA over Coverge Ethernet)的延遲也不到1微秒。這里我理解的應該是主機到交換機。
直行何必繞彎——看RDMA如何工作

來自去年閃存峰會資料的這張圖,簡明的解釋了RDMA over IB和RoCE的好處:從User層(用戶態)繞過Kernel層(內核態),直接走InfiniBand HCA或者RoCE網卡從網絡發送數據;即從應用的buffer緩沖,繞過了OS的接收和發送buffer,甚至網卡上都可以不再做buffer。當然,我們前面提到的另外一點——繞開TCP/IP也是改善性能的重要因素。
從RNA內存虛擬化到Fuild Cache for SAN

上圖來自Mellanox 2011年的資料,Mellanox是最大的InfiniBand網絡設備制造商,也是RoCE的主要發起者。戴爾與Mellanox在高性能計算和存儲方面有著緊密的合作。
RNA這家公司已于同年被戴爾收購,上面的對比數字是他們之前的MVX內存虛擬化產品在RoCE和TCP/IP網絡下的延時對比。注意這里是應用級Benchmark和Round Trip延時,當時使用的ConnectX-2是10Gb萬兆網卡。從測試結果來看,RoCE延時只有TCP/IP網絡的1/3多一點。
值得一提的是,Fuild Cache for SAN正是RNA的技術融入戴爾之后推出的產品,將RoCE高速網絡與PowerEdge服務器上ExpressFlash NVMe PCIe SSD的優勢結合起來,相得益彰。
