分布式文件存儲詳解(四大主流存儲架構(gòu))
HDFS
HDFS 是 Apache Hadoop 項目的核心組件之一,專為大數(shù)據(jù)批處理而設(shè)計。
HDFS 采用主從(Master/Slave)架構(gòu),如下圖所示:
圖片
NameNode(主節(jié)點): 負責管理文件系統(tǒng)的元數(shù)據(jù)(metadata)。
例如:文件目錄結(jié)構(gòu)、文件與數(shù)據(jù)塊...等等,它不存儲實際數(shù)據(jù)。
DataNode(從節(jié)點): 負責存儲實際的數(shù)據(jù)塊,數(shù)據(jù)會被切分成固定大小(通常為 128MB 或 256MB)的數(shù)據(jù)塊。
優(yōu)點:
高吞吐:適合大文件的順序讀寫。
Hadoop 生態(tài)緊密結(jié)合(MapReduce、Hive、Spark 等)。
缺點:
不支持低延遲訪問(比如隨機小文件讀寫性能差)。
不適合小文件存儲(元數(shù)據(jù)過載)。
應(yīng)用場景:大數(shù)據(jù)處理平臺(離線計算、日志存儲)。
CephFS
Ceph 的分布式文件系統(tǒng)組件,采用 CRUSH 算法進行數(shù)據(jù)分布。
圖片
Ceph 的核心是 CRUSH 算法,它通過哈希計算和映射,將數(shù)據(jù)對象動態(tài)、均勻地分布在集群中的所有存儲設(shè)備上,實現(xiàn)了高度的去中心化。
OSD (Object Storage Device): 存儲數(shù)據(jù)對象,每個 OSD 通常對應(yīng)一個物理硬盤。
Monitor: 負責維護集群的狀態(tài)信息和元數(shù)據(jù)。
MDS (Metadata Server): 專門負責管理 CephFS 的文件元數(shù)據(jù)。
工作流程: 客戶端與 MDS 交互獲取元數(shù)據(jù),然后直接與 OSD 交互進行數(shù)據(jù)讀寫。
應(yīng)用場景:云計算(OpenStack 的默認存儲 backend)。
GFS
GFS,Google 提出的分布式文件系統(tǒng),HDFS 的靈感來源。
整體架構(gòu),如下圖所示:

GFS 同樣采用主從(Master/Slave)架構(gòu),原理與 HDFS 非常相似。
Master(主節(jié)點): 負責管理元數(shù)據(jù),包括文件命名空間、訪問控制和數(shù)據(jù)塊位置信息。
Chunkserver(從節(jié)點): 負責存儲實際數(shù)據(jù)塊(稱為 Chunk),每個 Chunk 通常為 64MB。每個 Chunk 也有多副本。
工作流程: 客戶端先與 Master 交互獲取元數(shù)據(jù),然后直接與 Chunkserver 進行數(shù)據(jù)讀寫。
TFS
TFS 是淘寶自主研發(fā)的分布式文件系統(tǒng),專為淘寶海量的圖片、商品、交易等小文件存儲而設(shè)計。
TFS 同樣采用主從(Master/Slave)架構(gòu),但其設(shè)計核心是針對小文件進行優(yōu)化。
特別適合:商品圖片、用戶頭像、短視頻、文檔...等場景。


























