做SDS存儲的都知道,現在IPFS挖礦項目很多。雖然西瓜哥平時不太關心區塊鏈的東西,但IPFS挖礦,對存儲的需求很大,因此經常有朋友和我探討關于IPFS存儲的選型問題。今天,我就轉發一篇業界人士寫的文章,供大家參考。
01
什么是 IPFS?
IPFS指星際文件系統(InterPlanetary File System)。IPFS 是一個分布式的Web,點到點超媒體協議。可以讓我們的互聯網速度更快,更加安全,并且更加開放。IPFS協議的目標是取代傳統的互聯網協議HTTP。
02
IPFS 對存儲的要求
IPFS 引入 Filecoin 作為存儲之上激勵層,也就是 Filecoin 礦工存儲數據的同時,會得到一部分 Fil 虛擬幣收益。Filecoin 與其他區塊鏈項目有相似之處但也有不同,不同點主要體現在以下幾個方面:
1
質押
Filecoin 礦工在進行數據存儲之前,需要提交一定的質押幣,因為涉及到數據的完整性和安全性,所以官方對參與者設置了一定的門檻。如果出現錯誤,如存儲系統無法訪問,或數據丟失等情況,則可能不僅拿不到收益,還會把質押的 Fil 幣全部扣除。
2
時空證明
與其他區塊鏈項目不同的是,Filecoin 使用 PoSt(時空證明)作為共識算法。顧名思義,時空證明主要目的是證明數據在一段時間內占用存儲系統的一部分空間。
時空證明的生成過程中,需要訪問底層存儲系統,所以存儲系統的性能和穩定性就跟時空證明的正確性密切相關。如果 IPFS/Filecoin 參與者可以遵照規則提供穩定的時空證明,則參與者所獲得收益也會隨著存儲數據量的增加而水漲船高。
3
懲罰機制
Filecoin 的懲罰機制比較復雜,同時也很嚴格,如果頻繁出現失誤,那就得不償失了。跟存儲相關的懲罰主要有下面幾種:
A、時空證明出錯
時空證明出錯包括很多種情況,常見的如已封裝的數據丟失或數據出錯,會導致時空證明出錯。而出錯將會導致罰幣。
B、未提交時空證明
如果 Filecoin 礦工不僅沒有在一個證明周期內提交證明,而且延遲的時間甚至超過了生成攻擊閾值,則會被系統認為證明沒有提交。
C、違背合作
如果由于存儲服務不可用,或存儲系統故障導致礦工未能按照合約在規定時間內完整且安全的存儲用戶數據,則用戶可以馬上報告給主網。在確認情況屬實后,將會對礦工進行處罰,扣除礦工的質押幣和其后的挖礦收益。
03
IPFS后端存儲選擇
通過上面分析可以看出,IPFS 對數據存儲的安全性和完整性具有非常高的要求,所以怎么選擇存儲,就變得非常重要。我們主要從三個維度來談 IPFS 對存儲方案的選擇。
對于傳統 NAS 來說,元數據和數據使用本地存儲,無法擴展,不具備高可用,同時受限于存儲空間和性能,實際可保存的文件數有限,一般小于1億,存儲空間也為 TB 級別。分布式存儲系統中,數據采用分布式架構,可擴展,具備高可用;一般情況下單命名空間中,文件數可支持百億,容量也支持百 PB 到 EB 級別。
在 IPFS 場景中,傳統 NAS 會有一定的用武之地,但分布式存儲一定是趨勢。分布式系統帶來的高可用和容錯,是非常契合 IPFS 底層存儲需求的。
開源方案 or 企業級存儲
對于 IPFS 場景,動輒幾十 PB 上百 PB 的存儲集群部署已經是常態了,在這種情況下如何保證大規模存儲集群的數據安全和長期穩定運行就是 Filecoin 參與者們要思考的問題了。
隨著數據量的持續不斷增加,只有保證存儲系統可以穩定提供服務的前提下,才可能做到收益最大化。開源方案短期內可能成本較低,但如果由于大規模下運維能力不足,對核心 IO 邏輯或者一些數據安全特性理解不透徹,則可能造成投資血本無歸。所以長期來看,選擇企業級存儲方案是更優的選擇。
對象存儲 or 文件系統
IPFS 的底層存儲類型選擇上,目前市場主要有兩種聲音:文件系統 & 對象存儲。
文件系統是以目錄樹的結構進行組織,以文件為單位進行存儲的。對象存儲則主要是以扁平化的結構進行組織,所有對象都平鋪在存儲桶中,與文件系統一個明顯的不同是對象存儲的接口協議是 S3(事實標準),而非 POSIX、NFS 等標準文件系統的訪問方式,這也導致大部分場景無法做到直接適配。
對于 IPFS 場景來說,選擇存儲類型應該從以下幾個方面來考慮:
1、數據規模:Filecoin 本身主要存儲 32GB 大文件,所以需要存儲文件的數量非常少,對象存儲的海量小文件優勢沒法發揮;
2、存儲結構:Filecoin 目錄結構簡單,實際只有1~2層目錄,對于文件系統來說基本上是扁平的存儲結構,對象存儲同樣沒有什么優勢;
3、應用對接:Filecoin 原生使用文件系統接口訪問底層存儲,如果使用文件存儲可以做到無縫對接。如果使用對象存儲,則需要進行 Filecoin 應用代碼改造。這種情況下除了存儲產品,存儲廠商還需要提供持續的 Filecoin 社區的跟進服務,無論是應用改造還是社區跟進,都需要投入大量的人力成本,這部分成本最終將轉嫁到整體方案成本中。
針對對象存儲應用改造的部分,大致分為2塊:
1、對象存儲driver,這部分是指基于S3 SDK封裝的對象存儲客戶端,以及用S3 API 模擬合并讀等接口。
2,Filecoin 代碼改造,這部分主要是指改lotus 相關代碼庫,以讓lotus 支持新的對象存儲driver,包括合并讀等接口。
實際上 Filecoin 是一個非常典型的文件存儲場景,并且仍然屬于早期項目。項目本身還存在一些BUG和不穩定,在這種情況下選用存儲廠商定制的 Filecoin 版本,并且跟隨社區主線代碼變更,如果碰到問題,無法確定是 Filecoin 問題還是存儲廠商問題。
綜上所述,這里比較建議選擇分布式文件存儲作為IPFS/Filecoin存儲系統。
后記
技術角度,西瓜哥一直覺得對象存儲是大趨勢,可以替換很多分布式文件存儲的場景。但看了這篇文章,我也覺得針對IPFS的挖礦場景,對象存儲的優勢沒有發揮出來,反而分布式文件由于和社區代碼良好的兼容性,無需像對象存儲一樣,緊跟社區代碼不斷升級迭代存儲訪問接口,穩定性和可運維性更佳。
責任編輯:xj
原文標題:為什么說IPFS挖礦應該選擇分布式文件而不是對象存儲?
文章出處:【微信公眾號:高端存儲知識】歡迎添加關注!文章轉載請注明出處。
-
分布式
+關注
關注
1文章
904瀏覽量
74554 -
對象存儲
+關注
關注
0文章
68瀏覽量
11986 -
挖礦
+關注
關注
6文章
448瀏覽量
16081
原文標題:為什么說IPFS挖礦應該選擇分布式文件而不是對象存儲?
文章出處:【微信號:High-end_Storage,微信公眾號:高端存儲知識】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論