臧 兵,趙 謙,花 飛,曹潤清,黃立桓
(航空工業西安航空計算技術研究所,陜西 西安 710065)
未來是智能為王的時代,計算機設備將向智能化轉型,數據作為驅動人工智能技術發展的三駕馬車(算法、算力、數據)之一,其資產價值日益凸顯。多源傳感器系統捕獲的環境信息、設備故障預測與健康管理信息和相關過程信息等數據,是綜合態勢感知的基礎,更是人工智能算法訓練、進化的基石。隨著信息技術的高速發展,未來數據規模和數據類型將持續增長,在這樣的背景下,人們對高速大容量存儲技術進行深入研究的需求愈發迫切。
固態存儲器(Solid State Drive, SSD)又稱電子盤,是基于Nand Flash構建的存儲設備,憑借較高的存儲密度、可靠性、重量輕、體積小、抗震性強、能耗低等特點,已得到廣泛的使用[1]。NVMe是針對非易失性存儲介質開發的本地高性能存儲協議,能夠提供更高的帶寬、更強的IOPS及更低的端到端延遲,已經成了高性能全閃存儲的標準協議[4]。2016年出現的NVMe-oF技術進一步將原本只能通過本地PCIe承載的NVMe協議擴展到網絡,以增加不超過10 μs延遲的代價提供了主機與遠程NVMe設備的低延遲連接[2]。NVMe-oF技術的應用能夠實現計算與存儲資源的解耦,方便后期根據需求靈活地對計算和存儲資源分別進行升級,避免了傳統系統中計算與存儲資源綁定所導致的弊端。
本文結合當今的大數據時代背景,面向對海量多源數據的快速記錄需求,基于NVMe-oF技術設計了一種高速大容量存儲系統,實現了端到端的高帶寬、低延遲數據存儲,并且相較于傳統存儲系統實現了計算與存儲資源的解耦,能夠支撐后期根據需求對計算、存儲資源的適應性靈活升級擴容。
傳統的NVMe運行在PCIe總線之上,可以將之稱為NVMe over PCIe。受限于PCIe總線的擴展性,傳統NVMe協議無法用于跨網的遠程存儲訪問。如果將NVMe的承載者由PCIe遷移至網絡,便形成了NVMe-oF。NVMe-oF規范定義了一種支持NVMe協議的存儲網絡架構,包括從前端的存儲接口到后端大量的NVMe設備以及遠程訪問所依賴的網絡傳輸系統。NVMe-oF能夠將非易失性存儲器連接到網絡并提供塊存儲服務。
在傳統的NVMe over PCIe中,NVMe命令和響應被映射到主機的共享內存,通過PCIe接口訪問。NVMe-oF與之不同,可將NVMe命令和響應封裝成消息,每個消息可以包含一個或多個NVMe命令或響應。當通過網絡將負責的消息發送到源端NVMe設備時,為了提高傳輸效率并降低延遲,可以將多個消息合并為一個長消息發送。
NVMe-oF支持的傳輸網絡選項,包括光纖通道、遠程直接內存訪問(Remote Direct Memory Access,RDMA)和TCP共3個大類,其中RDMA又可進一步細分為InfiniBand(IB)、RoCEv1、RoCEv2和iWARP。作為一種新興的跨網內存訪問技術,RDMA能夠讓節點1的網卡直接讀寫節點2的處理器內存,在實現高帶寬、強吞吐、低延遲網絡傳輸的同時降低了對節點CPU的算力消耗,已成為當前NVMe-oF設計中優選的傳輸網絡方案,獲得了業界的廣泛使用[5]。RDMA的技術優勢可以總結如下:
(1)零拷貝。網卡可以直接與應用內存相互傳輸數據,而不需要將數據拷貝到內核態作處理,降低了傳輸延遲。
(2)內核旁路。應用無需內核調用即可直接操作設備接口,RDMA請求可從用戶空間發送到本地網卡并通過網絡傳輸給遠端節點的網卡。
(3)低CPU負載。數據傳輸完全由網卡操作,不消耗CPU資源。
NVMe-oF基于RDMA技術實現對遠端NVMe設備快速、低延遲的訪問,把NVMe協議在本地訪問時提供的高性能優勢進一步發揮到遠程的存儲互連架構中。RoCEv2是當前最為流行的一種RDMA技術,將IB與以太網進行融合,在保留IB傳輸層的同時,使用IP和UDP替換掉IB的網絡層,從而獲得了較強的擴展性和ECMP性能[3]。因此,本文選擇RoCEv2開展系統設計,后續提到的RDMA專指RoCEv2。
基于NVMe-oF的存儲系統架構概念視圖如圖1所示。高速大容量存儲設備(Data Storage Equipment, DSE)與前端的多個數據源節點通過高速RDMA網絡實現互聯,將多源異構數據進行統一記錄與管理。DSE提供在線檢索查詢功能,并支持以手持數據卡(Portable Data Card, PDC)的形式通過數據解析設備完成數據卸載導出。將導出后的記錄數據匯總起來構建數據湖,數據湖中的寶貴數據可以作為歷史回溯數據,支撐智能算法的訓練、基于歷史數據的環境態勢預測以及設備的故障分析和維護保障等。

圖1 基于NVMe-oF的存儲系統架構
系統存儲數據流可以分為上行與下行2種,分別對應于數據讀取與存儲2種場景。以下行鏈路為例,NVMe存儲由各數據源節點的Host CPU發起,接著由NVMe-oF Initiator負責NVMe到NVMe-oF的命令轉換,之后以RDMA消息的形式傳往DSE的NVMe-oF Target轉換為NVMe命令,執行后續的落盤存儲過程,將待存數據寫入Nand Flash。為了方便對PDC中數據的管理,在Host CPU中運行文件系統,以文件的形式組織數據。上行傳輸為下行傳輸的逆過程:當源節點發起數據讀取命令后,目標數據由Nand Flash搬移至PDC的DDR,之后經RDMA網絡送至源節點進行處理。系統的存儲數據流向如圖2所示。

圖2 系統存儲數據流向
DSE將多塊PDC集中放置組成電子盤陣列,基于NVMe-oF向前端的數據源節點提供塊存儲服務。考慮到NVMe-oF前端數據源節點與后端存儲節點一一綁定的技術特點,因此本系統在投入使用前首先需要根據各數據源節點的數據類型、工作時長等參數估算出需要存儲的數據總量,并以此作為先驗信息預先對PDC陣列進行邏輯分區,做存儲資源的劃分與對應。源節點與PDC邏輯分區的對應關系如圖3所示。

圖3 PDC邏輯分區
如圖4所示,DSE由中央處理模塊(CPM)、電源模塊(PSM)、PDC陣列以及高速底板、結構件等部組件組成。其中,CPM提供整機的高速網絡接入和存儲所需的處理資源;PSM提供整機的電源轉換、掉電儲能;PDC作為實際記錄信息的存儲資源,提供對全盤數據的快速物理銷毀,并支持便捷拔插功能。DSE由1路28VDC供電,對外提供調試串口、網口以及指示燈,整機內部通過PCIe 3.0互連。

圖4 DSE硬件架構
CPM完成DSE整機的25 Gbps高速以太網接入,并通過全卸載的方式實現RDMA和NVMe-oF Target側的全部功能。基于上述考慮,CPM以FPGA和CPU為核心進行構建。FPGA提供DSE所需的網絡接口及協議卸載,并通過自帶的PCIe 3.0硬核掛載PDC,實現對PDC的高速訪問;CPU用于完成模塊的相關配置并對網絡運行狀態進行監控。FPGA以硬核形式提供6個PCIe3.0×16接口,支持76個32.75 Gbps的GTY,支持DDR4控制器接口。CPU處理器為雙核ARM V8架構,單核最高工作主頻為1 GHz。提供72 bit的DDR3高速存儲器,支持ECC校驗;提供多種對外接口。
PDC由主控制器芯片、Nand Flash陣列、電源轉換電路以及毀鑰電路組成。主控芯片完成NVMe協議解析、Flash管理以及磨損均衡、壞塊管理、垃圾回收等;電源轉換電路完成二次電源轉換,提供控制器I/O、控制器內核等供電;毀鑰電路主要用于硬件燒毀Nand Flash顆粒。主控支持PCIe 3.0 x4和NVMe 1.3c協議標準,有8個Flash通道,每通道支持8CE;支持ONFI和Toggle接口Flash;最大讀速度可達3.5 GB/s,最大寫速度可達3.4 GB/s。
面對智能化發展過程中日益增長的數據存儲需求,本文基于NVMe-oF設計了一種高速大容量存儲系統。該系統能夠提供端到端的高帶寬、低延遲數據存儲,實現了計算與存儲資源的解耦,支撐后期根據需求靈活地對計算和存儲資源進行適應性的升級擴容。