主流分佈式文件系統對比:區塊鏈分佈式技術引發雲存儲革命?HDFS,GFS,GPFS,FusionStorage,IPFS

https://blog.csdn.net/weixin_45494421/article/details/98760782

 

概要:常見的分佈式文件系統有GFS、HDFS等,也有新興的基於區塊鏈IPFS/Filecoin等。有的廣泛應用,有的開始挑戰,有的是閉源,有的開源。在不同的領域和不同的計算機發展階段,它們都對數據存儲起到了各自的作用。那麼這些分佈式文件系統都有什麼優缺點?我們應該怎樣選擇適合自己的解決方案?

 

 

 

一、HDFS:被雅虎開源的分佈式文件系統

 

Hadoop分佈式文件系統(HDFS),是一個分佈式、可擴展的Hadoop框架,具有高容錯、低成本部署優勢。HDFS提供對應用程序數據的高吞吐量訪問,適用於具有大型數據集的應用程序。HDFS最初是作爲Apache Nutch網絡搜索引擎項目的基礎設施而構建的,現在是Apache Hadoop子項目。

 

 

 

HDFS如何工作?HDFS支持計算節點之間的數據快速傳輸,文件系統多次複製或複製每個數據,並將副本分發到各個節點,將至少一個副本放在與其他服務器機架不同的服務器上。因此,崩潰的節點上的數據可以在羣集中的其他位置找到。這可確保在恢復數據時繼續處理。這使得HDFS高容錯性。簡單來說,HDFS將文件拆分爲塊,並將它們分佈在集羣中的節點上。

 

 

 

架構分析:HDFS採用的是主/從架構(master/slave )。HDFS集羣由單個NameNode(主節點),這相當於一個主服務器,用於管理文件系統命名空間和管理客戶端對文件訪問。此外,還有許多DataNode(數據節點),通常是集羣中每個節點之一,用於管理連接到運行的節點存儲。在HDFS中,文件被分成一個或多個塊,這些塊存儲在一組DataNode中。NameNode執行文件系統命名空間操作,如打開,關閉和重命名文件和目錄。它還確定了塊到DataNode的映射。DataNode負責提供來自文件系統客戶端的讀寫請求。

 

 

 

 

 

發展簡史:源於谷歌,終於雅虎,歸於開源

 

最開始,雅虎公司爲了加強廣告服務和搜索引擎功能,推出了Hadoop分佈式文件系統。由於優勢明顯,Facebook,eBay,LinkedIn和Twitter都開始使用它來處理不斷增長的應用程序數據,還被紐約時報用作大規模圖像轉換。

 

 

 

2006年,Hadoop的創始人將HDFS交給了Apache軟件基金會。2012年,HDFS和Hadoop的版本1.0正式開啓使用。2017年12月推出Hadoop 3.0,使得HDFS具備更強大的數據壓縮和擴展性。2019年1月,Apache Hadoop 3.2發佈。

 

 

 

實際上,HDFS的主節點“數據分塊”屬性借鑑了谷歌文件系統(GFS)和IBM的GPFS的設計。儘管在Google算法的打擊下,雅虎夢斷搜索。但HDFS卻躲開了攻擊,成爲最知名的分佈式文件系統解決方案之一。2009年6月,雅虎把Hadoop開源了源代碼可供開源社區使用。從搜索業務上,雅虎是“失敗”和無奈的,但是從計算機數據處理和全球商業設施上講,軟件開源的價值是無價的。

 

 

 

優勢盡顯,一半的財富50強公司使用

 

HDFS通信協議都在TCP / IP協議之上,且主要使用Java語言構建,多端運行起來幾乎沒有障礙,這使得它的應用場景方便而快捷。這讓許多公司的部署成本降至最低。HDFS是許多Hadoop生態系統技術的關鍵部分。

 

 

 

2010年,Facebook宣佈擁有全球最大的Hadoop集羣,擁有21 PB的存儲空間,兩年後達到100 PB。截至2013年,Hadoop的應用已經變得非常普遍,且非常成功:超過一半的財富50強公司使用Hadoop。

 

 

 

HDFS的最初靈感來自2003年10月發佈的谷歌文件系統論文,這篇論文催生了谷歌的另一篇論文“MapReduce:大集羣中的簡化數據處理”(2004年)。可見谷歌在分佈式文件系統上研究不僅早,而且行業領先。

 

 

 

 

 

二、谷歌GFS和Colossus

 

GFS(Google File System)又稱爲谷歌文件系統,是一種分佈式文件系統。

 

 

 

在GFS架構中(如下圖),GFS的節點分爲兩類:主節點和大量的Chunkservers。Chunkservers存儲數據文件,這些單個的文件象常見的文件系統中的簇或者扇區那樣被分成固定大小的數據塊(這也是名字的由來)。GFS將文件按照固定大小進行分塊,默認是64MB,每一塊稱爲一個Chunk(數據塊),每個Chunk都有一個對應的索引號(Index)。而Client是GFS提供給應用程序的訪問接口,也扮演節點的角色。

 

 

 

流程簡析:GFS採用中心服務器模式,即Master管理分佈式文件系統中的所有元數據。文件劃分爲Chunk進行存儲,對於Master來說,每個Chunk Server只是一個存儲空間。Client發起的所有操作都需要先通過Master才能執行。

 

 

 

好處是,只有一箇中心服務器,元數據的一致性問題自然解決。壞處是整個系統會遭遇瓶頸,分佈式節點(Chunk Server)之間沒有保持關係。

 

 

 

Google的核心需求是數據存儲和使用。最初的GFS主要是爲搜索引擎服務,最後變爲雲計算戰略的一部分。如果要評價GFS,給予任何溢美之詞都不爲過,因爲GFS從理念和設計都是劃時代的。

 

 

 

隨着谷歌的壯大,憑藉搜索、流媒體和雲服務,霸佔了數據高地。逐漸地,GFS的單點損壞和效率已經嚴重製約谷歌的下一步計劃。

 

 

 

2013年,Google公佈了Colossus(直譯“巨象”)項目,作爲下一代的Google文件系統。

 

 

 

早在2010年,谷歌發佈了一個非常簡單的雲存儲的架構文檔“Colossus - Google Cloud”,並輔以文字描述,“Google operates planet-scale storage systems. What keeps us programming: Enabling application developers. Improving data locality and......”翻譯過來就是:谷歌運營大規模的存儲系統,讓開發和應用產生質變。

 

 

 

Colossus File System從一出生,它的使命只有一個:效率。它的最重要的特點之一就是自動分片元數據層。

 

 

 

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官方架構圖:

 

 

 

IBM Spectrum Scale是針對雲計算、大數據、數據、對象等的非結構化數據的高級存儲管理系統,具備許多特點:高擴展性能、極高吞吐量、低延遲、數據感知和智能管理、全球協作、利用身份驗證和加密保證數據完整性和安全性。在官網中,IBM稱“企業組織的底層存儲必須支持新時代的大數據和人工智能工作負載以及傳統應用程序,同時確保安全性,可靠性和高性能。”而IBM Spectrum Scale作爲一種高性能的大規模數據管理解決方案,正是爲此而生。

 

 

 

而且它還可在Amazon Web Services上使用。可見,IBM已經不甘心於做一個只存文件的文件系統,而是一個將文件存儲作爲底層設施的數據經濟系統。將存儲成本降低已經不再是第一優先目標,全局管理、全球共享、人工智能,都預示着IBM轉變數據經濟學的發展戰略。

 

 

 

四、華爲分佈式存儲:FusionStorage

 

FusionStorage是華爲的一款可大規模橫向擴展的智能分佈式存儲產品。面向虛擬化/雲資源池、關鍵業務數據庫、大數據分析、內容存儲/備份歸檔等應用場景,是客戶具備雲基礎架構的彈性按需服務能力,又滿足企業關鍵業務需求。在其官網,目前客戶已經有招商銀行、中國移動、中國電信。

 

 

 

 

 

 

那麼,華爲分佈式存儲的架構是什麼?FusionStorage塊存儲採用分佈式集羣控制技術和 DHT網絡路由技術,提供分佈式存儲功能特性。(如下是塊存儲功能架構圖)

 

 

 

在系統架構上,FusionStorage使用全分佈式架構。在企業級特性上,FusionStorage優勢明顯:快照,鏈接克隆,數據加密,Active-Active,遠程複製,精簡配置,重刪壓縮和QoS等。在存儲底層,依舊採用了分佈式數據路由和集羣管理,這是常見的技術解決方案。爲了解決一致性問題,華爲加入了強一致性複製協議,和並行數據重建功能。在存儲服務層,值得關注的是分佈式Cache技術,這利於索引效率和容災備份。最後,FusionStorage提供了存儲接口的良好支持,對上層的應用和虛擬機提供標準的iSCSI塊存儲接口。

 

 

 

強一致性複製協議:

 

當應用程序成功寫入一份數據時,後端的幾個數據副本必然是一致的,當應用程序再次讀時,無論在哪個副本上讀取,都是之前寫入的數據。FusionStorage採用類似同步鏡像、複製技術,一份數據在本地寫成功,還會等待其他遠端副本返回寫成功後,才標誌着本次寫成功,返回上層業務。

 

 

 

SCSI:

 

即小型計算機系統接口。它是各種計算機與外部設備之間的接口標準。iSCSI是由Cisco和 IBM兩家發起的,基於TCP/IP上的協議。iSCSI的優勢:長距離連接,更低成本,簡化部署和實施,固有的安全性。但是iSCSI仍受到幾個掣肘:iSCSI架構於IP協議之上,因此也繼承了IP協議本身的缺陷:區分不同流量優先等級,防止丟包的QoS與流量控制機制不足。如果主機I/O處理能力、存儲陣列性能無法跟上,則存儲網絡整體性能同樣會受到影響。目前iSCSI在高I/O環境下的性能表現仍不如光纖通道。

 

 

 

值得強調的是,FusionStorage 支持使用HDFS插件, 實現與業界主流大數據平臺的對接。(下圖爲FusionStorage邏輯架構)

 

 

 

 

 

 

FusionStorage 文件存儲當前支持與 Huawei FusionInsight、Cloudera CDH 等主流廠商的大數據軟件產品的對接。FusionStorage 對象存儲提供兼容 Amazon S3 的對象存儲接口,支持與 Hadoop 大數據平臺的對接。並支持OpenStack等雲平臺兼容。

 

 

 

除了在金融、大企業等領域,在製造、運營商等行業中,隨着新興業務的激增、業務數據呈現幾何倍數的快速增長,使得企業數據中心存儲系統開始面臨新的挑戰。FusionStorage 通過系統軟件將通用硬件的本地存儲資源組織起來構建全分佈式存儲池,支持靈活購買和部署,幫助企業輕鬆應對業務快速變化時的數據靈活、高效存取需求。

 

 

 

華爲在2012年發佈FusionStorage,目前最新的版本是重大升級後的FusionStorage 8.0。根據Intel官方文件,華爲FusionStorage已經進入Intel Select Solutions(因特爾選擇方案)。

 

 

 

五、星際文件系統:IPFS

 

IPFS(InterPlanetary File System)星際文件系統,是一個點對點的分佈式存儲和超媒體傳輸協議,使用內容尋址的進行數據分發。IPFS依靠分散的全球網絡節點構成一個分佈式系統,使得網絡更加安全和高效。IPFS屬於開源項目,創始人爲斯坦福大學Juan Benet,他建立了協議實驗室Protocol Labs,主導開發了IPFS、Filecoin等協議。

 

 

 

 

 

 

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的優點:

 

●去中心化

 

●分佈式節點網絡,無單點問題

 

●加密技術保護數據完整性和安全性

 

●存儲成本和傳輸成本遠低於中心化系統

 

●通證激勵

 

 

 

Filecoin是IPFS官方激勵層,同樣在IPFS生態,IPSE承擔着IPFS應用檢索層的重任。Filecoin重存儲,IPSE重搜索。但這並不代表Filecoin網絡沒有檢索,實際上,檢索市場也是其數據驗證環節的關鍵部分。同樣不能將IPSE單純規類爲分佈式搜索,因爲它也有底層的存儲方案。(下圖是IPSE的分佈式存儲結構和共識機制)

 

 

 

爲了讓分佈式節點的數據能以最快的速度觸達,IPSE採用效率優先原則。基於區塊鏈共識機制PoST(存真證明)和數據持有證明PDP,使數據安全存儲在磁盤介質上。儘管如此,爲了實現更好的存儲安全性,IPSE的數據多份保存和多節點分散保存。礦工如果無法完成對挑戰到的數據切片做出PDP持有性證明將會遭受懲罰。對於陳舊的數據,IPSE採用智能嗅探和週期性任務分發,使數據保存期限將和機器硬件使用壽命同步。

 

 

 

爲了數據被訪問到,依靠強大的檢索引擎,IPSE數據索引能能夠獲取分佈式節點網絡上的數據。從數據源-數據存儲-數據檢索-數據訪問,構建了完整的數據生命流程。

 

 

 

除了上述網絡,分佈式文件系統的解決方案包括:Sia和Sotrj。它們都建立了一個租用和支付通證的存儲空間,去中心化,數據爲自己的私有,存儲都將進行加密。目前,Sia已經進行了商用,Storj還在Alpha 4開發階段。

 

 

 

 

 

六、總結:

 

分佈式文件系統最初是爲響應逐漸增大的數據規模而設計,相繼出現了不同的解決方案。有谷歌、IBM等傳統科技大公司爲自己設計的系統,也有進行開源而被大衆使用的系統。

 

 

 

它們都想獲得這樣的目標:滿足PB級的數量存儲、高吞吐量、儘可能低的訪問延遲、快速部署與低成本應用。

 

它們都使用了相同或相似的技術架構和思路:集羣系統、節點管理系統、可擴展結構、副本備份、容錯管理。

 

它們都遇到了同樣的問題:一致性事物處理、通信資源消耗、數據的存取結構複雜、數據的安全性和保密性。

 

 

 

因此,只要存儲存在,機會和挑戰就並存。而且方案不止一種(其它的分佈式文件系統還有:Lustre文件系統、淘寶TFS系統等)。

 

 

 

毫無疑問,對比通用文件系統,分佈式文件系統非常適合大規模數據集上應用,爲企業組織的業務部署帶來了成本和管理優勢。不過如果追求高效,那麼就要有數據丟失和安全方面的犧牲。如果着重安全,效率又會收到影響。如果問,哪個分佈式文件系統最好?閉源還是開源?中心化和去中心化應該如何選擇?

 

 

 

 

尋找分佈式文件系統的最佳答案,不如先從計算機網絡發展的三個主要階段中尋找。(如圖)

 

第一階段,集中式網絡。這是第一個計算機網絡。它們以一臺主計算機(服務器)爲中心代表,周圍有有許多其他計算機連接到它。結果,如果主計算機上的信息被擦除或丟失,數據就從整個網絡中消失了。

 

 

 

第二階段,去中心化的網絡。意味着有多個主服務器連接了多個輔助服務器。因此,其中一個服務器的問題不會影響整個網絡。弊端是控制主服務器就控制了關聯數據。

 

 

 

第三個階段,分佈式網絡。目前,我們正在見證一種全新的、革命性的計算機網絡的興起——分佈式網絡節點內的所有計算機都作爲對等體存在,且互相連接。假如其中一個節點關閉或者崩潰,數據信息仍將在網絡中的其餘計算機節點上可用(直到最後一個節點關閉)。

 

 

 

傳統的分佈式文件系統(無論谷歌閉源的GFS還是開源的HDFS),在效率上和應用上都具備實踐優勢。但它們都爲擺脫中心化結構。因此,引發了安全和信任問題。隨着計算機網絡進入新的階段,分佈式存儲文件系統的技術要求將更高,同時要在開發難度和易用性做出平衡,在部署上要取得更好的成本優勢。基於區塊鏈技術的分佈式文件系統(如IPFS/Filecoin/IPSE/Sia)提供了透明可信任的網絡,展示了不同的數據形態。但是,這些網絡在大規模商用上還處於探索和初步實踐階段。

 

 

 

 

 

參考資料

 

[1]HDFS介紹

 

https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html

 

[2]《GFS谷歌文件系統論文(2003)》

 

https://ai.google/research/pubs/pub51

 

[3]Colossus - Google Cloud

 

https://cloud.google.com/files/storage_architecture_and_challenges.pdf

 

[4]Denis Serenyi《Cluster-Level Storage at Google,How we use Colossus to improve storage efficiency?》

 

http://www.pdsw.org/pdsw-discs17/slides/PDSW-DISCS-Google-Keynote.pdf

 

[5]《華爲FusionStorage 6.3 技術白皮書》

 

[6]FusionStorage 8.0.0 產品描述

 

https://e.huawei.com/cn/products/cloud-computing-dc/storage/cloud-storage/fusionstorage#specification

 

[7]iSCSI存儲系統基礎知識

 

https://community.emc.com/docs/DOC-33815

 

[8]GPFS 4.1.0.4-Advanced Administration Guide

 

https://www-01.ibm.com/support/docview.wss?uid=pub1ga76044201

 

IBM Spectrum Scale 5.0.0: Administration Guide

 

https://www.ibm.com/support/knowledgecenter/STXKQY_5.0.0/com.ibm.spectrum.scale.v5r00.doc/pdf/scale_adm.pdf

 

[9]Implementing the IBM General Parallel File System (GPFS) in a Cross-Platform Environment

 

[11]Google: Storage Architecture and Challenges

 

[12]《IBM紅皮書:IBM Spectrum Scale (formerly GPFS) 》

 

http://www.redbooks.ibm.com/redbooks/pdfs/sg248254.pdf

 

[13]IPFS星際文件系統

 

https://ipfs.io/

 

[14]IPSE技術黃皮書

 

https://ipfssearch.io/

 

[15]Sia白皮書

 

https://sia.tech/sia.pdf

 

[16]Filecoin白皮書

 

https://filecoin.io/filecoin.pdf

 

[17]Filecoin路線圖

 

https://docs.google.com/document/d/1cgss-rifFO2iSJgnMmOsD_tPal40MUp1m7crTFQuVYQ/edit#

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章