臧 兵,趙 謙,花 飛,曹潤清,黃立桓
(航空工業(yè)西安航空計算技術(shù)研究所,陜西 西安 710065)
未來是智能為王的時代,計算機設(shè)備將向智能化轉(zhuǎn)型,數(shù)據(jù)作為驅(qū)動人工智能技術(shù)發(fā)展的三駕馬車(算法、算力、數(shù)據(jù))之一,其資產(chǎn)價值日益凸顯。多源傳感器系統(tǒng)捕獲的環(huán)境信息、設(shè)備故障預(yù)測與健康管理信息和相關(guān)過程信息等數(shù)據(jù),是綜合態(tài)勢感知的基礎(chǔ),更是人工智能算法訓(xùn)練、進化的基石。隨著信息技術(shù)的高速發(fā)展,未來數(shù)據(jù)規(guī)模和數(shù)據(jù)類型將持續(xù)增長,在這樣的背景下,人們對高速大容量存儲技術(shù)進行深入研究的需求愈發(fā)迫切。
固態(tài)存儲器(Solid State Drive, SSD)又稱電子盤,是基于Nand Flash構(gòu)建的存儲設(shè)備,憑借較高的存儲密度、可靠性、重量輕、體積小、抗震性強、能耗低等特點,已得到廣泛的使用[1]。NVMe是針對非易失性存儲介質(zhì)開發(fā)的本地高性能存儲協(xié)議,能夠提供更高的帶寬、更強的IOPS及更低的端到端延遲,已經(jīng)成了高性能全閃存儲的標(biāo)準(zhǔn)協(xié)議[4]。2016年出現(xiàn)的NVMe-oF技術(shù)進一步將原本只能通過本地PCIe承載的NVMe協(xié)議擴展到網(wǎng)絡(luò),以增加不超過10 μs延遲的代價提供了主機與遠程NVMe設(shè)備的低延遲連接[2]。NVMe-oF技術(shù)的應(yīng)用能夠?qū)崿F(xiàn)計算與存儲資源的解耦,方便后期根據(jù)需求靈活地對計算和存儲資源分別進行升級,避免了傳統(tǒng)系統(tǒng)中計算與存儲資源綁定所導(dǎo)致的弊端。
本文結(jié)合當(dāng)今的大數(shù)據(jù)時代背景,面向?qū)A慷嘣磾?shù)據(jù)的快速記錄需求,基于NVMe-oF技術(shù)設(shè)計了一種高速大容量存儲系統(tǒng),實現(xiàn)了端到端的高帶寬、低延遲數(shù)據(jù)存儲,并且相較于傳統(tǒng)存儲系統(tǒng)實現(xiàn)了計算與存儲資源的解耦,能夠支撐后期根據(jù)需求對計算、存儲資源的適應(yīng)性靈活升級擴容。
傳統(tǒng)的NVMe運行在PCIe總線之上,可以將之稱為NVMe over PCIe。受限于PCIe總線的擴展性,傳統(tǒng)NVMe協(xié)議無法用于跨網(wǎng)的遠程存儲訪問。如果將NVMe的承載者由PCIe遷移至網(wǎng)絡(luò),便形成了NVMe-oF。NVMe-oF規(guī)范定義了一種支持NVMe協(xié)議的存儲網(wǎng)絡(luò)架構(gòu),包括從前端的存儲接口到后端大量的NVMe設(shè)備以及遠程訪問所依賴的網(wǎng)絡(luò)傳輸系統(tǒng)。NVMe-oF能夠?qū)⒎且资源鎯ζ鬟B接到網(wǎng)絡(luò)并提供塊存儲服務(wù)。
在傳統(tǒng)的NVMe over PCIe中,NVMe命令和響應(yīng)被映射到主機的共享內(nèi)存,通過PCIe接口訪問。NVMe-oF與之不同,可將NVMe命令和響應(yīng)封裝成消息,每個消息可以包含一個或多個NVMe命令或響應(yīng)。當(dāng)通過網(wǎng)絡(luò)將負責(zé)的消息發(fā)送到源端NVMe設(shè)備時,為了提高傳輸效率并降低延遲,可以將多個消息合并為一個長消息發(fā)送。
NVMe-oF支持的傳輸網(wǎng)絡(luò)選項,包括光纖通道、遠程直接內(nèi)存訪問(Remote Direct Memory Access,RDMA)和TCP共3個大類,其中RDMA又可進一步細分為InfiniBand(IB)、RoCEv1、RoCEv2和iWARP。作為一種新興的跨網(wǎng)內(nèi)存訪問技術(shù),RDMA能夠讓節(jié)點1的網(wǎng)卡直接讀寫節(jié)點2的處理器內(nèi)存,在實現(xiàn)高帶寬、強吞吐、低延遲網(wǎng)絡(luò)傳輸?shù)耐瑫r降低了對節(jié)點CPU的算力消耗,已成為當(dāng)前NVMe-oF設(shè)計中優(yōu)選的傳輸網(wǎng)絡(luò)方案,獲得了業(yè)界的廣泛使用[5]。RDMA的技術(shù)優(yōu)勢可以總結(jié)如下:
(1)零拷貝。網(wǎng)卡可以直接與應(yīng)用內(nèi)存相互傳輸數(shù)據(jù),而不需要將數(shù)據(jù)拷貝到內(nèi)核態(tài)作處理,降低了傳輸延遲。
(2)內(nèi)核旁路。應(yīng)用無需內(nèi)核調(diào)用即可直接操作設(shè)備接口,RDMA請求可從用戶空間發(fā)送到本地網(wǎng)卡并通過網(wǎng)絡(luò)傳輸給遠端節(jié)點的網(wǎng)卡。
(3)低CPU負載。數(shù)據(jù)傳輸完全由網(wǎng)卡操作,不消耗CPU資源。
NVMe-oF基于RDMA技術(shù)實現(xiàn)對遠端NVMe設(shè)備快速、低延遲的訪問,把NVMe協(xié)議在本地訪問時提供的高性能優(yōu)勢進一步發(fā)揮到遠程的存儲互連架構(gòu)中。RoCEv2是當(dāng)前最為流行的一種RDMA技術(shù),將IB與以太網(wǎng)進行融合,在保留IB傳輸層的同時,使用IP和UDP替換掉IB的網(wǎng)絡(luò)層,從而獲得了較強的擴展性和ECMP性能[3]。因此,本文選擇RoCEv2開展系統(tǒng)設(shè)計,后續(xù)提到的RDMA專指RoCEv2。
基于NVMe-oF的存儲系統(tǒng)架構(gòu)概念視圖如圖1所示。高速大容量存儲設(shè)備(Data Storage Equipment, DSE)與前端的多個數(shù)據(jù)源節(jié)點通過高速RDMA網(wǎng)絡(luò)實現(xiàn)互聯(lián),將多源異構(gòu)數(shù)據(jù)進行統(tǒng)一記錄與管理。DSE提供在線檢索查詢功能,并支持以手持數(shù)據(jù)卡(Portable Data Card, PDC)的形式通過數(shù)據(jù)解析設(shè)備完成數(shù)據(jù)卸載導(dǎo)出。將導(dǎo)出后的記錄數(shù)據(jù)匯總起來構(gòu)建數(shù)據(jù)湖,數(shù)據(jù)湖中的寶貴數(shù)據(jù)可以作為歷史回溯數(shù)據(jù),支撐智能算法的訓(xùn)練、基于歷史數(shù)據(jù)的環(huán)境態(tài)勢預(yù)測以及設(shè)備的故障分析和維護保障等。
圖1 基于NVMe-oF的存儲系統(tǒng)架構(gòu)
系統(tǒng)存儲數(shù)據(jù)流可以分為上行與下行2種,分別對應(yīng)于數(shù)據(jù)讀取與存儲2種場景。以下行鏈路為例,NVMe存儲由各數(shù)據(jù)源節(jié)點的Host CPU發(fā)起,接著由NVMe-oF Initiator負責(zé)NVMe到NVMe-oF的命令轉(zhuǎn)換,之后以RDMA消息的形式傳往DSE的NVMe-oF Target轉(zhuǎn)換為NVMe命令,執(zhí)行后續(xù)的落盤存儲過程,將待存數(shù)據(jù)寫入Nand Flash。為了方便對PDC中數(shù)據(jù)的管理,在Host CPU中運行文件系統(tǒng),以文件的形式組織數(shù)據(jù)。上行傳輸為下行傳輸?shù)哪孢^程:當(dāng)源節(jié)點發(fā)起數(shù)據(jù)讀取命令后,目標(biāo)數(shù)據(jù)由Nand Flash搬移至PDC的DDR,之后經(jīng)RDMA網(wǎng)絡(luò)送至源節(jié)點進行處理。系統(tǒng)的存儲數(shù)據(jù)流向如圖2所示。
圖2 系統(tǒng)存儲數(shù)據(jù)流向
DSE將多塊PDC集中放置組成電子盤陣列,基于NVMe-oF向前端的數(shù)據(jù)源節(jié)點提供塊存儲服務(wù)。考慮到NVMe-oF前端數(shù)據(jù)源節(jié)點與后端存儲節(jié)點一一綁定的技術(shù)特點,因此本系統(tǒng)在投入使用前首先需要根據(jù)各數(shù)據(jù)源節(jié)點的數(shù)據(jù)類型、工作時長等參數(shù)估算出需要存儲的數(shù)據(jù)總量,并以此作為先驗信息預(yù)先對PDC陣列進行邏輯分區(qū),做存儲資源的劃分與對應(yīng)。源節(jié)點與PDC邏輯分區(qū)的對應(yīng)關(guān)系如圖3所示。
圖3 PDC邏輯分區(qū)
如圖4所示,DSE由中央處理模塊(CPM)、電源模塊(PSM)、PDC陣列以及高速底板、結(jié)構(gòu)件等部組件組成。其中,CPM提供整機的高速網(wǎng)絡(luò)接入和存儲所需的處理資源;PSM提供整機的電源轉(zhuǎn)換、掉電儲能;PDC作為實際記錄信息的存儲資源,提供對全盤數(shù)據(jù)的快速物理銷毀,并支持便捷拔插功能。DSE由1路28VDC供電,對外提供調(diào)試串口、網(wǎng)口以及指示燈,整機內(nèi)部通過PCIe 3.0互連。
圖4 DSE硬件架構(gòu)
CPM完成DSE整機的25 Gbps高速以太網(wǎng)接入,并通過全卸載的方式實現(xiàn)RDMA和NVMe-oF Target側(cè)的全部功能。基于上述考慮,CPM以FPGA和CPU為核心進行構(gòu)建。FPGA提供DSE所需的網(wǎng)絡(luò)接口及協(xié)議卸載,并通過自帶的PCIe 3.0硬核掛載PDC,實現(xiàn)對PDC的高速訪問;CPU用于完成模塊的相關(guān)配置并對網(wǎng)絡(luò)運行狀態(tài)進行監(jiān)控。FPGA以硬核形式提供6個PCIe3.0×16接口,支持76個32.75 Gbps的GTY,支持DDR4控制器接口。CPU處理器為雙核ARM V8架構(gòu),單核最高工作主頻為1 GHz。提供72 bit的DDR3高速存儲器,支持ECC校驗;提供多種對外接口。
PDC由主控制器芯片、Nand Flash陣列、電源轉(zhuǎn)換電路以及毀鑰電路組成。主控芯片完成NVMe協(xié)議解析、Flash管理以及磨損均衡、壞塊管理、垃圾回收等;電源轉(zhuǎn)換電路完成二次電源轉(zhuǎn)換,提供控制器I/O、控制器內(nèi)核等供電;毀鑰電路主要用于硬件燒毀Nand Flash顆粒。主控支持PCIe 3.0 x4和NVMe 1.3c協(xié)議標(biāo)準(zhǔn),有8個Flash通道,每通道支持8CE;支持ONFI和Toggle接口Flash;最大讀速度可達3.5 GB/s,最大寫速度可達3.4 GB/s。
面對智能化發(fā)展過程中日益增長的數(shù)據(jù)存儲需求,本文基于NVMe-oF設(shè)計了一種高速大容量存儲系統(tǒng)。該系統(tǒng)能夠提供端到端的高帶寬、低延遲數(shù)據(jù)存儲,實現(xiàn)了計算與存儲資源的解耦,支撐后期根據(jù)需求靈活地對計算和存儲資源進行適應(yīng)性的升級擴容。