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

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


























