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