隨著雲端計算和金融科技的發展,檔案系統架構的設計正在不斷強化。常見的分散式檔案系統有GFS、HDFS等,也有新興的基於區塊鏈IPFS/Filecoin等。有的廣泛應用,有的開始挑戰,有的是閉源,有的開源。在不同的領域和不同的計算機發展階段,它們都對資料儲存起到了各自的作用。那麼這些分散式檔案系統都有什麼優缺點?基於區塊鏈技術的解決方案能調整谷歌等科技巨頭嗎?
HDFS:被雅虎開源的分散式檔案系統
提起分散式檔案系統,就不得不說起HDFS。Hadoop分散式檔案系統(HDFS),是一個分散式、可擴充套件的Hadoop框架,具有高容錯、低成本部署優勢。HDFS提供對應用程式資料的高吞吐量訪問,適用於具有大型資料集的應用程式。HDFS最初是作為Apache Nutch網路搜尋引擎專案的基礎設施而構建的,現在是Apache Hadoop子專案。
最開始,雅虎公司為了加強廣告服務和搜尋引擎功能,推出了Hadoop分散式檔案系統。由於優勢明顯,Facebook,eBay,LinkedIn和Twitter都開始使用它來處理不斷增長的應用程式資料,還被紐約時報用作大規模影象轉換。2006年,Hadoop的創始人將HDFS交給了Apache軟體基金會。2009年6月,雅虎把Hadoop開源了原始碼可供開源社羣使用。截至2013年,Hadoop的應用已經變得非常普遍,且非常成功:超過一半的財富50強公司使用Hadoop。
實際上,HDFS的主節點“資料分塊”屬性借鑑了谷歌檔案系統(GFS)和IBM的GPFS的設計。儘管在Google演算法的打擊下,雅虎夢斷搜尋。但HDFS卻躲開了攻擊,成為最知名的分散式檔案系統解決方案之一。從搜尋業務上,雅虎是“失敗”和無奈的,但是從計算機資料處理和全球商業設施上講,軟體開源的價值是無價的。
可以說HDFS源於谷歌,終於雅虎,歸於開源。它帶著榮譽和成功完美謝幕。
你可能不知道,HDFS的最初靈感來自2003年10月釋出的谷歌檔案系統論文,可見谷歌在分散式檔案系統上研究不僅早,而且行業領先。
GFS谷歌檔案系統:原來資料還會熱和冷
GFS(Google File System)又稱為谷歌檔案系統,是一種分散式檔案系統。GFS的節點分為兩類:主節點和大量的Chunkservers。Chunkservers儲存資料檔案,這些單個的檔案象常見的檔案系統中的簇或者扇區那樣被分成固定大小的資料塊(這也是名字的由來)。
流程簡析:GFS採用中心伺服器模式,即Master管理分散式檔案系統中的所有後設資料。檔案劃分為Chunk進行儲存,對於Master來說,每個Chunk Server只是一個儲存空間。Client發起的所有操作都需要先透過Master才能執行。
Google的核心需求是資料儲存和使用。最初的GFS主要是為搜尋引擎服務,最後變為雲端計算戰略的一部分。如果要評價GFS,給予任何溢美之詞都不為過,因為GFS從理念和設計都是劃時代的。
隨著谷歌的壯大,憑藉搜尋、流媒體和雲服務,霸佔了資料高地。逐漸地,GFS的單點損壞和效率已經嚴重製約谷歌的下一步計劃。
2013年,Google公佈了Colossus(直譯“巨象”)專案,作為下一代的Google檔案系統。它的使命只有一個:效率。它的最重要的特點之一就是自動分片後設資料層。
2017年,國際並行資料系統研討會(PDSW)上,谷歌的高階軟體工程師Denis Serenyi講述了Colossus是如何提升儲存效率。他指出了GFS架構問題:
- 一臺機器不足以滿足大型檔案儲存
- 後設資料操作的單一瓶頸
- 容錯不夠高
- 延遲問題(儘管可以預見)
鑑於此,GFS master節點只能被Colossus替代。Colossus儲存效率對於最佳化谷歌的產品非常有用,它體現在:
- 後設資料擴充套件可以對資源進行分塊
- 能夠組合不同大小的磁碟和各種型別的工作負載
- 冷熱資料的平衡與新分發
Colossus是一個進化版,而非全新的版本。Colossus重新平衡了舊的冷資料,並在磁碟上進行進行新資料的分發。這樣,像Youtube這樣的影片平臺,大量的資料儲存和播放需求,會在分散式系統中以最快的效率觸達使用者。
小知識:什麼是冷資料?熱資料?
資料冷熱管理是非常重要的一部分。比如IBM就會開發一套解決方案來測量資料的“溫度”,並協助制定包含資料的運營和業務決策。
熱資料: 指的是將被頻繁訪問的資料,它們通常儲存在快速儲存器中。
溫資料:是指被訪問頻率相對較低的資料則,它們儲存在相對較慢的儲存器中。
冷資料:極少被訪問的資料,它們則會被儲存在企業最慢的儲存器中。
IBM通用並行檔案系統GPFS:不僅儲存,更是全球共享經濟
IBM通用並行檔案系統(General Parallel File System,簡稱GPFS)是一個面向企業的檔案系統,用於替代HDFS。
根據IBM官方的描述,GPFS支援數千個節點和PB級儲存,資料在多個節點上覆制儲存,因此不存在單點故障。官方還不忘diss了一下HDFS的單點故障問題。解決IBM單點故障的方法是:如果節點出現故障,則會將更改複製到其他節點,GPFS會快速確定並恢復哪些塊。節點崩潰時發生的更改也將複製恢復到上一個節點,以便節點與叢集讓的其他節點同步。
IBM還使用了新的磁碟陣列技術(GPFS Native RAID),針對破碎資料的重建和資源消耗,比傳統的陣列減少了三到四倍。因為GPFS跨叢集管理,整個系統效能表現對單個節點的重建儲存陣列速度的依賴更加小。這讓規模磁碟管理、映象、基於策略的自動化和災難恢復等成為GPFS的主要特點。
GPFS是面向大規模高效能運算和大規模儲存環境,可以跨多個伺服器分發和管理資料。在GPFS叢集之間的共享檔案系統效率更高,提高了系統效能和檔案一致性資料可用性和系統靈活性也提高,並簡化了儲存管理。
2015年,IBM改名部將GPFS改為Spectrum Scale,成為IBM Spectrum Storage(光譜儲存)的一部分。
IBM Spectrum架構圖
IBM Spectrum Scale是針對雲端計算、大資料、資料、物件等的非結構化資料的高階儲存管理系統,具備許多特點:高擴充套件效能、極高吞吐量、低延遲、資料感知和智慧管理、全球協作、利用身份驗證和加密保證資料完整性和安全性。在官網中,IBM稱“企業組織的底層儲存必須支援新時代的大資料和人工智慧工作負載以及傳統應用程式,同時確保安全性,可靠性和高效能。”而IBM Spectrum Scale作為一種高效能的大規模資料管理解決方案,正是為此而生。
而且它還可在Amazon Web Services上使用。可見,IBM已經不甘心於做一個只存檔案的檔案系統,而是一個將檔案儲存作為底層設施的資料經濟系統。將儲存成本降低已經不再是第一優先目標,全域性管理、全球共享、人工智慧,都預示著IBM轉變資料經濟學的發展戰略。
區塊鏈時代的分散式系統IPFS/IPSE:安全與通證激勵
IPFS(InterPlanetary File System)星際檔案系統,是一個點對點的分散式儲存和超媒體傳輸協議,使用內容定址的進行資料分發。IPFS依靠分散的全球網路節點構成一個分散式系統,使得網路更加安全和高效。IPFS屬於開源專案,創始人為斯坦福大學Juan Benet,他建立了協議實驗室Protocol Labs,主導開發了IPFS、Filecoin等協議。
IPFS的兩個層級
IPFS旨在讓全球計算裝置連線到同一個檔案系統中,且是分散式和結構。IPFS提供了一個高吞吐量、按內容定址的塊儲存模型,IPFS沒有單點故障,並且節點不需要相互信任。為了激勵更多節點,IPFS官方釋出了一個由加密數字貨幣驅動的分散式儲存網路——Filecoin建立在IPFS協議之上,它是IPFS的激勵層。
Filecoin建立的是一個去中心化的儲存市場,客戶支付FIL進行儲存資料,礦工(儲存節點)提供硬碟空間存下資料獲得FIL獎勵。這是其基本經濟模型。
Filecoin的檔案經過雜湊演算法,安全儲存於分散式節點,經過點對點傳輸。儲存節點並不知道儲存的資料副本具體是什麼,因為Filecoin採用了端對端加密技術。由於採用分散式雜湊路由,同上文中的HDFS\GPFS等系統一樣,IPFS同樣具備高容錯性。
不過Filecoin最突出的地方在於,它是區塊鏈技術形態下的分散式檔案系統,意味著它是去中心化架構。沒有中心化伺服器控制,沒有單點故障(並不意味著不會發生,而是有專門的修復機制),無需中間人,節點之間也無需第三方來保證信任。Filecoin是一個透明、開發、可信的網路,區塊鏈就是它的信任鏈,在鏈上,資料交易全部可查。基於Filecoin的檔案版本機制,檔案可溯源,解決資料大量重複儲存和冗餘問題。
作為去中心化的儲存網路,都會設計共識Proof of Storage(儲存證明),Filecoin和Sia等網路均如此。不過,Filecoin設計了新的證明機制叫做PoRep(複製證明),用於證明機器裝置儲存了資料。還有PoST(時空證明),用於錨定儲存資料和時間戳,證明在某一時間礦工儲存著資料。依靠兩種演算法機制,有效防止女巫攻擊等資料造假、欺騙等行為。Filecoin儲存網路最大的特徵就是安全。
截至2019年8月,Filecoin主網並未上線。根據官方路線圖, 預計上線時間為2019 Q3/Q4,在上線之前之前將會(必須)進行程式碼凍結並申請美國的審計。從時間點上看,Filecoin還未真正步入全球雲端儲存市場,但是它的設計將會為分散式檔案系統帶來新的解決方案。
Filecoin是IPFS官方激勵層,同樣在IPFS生態,IPSE承擔著IPFS應用檢索層的重任。Filecoin重儲存,IPSE重搜尋。但這並不代表Filecoin網路沒有檢索,實際上,檢索市場也是其資料驗證環節的關鍵部分。同樣不能將IPSE單純規類為分散式搜尋,因為它也有底層的儲存方案。(下圖是IPSE的分散式儲存結構和共識機制)
為了讓分散式節點的資料能以最快的速度觸達,IPSE採用效率優先原則。基於區塊鏈共識機制PoST(存真證明)和資料持有證明PDP,使資料安全儲存在磁碟介質上。儘管如此,為了實現更好的儲存安全性,IPSE的資料多份儲存和多節點分散儲存。礦工如果無法完成對挑戰到的資料切片做出PDP持有性證明將會遭受懲罰。對於陳舊的資料,IPSE採用智慧嗅探和週期性任務分發,使資料儲存期限將和機器硬體使用壽命同步。
為了資料被訪問到,依靠強大的檢索引擎,IPSE資料索引能能夠獲取分散式節點網路上的資料。從資料來源-資料儲存-資料檢索-資料訪問,構建了完整的資料生命流程。
總結IPFS/IPSE分散式架構的優點:
- 去中心化
- 分散式節點網路,無單點問題
- 加密技術保護資料完整性和安全性
- 儲存成本和傳輸成本遠低於中心化系統
- 通證激勵
除了上述網路,分散式檔案系統的解決方案包括:Sia和Sotrj。它們都建立了一個租用和支付通證的儲存空間,去中心化,資料為自己的私有,儲存都將進行加密。目前,Sia已經進行了商用,Storj還在Alpha 4開發階段。
總結:計算機世界新舊替代的革命
分散式檔案系統最初是為響應逐漸增大的資料規模而設計,相繼出現了不同的解決方案。有谷歌、IBM等傳統科技大公司為自己設計的系統,也有進行開源而被大眾使用的系統。
它們都想獲得這樣的目標:滿足PB級的數量儲存、高吞吐量、儘可能低的訪問延遲、快速部署與低成本應用。
它們都使用了相同或相似的技術架構和思路:叢集系統、節點管理系統、可擴充套件結構、副本備份、容錯管理。
它們都遇到了同樣的問題:一致性事物處理、通訊資源消耗、資料的存取結構複雜、資料的安全性和保密性。
因此,只要儲存存在,機會和挑戰就並存。
毫無疑問,對比通用檔案系統,分散式檔案系統非常適合大規模資料集上應用,為企業組織的業務部署帶來了成本和管理優勢。不過如果追求高效,那麼就要有資料丟失和安全方面的犧牲。如果著重安全,效率又會收到影響。如果問,哪個分散式檔案系統最好?閉源還是開源?中心化和去中心化應該如何選擇?
尋找分散式檔案系統的最佳答案,不如先從計算機網路發展的三個主要階段中尋找。(如圖)
第一階段,集中式網路。這是第一個計算機網路。它們以一臺主計算機(伺服器)為中心代表,周圍有有許多其他計算機連線到它。結果,如果主計算機上的資訊被擦除或丟失,資料就從整個網路中消失了。
第二階段,去中心化的網路。意味著有多個主伺服器連線了多個輔助伺服器。因此,其中一個伺服器的問題不會影響整個網路。弊端是控制主伺服器就控制了關聯資料。
第三個階段,分散式網路。目前,我們正在見證一種全新的、革命性的計算機網路的興起——分散式網路節點內的所有計算機都作為對等體存在,且互相連線。假如其中一個節點關閉或者崩潰,資料資訊仍將在網路中的其餘計算機節點上可用(直到最後一個節點關閉)。
傳統的分散式檔案系統(無論谷歌閉源的GFS還是開源的HDFS),在效率上和應用上都具備實踐優勢。但它們都為擺脫中心化結構。因此,引發了安全和信任問題。隨著計算機網路進入新的階段,分散式儲存檔案系統的技術要求將更高,同時要在開發難度和易用性做出平衡,在部署上要取得更好的成本優勢。這意味新舊替代的革命不可避免。基於區塊鏈技術的分散式檔案系統(如IPFS/Filecoin/IPSE/Sia)提供了透明可信任的網路,展示了不同的資料形態。儘管,這些網路在大規模商用上還處於探索和初步實踐階段,但是,他們敢於向Google、IBM等傳統科技公司發起了挑戰,不僅是雲端儲存,甚至整個網際網路和線下的資料形態都將變革,行業不可避免將會洗牌。
參考資料
- HDFS介紹
- 《GFS谷歌檔案系統論文(2003)》
- 谷歌高階工程師Denis Serenyi《Cluster-Level Storage at Google,How we use Colossus to improve storage efficiency?》
- IBM Spectrum Scale 5.0.0: Administration Guide
- 《IBM紅皮書:IBM Spectrum Scale (formerly GPFS) 》
- IPFS星際檔案系統技術文件
- IPSE技術黃皮書
- Sia白皮書
- Filecoin白皮書