隨着網絡性能提升,雲端計算架構逐步向存算分離轉變,AWS Aurora 率先在數據庫領域實現了這個轉變,大數據計算領域也迅速朝此方向演化。
存算分離在雲端有明顯優勢,不但可以充分發揮彈性計算的靈活,同時集中的托管存儲可以提供更大的容量和更低的成本,避免了雲端大量自建存儲集群的維護代價。
一、問題和挑戰
對象存儲是廣泛使用的雲端非結構化數據存儲解決方案,越來越多的非結構化數據聚集於對象存儲的數據湖中,隨之而來的是對這些海量數據的分析需求。
然而對大數據分析的存儲系統來說,HDFS 接口是事實標准,HDFS 是大數據生態的存儲基石。
原生的對象存儲接口不兼容 HDFS,無法直接使用。為支持計算存儲分離的大數據場景,對象存儲通常提供了一個模擬層,實現 HDFS 語義到對象存儲語義的轉換,典型實現類似 s3n 和 cosn。然而這類實現缺乏對真正的文件系統接口的支持,基於對象存儲的扁平目錄結構無法實現分層命名空間,在處理類似 rename 等操作時效率極低(實際是基於前綴復制關聯的所有對象),對於 list、head 等頻繁元數據操作的場景延遲較高,一些對象存儲系統還缺少強一致性語義,不能保證寫后讀一致性,導致上層的大數據計算框架出錯。
同時在數據流方面,諸如常見的文件 append 操作,s3n 和 cosn 等對象存儲的模擬層也無法支持。
為支持大數據存算分離場景,需要重新設計雲端存儲系統,該系統可以為雲端大數據計算提供高效可靠的存儲基石,在實現無限存儲的同時,重點滿足對元數據的需求。
為此,我們提出了一種基於對象存儲的通用分布式文件系統設計方案:cloud native hdfs,簡稱 CHDFS。
二、CHDFS 整體介紹
CHDFS 整體架構如圖所示。
CHDFS,在對象存儲之上,充分發揮雲端優勢,構建可擴展的 metadata 層,實現對 HDFS 語義的支持。通過高度優化的 metadata 層,可以支持海量元數據的高效訪問。在元數據規模遠超 HDFS 的情況下,達到接近原生 HDFS 性能的效果。同時提供優化了讀寫數據流的 java 客戶端,在支持高效元數據操作的同時,充分發揮了對象存儲高吞吐和低成本的優點。
CHDFS 基於對象存儲實現文件系統語義,數據托管給對象存儲,把對象存儲當做磁盤使用,在此基礎上構建文件系統分布式元數據層,支持海量數據。基於對象存儲托管數據,可以自動獲得對象存儲的優勢,如低成本,高可靠,大吞吐,高可用等特性,容量可達到百 PB 級別。
三、CHDFS 元數據服務特點
CHDFS 元數據服務采用分布式架構,在元數據讀寫方面做了較多優化,支持百億級別的文件數據量,突破了 hdfs namenode 規模限制,同時保證了嚴格的強一致語義。
對比 COS 和 HDFS,具有以下特點:
- 毫秒級別的原子 rename 操作,對目錄和文件都適用;
- 元數據強一致,寫入后立即可見;
- 支持百億級別的文件數量,遠超 HDFS 規模,延遲和 HDFS 相當;
- 單文件系統,元數據支持 10w 以上的 qps,滿足大規模計算的高並發需求;
- 高可用,秒級的 ha 切換時間;
- 元數據並行加載,冷啟動速度 比 HDFS 快1個數量級;
- 元數據跨區域/可用區復制,進一步提高可靠性;
CHDFS 提供了多種元數據引擎,在面臨不同的應用場景時,用戶可以有多種選擇,達到成本、容量和性能的平衡。
在接口上,CHDFS 完全兼容 HDFS,可以輕松在兩個系統之間遷移數據。
四、COS 為 CHDFS 提供數據底座
對象存儲 COS 作為雲端基礎存儲服務,為 CHDFS 提供了堅實的數據底座,CHDFS 的文件數據分塊后存儲在 COS,具有以下優點:
- 海量存儲,支持百P級別的數據量,容量自動擴展;
- 超大帶寬,支持 Tbps 級別的帶寬,大數據計算可以充分發揮 COS 高吞吐的優勢;
- 數據多AZ,帶來了11個9的超高可靠性;
- 數據存儲默認EC編碼,成本更低;
- 支持文件數據跨區域復制;
- 智能分層支持,根據數據的冷熱程度,自動分層,進一步降低存儲成本;
同時,CHDFS 提供了高性能的 HDFS 兼容的 java sdk,針對大數據場景做了全面優化,實現了高效的讀寫緩存機制,可以充分發揮 COS 在數據流方面的優勢。
五、豐富的產品功能
除了上述提到的強大的文件讀寫能力外,CHDFS 還提供了豐富的產品功能,來滿足大數據場景下客戶的多樣需求。
對於關注成本優化的客戶,CHDFS 提供了存儲生命周期管理功能,能夠通過簡單的配置頁面,讓客戶的文件自動沉降到成本更低的存儲介質,進一步降低客戶使用雲端存儲的成本,真真正正的幫助客戶省錢。當客戶需要訪問這部分沉降的冷數據時,CHDFS 提供了功能強大、方便易用的命令行工具,使文件回到熱存儲層供客戶使用。
對於有存儲內容感知需求的客戶,CHDFS 提供了強大的文件清單功能,可以按照客戶指定的文件格式及過濾字段,離線導出文件信息,並且投遞到客戶的文件系統中。客戶可以通過讀取該清單文件,進行多維度的業務文件屬性分析,如文件平均大小分布等。甚至還可以作為客戶從本地 HDFS 導入 CHDFS 過程中的一種文件校驗手段。
六、生態整合
CHDFS 提供了完全兼容 HDFS 的協議,可以無縫支持常見的大數據計算框架,如 Hive,Spark,Presto,Flink 等。
CHDFS 目前已經和騰訊雲 EMR 產品緊密集合。客戶購買 CHDFS 產品后,無需安裝任何環境,即可直接在騰訊雲 EMR 上使用 CHDFS 產品,進一步簡化客戶使用 CHDFS 的上手成本。