什么樣的商業(yè)存儲(chǔ)產(chǎn)品才能更適用區(qū)塊鏈存儲(chǔ)的應(yīng)用?首先我們區(qū)先要分存儲(chǔ)系統(tǒng)。市場(chǎng)上的存儲(chǔ)系統(tǒng)有多種分類(lèi)方法,常見(jiàn)的分類(lèi)方式是按照架構(gòu)和協(xié)議區(qū)分的。
從架構(gòu)上分為Scale-up(縱向擴(kuò)展)集中式和Scale-out(橫向擴(kuò)展)分布式兩類(lèi)。Scale-up架構(gòu)受存儲(chǔ)控制器擴(kuò)展數(shù)量限制,常見(jiàn)的多為2控或4控的產(chǎn)品,其IO性能及磁盤(pán)擴(kuò)展能力受限于控制器的數(shù)量。Scale-up架構(gòu)的混閃和全閃存磁盤(pán)陣列,適用于對(duì)延遲較敏感但對(duì)存儲(chǔ)容量和并發(fā)帶寬要求一般的中小規(guī)模數(shù)據(jù)存儲(chǔ)場(chǎng)景。相反,Scale-out架構(gòu)存儲(chǔ)利用通用的以太網(wǎng)或高性能IB網(wǎng)絡(luò)技術(shù),存儲(chǔ)節(jié)點(diǎn)(控制器)的數(shù)量可以從幾十個(gè)擴(kuò)展到幾百甚至幾千個(gè),其存儲(chǔ)性能和容量并不取決于單個(gè)存儲(chǔ)節(jié)點(diǎn)的能力,而是聚合集群中所有節(jié)點(diǎn)的資源。 分布式存儲(chǔ)系統(tǒng)就是Scale-Out架構(gòu)最典型的產(chǎn)品形態(tài)。
存儲(chǔ)系統(tǒng)從協(xié)議上可分為塊、文件、對(duì)象等幾種類(lèi)型。塊存儲(chǔ)為上層應(yīng)用提供卷級(jí)裸設(shè)備存儲(chǔ)空間,存儲(chǔ)資源具有獨(dú)享性,延遲較低、單個(gè)卷的存儲(chǔ)空間一般不超過(guò)幾十個(gè)TB,適用于數(shù)據(jù)庫(kù)、虛擬化等典型應(yīng)用場(chǎng)景;文件存儲(chǔ)為上層應(yīng)用提供目錄級(jí)共享存儲(chǔ)空間,取決于不同的文件系統(tǒng),單個(gè)目錄的空間大小可從TB到PB甚至EB級(jí),適用于各類(lèi)非結(jié)構(gòu)化數(shù)據(jù)應(yīng)用場(chǎng)景;與文件系統(tǒng)類(lèi)似,對(duì)象存儲(chǔ)同樣為上層應(yīng)用提供共享的存儲(chǔ)空間,用于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)應(yīng)用場(chǎng)景。
所以適合海量非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)系統(tǒng)包括分布式文件和分布式對(duì)象兩類(lèi),但兩者在數(shù)據(jù)組織結(jié)構(gòu)和訪問(wèn)協(xié)議等方面存在顯著差異。由于海量非結(jié)構(gòu)化數(shù)據(jù)應(yīng)用場(chǎng)景非常多,對(duì)存儲(chǔ)系統(tǒng)的要求不同,具體選用哪種類(lèi)型的存儲(chǔ),還需要對(duì)分布式文件和對(duì)象進(jìn)行更詳細(xì)的分析和對(duì)比。
成熟的分布式存儲(chǔ)系統(tǒng)會(huì)隨著業(yè)務(wù)場(chǎng)景的發(fā)展而不斷完善。從起源上來(lái)看,分布式文件和對(duì)象都是隨著大型互聯(lián)網(wǎng)公司業(yè)務(wù)的快速擴(kuò)張同步發(fā)展起來(lái)的,旨在解決其海量非結(jié)構(gòu)化數(shù)據(jù)所帶來(lái)的擴(kuò)展性、可靠性和成本等瓶頸。
分布式文件系統(tǒng)的起源是Google于2003年發(fā)表的一篇論文《The Google File System》,其核心目標(biāo)是設(shè)計(jì)一款具有高擴(kuò)展能力和容錯(cuò)能力的高性能文件系統(tǒng)。該系統(tǒng)可以運(yùn)行在廉價(jià)的商用硬件上,為前端大量客戶(hù)端提供高性能、高可用的文件共享服務(wù),解決海量非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)問(wèn)題。
業(yè)界是這樣定義分布式文件系統(tǒng):基于一個(gè)單一并行文件系統(tǒng)組合多個(gè)存儲(chǔ)節(jié)點(diǎn)為存儲(chǔ)集群,為多個(gè)客戶(hù)端的并發(fā)高帶寬數(shù)據(jù)訪問(wèn)提供單一命名空間存儲(chǔ)池。數(shù)據(jù)分散存儲(chǔ)到集群中的多個(gè)節(jié)點(diǎn)上,基于數(shù)據(jù)自愈技術(shù)為客戶(hù)端應(yīng)用提供高可靠和高可用的數(shù)據(jù)服務(wù),并可實(shí)現(xiàn)性能和容量的線(xiàn)性擴(kuò)展。
分布式文件系統(tǒng)具有如下幾個(gè)顯著特性:
1、 高性能
分布式文件系統(tǒng)利用存儲(chǔ)集群中所有節(jié)點(diǎn)的處理和IO性能提供高帶寬并發(fā)數(shù)據(jù)訪問(wèn),成熟的商業(yè)產(chǎn)品聚合訪問(wèn)帶寬高達(dá)TB級(jí),可以支持?jǐn)?shù)千甚至數(shù)萬(wàn)節(jié)點(diǎn)的并發(fā)訪問(wèn)。
2、 易擴(kuò)展
分布式文件系統(tǒng)可以便捷地在集群中添加數(shù)據(jù)節(jié)點(diǎn),實(shí)現(xiàn)存儲(chǔ)系統(tǒng)性能和容量的線(xiàn)性增加,存儲(chǔ)節(jié)點(diǎn)可以擴(kuò)展至數(shù)百甚至數(shù)千個(gè),存儲(chǔ)容量擴(kuò)展至數(shù)百PB甚至EB級(jí)。
3、 高可靠、可用性
存儲(chǔ)系統(tǒng)不依賴(lài)于單個(gè)設(shè)備的可靠性,采用集群架構(gòu),確保系統(tǒng)中無(wú)單點(diǎn)故障;同時(shí)支持副本以及N+M糾刪碼等數(shù)據(jù)保護(hù)技術(shù),確保數(shù)據(jù)可用性;存儲(chǔ)系統(tǒng)具有一定的硬件故障與數(shù)據(jù)故障的冗余自愈能力。
4、 高性?xún)r(jià)比
存儲(chǔ)節(jié)點(diǎn)基于工業(yè)標(biāo)準(zhǔn)商用服務(wù)器,硬件的成本大幅降低。
5、 開(kāi)放兼容性
提供NAS、FTP、HTTP等通用文件共享訪問(wèn)協(xié)議。
分布式對(duì)象存儲(chǔ)系統(tǒng)定義如下:以對(duì)象結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù)的存儲(chǔ)系統(tǒng),前端服務(wù)器客戶(hù)端通過(guò)協(xié)議(例如HTTP)或者API接口(例如S3、Swift)進(jìn)行訪問(wèn)。從概念上來(lái)說(shuō),對(duì)象與文件一樣,都包括內(nèi)容和元數(shù)據(jù)。與文件相比,對(duì)象通常支持更豐富的元數(shù)據(jù),用戶(hù)或應(yīng)用可為對(duì)象設(shè)置用于管理、數(shù)據(jù)挖掘和數(shù)據(jù)遷移的元數(shù)據(jù)屬性。
與分布式文件一樣,分布式對(duì)象同樣采用Scale-out分布式集群架構(gòu),具有易擴(kuò)展、高可靠和高性?xún)r(jià)比等優(yōu)勢(shì),其與文件系統(tǒng)在使用上的不同主要體現(xiàn)在如下幾個(gè)方面:
1、支持的存儲(chǔ)訪問(wèn)協(xié)議不同
分布式對(duì)象采用更加專(zhuān)用的協(xié)議(比如HTTP)或者API接口(例如S3或是Swift)進(jìn)行訪問(wèn),相比通用的NAS文件協(xié)議,需要前端應(yīng)用做針對(duì)性的適配和接口定制開(kāi)發(fā)。
2、支持的數(shù)據(jù)讀寫(xiě)模式不同
與文件系統(tǒng)不同,分布式對(duì)象不支持?jǐn)?shù)據(jù)的隨機(jī)讀取和寫(xiě)入,僅可針對(duì)整個(gè)文件做put或是get操作,這種模式基本把分布式對(duì)象限定在有限的數(shù)據(jù)寫(xiě)入后,有限的讀取、極少修改的應(yīng)用場(chǎng)景,例如互聯(lián)網(wǎng)的云盤(pán)、備份歸檔以及法規(guī)遵從等溫冷數(shù)據(jù)應(yīng)用場(chǎng)景。
3、數(shù)據(jù)結(jié)構(gòu)不同
文件采用樹(shù)形目錄結(jié)構(gòu),可以滿(mǎn)足應(yīng)用多級(jí)目錄嵌套使用模式,但是隨著嵌套層次和文件數(shù)量的增加,讀取和存儲(chǔ)數(shù)據(jù)時(shí)需要更長(zhǎng)訪問(wèn)路徑,當(dāng)訪問(wèn)的文件過(guò)小時(shí),單個(gè)文件訪問(wèn)性能受影響較大。
對(duì)象采用扁平目錄結(jié)構(gòu),不支持多層嵌套的數(shù)據(jù)組織結(jié)構(gòu),只保留二級(jí)或是三級(jí)目錄結(jié)構(gòu),只需要一個(gè)ID就能直接獲取對(duì)象,這種數(shù)據(jù)結(jié)構(gòu)在千億級(jí)別海量小文件應(yīng)用場(chǎng)景中會(huì)體現(xiàn)出一定的性能優(yōu)勢(shì)。
另外,對(duì)象目錄結(jié)構(gòu)更容易支持元數(shù)據(jù)定制,對(duì)象存儲(chǔ)非常適合于與對(duì)象有關(guān)聯(lián)性元數(shù)據(jù)的應(yīng)用場(chǎng)景,對(duì)象存儲(chǔ)允許為一個(gè)對(duì)象設(shè)置唯一的元數(shù)據(jù)屬性,基于該元數(shù)據(jù)信息,可以從一個(gè)海量非結(jié)構(gòu)化數(shù)據(jù)卷中快速的定位與讀取該對(duì)象。
技術(shù)的發(fā)展并不是互相割裂、一成不變的,而是在相互借鑒中共同促進(jìn)和發(fā)展。在分布式對(duì)象中應(yīng)用比較廣的N+M糾刪碼技術(shù)已成為分布式文件系統(tǒng)的標(biāo)配,跨地域部署和數(shù)據(jù)容災(zāi)等功能也被越來(lái)越多成熟的分布式文件系統(tǒng)所支持。分布式文件系統(tǒng)利用高速SSD存儲(chǔ)介質(zhì)、元數(shù)據(jù)集群和小文件聚合等技術(shù),支持的文件系統(tǒng)規(guī)模從十億級(jí)向千億級(jí)邁進(jìn),小文件訪問(wèn)性能提升明顯;分布式對(duì)象也在利用高速SSD存儲(chǔ)介質(zhì),進(jìn)一步提升數(shù)據(jù)讀取性能,從冷數(shù)據(jù)逐步向溫、熱數(shù)據(jù)應(yīng)用場(chǎng)景推進(jìn)。
分布式文件和對(duì)象的技術(shù)差異在逐步縮小。分布式文件由于其支持隨機(jī)讀寫(xiě)模式、協(xié)議的廣泛兼容性、類(lèi)似本地硬盤(pán)的展現(xiàn)形式更符合用戶(hù)的使用習(xí)慣,在商業(yè)市場(chǎng)下有著普及性和大規(guī)模的應(yīng)用案例,應(yīng)用成熟度非常高。開(kāi)源文件系統(tǒng)有Lustre、Gluster、BeeGFS和Ceph等,國(guó)內(nèi)外專(zhuān)業(yè)存儲(chǔ)廠商均開(kāi)發(fā)了成熟的商用存儲(chǔ)產(chǎn)品。分布式對(duì)象受限于一寫(xiě)多讀數(shù)據(jù)訪問(wèn)模式、專(zhuān)用的接口協(xié)議、扁平化的數(shù)據(jù)組織架構(gòu),其適用的應(yīng)用場(chǎng)景遠(yuǎn)不如文件系統(tǒng)廣泛。規(guī)模化的應(yīng)用僅集中在有能力深度定制優(yōu)化和開(kāi)發(fā)的有限互聯(lián)網(wǎng)場(chǎng)景中,比如Facebook自研的用于海量圖片存儲(chǔ)的HeyStack、Amazon研制的支撐其云業(yè)務(wù)的S3等。從技術(shù)實(shí)現(xiàn)層面而言,分布式對(duì)象的實(shí)現(xiàn)難度較低,開(kāi)源產(chǎn)品有Ceph、Swift、Minio等,主要應(yīng)用場(chǎng)景歸納如下:1、結(jié)合云應(yīng)用提供業(yè)務(wù)數(shù)據(jù)的備份歸檔存儲(chǔ);2、金融證券、醫(yī)療等行業(yè)應(yīng)用的法規(guī)遵從性文件的歸檔。另外商用的對(duì)象存儲(chǔ)應(yīng)用多以小規(guī)模、冷數(shù)據(jù)等限制性場(chǎng)景為主,對(duì)于數(shù)據(jù)寫(xiě)入和讀取的實(shí)時(shí)效率要求并不高。
去中心化存儲(chǔ)系統(tǒng)的“成色”由存儲(chǔ)規(guī)模、數(shù)據(jù)IO性能、可靠性、在線(xiàn)擴(kuò)容時(shí)間、數(shù)據(jù)重建影響等幾個(gè)要素直接決定,具備大規(guī)模部署案例的分布式存儲(chǔ)產(chǎn)品才能夠經(jīng)得起此類(lèi)應(yīng)用長(zhǎng)期的考驗(yàn)。
從區(qū)塊鏈IPFS實(shí)際應(yīng)用的技術(shù)需求來(lái)看:1、采用分布式對(duì)象存儲(chǔ)意味著應(yīng)用需要根據(jù)存儲(chǔ)廠商對(duì)象接口API或SDK單獨(dú)開(kāi)發(fā)與維護(hù)。當(dāng)前去中心化存儲(chǔ)應(yīng)用中,上層軟件多樣且迭代速度較快,已有軟件環(huán)境也存在著頻繁強(qiáng)制升級(jí)的現(xiàn)狀,任何上層軟件的變更都可能導(dǎo)致對(duì)象接口的迭代完善甚至重新開(kāi)發(fā),工作量巨大,運(yùn)維成本急劇增加。2、行業(yè)內(nèi)大部分分布式對(duì)象系統(tǒng)是基于開(kāi)源Ceph構(gòu)建,以Ceph為代表的對(duì)象存儲(chǔ)系統(tǒng)一般僅支持基于連接數(shù)的負(fù)載均衡策略,而商業(yè)全自研的文件系統(tǒng)可支持基于連接數(shù)、存儲(chǔ)容量、節(jié)點(diǎn)負(fù)載等多維度的存儲(chǔ)負(fù)載均衡,在多并發(fā)、存儲(chǔ)性能異常時(shí),可根據(jù)實(shí)際場(chǎng)景選擇更優(yōu)的負(fù)載均衡模式,以提升存儲(chǔ)效率。3、實(shí)際應(yīng)用中1個(gè)扇區(qū)(Sector)文件大小是32GB。對(duì)象存儲(chǔ)單次put上傳的對(duì)象最大為5GB,對(duì)于32GB文件,對(duì)象存儲(chǔ)系統(tǒng)必須在客戶(hù)端上拆分成多段(如4個(gè)單獨(dú)8GB)后,再進(jìn)行并發(fā)傳輸;多個(gè)分段上傳至存儲(chǔ)系統(tǒng)后,再次合并成最終的Sector。多個(gè)Sector合并過(guò)程勢(shì)必會(huì)對(duì)存儲(chǔ)性能和數(shù)據(jù)抽取時(shí)間有較大影響,直接會(huì)影響Winning PoST完成時(shí)間,從而降低出塊效率。4、扇區(qū)文件(Sector)和扇區(qū)索引文件(Sector Cache)存在關(guān)聯(lián)性,若采用優(yōu)化手段增強(qiáng)其關(guān)聯(lián)性,則會(huì)極大提升存儲(chǔ)性能。對(duì)象存儲(chǔ)需要多個(gè)桶分別存儲(chǔ)扇區(qū)文件和扇區(qū)索引文件,一般需要通過(guò)人為設(shè)置桶的屬性及大量桶之間的關(guān)聯(lián)綁定。業(yè)務(wù)數(shù)據(jù)量增長(zhǎng)迅速,額外的設(shè)置與調(diào)整,同樣給業(yè)務(wù)運(yùn)行及系統(tǒng)運(yùn)維造成極大影響,這在實(shí)際應(yīng)用中也是很難完成的。
綜上分析,基于應(yīng)用當(dāng)前需求和特點(diǎn),F(xiàn)ilecoin的存儲(chǔ)系統(tǒng)更適合采用成熟的分布式文件系統(tǒng)構(gòu)建。另外,同時(shí)支持文件、對(duì)象、塊協(xié)議的分布式統(tǒng)一存儲(chǔ)將成為發(fā)展趨勢(shì),也為去中心化存儲(chǔ)未來(lái)的多模式應(yīng)用提供了技術(shù)可行性。
最后,筆者認(rèn)為在選擇合作的存儲(chǔ)廠商時(shí),首先,應(yīng)關(guān)注其是否有專(zhuān)業(yè)的存儲(chǔ)研發(fā)團(tuán)隊(duì)和完善的技術(shù)服務(wù)體系;其次,應(yīng)具備超大規(guī)模系統(tǒng)部署和運(yùn)維經(jīng)驗(yàn)、快速應(yīng)用適配定制和深度優(yōu)化實(shí)力;最后,有著長(zhǎng)遠(yuǎn)的分布式存儲(chǔ)產(chǎn)品發(fā)展規(guī)劃和資源投入。這樣的存儲(chǔ)廠商才能幫助用戶(hù)搭建長(zhǎng)期可靠的數(shù)據(jù)存儲(chǔ)環(huán)境,支持去中心化存儲(chǔ)市場(chǎng)和應(yīng)用的快速發(fā)展與普及。



注冊(cè) /






