本文《在網(wǎng)存儲系統(tǒng)研究綜述》系統(tǒng)地綜述了在網(wǎng)存儲系統(tǒng)的研究進展,首先介紹了可編程網(wǎng)絡(luò)設(shè)備的硬件結(jié)構(gòu)與性能特征,并基于此總結(jié)了構(gòu)建高性能在網(wǎng)存儲系統(tǒng)面臨的2大挑戰(zhàn):軟硬件分工以及系統(tǒng)容錯. 然后根據(jù)可編程網(wǎng)絡(luò)設(shè)備執(zhí)行的任務(wù)(緩存、協(xié)調(diào)、調(diào)度、聚合)對現(xiàn)有的在網(wǎng)存儲系統(tǒng)進行分類和闡述,并以多個在網(wǎng)存儲系統(tǒng)為實例分析對應(yīng)的設(shè)計難點以及軟件技術(shù)。
最后指明了在網(wǎng)存儲系統(tǒng)進一步研究中需要著重探索的問題,包括交換機與網(wǎng)卡的協(xié)同、安全、多租戶以及自動卸載。
首先介紹了可編程網(wǎng)絡(luò)設(shè)備的硬件結(jié)構(gòu)與性能特征,并基于此總結(jié)了構(gòu)建高性能在網(wǎng)存儲系統(tǒng)面臨的2大挑戰(zhàn)。
然后根據(jù)可編程網(wǎng)絡(luò)設(shè)備執(zhí)行的任務(wù)對現(xiàn)有的在網(wǎng)存儲系統(tǒng)進行分類和闡述。
最后指明了在網(wǎng)存儲系統(tǒng)進一步研究中需要著重探索的問題。
存儲系統(tǒng)基礎(chǔ)知識
存儲技術(shù)的研究發(fā)展現(xiàn)狀及趨勢
分布式存儲趨勢及對云存儲規(guī)劃影響
分布式存儲:企業(yè)IT市場增長點 網(wǎng)絡(luò)存儲技術(shù)淺論 SDS(軟件定義存儲)市場分析及展望 SAN與NAS的區(qū)別 《中國企業(yè)級SSD行業(yè)技術(shù)合集》
? ? ??現(xiàn)有智能網(wǎng)卡配備的可編程芯片主要分為4種:ARM CPU、網(wǎng)絡(luò)處理器(network processor,NP)、專用集成電路(application specific integrated circuit,ASIC)以及現(xiàn)場可編程門陣列(field-programmable gate array,FPGA),它們在性能、易用性和表達能力方面各有優(yōu)劣,如表1所示.
? ?????在網(wǎng)絡(luò)硬件擴展方面,存在一系列研究工作提升可編程網(wǎng)絡(luò)設(shè)備的表達能力,可具體分為3類,如表2所示.?
? ? ? ?如圖2所示:當可編程交換機收到客戶端發(fā)送的數(shù)據(jù)更新請求時,將內(nèi)容記錄在交換機的持久性日志區(qū),然后便可提前返回完成消息給客戶端,而服務(wù)器異步地處理數(shù)據(jù)更新請求;通過該協(xié)議,客戶端的請求延遲可以減半. RedPlane則采用數(shù)據(jù)復(fù)制的方式進行可編程網(wǎng)絡(luò)設(shè)備的容錯:在RedPlane系統(tǒng)中,當可編程交換機需要修改內(nèi)存狀態(tài)時,它會生成包含修改數(shù)據(jù)的復(fù)制請求,并發(fā)送至多臺服務(wù)器;這些服務(wù)器將修改數(shù)據(jù)存儲到本地的DRAM中,以此容忍可編程交換機的崩潰.
? ? ??基于可編程網(wǎng)絡(luò)設(shè)備的在網(wǎng)存儲系統(tǒng)支持在數(shù)據(jù)傳輸路徑上執(zhí)行存儲任務(wù),顛覆了傳統(tǒng)以CPU為核心的存儲系統(tǒng)架構(gòu)思想. 根據(jù)可編程網(wǎng)絡(luò)設(shè)備執(zhí)行的任務(wù),我們將在網(wǎng)存儲系統(tǒng)分為4類:在網(wǎng)數(shù)據(jù)緩存系統(tǒng)、在網(wǎng)數(shù)據(jù)協(xié)調(diào)系統(tǒng)、在網(wǎng)數(shù)據(jù)調(diào)度系統(tǒng)以及在網(wǎng)數(shù)據(jù)聚合系統(tǒng). 本節(jié)將依次介紹這4類在網(wǎng)存儲系統(tǒng),并詳細分析典型的系統(tǒng)實例. 表3對這4類系統(tǒng)在多方面進行了對比.
? ? ??圖3展示了NetCache的架構(gòu). NetCache系統(tǒng)由4個組件構(gòu)成:1)存儲服務(wù)器,將鍵值數(shù)據(jù)存儲在DRAM中;2)客戶端服務(wù)器,用于發(fā)送鍵值請求,包括查詢(Get)、更新(Put)和刪除(Del);3)可編程交換機,緩存熱點鍵值對以服務(wù)Get操作,并進行熱點鍵值數(shù)據(jù)的統(tǒng)計;4)交換機控制器,用于向交換機中添加或刪除鍵值對. 后端存儲服務(wù)器、可編程交換機以及交換機控制器位于同一個機架中,因此所有的客戶端請求均會流經(jīng)該交換機.?
? ? ??得益于交換機的極高聚合帶寬,NetCache在Get操作密集的傾斜負載下能提高系統(tǒng)吞吐一個數(shù)據(jù)量級. 但NetCache只支持單個機架,具有擴展性問題;后續(xù)工作DistCache通過獨立緩存分配和2次隨機選擇策略將NetCache擴展到大規(guī)模集群. 此外,除了負載均衡場景,研究者們設(shè)計了高可靠的鍵值存儲系統(tǒng)NetChain. NetChain通過鏈式復(fù)制協(xié)議(chain replication protocol)將每份鍵值對存儲在多臺交換機的SRAM上,存儲方式與NetCache類似.?表4對 NetCache,DistCache,NetChain這3個基于可編程交換機的緩存系統(tǒng)進行了總結(jié)對比.
? ? ??分布式共享內(nèi)存系統(tǒng)Concordia由清華大學(xué)提出,利用可編程交換機加速緩存一致性協(xié)議. 基于高速網(wǎng)絡(luò)(如RDMA)的分布式共享內(nèi)存系統(tǒng)能支持圖計算等大規(guī)模內(nèi)存計算應(yīng)用. 盡管目前網(wǎng)絡(luò)帶寬很高(如100Gbps),但仍低于本地內(nèi)存的訪問,且網(wǎng)絡(luò)延遲遠高于內(nèi)存延遲;因此,在分布式共享內(nèi)存系統(tǒng)中,為了減少數(shù)據(jù)的遠程訪問,每臺服務(wù)器一般具有本地緩存. 如何保證不同服務(wù)器緩存之間的一致性是個極具挑戰(zhàn)的問題,而現(xiàn)有的緩存一致性協(xié)議需要服務(wù)器之間進行昂貴的分布式協(xié)調(diào),極大地降低了系統(tǒng)在數(shù)據(jù)共享時的性能:基于目錄的緩存一致性協(xié)議引入多次網(wǎng)絡(luò)往返,且當熱點數(shù)據(jù)存在時,服務(wù)器會成為系統(tǒng)瓶頸;基于廣播的緩存一致性協(xié)議會導(dǎo)致網(wǎng)絡(luò)和CPU資源的消耗,這是由于每次緩存一致性請求需要被廣播到所有的服務(wù)器被處理. Concordia利用可編程交換機在網(wǎng)絡(luò)中樞上的位置優(yōu)勢,設(shè)計了高效的在網(wǎng)分布式緩存一致性協(xié)議. 圖4展示了其架構(gòu).
? ? ??除了Concordia,還有一些研究工作也利用可編程交換機保證不同服務(wù)器的數(shù)據(jù)之間的一致性. 華盛頓大學(xué)提出了分布式對象系統(tǒng)Pegasus以解決負載不均衡問題;與NetCache使用緩存的方式不同,Pegasus將熱點的對象復(fù)制至多臺服務(wù)器,以均攤相應(yīng)的訪問. 在Pegasus系統(tǒng)中,可編程交換機記錄熱點對象所在的服務(wù)器列表,當發(fā)生寫請求時更新列表,以保證后續(xù)的讀操作能獲得最新數(shù)據(jù). 此外,耶魯大學(xué)提出的Mind系統(tǒng)針對的是分離式內(nèi)存場景,即多個計算節(jié)點訪問遠程內(nèi)存池,并將數(shù)據(jù)緩存至本地. Mind利用可編程交換機保證不同計算節(jié)點的緩存之間處于一致的狀態(tài). 此外,約翰霍普金斯大學(xué)提出NetLock,通過交換機實現(xiàn)高性能的鎖管理器,用于上層應(yīng)用保證數(shù)據(jù)一致性. NetLock將鎖資源存儲在交換機的內(nèi)存中,因此相比于傳統(tǒng)基于服務(wù)器的設(shè)計,能夠提高吞吐一個數(shù)量級;NetLock在交換機中為鎖請求維護了隊列結(jié)構(gòu),以保證能夠公平地服務(wù)沖突的鎖請求,降低上層應(yīng)用的尾延遲. 表5對上述在網(wǎng)緩存一致性系統(tǒng)進行了總結(jié)對比.
? ? ? ?清華大學(xué)提出了可擴展的在網(wǎng)分布式事務(wù)系統(tǒng)SwitchTx,將分布式事務(wù)協(xié)調(diào)過程抽象為多次“收集-分發(fā)”操作的組合,并將這些操作卸載到集群中的多個可編程交換機中. 相較于Eris系統(tǒng),SwitchTx系統(tǒng)避免了單點瓶頸問題.?圖6展示了SwitchTx系統(tǒng)的組件構(gòu)成以及事務(wù)處理流程.
? ? ?此外,華盛頓大學(xué)提出了分布式事務(wù)系統(tǒng)Xenic,利用基于ARM CPU的on-path智能網(wǎng)卡進行2個方面的卸載:事務(wù)的協(xié)調(diào)任務(wù)以及數(shù)據(jù)并發(fā)索引. 具體地,Xenic在客戶端網(wǎng)卡存儲事務(wù)的臨時狀態(tài),完成事務(wù)協(xié)調(diào)任務(wù),減少協(xié)調(diào)過程中的通信時延. Xenic的服務(wù)端網(wǎng)卡利用網(wǎng)卡內(nèi)存存儲熱點數(shù)據(jù)以及鎖信息,消除遠程數(shù)據(jù)訪問的PCIe開銷;同時利用智能網(wǎng)卡的ARM CPU處理復(fù)雜數(shù)據(jù)訪問,以減少服務(wù)端CPU開銷. Xenic設(shè)計了智能網(wǎng)卡內(nèi)存與主機內(nèi)存協(xié)同的Robin hood哈希索引結(jié)構(gòu),減少網(wǎng)卡處理遠程數(shù)據(jù)訪問請求時的DMA次數(shù). 事務(wù)執(zhí)行過程中的副本操作也完全由網(wǎng)卡執(zhí)行,這進一步降低了主機CPU的消耗. 除了事務(wù)系統(tǒng),一些分布式文件系統(tǒng)也將副本操作卸載至智能網(wǎng)卡. 表6對上述在網(wǎng)分布式事務(wù)系統(tǒng)進行了總結(jié)對比.
? ? ???R2P2和RackSched系統(tǒng)雖然支持在服務(wù)器之間進行負載均衡調(diào)度,但忽略了數(shù)據(jù)一致性,即在存儲系統(tǒng)中,某些數(shù)據(jù)的最新版本只存儲在某些服務(wù)器中,因此交換機無法對相關(guān)RPC請求進行任意調(diào)度. Harmonia和FLAIR這2個系統(tǒng)利用可編程交換支持保證數(shù)據(jù)一致性的請求調(diào)度. 具體地,它們針對的場景是副本協(xié)議,1份數(shù)據(jù)通過共識協(xié)議被冗余地存儲在不同服務(wù)器(包括1個主副本服務(wù)器以及多個從副本服務(wù)器),交換機將客戶端的讀請求高效地調(diào)度至具有最新版本數(shù)據(jù)的服務(wù)器上. 這里的主要設(shè)計難點在于交換機如何與共識協(xié)議結(jié)合,識別哪些服務(wù)器具有讀請求所需的最新數(shù)據(jù). Harmonia在可編程交換機中維護了細粒度哈希表,用于實時記錄哪些數(shù)據(jù)存在并發(fā)的寫請求,對于這些數(shù)據(jù)的讀請求只能被路由至主副本,對于其余數(shù)據(jù)的讀操作可被調(diào)度至任一從副本. FLAIR將整個數(shù)據(jù)范圍切分成大量的分區(qū),在交換機中記錄每個分區(qū)的穩(wěn)定狀態(tài):當某個分區(qū)存在進行中的寫請求時,則被標記成不穩(wěn)定,對應(yīng)的讀請求只能被路由至主副本;對于穩(wěn)定分區(qū)的讀請求能以負載均衡的方式被調(diào)度至某一從副本. 表7對本節(jié)涉及的在網(wǎng)數(shù)據(jù)調(diào)度系統(tǒng)進行了總結(jié)對比.
? ? ? ?微軟研究院提出了SwitchML系統(tǒng),將機器學(xué)習(xí)訓(xùn)練過程中的模型參數(shù)聚合卸載至可編程交換機. 針對可編程交換機不支持浮點數(shù)計算的問題,SwitchML設(shè)計了服務(wù)器與交換機協(xié)同設(shè)計的方法:服務(wù)器將需要聚合的浮點參數(shù)進行量化,轉(zhuǎn)換成定點數(shù),因此交換機只需進行定點數(shù)的聚合. 此外,清華大學(xué)提出了ATP系統(tǒng),利用多臺交換機協(xié)同加速機器學(xué)習(xí)的訓(xùn)練任務(wù),且能高效支持多個訓(xùn)練任務(wù)共同運行的多租戶場景;沙特阿拉伯阿卜杜拉國王科技大學(xué)提出了針對稀疏訓(xùn)練任務(wù)的數(shù)據(jù)聚合系統(tǒng)OmniReduce,并將部分聚合算法卸載至可編程交換機;其他工作如iSwitch和Flare設(shè)計了加速數(shù)據(jù)聚合的定制化交換機硬件架構(gòu),其中iSwitch采用了FPGA硬件,F(xiàn)lare采用了PsPIN硬件. 此外,F(xiàn)lare進一步支持用戶自定義聚合操作處理的數(shù)據(jù)類型. 表8對上述在網(wǎng)數(shù)據(jù)聚合系統(tǒng)進行了對比總結(jié).
總結(jié)與展望 ? ? ? ? ? ? ? ? ? ? ? ?
本文首先從可編程網(wǎng)絡(luò)硬件(包括可編程交換機和智能網(wǎng)卡)的特性出發(fā),展開分析了構(gòu)建在網(wǎng)存儲系統(tǒng)面臨的挑戰(zhàn),并通過對現(xiàn)有研究工作進行了詳細地分類與剖析. 現(xiàn)有研究工作利用可編程網(wǎng)絡(luò)硬件對存儲系統(tǒng)的不同模塊進行加速,包括數(shù)據(jù)緩存、協(xié)調(diào)、調(diào)度以及聚合,能夠顯著提高存儲系統(tǒng)的性能. 然而,研究人員仍然需要在以下4個方面進行深入探索,才能讓在網(wǎng)存儲系統(tǒng)廣泛普及到數(shù)據(jù)中心和超算中心.?
1.?交換機與網(wǎng)卡協(xié)同
???現(xiàn)有的在網(wǎng)存儲系統(tǒng)大多孤立地使用可編程交換機或者智能網(wǎng)卡,無法做到全方位的存儲功能卸載.
2. 多租戶 ????
當在網(wǎng)存儲系統(tǒng)被部署至云環(huán)境時,需高效地支持多租戶,即多租戶之間要進行資源的共享和隔離.
3. 安全 ???
?目前越來越多的網(wǎng)絡(luò)數(shù)據(jù)為了安全考慮被加密,此時就需要可編程交換機和智能網(wǎng)卡能夠高效地處理加密的數(shù)據(jù).
4. 自動卸載
???從頭構(gòu)建可商用的高可靠在網(wǎng)存儲系統(tǒng)極其困難,需要大量的工程代碼和測試驗證. 如果能夠?qū)F(xiàn)有成熟的存儲系統(tǒng)如Memcached,Ceph中的某些模塊自動卸載至可編程交換機和智能網(wǎng)卡,就能既利用現(xiàn)有的系統(tǒng)代碼,又能享受到可編程網(wǎng)絡(luò)設(shè)備帶來的性能紅利。
汪慶, 李俊儒, 舒繼武. 在網(wǎng)存儲系統(tǒng)研究綜述[J]. 計算機研究與發(fā)展. doi: 10.7544/issn1000-1239.202220865.
編輯:黃飛
?
評論
查看更多