IDC于2021年6月發(fā)布了《中國大數(shù)據(jù)平臺市場研究報(bào)告-2020》,報(bào)告顯示:2020年全球大數(shù)據(jù)軟件市場規(guī)模達(dá)4,813.6億元人民幣,微軟、Oracle、SAP作為Top3的廠商貢獻(xiàn)了30%以上的市場份額;中國市場,包括硬軟服在內(nèi)的中國大數(shù)據(jù)市場規(guī)模達(dá)677.3億元人民幣。

Hadoop 免費(fèi)午餐結(jié)束,用戶如何選擇?

2018 年,Cloudera 和 Hortonworks 合并,緊接著 HPE(慧與)宣布收購 MapR,這些跡象在說明,在 Hadoop 風(fēng)光的表象之下,是企業(yè)經(jīng)營困難。

2020年底 Cloudera 宣布,從2021年1月31日開始所有產(chǎn)品線全面收費(fèi),包括歷史的開源版本也要付費(fèi)后才能獲取,開源的產(chǎn)品不再面向全部用戶,而是僅僅針對付費(fèi)用戶。過去一直被大家免費(fèi)使用的 HDP 發(fā)行版,也不再維護(hù)和提供下載了,未來都合并到統(tǒng)一的 CDP 平臺。

Apache Hadoop 可以免費(fèi)使用,但是開源軟件沒有服務(wù),也沒有 SLA 保證,出了問題只能自己去研究和解決,有問題發(fā)到社區(qū),然后慢慢等結(jié)果,同時(shí)市場上的 Hadoop 開發(fā)或運(yùn)維工程師價(jià)格也是不菲的;

計(jì)算上面的替代品比較多,但是存儲沒有(計(jì)算可以自己做,但存儲很難自己做)

二、引入商業(yè)存儲,存算分離是必然趨勢

存算分離優(yōu)勢

邏輯單元分開擴(kuò)容:通過計(jì)算和存儲的分離部署實(shí)現(xiàn)計(jì)算和存儲的隔離,根據(jù)業(yè)務(wù)負(fù)載需求,對計(jì)算/存儲按需擴(kuò)容。

大數(shù)據(jù)能力云化:計(jì)算分離之后,可將其遷移到K8S或其他的云上面,使得計(jì)算更輕量化。

多數(shù)據(jù)平臺整合:底層提供統(tǒng)一的存儲給到不同的大數(shù)據(jù)平臺,實(shí)現(xiàn)多個(gè)大數(shù)據(jù)平臺數(shù)據(jù)的整合,加速流程,逐步構(gòu)建企業(yè)內(nèi)部數(shù)據(jù)湖。

獲得最佳存儲體驗(yàn):導(dǎo)入云存儲集群中的HDFS(將原生HDFS替換成商業(yè)存儲)具備了企業(yè)級別存儲特性,實(shí)現(xiàn)最佳TCO(Total Cost of Ownership ),即總擁有成本,包括產(chǎn)品采購到后期使用、維護(hù)的成本。

實(shí)現(xiàn)大數(shù)據(jù)的容災(zāi)備份:大數(shù)據(jù)一般數(shù)據(jù)量比較大,傳統(tǒng)的容災(zāi)備份都很難做。存算分離后,可以利用專業(yè)企業(yè)存儲的容災(zāi)備份能力,如快照,復(fù)制等實(shí)現(xiàn)大數(shù)據(jù)業(yè)務(wù)的數(shù)據(jù)保護(hù)。

當(dāng)前存算分離實(shí)現(xiàn)方案

客戶端模式

HCFS(Hadoop Compatible FileSystem),即Hadoop兼容文件協(xié)議。以無服務(wù)的依賴庫形式,可以被應(yīng)用所依賴,目前大多主流云廠商和部分商業(yè)存儲廠商都以通過 HCFS 方式實(shí)現(xiàn)對 HDFS 協(xié)議的支持。該方案需要在計(jì)算端安裝專用的客戶端并修改hadoop組件配置項(xiàng),應(yīng)用端零改造。

服務(wù)端模式

實(shí)現(xiàn)存算分離的另一種方式則是服務(wù)端模式,即通過在存儲端實(shí)現(xiàn)HDFS 的 NameNode 和 DataNode 服務(wù)接口,使計(jì)算節(jié)點(diǎn)通過原生 HDFS 客戶端即可訪問存儲系統(tǒng)。服務(wù)端模式無需在計(jì)算節(jié)點(diǎn)上安裝私有客戶端,以低耦合的方式交互。

三、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é)議的請求,亦可直接訪問 XGFS 元數(shù)據(jù)與數(shù)據(jù)。同時(shí)可無縫對接大數(shù)據(jù)計(jì)算層各個(gè)組件。

XGFS HDFS 網(wǎng)關(guān)是模擬 NameNode 和 DataNode 角色,所以不會直接存儲元數(shù)據(jù)和數(shù)據(jù),所有元數(shù)據(jù)和數(shù)據(jù)將分別存儲在 XGFS 的元數(shù)據(jù)集群和數(shù)據(jù)集群中。

通過XSKY XGFS 大數(shù)據(jù)存算分離方案,可以解決 HDFS 所面臨的以下挑戰(zhàn):

1、通過 XGFS 的協(xié)議兼容性以及對 XGFS 本身的用戶和用戶組權(quán)限控制的兼容性,解決 HDFS 存算綁定的問題。XGFS 可直接兼容原生 HDFS 協(xié)議,且 XGFS 用戶和用戶組權(quán)限控制與 HDFS 的權(quán)限控制機(jī)制相近,利用這兩大兼容特性,實(shí)現(xiàn)和大數(shù)據(jù)計(jì)算層的無縫對接;

2、XGFS 支持 NFS、SMB/CIFS、POSIX、FTP、HDFS、CSI、S3 等協(xié)議互通,具備多協(xié)議融合互通特性,可以很好的解決應(yīng)用跨多存儲協(xié)議數(shù)據(jù)拷貝問題;

3、通過成熟穩(wěn)定的數(shù)據(jù) EC 糾刪碼存儲機(jī)制,解決 HDFS 3.x EC 不可商用的問題,同時(shí)也降低了數(shù)據(jù)存儲成本;

4、XGFS 從元數(shù)據(jù)落盤、統(tǒng)一命名空間、整池?cái)U(kuò)容、在線設(shè)定存儲池角色和無狀態(tài)的分布式網(wǎng)關(guān)等方面,加強(qiáng)了存儲的彈性擴(kuò)展,可以解決長期困擾 HDFS 的擴(kuò)展性弱的問題;

5、XGFS 作為一款企業(yè)級分布式文件存儲系統(tǒng),提供專業(yè)的運(yùn)維 Portal 和運(yùn)維接口,具備極簡運(yùn)維特性,可解決 HDFS 運(yùn)維困難的問題;

6、XGFS 作為企業(yè)級專業(yè)存儲,將提供完備的數(shù)據(jù)容災(zāi)備份方案,解決客戶大數(shù)據(jù)的運(yùn)維及災(zāi)備方面的問題。

下面我們將對上面提到的特性逐個(gè)進(jìn)行詳細(xì)介紹:

方案優(yōu)勢

◆協(xié)議兼容性–原生 HDFS 協(xié)議

如圖上所示,XGFS 包含了 HDFS GW(即 HDFS 分布式網(wǎng)關(guān),簡稱為 HDFS 網(wǎng)關(guān))以及元數(shù)據(jù)管理集群和數(shù)據(jù)管理集群三大模塊,XGFS 在 HDFS 網(wǎng)關(guān)模塊模擬了 HDFS 中的 NameNode 和 DataNode 兩個(gè)角色,由 NameNode 和 DataNode 將對外提供原生 HDFS API,并負(fù)責(zé)接發(fā)、轉(zhuǎn)送客戶端發(fā)過來的數(shù)據(jù)讀寫請求。元數(shù)據(jù)和數(shù)據(jù)不會保存在 NameNode 和 DataNode 角色中,而是分別存儲于 XGFS 的元數(shù)據(jù)管理集群和數(shù)據(jù)管理集群。

通過在 HDFS 網(wǎng)關(guān)中模擬 NameNode 和 DataNode,客戶端可通過原生 HDFS 協(xié)議直接訪問HDFS GW,可帶來如下價(jià)值:

1、通過 XGFS 提供的原生 HDFS 協(xié)議能力,可對接市場上常見的大數(shù)據(jù)平臺;

2、除了支持常用的接口外,還支持 append、rename、hflush、flush、concat、setfacl、setxattr;

3、在 XGFS 和計(jì)算層對接時(shí),無需在計(jì)算層安裝任何專用客戶端。在大數(shù)據(jù)平臺配置中心設(shè)置 XGFS 大數(shù)據(jù)網(wǎng)關(guān)的相關(guān)配置后,計(jì)算層程序零改造,可直接通過配置找到 XGFS 網(wǎng)關(guān)。

◆用戶和用戶組權(quán)限兼容性

HDFS 實(shí)現(xiàn)了一套兼容 POSIX 的文件權(quán)限模型,包括粗粒度的 POSIX UGO 模型和細(xì)粒度的 POSIX ACLs 協(xié)議,XGFS 文件存儲可很好的兼容 HDFS 權(quán)限控制。

◆多協(xié)議融合互通

XGFS 目前已支持 NFS、SMB/CIFS、POSIX、FTP、HDFS、S3、CSI 等協(xié)議之間互通,同一份文件既可以通過原生 HDFS 接口訪問,又可以使用其他文件協(xié)議接口訪問,無須協(xié)議間做數(shù)據(jù)拷貝。

要做到文件多協(xié)議之間的互通,首先需要打通用戶和元數(shù)據(jù)層,也就是統(tǒng)一用戶、統(tǒng)一命名空間。在 XGFS 界面創(chuàng)建一個(gè)本地用戶后,可以配置開啟 S3 協(xié)議訪問權(quán)限,也可將同一文件目錄通過不同的文件協(xié)議共享出去供不同的上層應(yīng)用訪問,且每個(gè)協(xié)議均可訪問其他協(xié)議上傳的文件。例如在 S3Browser 上可以看到桶 user01bucket 中由 HDFS、CIFS 和 NFS 協(xié)議寫入的文件。

同時(shí)用戶可針對不同的上層應(yīng)用場景,靈活地選擇適用的文件協(xié)議,例如:

針對數(shù)據(jù)分析業(yè)務(wù)可以考慮直接采用原生 HDFS 協(xié)議;

針對海量數(shù)據(jù)分析和 AI 訓(xùn)練業(yè)務(wù),則可考慮通過私有客戶端進(jìn)行支持;

通過自有 CSI Driver 支持金融傳統(tǒng)業(yè)務(wù)容器化轉(zhuǎn)型, 簡化業(yè)務(wù) IT 架構(gòu)的同時(shí)解除對業(yè)務(wù)的鎖定。

另外對于基礎(chǔ)設(shè)施和運(yùn)維團(tuán)隊(duì)來說,可以不需要為不同的應(yīng)用維護(hù)各種協(xié)議的存儲系統(tǒng),也不需要在多個(gè)存儲系統(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ù)分別存放在存儲系統(tǒng)中的不同存儲節(jié)點(diǎn)上,當(dāng)其中任意 M 塊數(shù)據(jù)出錯(cuò)時(shí),存儲系統(tǒng)可通過數(shù)據(jù)恢復(fù)算法恢復(fù)出原來的 K 塊數(shù)據(jù),實(shí)現(xiàn)冗余和容錯(cuò)的目的。

如上圖所示,HDFS3.x EC 糾刪碼目前只支持 2+1、3+2、6+3、10+4 模式,默認(rèn)為 6+3 模式,最高為 10+4 模式,得盤率 71.43%。而 XGFS EC 糾刪碼的得盤率最高為 88.89%,且 XGFS 支持精簡EC,如4+2:1、8+2:1和16+2:1,在資源有限的情況下盡量提高得盤率,降低成本。

另外 XGFS 支持用戶自定義 K+M 具體值,方便用戶根據(jù)資源情況自定義 K+M,使得資源使用最大化。

◆擴(kuò)展性

如上圖所示,相比較于 HDFS,XGFS 具備很強(qiáng)的擴(kuò)展性,主要通過以下幾個(gè)方面實(shí)現(xiàn):

1、元數(shù)據(jù)落盤:通過 XGFS 大數(shù)據(jù)存算分離方案,文件元數(shù)據(jù)將保存在 XMDS 元數(shù)據(jù)池,元數(shù)據(jù)將直接寫入 NVMe/SCM/SATA SSD 盤,不會產(chǎn)生內(nèi)存空間的瓶頸問題。通過大容量的 NVMe/SCM/SATA SSD 的元數(shù)據(jù)空間,可以輕松保存和處理百億規(guī)模文件;

2、統(tǒng)一命名空間:XGFS 統(tǒng)一命名空間同時(shí)支持多個(gè)存儲池,用戶添加存儲池時(shí)無需添加新的命名空間,不會增加管理負(fù)擔(dān);

3、整池?cái)U(kuò)容:XGFS 支持整池?cái)U(kuò)容,當(dāng)在線添加新的存儲池時(shí),已有存儲池?zé)o需重平衡,不影響在線業(yè)務(wù);

4、在線設(shè)定存儲池角色:XGFS 支持在線設(shè)定存儲池角色:活動(dòng)池和非活動(dòng)池。當(dāng)某一存儲池設(shè)定為非活動(dòng)池后,將不再接受新文件的分配寫入,只支持已有文件的數(shù)據(jù)讀、寫、刪除操作;

5、無狀態(tài)網(wǎng)關(guān):XGFS HDFS 網(wǎng)關(guān)提供無狀態(tài)服務(wù),不保存狀態(tài)數(shù)據(jù),實(shí)例可以水平拓展,通過負(fù)載均衡將請求分發(fā)到各個(gè)節(jié)點(diǎn)。

通過以上四個(gè)擴(kuò)展性方面的強(qiáng)化,XGFS可以帶來以下客戶價(jià)值:

1、XGFS 通過元數(shù)據(jù)落盤解決了HDFS一直以來因?yàn)?NameNode 元數(shù)據(jù)內(nèi)存瓶頸導(dǎo)致的擴(kuò)展受限的問題;

2、相比較于 HDFS 通過 HDFS Federation 聯(lián)邦帶來的多組 NameNode、多個(gè) NamesSpace 管理運(yùn)維困難問題,XGFS 統(tǒng)一命名空間支持多個(gè)存儲池,減少了運(yùn)維管理上的問題;

3、存儲資源池存儲空間不足時(shí),可通過硬件設(shè)備創(chuàng)建一個(gè)新的存儲資源池,并實(shí)現(xiàn)整池?cái)U(kuò)容,用戶可在不改變業(yè)務(wù)訪問路徑的情況下實(shí)現(xiàn)擴(kuò)容,有效避免了類似 HDFS 在擴(kuò)容后需要手動(dòng)進(jìn)行數(shù)據(jù)重平衡的問題,避免了擴(kuò)容對在線業(yè)務(wù)性能的沖擊。同時(shí)多存儲池間故障隔離,可以有效應(yīng)對極端異常時(shí)批量壞盤場景;

4、客戶可按需將已有寫滿的數(shù)據(jù)池設(shè)置為非活動(dòng)池,作為數(shù)據(jù)長期存儲使用;

5、XGFS HDFS 分布式網(wǎng)關(guān)都是無狀態(tài)網(wǎng)關(guān),橫向擴(kuò)展不受限制,可以隨著集群規(guī)模的擴(kuò)展近似線性地提升 IOPS 性能。

◆數(shù)據(jù)災(zāi)備

XGFS 在大數(shù)據(jù)容災(zāi)場景支持同步復(fù)制和異步復(fù)制兩種方式:

同步復(fù)制

可通過延展集群的方式實(shí)現(xiàn)園區(qū)或同城的數(shù)據(jù)中心級雙活及數(shù)據(jù)災(zāi)備,實(shí)現(xiàn)RPO=0,數(shù)據(jù)零丟失。延展集群是分布式存儲實(shí)現(xiàn)數(shù)據(jù)跨站點(diǎn)雙活的解決方案。延展集群將存儲集群從單個(gè)站點(diǎn)擴(kuò)展到兩個(gè)站點(diǎn),存儲池中數(shù)據(jù)副本跨站點(diǎn)分布,實(shí)現(xiàn)了更高級別的可用性。延展集群可以替代傳統(tǒng)共享存儲集群或存儲鏡像集群等解決方案,實(shí)現(xiàn)園區(qū)或同城的數(shù)據(jù)中心級雙活及災(zāi)難恢復(fù)。很好的解決了HDFS無原生雙活方案的問題,通過引入HDFS 分布式網(wǎng)關(guān),就能快速的實(shí)現(xiàn)數(shù)據(jù)和業(yè)務(wù)雙活部署的需求。

異步復(fù)制

將多個(gè)XGFS部署在不同的機(jī)房(站點(diǎn)),通過 X3DS 數(shù)據(jù)管理工具,實(shí)現(xiàn)不同站點(diǎn)間的文件數(shù)據(jù)異步復(fù)制,當(dāng)主站點(diǎn)故障后,大數(shù)據(jù)應(yīng)用可切換至備站點(diǎn),從而滿足大數(shù)據(jù)應(yīng)用容災(zāi)備份的需求,提高業(yè)務(wù)可靠性;同時(shí),X3DS 在進(jìn)行數(shù)據(jù)異步復(fù)制的同時(shí),可靈活配置復(fù)制策略及數(shù)據(jù)復(fù)制 QoS 控制,降低業(yè)務(wù)影響。

四、典型場景

與原 HDFS 共存 ——Viewfs

針對大數(shù)據(jù)體系非常龐大,業(yè)務(wù)使用場景復(fù)雜的用戶,可以使用新舊存儲共存的方案。小規(guī)模高性能實(shí)時(shí)場景仍然使用 HDFS,其他大規(guī)模的數(shù)據(jù)可以存放在 XGFS。因大規(guī)模的數(shù)據(jù)都在 XGFS 中,所以后續(xù)擴(kuò)容主要是針對 XGFS 的擴(kuò)容,可以降低對 HDFS 的依賴,存儲計(jì)算各自按需擴(kuò)容。

新舊存儲共存方案可通過 VIewfs 實(shí)現(xiàn) XGFS 與原 HDFS 的共存。在集群的 core-site 配置中,fs.defaultFS 被設(shè)置為 ViewFS 的 root 目錄,也就是指定的 mount-table。XGFS、HDFS 的掛載目錄則在 mount-tables 中分別指定。

替換原有 HDFS

針對HDFS替換場景,原 HDFS 數(shù)據(jù)可通過 X3DS 遷移至 XGFS,同時(shí)新產(chǎn)生的數(shù)據(jù)可以直接寫入XGFS。且 XGFS 支持對接多套大數(shù)據(jù)集群,各個(gè)集群無需進(jìn)行數(shù)據(jù)的復(fù)制遷移,可直接通過原生 HDFS 協(xié)議讀取同一套 XGFS 中的數(shù)據(jù)。另外 XGFS 5.2 具備全協(xié)議特性,除原生的 HDFS 協(xié)議以外,還可以兼容 NFS/CIFS/FTP/S3 等不同協(xié)議的上層應(yīng)用。

做 HDFS 二級存儲——同城/異地

針對用戶存在大量冷數(shù)據(jù),但是需要隨時(shí)被 HDFS 調(diào)用的場景,可將 XGFS 作為 HDFS 的二級存儲使用。通過將大量訪問頻率不高的冷數(shù)據(jù)從 HDFS 遷移至 XGFS 中作為備份歸檔用,在實(shí)現(xiàn)分級存儲的同時(shí)又可減輕 HDFS 存儲的壓力,擴(kuò)容方面也可實(shí)現(xiàn)一定的按需擴(kuò)容,而不用和計(jì)算資源強(qiáng)綁定。

另外,為應(yīng)對冷數(shù)據(jù)隨時(shí)可能被 Hadoop 調(diào)用的可能,XGFS 可以考慮通過 viewfs 實(shí)現(xiàn)Hadoop 計(jì)算集群的對接,方便 Hadoop 計(jì)算層通過原生 HDFS 協(xié)議調(diào)用 XGFS 中的冷數(shù)據(jù)。同時(shí),XGFS 具備全協(xié)議特性,針對不同協(xié)議的上層應(yīng)用,可直接訪問 XGFS 中的數(shù)據(jù)。

分享到

songjy

相關(guān)推薦