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