IDC于2021年6月發(fā)布了《中國(guó)大數(shù)據(jù)平臺(tái)市場(chǎng)研究報(bào)告-2020》,報(bào)告顯示:2020年全球大數(shù)據(jù)軟件市場(chǎng)規(guī)模達(dá)4,813.6億元人民幣,微軟、Oracle、SAP作為T(mén)op3的廠商貢獻(xiàn)了30%以上的市場(chǎng)份額;中國(guó)市場(chǎng),包括硬軟服在內(nèi)的中國(guó)大數(shù)據(jù)市場(chǎng)規(guī)模達(dá)677.3億元人民幣。
Hadoop 免費(fèi)午餐結(jié)束,用戶(hù)如何選擇?
2018 年,Cloudera 和 Hortonworks 合并,緊接著 HPE(慧與)宣布收購(gòu) MapR,這些跡象在說(shuō)明,在 Hadoop 風(fēng)光的表象之下,是企業(yè)經(jīng)營(yíng)困難。
2020年底 Cloudera 宣布,從2021年1月31日開(kāi)始所有產(chǎn)品線(xiàn)全面收費(fèi),包括歷史的開(kāi)源版本也要付費(fèi)后才能獲取,開(kāi)源的產(chǎn)品不再面向全部用戶(hù),而是僅僅針對(duì)付費(fèi)用戶(hù)。過(guò)去一直被大家免費(fèi)使用的 HDP 發(fā)行版,也不再維護(hù)和提供下載了,未來(lái)都合并到統(tǒng)一的 CDP 平臺(tái)。
Apache Hadoop 可以免費(fèi)使用,但是開(kāi)源軟件沒(méi)有服務(wù),也沒(méi)有 SLA 保證,出了問(wèn)題只能自己去研究和解決,有問(wèn)題發(fā)到社區(qū),然后慢慢等結(jié)果,同時(shí)市場(chǎng)上的 Hadoop 開(kāi)發(fā)或運(yùn)維工程師價(jià)格也是不菲的;
計(jì)算上面的替代品比較多,但是存儲(chǔ)沒(méi)有(計(jì)算可以自己做,但存儲(chǔ)很難自己做)
二、引入商業(yè)存儲(chǔ),存算分離是必然趨勢(shì)
存算分離優(yōu)勢(shì)
邏輯單元分開(kāi)擴(kuò)容:通過(guò)計(jì)算和存儲(chǔ)的分離部署實(shí)現(xiàn)計(jì)算和存儲(chǔ)的隔離,根據(jù)業(yè)務(wù)負(fù)載需求,對(duì)計(jì)算/存儲(chǔ)按需擴(kuò)容。
大數(shù)據(jù)能力云化:計(jì)算分離之后,可將其遷移到K8S或其他的云上面,使得計(jì)算更輕量化。
多數(shù)據(jù)平臺(tái)整合:底層提供統(tǒng)一的存儲(chǔ)給到不同的大數(shù)據(jù)平臺(tái),實(shí)現(xiàn)多個(gè)大數(shù)據(jù)平臺(tái)數(shù)據(jù)的整合,加速流程,逐步構(gòu)建企業(yè)內(nèi)部數(shù)據(jù)湖。
獲得最佳存儲(chǔ)體驗(yàn):導(dǎo)入云存儲(chǔ)集群中的HDFS(將原生HDFS替換成商業(yè)存儲(chǔ))具備了企業(yè)級(jí)別存儲(chǔ)特性,實(shí)現(xiàn)最佳TCO(Total Cost of Ownership ),即總擁有成本,包括產(chǎn)品采購(gòu)到后期使用、維護(hù)的成本。
實(shí)現(xiàn)大數(shù)據(jù)的容災(zāi)備份:大數(shù)據(jù)一般數(shù)據(jù)量比較大,傳統(tǒng)的容災(zāi)備份都很難做。存算分離后,可以利用專(zhuān)業(yè)企業(yè)存儲(chǔ)的容災(zāi)備份能力,如快照,復(fù)制等實(shí)現(xiàn)大數(shù)據(jù)業(yè)務(wù)的數(shù)據(jù)保護(hù)。
當(dāng)前存算分離實(shí)現(xiàn)方案
客戶(hù)端模式
HCFS(Hadoop Compatible FileSystem),即Hadoop兼容文件協(xié)議。以無(wú)服務(wù)的依賴(lài)庫(kù)形式,可以被應(yīng)用所依賴(lài),目前大多主流云廠商和部分商業(yè)存儲(chǔ)廠商都以通過(guò) HCFS 方式實(shí)現(xiàn)對(duì) HDFS 協(xié)議的支持。該方案需要在計(jì)算端安裝專(zhuān)用的客戶(hù)端并修改hadoop組件配置項(xiàng),應(yīng)用端零改造。
服務(wù)端模式
實(shí)現(xiàn)存算分離的另一種方式則是服務(wù)端模式,即通過(guò)在存儲(chǔ)端實(shí)現(xiàn)HDFS 的 NameNode 和 DataNode 服務(wù)接口,使計(jì)算節(jié)點(diǎn)通過(guò)原生 HDFS 客戶(hù)端即可訪問(wèn)存儲(chǔ)系統(tǒng)。服務(wù)端模式無(wú)需在計(jì)算節(jié)點(diǎn)上安裝私有客戶(hù)端,以低耦合的方式交互。
三、XSKY 基于分布式文件的大數(shù)據(jù)方案
原生 HDFS 大數(shù)據(jù)方案
方案介紹
上圖為XSKY XGFS 大數(shù)據(jù)存算分離方案架構(gòu)圖,XSKY XGFS 在大數(shù)據(jù)存算分離方案中主要提供基于原生 HDFS 協(xié)議的 HDFS 網(wǎng)關(guān)能力以及元數(shù)據(jù)管理和數(shù)據(jù)管理能力,XGFS 在 HDFS 網(wǎng)關(guān)中模擬 HDFS 的NameNode和DataNode角色,可收發(fā)原生 HDFS 協(xié)議的請(qǐng)求,亦可直接訪問(wèn) XGFS 元數(shù)據(jù)與數(shù)據(jù)。同時(shí)可無(wú)縫對(duì)接大數(shù)據(jù)計(jì)算層各個(gè)組件。
XGFS HDFS 網(wǎng)關(guān)是模擬 NameNode 和 DataNode 角色,所以不會(huì)直接存儲(chǔ)元數(shù)據(jù)和數(shù)據(jù),所有元數(shù)據(jù)和數(shù)據(jù)將分別存儲(chǔ)在 XGFS 的元數(shù)據(jù)集群和數(shù)據(jù)集群中。
通過(guò)XSKY XGFS 大數(shù)據(jù)存算分離方案,可以解決 HDFS 所面臨的以下挑戰(zhàn):
1、通過(guò) XGFS 的協(xié)議兼容性以及對(duì) XGFS 本身的用戶(hù)和用戶(hù)組權(quán)限控制的兼容性,解決 HDFS 存算綁定的問(wèn)題。XGFS 可直接兼容原生 HDFS 協(xié)議,且 XGFS 用戶(hù)和用戶(hù)組權(quán)限控制與 HDFS 的權(quán)限控制機(jī)制相近,利用這兩大兼容特性,實(shí)現(xiàn)和大數(shù)據(jù)計(jì)算層的無(wú)縫對(duì)接;
2、XGFS 支持 NFS、SMB/CIFS、POSIX、FTP、HDFS、CSI、S3 等協(xié)議互通,具備多協(xié)議融合互通特性,可以很好的解決應(yīng)用跨多存儲(chǔ)協(xié)議數(shù)據(jù)拷貝問(wèn)題;
3、通過(guò)成熟穩(wěn)定的數(shù)據(jù) EC 糾刪碼存儲(chǔ)機(jī)制,解決 HDFS 3.x EC 不可商用的問(wèn)題,同時(shí)也降低了數(shù)據(jù)存儲(chǔ)成本;
4、XGFS 從元數(shù)據(jù)落盤(pán)、統(tǒng)一命名空間、整池?cái)U(kuò)容、在線(xiàn)設(shè)定存儲(chǔ)池角色和無(wú)狀態(tài)的分布式網(wǎng)關(guān)等方面,加強(qiáng)了存儲(chǔ)的彈性擴(kuò)展,可以解決長(zhǎng)期困擾 HDFS 的擴(kuò)展性弱的問(wèn)題;
5、XGFS 作為一款企業(yè)級(jí)分布式文件存儲(chǔ)系統(tǒng),提供專(zhuān)業(yè)的運(yùn)維 Portal 和運(yùn)維接口,具備極簡(jiǎn)運(yùn)維特性,可解決 HDFS 運(yùn)維困難的問(wèn)題;
6、XGFS 作為企業(yè)級(jí)專(zhuān)業(yè)存儲(chǔ),將提供完備的數(shù)據(jù)容災(zāi)備份方案,解決客戶(hù)大數(shù)據(jù)的運(yùn)維及災(zāi)備方面的問(wèn)題。
下面我們將對(duì)上面提到的特性逐個(gè)進(jìn)行詳細(xì)介紹:
方案優(yōu)勢(shì)
◆協(xié)議兼容性–原生 HDFS 協(xié)議
如圖上所示,XGFS 包含了 HDFS GW(即 HDFS 分布式網(wǎng)關(guān),簡(jiǎn)稱(chēng)為 HDFS 網(wǎng)關(guān))以及元數(shù)據(jù)管理集群和數(shù)據(jù)管理集群三大模塊,XGFS 在 HDFS 網(wǎng)關(guān)模塊模擬了 HDFS 中的 NameNode 和 DataNode 兩個(gè)角色,由 NameNode 和 DataNode 將對(duì)外提供原生 HDFS API,并負(fù)責(zé)接發(fā)、轉(zhuǎn)送客戶(hù)端發(fā)過(guò)來(lái)的數(shù)據(jù)讀寫(xiě)請(qǐng)求。元數(shù)據(jù)和數(shù)據(jù)不會(huì)保存在 NameNode 和 DataNode 角色中,而是分別存儲(chǔ)于 XGFS 的元數(shù)據(jù)管理集群和數(shù)據(jù)管理集群。
通過(guò)在 HDFS 網(wǎng)關(guān)中模擬 NameNode 和 DataNode,客戶(hù)端可通過(guò)原生 HDFS 協(xié)議直接訪問(wèn)HDFS GW,可帶來(lái)如下價(jià)值:
1、通過(guò) XGFS 提供的原生 HDFS 協(xié)議能力,可對(duì)接市場(chǎng)上常見(jiàn)的大數(shù)據(jù)平臺(tái);
2、除了支持常用的接口外,還支持 append、rename、hflush、flush、concat、setfacl、setxattr;
3、在 XGFS 和計(jì)算層對(duì)接時(shí),無(wú)需在計(jì)算層安裝任何專(zhuān)用客戶(hù)端。在大數(shù)據(jù)平臺(tái)配置中心設(shè)置 XGFS 大數(shù)據(jù)網(wǎng)關(guān)的相關(guān)配置后,計(jì)算層程序零改造,可直接通過(guò)配置找到 XGFS 網(wǎng)關(guān)。
◆用戶(hù)和用戶(hù)組權(quán)限兼容性
HDFS 實(shí)現(xiàn)了一套兼容 POSIX 的文件權(quán)限模型,包括粗粒度的 POSIX UGO 模型和細(xì)粒度的 POSIX ACLs 協(xié)議,XGFS 文件存儲(chǔ)可很好的兼容 HDFS 權(quán)限控制。
◆多協(xié)議融合互通
XGFS 目前已支持 NFS、SMB/CIFS、POSIX、FTP、HDFS、S3、CSI 等協(xié)議之間互通,同一份文件既可以通過(guò)原生 HDFS 接口訪問(wèn),又可以使用其他文件協(xié)議接口訪問(wèn),無(wú)須協(xié)議間做數(shù)據(jù)拷貝。
要做到文件多協(xié)議之間的互通,首先需要打通用戶(hù)和元數(shù)據(jù)層,也就是統(tǒng)一用戶(hù)、統(tǒng)一命名空間。在 XGFS 界面創(chuàng)建一個(gè)本地用戶(hù)后,可以配置開(kāi)啟 S3 協(xié)議訪問(wèn)權(quán)限,也可將同一文件目錄通過(guò)不同的文件協(xié)議共享出去供不同的上層應(yīng)用訪問(wèn),且每個(gè)協(xié)議均可訪問(wèn)其他協(xié)議上傳的文件。例如在 S3Browser 上可以看到桶 user01bucket 中由 HDFS、CIFS 和 NFS 協(xié)議寫(xiě)入的文件。
同時(shí)用戶(hù)可針對(duì)不同的上層應(yīng)用場(chǎng)景,靈活地選擇適用的文件協(xié)議,例如:
針對(duì)數(shù)據(jù)分析業(yè)務(wù)可以考慮直接采用原生 HDFS 協(xié)議;
針對(duì)海量數(shù)據(jù)分析和 AI 訓(xùn)練業(yè)務(wù),則可考慮通過(guò)私有客戶(hù)端進(jìn)行支持;
通過(guò)自有 CSI Driver 支持金融傳統(tǒng)業(yè)務(wù)容器化轉(zhuǎn)型, 簡(jiǎn)化業(yè)務(wù) IT 架構(gòu)的同時(shí)解除對(duì)業(yè)務(wù)的鎖定。
另外對(duì)于基礎(chǔ)設(shè)施和運(yùn)維團(tuán)隊(duì)來(lái)說(shuō),可以不需要為不同的應(yīng)用維護(hù)各種協(xié)議的存儲(chǔ)系統(tǒng),也不需要在多個(gè)存儲(chǔ)系統(tǒng)中拷貝同一份數(shù)據(jù)。
◆EC 糾刪碼
如上圖所示,EC(Erasure Coding)糾刪碼技術(shù)是將一份數(shù)據(jù)切分成 K 塊原始數(shù)據(jù),基于 K 塊原始數(shù)據(jù)塊中計(jì)算出 M 個(gè)校驗(yàn)塊,并將 K+M 塊數(shù)據(jù)分別存放在存儲(chǔ)系統(tǒng)中的不同存儲(chǔ)節(jié)點(diǎn)上,當(dāng)其中任意 M 塊數(shù)據(jù)出錯(cuò)時(shí),存儲(chǔ)系統(tǒng)可通過(guò)數(shù)據(jù)恢復(fù)算法恢復(fù)出原來(lái)的 K 塊數(shù)據(jù),實(shí)現(xiàn)冗余和容錯(cuò)的目的。
如上圖所示,HDFS3.x EC 糾刪碼目前只支持 2+1、3+2、6+3、10+4 模式,默認(rèn)為 6+3 模式,最高為 10+4 模式,得盤(pán)率 71.43%。而 XGFS EC 糾刪碼的得盤(pán)率最高為 88.89%,且 XGFS 支持精簡(jiǎn)EC,如4+2:1、8+2:1和16+2:1,在資源有限的情況下盡量提高得盤(pán)率,降低成本。
另外 XGFS 支持用戶(hù)自定義 K+M 具體值,方便用戶(hù)根據(jù)資源情況自定義 K+M,使得資源使用最大化。
◆擴(kuò)展性
如上圖所示,相比較于 HDFS,XGFS 具備很強(qiáng)的擴(kuò)展性,主要通過(guò)以下幾個(gè)方面實(shí)現(xiàn):
1、元數(shù)據(jù)落盤(pán):通過(guò) XGFS 大數(shù)據(jù)存算分離方案,文件元數(shù)據(jù)將保存在 XMDS 元數(shù)據(jù)池,元數(shù)據(jù)將直接寫(xiě)入 NVMe/SCM/SATA SSD 盤(pán),不會(huì)產(chǎn)生內(nèi)存空間的瓶頸問(wèn)題。通過(guò)大容量的 NVMe/SCM/SATA SSD 的元數(shù)據(jù)空間,可以輕松保存和處理百億規(guī)模文件;
2、統(tǒng)一命名空間:XGFS 統(tǒng)一命名空間同時(shí)支持多個(gè)存儲(chǔ)池,用戶(hù)添加存儲(chǔ)池時(shí)無(wú)需添加新的命名空間,不會(huì)增加管理負(fù)擔(dān);
3、整池?cái)U(kuò)容:XGFS 支持整池?cái)U(kuò)容,當(dāng)在線(xiàn)添加新的存儲(chǔ)池時(shí),已有存儲(chǔ)池?zé)o需重平衡,不影響在線(xiàn)業(yè)務(wù);
4、在線(xiàn)設(shè)定存儲(chǔ)池角色:XGFS 支持在線(xiàn)設(shè)定存儲(chǔ)池角色:活動(dòng)池和非活動(dòng)池。當(dāng)某一存儲(chǔ)池設(shè)定為非活動(dòng)池后,將不再接受新文件的分配寫(xiě)入,只支持已有文件的數(shù)據(jù)讀、寫(xiě)、刪除操作;
5、無(wú)狀態(tài)網(wǎng)關(guān):XGFS HDFS 網(wǎng)關(guān)提供無(wú)狀態(tài)服務(wù),不保存狀態(tài)數(shù)據(jù),實(shí)例可以水平拓展,通過(guò)負(fù)載均衡將請(qǐng)求分發(fā)到各個(gè)節(jié)點(diǎn)。
通過(guò)以上四個(gè)擴(kuò)展性方面的強(qiáng)化,XGFS可以帶來(lái)以下客戶(hù)價(jià)值:
1、XGFS 通過(guò)元數(shù)據(jù)落盤(pán)解決了HDFS一直以來(lái)因?yàn)?NameNode 元數(shù)據(jù)內(nèi)存瓶頸導(dǎo)致的擴(kuò)展受限的問(wèn)題;
2、相比較于 HDFS 通過(guò) HDFS Federation 聯(lián)邦帶來(lái)的多組 NameNode、多個(gè) NamesSpace 管理運(yùn)維困難問(wèn)題,XGFS 統(tǒng)一命名空間支持多個(gè)存儲(chǔ)池,減少了運(yùn)維管理上的問(wèn)題;
3、存儲(chǔ)資源池存儲(chǔ)空間不足時(shí),可通過(guò)硬件設(shè)備創(chuàng)建一個(gè)新的存儲(chǔ)資源池,并實(shí)現(xiàn)整池?cái)U(kuò)容,用戶(hù)可在不改變業(yè)務(wù)訪問(wèn)路徑的情況下實(shí)現(xiàn)擴(kuò)容,有效避免了類(lèi)似 HDFS 在擴(kuò)容后需要手動(dòng)進(jìn)行數(shù)據(jù)重平衡的問(wèn)題,避免了擴(kuò)容對(duì)在線(xiàn)業(yè)務(wù)性能的沖擊。同時(shí)多存儲(chǔ)池間故障隔離,可以有效應(yīng)對(duì)極端異常時(shí)批量壞盤(pán)場(chǎng)景;
4、客戶(hù)可按需將已有寫(xiě)滿(mǎn)的數(shù)據(jù)池設(shè)置為非活動(dòng)池,作為數(shù)據(jù)長(zhǎng)期存儲(chǔ)使用;
5、XGFS HDFS 分布式網(wǎng)關(guān)都是無(wú)狀態(tài)網(wǎng)關(guān),橫向擴(kuò)展不受限制,可以隨著集群規(guī)模的擴(kuò)展近似線(xiàn)性地提升 IOPS 性能。
◆數(shù)據(jù)災(zāi)備
XGFS 在大數(shù)據(jù)容災(zāi)場(chǎng)景支持同步復(fù)制和異步復(fù)制兩種方式:
同步復(fù)制
可通過(guò)延展集群的方式實(shí)現(xiàn)園區(qū)或同城的數(shù)據(jù)中心級(jí)雙活及數(shù)據(jù)災(zāi)備,實(shí)現(xiàn)RPO=0,數(shù)據(jù)零丟失。延展集群是分布式存儲(chǔ)實(shí)現(xiàn)數(shù)據(jù)跨站點(diǎn)雙活的解決方案。延展集群將存儲(chǔ)集群從單個(gè)站點(diǎn)擴(kuò)展到兩個(gè)站點(diǎn),存儲(chǔ)池中數(shù)據(jù)副本跨站點(diǎn)分布,實(shí)現(xiàn)了更高級(jí)別的可用性。延展集群可以替代傳統(tǒng)共享存儲(chǔ)集群或存儲(chǔ)鏡像集群等解決方案,實(shí)現(xiàn)園區(qū)或同城的數(shù)據(jù)中心級(jí)雙活及災(zāi)難恢復(fù)。很好的解決了HDFS無(wú)原生雙活方案的問(wèn)題,通過(guò)引入HDFS 分布式網(wǎng)關(guān),就能快速的實(shí)現(xiàn)數(shù)據(jù)和業(yè)務(wù)雙活部署的需求。
異步復(fù)制
將多個(gè)XGFS部署在不同的機(jī)房(站點(diǎn)),通過(guò) X3DS 數(shù)據(jù)管理工具,實(shí)現(xiàn)不同站點(diǎn)間的文件數(shù)據(jù)異步復(fù)制,當(dāng)主站點(diǎn)故障后,大數(shù)據(jù)應(yīng)用可切換至備站點(diǎn),從而滿(mǎn)足大數(shù)據(jù)應(yīng)用容災(zāi)備份的需求,提高業(yè)務(wù)可靠性;同時(shí),X3DS 在進(jìn)行數(shù)據(jù)異步復(fù)制的同時(shí),可靈活配置復(fù)制策略及數(shù)據(jù)復(fù)制 QoS 控制,降低業(yè)務(wù)影響。
四、典型場(chǎng)景
與原 HDFS 共存 ——Viewfs
針對(duì)大數(shù)據(jù)體系非常龐大,業(yè)務(wù)使用場(chǎng)景復(fù)雜的用戶(hù),可以使用新舊存儲(chǔ)共存的方案。小規(guī)模高性能實(shí)時(shí)場(chǎng)景仍然使用 HDFS,其他大規(guī)模的數(shù)據(jù)可以存放在 XGFS。因大規(guī)模的數(shù)據(jù)都在 XGFS 中,所以后續(xù)擴(kuò)容主要是針對(duì) XGFS 的擴(kuò)容,可以降低對(duì) HDFS 的依賴(lài),存儲(chǔ)計(jì)算各自按需擴(kuò)容。
新舊存儲(chǔ)共存方案可通過(guò) VIewfs 實(shí)現(xiàn) XGFS 與原 HDFS 的共存。在集群的 core-site 配置中,fs.defaultFS 被設(shè)置為 ViewFS 的 root 目錄,也就是指定的 mount-table。XGFS、HDFS 的掛載目錄則在 mount-tables 中分別指定。
替換原有 HDFS
針對(duì)HDFS替換場(chǎng)景,原 HDFS 數(shù)據(jù)可通過(guò) X3DS 遷移至 XGFS,同時(shí)新產(chǎn)生的數(shù)據(jù)可以直接寫(xiě)入XGFS。且 XGFS 支持對(duì)接多套大數(shù)據(jù)集群,各個(gè)集群無(wú)需進(jìn)行數(shù)據(jù)的復(fù)制遷移,可直接通過(guò)原生 HDFS 協(xié)議讀取同一套 XGFS 中的數(shù)據(jù)。另外 XGFS 5.2 具備全協(xié)議特性,除原生的 HDFS 協(xié)議以外,還可以兼容 NFS/CIFS/FTP/S3 等不同協(xié)議的上層應(yīng)用。
做 HDFS 二級(jí)存儲(chǔ)——同城/異地
針對(duì)用戶(hù)存在大量冷數(shù)據(jù),但是需要隨時(shí)被 HDFS 調(diào)用的場(chǎng)景,可將 XGFS 作為 HDFS 的二級(jí)存儲(chǔ)使用。通過(guò)將大量訪問(wèn)頻率不高的冷數(shù)據(jù)從 HDFS 遷移至 XGFS 中作為備份歸檔用,在實(shí)現(xiàn)分級(jí)存儲(chǔ)的同時(shí)又可減輕 HDFS 存儲(chǔ)的壓力,擴(kuò)容方面也可實(shí)現(xiàn)一定的按需擴(kuò)容,而不用和計(jì)算資源強(qiáng)綁定。
另外,為應(yīng)對(duì)冷數(shù)據(jù)隨時(shí)可能被 Hadoop 調(diào)用的可能,XGFS 可以考慮通過(guò) viewfs 實(shí)現(xiàn)Hadoop 計(jì)算集群的對(duì)接,方便 Hadoop 計(jì)算層通過(guò)原生 HDFS 協(xié)議調(diào)用 XGFS 中的冷數(shù)據(jù)。同時(shí),XGFS 具備全協(xié)議特性,針對(duì)不同協(xié)議的上層應(yīng)用,可直接訪問(wèn) XGFS 中的數(shù)據(jù)。