摘要:當前,數據挖掘、圖計算、機器學習等大數據應用飛速發展,數據資源規模呈現出爆發式增長態勢,用戶對存儲資源的需求也時常出現大幅波動。 |
數據是國家的重要戰略資源,存儲技術是數據發展與應用的重要保障。近年來,隨著數據規模的急劇增加以及上層應用需求的不斷提高,傳統的大規模存儲技術正面臨著彈性擴展困難、存儲硬件異構等挑戰,而基于云計算的虛擬化存儲為解決上述挑戰提供了新的機遇。研究團隊長期致力于虛擬存儲環境關鍵技術與應用的相關研究,在彈性可伸縮存儲架構和高效能聚合存儲系統方面取得系列進展與突破,實現安全可靠的虛擬化存儲服務,相關成果在“天河云存儲服務”平臺得到整合應用。
當前,數據挖掘、圖計算、機器學習等大數據應用飛速發展,數據資源規模呈現出爆發式增長態勢,用戶對存儲資源的需求也時常出現大幅波動。應用需求的多樣性以及大規模用戶行為的不可預測性使得對存儲系統任務規模變化的預測變得更為困難,應用的動態性和自治性則使存儲系統中資源供給的不確定性和不平衡性表現得更為突出。傳統存儲系統架構已然無法適應新型大數據應用的彈性擴展需求。
在大規模存儲環境中往往同時存在著大量的異構存儲資源,例如機械硬盤(HDD)、固態硬盤(SSD)、持久性內存以及傳統內存等。這些異構存儲資源彼此之間不但性能和成本的差異巨大,而且管理和使用的機制也各不相同。因此,如何根據上層應用的需求變化,按需在線聚合各種異構存儲資源,實現高效能(高性能、低成本)的協同存儲服務,保持系統服務容量、服務質量等關鍵能力的均衡性,已然成為傳統存儲系統難以應對的挑戰。
基于云計算的虛擬化存儲可以實現存儲容量的按需擴展,屏蔽底層存儲硬件的性能差異,隔離不同應用的數據輸入/輸出(I/O)和各種軟硬件失效,近年來已成為大數據應用的關鍵支撐技術,為突破彈性擴展困難、存儲硬件異構等傳統存儲技術面臨的困境提供了新的機遇。
研究團隊聚焦虛擬存儲環境關鍵技術,開展長期研發和攻關。一方面,應用、用戶和數據規模的劇烈變化要求底層存儲系統能夠按需在線增減存儲資源,支持自適應的擴展和收縮。為此,團隊研發了模塊化存儲系統拓撲維護方法、數據和存儲資源的多維動態映射機制、存儲敏感的大規模服務快速啟動和遷移系統,以實現彈性可伸縮存儲架構。另一方面,異構存儲資源之間的巨大性能及成本差異要求底層存儲系統可以根據上層應用的需求變化,按需在線聚合各種異構存儲資源,實現高性能、低開銷的協同存儲服務。為此,團隊針對大規模多級異構存儲場景,研發了內存-SSD-HDD異構混合的分布式多副本存儲、基于投機執行的糾刪碼-副本協同存儲、DM-Cache自適應元數據維護方法、異構存儲感知的圖數據分區存儲機制,以實現高效能聚合存儲系統。
彈性可伸縮存儲架構
●模塊化存儲系統拓撲維護方法
大規模存儲系統需要將大量存儲節點連接成一定的網絡拓撲。Kautz圖在給定節點度(即每個節點的連接數)的條件下具有理論最優的網絡直徑(即所有節點對上的最大距離)和容錯特性。然而,傳統的靜態Kautz圖無法支持存儲系統拓撲的動態變化以及大數據存儲的彈性伸縮需求。
針對該問題,團隊提出了一種基于Kautz圖的模塊化存儲系統拓撲維護方法,并形成一種高性能高容錯的模塊化數據中心網絡SCautz,如圖1所示。該方法使用交換機將多個存儲服務器連接成一個簇,在簇之間形成Kautz圖拓撲,在降低系統整體成本的同時,實現了高帶寬低延遲的數據I/O。分布式線圖(Distributed Line Graphs, DLG)是團隊提出的一種基于任意正則圖來設計分布式哈希表(DHT)的通用技術。團隊通過運用DLG技術,支持Kautz圖拓撲的動態變化,實現模塊化彈性存儲系統,達到存儲系統規模按需伸縮的目的。與目前主流的分布式存儲系統拓撲架構FatTree相比,模塊化存儲系統的網絡成本僅為FatTree的1/45,且容錯性能還提高了3倍。

●數據和存儲資源的多維動態映射機制
數據到存儲資源的高效映射是實現彈性可伸縮存儲架構的關鍵。CRUSH(Controlled Replication Under Scalable Hashing)是目前廣泛應用于Ceph等大型存儲系統的分布式存儲映射算法,通過將存儲系統虛擬化為加權樹,實現數據到存儲資源的映射,支持自定義容錯域、權重調整、偽隨機負載均衡等特性。CRUSH使用邏輯集群映射(logical cluster map)來抽象存儲集群的層次結構。圖2展示的是一個三級存儲層次結構:集群(根)由4個機柜構成,每個機柜由2個機架構成,每個機架下則有4個對象存儲設備(OSD)。同時,圖2也展示了CRUSH典型放置過程的一個示例:按照制定的放置規則(placement rule),先選擇存儲層次結構的根作為后續操作的輸入,之后依次在根下選擇3個機柜、在選中的機柜下分別選擇1個機架、在選中的機架下分別選擇1個OSD,最終得到被選中的3個OSD。
即使以暫時的負載不平衡為代價,存儲系統也通常會傾向于選擇避免集群擴展后的數據遷移。然而,CRUSH在每次集群擴展后,都會將對象/OSD的新舊之別打破,導致大規模的數據遷移,進而引發嚴重的性能抖動。如圖2所示,若在機柜cab4下添加1個新機架shf4_3(同樣帶有4個OSD),這將會對從新添機架到根這一支中各層次的權重(紅色括號標出)產生影響,即數據不僅會從機柜cab4的其他機架移動到新添機架shf4_3,還會從其他機柜移動到機柜cab4。

針對該問題,團隊在CRUSH的基礎上設計了MapX,這是一種基于多維映射的無遷移放置算法,在保留CRUSH的隨機性和統一性等優點的同時,通過引入時間維度映射(從對象創建時間到集群擴展時間)來避免對象存儲系統在擴展時的數據遷移。MapX將原始集群視為一個舊層,而將兩種擴展情況分別視為一個新層,各層將分別以CRUSH根下的一個虛擬節點來表示,如圖3所示。與CRUSH直接進行集群映射的整體更新不同,MapX可在進一步處理CRUSH之前,通過放置規則中新增的“select(1, layer)”操作,將新對象映射到新層,即通過新增的時間維度映射來區分對象/OSD的新與舊,由于新層不會影響舊層的權重,因此舊層中舊對象的放置也不會改變,從而實現無遷移擴展。此外,團隊還在MapX中設計了放置組重映射(PG remapping)、集群收縮(cluster shrinking)、層合并(layer merging)等策略,以實現靈活動態的負載管理,解決潛在的負載不平衡問題。實驗結果表明,在集群擴展時,MapX的尾部延遲(tail latency)性能較CRUSH提高了4.25倍,IOPS性能則提高了74.3%。MapX適用于塊存儲、文件存儲等多種基于對象的存儲場景,現已集成到當前主流的存儲方案Ceph,總體來看,集群擴展時的I/O性能比原系統提高了一個數量級。

●存儲敏感的大規模服務快速啟動和遷移系統
為實現彈性存儲架構的按需擴展和收縮,系統必須要支持上層應用和服務實例的快速啟動和動態遷移。一方面,團隊設計實現了大規模大映像服務實例快速啟動系統。針對大映像虛擬機/容器啟動時間長的挑戰,設計了基于動態標簽的多層多根樹邏輯拓撲,利用多層多根樹的路徑多樣性,實現了基于對等網絡(P2P)的映像按需傳輸和存儲。另一方面,團隊設計實現了存儲敏感的云服務遷移和收縮機制。針對傳統服務遷移方法的遷移抖動和調度低效等問題,基于歷史統計數據提出了遷移時間數學模型,通過決策樹等機器學習技術來分析有向無環圖(DAG)依賴、預測資源需求,進行自適應實例遷移、存儲資源整合、數據并行I/O作業資源預分配,解決了抖動和低效等問題。
高效能聚合存儲系統
●內存-SSD-HDD異構混合的分布式多副本存儲
大數據存儲系統需要在降低存儲成本的同時滿足用戶對延遲、每秒讀寫次數(IOPS)、吞吐率等I/O性能的需求。團隊通過對異構資源存儲機制的研究,提出了以高性能介質(如內存或SSD)作為主要存儲、以低成本介質(如HDD)作為備份存儲的高效能存儲架構,采用異步日志作為主要存儲和備份存儲之間的橋梁;設計了延遲可控的區間索引機制,解決了日志和備份存儲數據版本不一致的難題,比傳統方法的索引性能提高兩個數量級以上;設計了SSD緩存索引、轉換層中間地址映射、存儲條帶化、亂序傳輸、并行I/O、路由與調度協同等機制,實現了異構混合的多副本存儲系統,如圖4所示,在降低存儲成本的同時顯著提升了I/O性能,并設計了多個副本的強一致性協議。該異構混合存儲系統的性能比全SSD同構存儲的Ceph系統略高,而成本僅為其1/3。

●基于投機執行的糾刪碼-副本協同存儲
多副本和糾刪碼(Erasure Code, EC)是存儲系統中常用的數據可靠性方法。糾刪碼存儲在數據持久性方面與多副本存儲性能持平甚至更高,而在開銷和成本方面優勢明顯,因此被云存儲系統廣泛采用。但是,糾刪碼方案的隨機I/O性能較差,無法支持大規模高性能存儲。值得注意的是,當前的糾刪碼方案無法為小寫(small write)密集型工作負載模式提供高性能塊存儲,這是因為該模式需要執行頻繁的部分寫(partial write)操作。
目前最先進的糾刪碼方案是一種采用校驗日志(parity logging)的混合方案EC-PLog。該方案雖在一定程度上緩解了部分寫速度慢的問題,但部分寫性能仍顯著低于多副本方案,這使得基于當前EC-PLog方案的塊存儲無法支持運行小寫密集型應用的虛擬機。團隊通過對糾刪碼底層機制的分析,發現其部分寫性能不佳的根本原因在于:對于每次部分寫,必須通過執行耗時低效的讀后寫(write-after-read)操作,讀取最新數據值,然后計算并寫入校驗增量,該增量將在之后的日志重放(journal replay)中用于更新校驗,如圖5(a)所示。
針對該問題,團隊創新提出了一種基于投機執行的部分寫方案PariX。該方案通過對糾刪碼算法進行變換,在校驗計算中使用最新數據值與原始數據值之間的差值,解決了在糾刪碼存儲系統中由讀后寫操作帶來的性能下降問題。具體而言,對于每次部分寫,數據服務器都會投機性地向校驗服務器發送最新數據值,而不讀取原始數據值,只有當校驗服務器通過返回錯誤代碼予以明確請求時,數據服務器才會讀取原始數據值。這意味著,對于同一數據的若干次部分寫,PariX只需在第1次以額外的網絡往返時間(RTT)為代價完成寫操作(投機失敗),之后則全部僅需執行單純的寫操作(投機成功),如圖5(b)所示?;赑ariX,團隊設計了一種可提供高性能虛擬磁盤服務的高效塊存儲系統PBS(PariX Block Storage),其不僅支持快速部分寫,還實現了完全寫(full write)、基于動態塊索引的高效后臺日志重放、快速故障恢復。進一步,團隊實現了基于投機執行的糾刪碼-副本協同的高性能低開銷聚合存儲系統,I/O性能較基于EC-PLog方案的系統提高了38倍。

● DM-Cache自適應元數據維護方法
Linux內核的Device Mapper機制支持將多個異構存儲介質映射到一個虛擬存儲設備,將小容量高速存儲作為大容量低速存儲的緩存(DM-Cache)。然而,為不影響正常I/O的緩存性能,DM-Cache采用異步方式更新緩存元數據,導致在發生失效時所有緩存(即高速存儲設備)的數據都必須寫回到低速存儲設備。針對該問題,團隊設計了基于自適應比特樹(adaptive bit-tree)的DM-Cache元數據同步更新機制,利用數據I/O的局部性,使元數據中每一位可以代表一個連續存儲空間(而非一個塊)的狀態,從而在支持快速數據恢復的同時不影響DM-Cache的正常I/O。與Linux內核DM-Cache相比,該機制在不影響正常I/O性能的前提下,失效恢復速度提高了160倍以上。
●異構存儲感知的圖數據分區存儲機制
超級計算機的多種存儲硬件由多級網絡進行連接,導致傳統的分布式圖存儲方法在超級計算機上的存儲效率較低,進而導致超大規模圖計算的性能較差。針對該問題,團隊提出了異構存儲感知的圖數據分區存儲技術。該技術采用團隊提出的虛擬拓撲重構(topology refactorization)機制,將超大規模圖的拓撲結構和超級計算機的多級異構存儲架構進行匹配,通過利用圖的局部信息,以流水線方式對圖頂點進行聚變操作(fusion)和裂變操作(fission),得到新拓撲圖,以進行分區存儲;進一步,提出了數據I/O和計算任務相結合的協同計算機制,實現了任務感知的存儲-計算-傳輸的彈性調度。
成果應用
當前,團隊多項研究成果已整合應用于國家超級計算天津中心新一代“天河云存儲服務”平臺,使天津中心實現了存儲規模從百TB級到百PB級、I/O延遲從毫秒級到微秒級、IOPS從千級到百萬級的巨大飛躍。“天河云存儲服務”是國際領先的超算云存儲平臺,實現了計算密集型業務和數據密集型業務的有機融合,進一步拓展了天津中心的應用領域與服務能力,并已為資源勘探數據處理、生物醫藥研究、航空航天裝備研制、衛星遙感數據處理、氣象預報和氣候研究、新材料和新能源研發、基礎科學研究等數百個高性能計算用戶提供了高效可信的存儲服務,大幅提升了用戶使用天河超級計算機的應用水平和創新能力,提高了存儲資源利用率,為天津中心成為我國第一個同時提供云計算和存儲服務的超級計算中心提供了有效支撐。
在彈性可伸縮存儲的實現上,“天河云存儲服務”平臺集成了團隊創新研發的多項成果,例如:通過運用DLG技術,實現了超大規模存儲系統的拓撲優化和模塊化動態維護;針對傳統數據映射算法CRUSH在擴展時的數據遷移問題,通過采用多維動態映射機制MapX,在避免大規模數據遷移的條件下實現了存儲系統的按需自適應彈性擴展和收縮;針對大映像虛擬機啟動時間長的問題,通過采用大規模虛擬機快速啟動系統VirtMan,實現了存儲敏感的大規模服務快速啟動系統,啟動上千個同構大映像服務實例的時間從60分鐘縮短到2分鐘以內。
在高效能聚合存儲的實現上,“天河云存儲服務”平臺集成了團隊創新研發的多項成果,例如:面向超大規模異構存儲資源,通過采用異構混合的分布式多副本存儲技術Ursa,實現了內存-SSD-HDD多級協同的高效能存儲,在存儲總成本不變的條件下實現了I/O性能的顯著提高;針對存儲成本敏感的中低端用戶,通過采用基于投機執行的糾刪碼-副本協同的塊存儲系統PBS,在國際上首次實現了支持高效隨機I/O的低成本糾刪碼存儲;針對Linux內核DM-Cache模塊I/O性能和失效恢復速度難以兼顧的問題,通過采用基于I/O局部性的DM-Cache元數據同步更新機制MapperX,在支持快速數據恢復的同時不影響DM-Cache的正常I/O;針對超大規模圖計算的需求,通過將包括圖拓撲重構技術TopoX在內的異構存儲感知的圖數據分區存儲機制應用于天河超級計算機新一代圖計算系統TianheGraph,使其圖計算性能提高了一個數量級,助力天河E級(百億億次)計算機關鍵技術驗證系統在單源最短路徑SSSP Graph500和大數據圖計算效能BIG Data Green Graph500兩項權威評測的最新榜單(2021年11月)中奪得世界第一,這也標志著天河超級計算機在數據密集型應用方面取得國際領先突破,對提升我國人工智能和大數據處理能力具有重要支撐作用。此外,成果應用也使平臺實現了服務實例的本地隔離和網絡I/O路徑隔離,以及失效存儲節點的秒級恢復。
當前,團隊通過構建彈性可伸縮的存儲架構以及面向異構存儲硬件的高效能聚合存儲系統,實現了安全可靠的虛擬化存儲服務,技術創新水平國際領先,成果服務于國家重要基礎設施和商業云計算平臺,經濟和社會效益顯著。未來,虛擬存儲環境關鍵技術還可應用于專用大數據處理平臺,用以支持復雜環境下的模塊化容錯存儲及可靠I/O,支撐大型業務系統的快速部署啟動和高效運行,保障國家重要行業和領域實現安全可靠的數據存儲。
專家簡介
張一鳴:現任廈門大學信息學院教授,長期從事系統軟件和存儲技術的研究及系統研發工作,相關成果曾獲國家科學技術進步二等獎、湖南省自然科學一等獎、2021年度CCF科學技術獎科技進步卓越獎等,成果應用于天河超級計算機、阿里云等關鍵業務系統。
尹路珈:現任國防科技大學系統工程學院助理研究員。
李東升:現任國防科技大學計算機學院研究員。
本文刊登于IEEE Spectrum中文版《科技縱覽》2022年4月刊。
責任編輯:張華