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

Hadoop 免費午餐結束,用戶如何選擇?
2018 年,Cloudera 和 Hortonworks 合并,緊接著 HPE(慧與)宣布收購 MapR,這些跡象在說明,在 Hadoop 風光的表象之下,是企業(yè)經營困難。
2020年底 Cloudera 宣布,從2021年1月31日開始所有產品線全面收費,包括歷史的開源版本也要付費后才能獲取,開源的產品不再面向全部用戶,而是僅僅針對付費用戶。過去一直被大家免費使用的 HDP 發(fā)行版,也不再維護和提供下載了,未來都合并到統(tǒng)一的 CDP 平臺。


Apache Hadoop 可以免費使用,但是開源軟件沒有服務,也沒有 SLA 保證,出了問題只能自己去研究和解決,有問題發(fā)到社區(qū),然后慢慢等結果,同時市場上的 Hadoop 開發(fā)或運維工程師價格也是不菲的;
計算上面的替代品比較多,但是存儲沒有(計算可以自己做,但存儲很難自己做)
二、引入商業(yè)存儲,存算分離是必然趨勢

存算分離優(yōu)勢


邏輯單元分開擴容:通過計算和存儲的分離部署實現計算和存儲的隔離,根據業(yè)務負載需求,對計算/存儲按需擴容。
大數據能力云化:計算分離之后,可將其遷移到K8S或其他的云上面,使得計算更輕量化。
多數據平臺整合:底層提供統(tǒng)一的存儲給到不同的大數據平臺,實現多個大數據平臺數據的整合,加速流程,逐步構建企業(yè)內部數據湖。
獲得最佳存儲體驗:導入云存儲集群中的HDFS(將原生HDFS替換成商業(yè)存儲)具備了企業(yè)級別存儲特性,實現最佳TCO(Total Cost of Ownership ),即總擁有成本,包括產品采購到后期使用、維護的成本。
實現大數據的容災備份:大數據一般數據量比較大,傳統(tǒng)的容災備份都很難做。存算分離后,可以利用專業(yè)企業(yè)存儲的容災備份能力,如快照,復制等實現大數據業(yè)務的數據保護。

當前存算分離實現方案

客戶端模式


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

實現存算分離的另一種方式則是服務端模式,即通過在存儲端實現HDFS 的 NameNode 和 DataNode 服務接口,使計算節(jié)點通過原生 HDFS 客戶端即可訪問存儲系統(tǒng)。服務端模式無需在計算節(jié)點上安裝私有客戶端,以低耦合的方式交互。
三、XSKY 基于分布式文件的大數據方案
原生 HDFS 大數據方案

方案介紹


上圖為XSKY XGFS 大數據存算分離方案架構圖,XSKY XGFS 在大數據存算分離方案中主要提供基于原生 HDFS 協(xié)議的 HDFS 網關能力以及元數據管理和數據管理能力,XGFS 在 HDFS 網關中模擬 HDFS 的NameNode和DataNode角色,可收發(fā)原生 HDFS 協(xié)議的請求,亦可直接訪問 XGFS 元數據與數據。同時可無縫對接大數據計算層各個組件。
XGFS HDFS 網關是模擬 NameNode 和 DataNode 角色,所以不會直接存儲元數據和數據,所有元數據和數據將分別存儲在 XGFS 的元數據集群和數據集群中。
通過XSKY XGFS 大數據存算分離方案,可以解決 HDFS 所面臨的以下挑戰(zhàn):
1、通過 XGFS 的協(xié)議兼容性以及對 XGFS 本身的用戶和用戶組權限控制的兼容性,解決 HDFS 存算綁定的問題。XGFS 可直接兼容原生 HDFS 協(xié)議,且 XGFS 用戶和用戶組權限控制與 HDFS 的權限控制機制相近,利用這兩大兼容特性,實現和大數據計算層的無縫對接;
2、XGFS 支持 NFS、SMB/CIFS、POSIX、FTP、HDFS、CSI、S3 等協(xié)議互通,具備多協(xié)議融合互通特性,可以很好的解決應用跨多存儲協(xié)議數據拷貝問題;
3、通過成熟穩(wěn)定的數據 EC 糾刪碼存儲機制,解決 HDFS 3.x EC 不可商用的問題,同時也降低了數據存儲成本;
4、XGFS 從元數據落盤、統(tǒng)一命名空間、整池擴容、在線設定存儲池角色和無狀態(tài)的分布式網關等方面,加強了存儲的彈性擴展,可以解決長期困擾 HDFS 的擴展性弱的問題;
5、XGFS 作為一款企業(yè)級分布式文件存儲系統(tǒng),提供專業(yè)的運維 Portal 和運維接口,具備極簡運維特性,可解決 HDFS 運維困難的問題;
6、XGFS 作為企業(yè)級專業(yè)存儲,將提供完備的數據容災備份方案,解決客戶大數據的運維及災備方面的問題。
下面我們將對上面提到的特性逐個進行詳細介紹:
方案優(yōu)勢
◆協(xié)議兼容性–原生 HDFS 協(xié)議

如圖上所示,XGFS 包含了 HDFS GW(即 HDFS 分布式網關,簡稱為 HDFS 網關)以及元數據管理集群和數據管理集群三大模塊,XGFS 在 HDFS 網關模塊模擬了 HDFS 中的 NameNode 和 DataNode 兩個角色,由 NameNode 和 DataNode 將對外提供原生 HDFS API,并負責接發(fā)、轉送客戶端發(fā)過來的數據讀寫請求。元數據和數據不會保存在 NameNode 和 DataNode 角色中,而是分別存儲于 XGFS 的元數據管理集群和數據管理集群。
通過在 HDFS 網關中模擬 NameNode 和 DataNode,客戶端可通過原生 HDFS 協(xié)議直接訪問HDFS GW,可帶來如下價值:
1、通過 XGFS 提供的原生 HDFS 協(xié)議能力,可對接市場上常見的大數據平臺;
2、除了支持常用的接口外,還支持 append、rename、hflush、flush、concat、setfacl、setxattr;
3、在 XGFS 和計算層對接時,無需在計算層安裝任何專用客戶端。在大數據平臺配置中心設置 XGFS 大數據網關的相關配置后,計算層程序零改造,可直接通過配置找到 XGFS 網關。
◆用戶和用戶組權限兼容性
HDFS 實現了一套兼容 POSIX 的文件權限模型,包括粗粒度的 POSIX UGO 模型和細粒度的 POSIX ACLs 協(xié)議,XGFS 文件存儲可很好的兼容 HDFS 權限控制。
◆多協(xié)議融合互通

XGFS 目前已支持 NFS、SMB/CIFS、POSIX、FTP、HDFS、S3、CSI 等協(xié)議之間互通,同一份文件既可以通過原生 HDFS 接口訪問,又可以使用其他文件協(xié)議接口訪問,無須協(xié)議間做數據拷貝。
要做到文件多協(xié)議之間的互通,首先需要打通用戶和元數據層,也就是統(tǒng)一用戶、統(tǒng)一命名空間。在 XGFS 界面創(chuàng)建一個本地用戶后,可以配置開啟 S3 協(xié)議訪問權限,也可將同一文件目錄通過不同的文件協(xié)議共享出去供不同的上層應用訪問,且每個協(xié)議均可訪問其他協(xié)議上傳的文件。例如在 S3Browser 上可以看到桶 user01bucket 中由 HDFS、CIFS 和 NFS 協(xié)議寫入的文件。
同時用戶可針對不同的上層應用場景,靈活地選擇適用的文件協(xié)議,例如:
針對數據分析業(yè)務可以考慮直接采用原生 HDFS 協(xié)議;
針對海量數據分析和 AI 訓練業(yè)務,則可考慮通過私有客戶端進行支持;
通過自有 CSI Driver 支持金融傳統(tǒng)業(yè)務容器化轉型, 簡化業(yè)務 IT 架構的同時解除對業(yè)務的鎖定。
另外對于基礎設施和運維團隊來說,可以不需要為不同的應用維護各種協(xié)議的存儲系統(tǒng),也不需要在多個存儲系統(tǒng)中拷貝同一份數據。
◆EC 糾刪碼

如上圖所示,EC(Erasure Coding)糾刪碼技術是將一份數據切分成 K 塊原始數據,基于 K 塊原始數據塊中計算出 M 個校驗塊,并將 K+M 塊數據分別存放在存儲系統(tǒng)中的不同存儲節(jié)點上,當其中任意 M 塊數據出錯時,存儲系統(tǒng)可通過數據恢復算法恢復出原來的 K 塊數據,實現冗余和容錯的目的。


如上圖所示,HDFS3.x EC 糾刪碼目前只支持 2+1、3+2、6+3、10+4 模式,默認為 6+3 模式,最高為 10+4 模式,得盤率 71.43%。而 XGFS EC 糾刪碼的得盤率最高為 88.89%,且 XGFS 支持精簡EC,如4+2:1、8+2:1和16+2:1,在資源有限的情況下盡量提高得盤率,降低成本。
另外 XGFS 支持用戶自定義 K+M 具體值,方便用戶根據資源情況自定義 K+M,使得資源使用最大化。
◆擴展性

如上圖所示,相比較于 HDFS,XGFS 具備很強的擴展性,主要通過以下幾個方面實現:
1、元數據落盤:通過 XGFS 大數據存算分離方案,文件元數據將保存在 XMDS 元數據池,元數據將直接寫入 NVMe/SCM/SATA SSD 盤,不會產生內存空間的瓶頸問題。通過大容量的 NVMe/SCM/SATA SSD 的元數據空間,可以輕松保存和處理百億規(guī)模文件;
2、統(tǒng)一命名空間:XGFS 統(tǒng)一命名空間同時支持多個存儲池,用戶添加存儲池時無需添加新的命名空間,不會增加管理負擔;
3、整池擴容:XGFS 支持整池擴容,當在線添加新的存儲池時,已有存儲池無需重平衡,不影響在線業(yè)務;
4、在線設定存儲池角色:XGFS 支持在線設定存儲池角色:活動池和非活動池。當某一存儲池設定為非活動池后,將不再接受新文件的分配寫入,只支持已有文件的數據讀、寫、刪除操作;
5、無狀態(tài)網關:XGFS HDFS 網關提供無狀態(tài)服務,不保存狀態(tài)數據,實例可以水平拓展,通過負載均衡將請求分發(fā)到各個節(jié)點。
通過以上四個擴展性方面的強化,XGFS可以帶來以下客戶價值:
1、XGFS 通過元數據落盤解決了HDFS一直以來因為 NameNode 元數據內存瓶頸導致的擴展受限的問題;
2、相比較于 HDFS 通過 HDFS Federation 聯邦帶來的多組 NameNode、多個 NamesSpace 管理運維困難問題,XGFS 統(tǒng)一命名空間支持多個存儲池,減少了運維管理上的問題;
3、存儲資源池存儲空間不足時,可通過硬件設備創(chuàng)建一個新的存儲資源池,并實現整池擴容,用戶可在不改變業(yè)務訪問路徑的情況下實現擴容,有效避免了類似 HDFS 在擴容后需要手動進行數據重平衡的問題,避免了擴容對在線業(yè)務性能的沖擊。同時多存儲池間故障隔離,可以有效應對極端異常時批量壞盤場景;
4、客戶可按需將已有寫滿的數據池設置為非活動池,作為數據長期存儲使用;
5、XGFS HDFS 分布式網關都是無狀態(tài)網關,橫向擴展不受限制,可以隨著集群規(guī)模的擴展近似線性地提升 IOPS 性能。
◆數據災備

XGFS 在大數據容災場景支持同步復制和異步復制兩種方式:
同步復制
可通過延展集群的方式實現園區(qū)或同城的數據中心級雙活及數據災備,實現RPO=0,數據零丟失。延展集群是分布式存儲實現數據跨站點雙活的解決方案。延展集群將存儲集群從單個站點擴展到兩個站點,存儲池中數據副本跨站點分布,實現了更高級別的可用性。延展集群可以替代傳統(tǒng)共享存儲集群或存儲鏡像集群等解決方案,實現園區(qū)或同城的數據中心級雙活及災難恢復。很好的解決了HDFS無原生雙活方案的問題,通過引入HDFS 分布式網關,就能快速的實現數據和業(yè)務雙活部署的需求。
異步復制
將多個XGFS部署在不同的機房(站點),通過 X3DS 數據管理工具,實現不同站點間的文件數據異步復制,當主站點故障后,大數據應用可切換至備站點,從而滿足大數據應用容災備份的需求,提高業(yè)務可靠性;同時,X3DS 在進行數據異步復制的同時,可靈活配置復制策略及數據復制 QoS 控制,降低業(yè)務影響。
四、典型場景
與原 HDFS 共存 ——Viewfs

針對大數據體系非常龐大,業(yè)務使用場景復雜的用戶,可以使用新舊存儲共存的方案。小規(guī)模高性能實時場景仍然使用 HDFS,其他大規(guī)模的數據可以存放在 XGFS。因大規(guī)模的數據都在 XGFS 中,所以后續(xù)擴容主要是針對 XGFS 的擴容,可以降低對 HDFS 的依賴,存儲計算各自按需擴容。
新舊存儲共存方案可通過 VIewfs 實現 XGFS 與原 HDFS 的共存。在集群的 core-site 配置中,fs.defaultFS 被設置為 ViewFS 的 root 目錄,也就是指定的 mount-table。XGFS、HDFS 的掛載目錄則在 mount-tables 中分別指定。
替換原有 HDFS
針對HDFS替換場景,原 HDFS 數據可通過 X3DS 遷移至 XGFS,同時新產生的數據可以直接寫入XGFS。且 XGFS 支持對接多套大數據集群,各個集群無需進行數據的復制遷移,可直接通過原生 HDFS 協(xié)議讀取同一套 XGFS 中的數據。另外 XGFS 5.2 具備全協(xié)議特性,除原生的 HDFS 協(xié)議以外,還可以兼容 NFS/CIFS/FTP/S3 等不同協(xié)議的上層應用。
做 HDFS 二級存儲——同城/異地
針對用戶存在大量冷數據,但是需要隨時被 HDFS 調用的場景,可將 XGFS 作為 HDFS 的二級存儲使用。通過將大量訪問頻率不高的冷數據從 HDFS 遷移至 XGFS 中作為備份歸檔用,在實現分級存儲的同時又可減輕 HDFS 存儲的壓力,擴容方面也可實現一定的按需擴容,而不用和計算資源強綁定。
另外,為應對冷數據隨時可能被 Hadoop 調用的可能,XGFS 可以考慮通過 viewfs 實現Hadoop 計算集群的對接,方便 Hadoop 計算層通過原生 HDFS 協(xié)議調用 XGFS 中的冷數據。同時,XGFS 具備全協(xié)議特性,針對不同協(xié)議的上層應用,可直接訪問 XGFS 中的數據。