分佈式存儲技術最全詳解 -圖文全面總結-

大家好,我是 mikechen 睿哥。

分佈式存儲技術是大型架構的基石,下面我重點詳解分佈式存儲技術 @mikechen

分佈式文件存儲

隨着互聯網、大數據、雲計算和人工智能等技術的發展,數據量呈爆炸式增長。

傳統的文件存儲方式,難以滿足日益增長的存儲需求,它們通常面臨擴展性差、單點故障、性能瓶頸等問題。

分佈式文件存儲應運而生,它通過將文件數據分割成小塊,並存儲在集羣中的多臺機器上。

從而實現了海量數據的存儲,目前已成爲構建可擴展、可靠的雲計算平臺、和大數據分析系統的基石。

HDFS

HDFS 是 Hadoop 生態系統的核心組件之一,專爲大數據存儲而設計。

它採用 Master-Slave 架構,主要由以下幾部分組成:

NameNode(主節點)

負責管理元數據(如文件目錄結構、塊位置、權限等),是整個系統的 “調度大腦”。

DataNode(數據節點)

負責真正的數據存儲,每個文件被切分爲多個數據塊(Block),分佈在多個 DataNode 上。

客戶端(Client)

通過 NameNode 獲取元數據信息後,直接與 DataNode 通信,進行數據讀寫。

HDFS 主要用於存儲海量大文件,特別是那些需要進行大數據分析的文件。

作爲 Hadoop 的存儲層,支持 MapReduce、Spark、Hive 等大數據處理框架。

CephFS

CephFS 是 Ceph 提供的 POSIX 兼容的分佈式文件系統,其架構基於 Ceph 的統一存儲平臺構建。

整體架構,如下圖所示:

主要包含,如下組件:

RADOS(底層對象存儲)

Ceph 的底層存儲引擎,負責所有數據的存儲、複製、故障恢復和一致性保證。

所有實際的數據、和元數據塊都存儲在 RADOS 對象中,由 OSD 守護進程負責管理

OSD

Ceph 集羣中存儲數據的基本單元,每個 OSD 管理一個本地磁盤上的對象集合。

OSD 負責數據讀寫、副本管理、數據恢復等。

MDS(元數據服務器)

存儲和管理 CephFS 的元數據(文件和目錄結構、權限等)。

MDS 不存儲實際的文件數據,只管理文件的元信息。

與 HDFS 不同,CephFS 更強調通用性,能更好地支持各種大小的文件和更頻繁的修改操作。

GFS

GFS 是 Google 爲大規模數據處理而設計的分佈式文件系統,其架構影響了 Hadoop HDFS 的設計。

整體架構,如下圖所示:

Master(主節點)

存儲元數據,如文件目錄、塊映射關係。

ChunkServer(塊服務器)

實際存儲數據塊(Chunk),每個塊默認大小爲 64MB,並有多個副本。

Client

與 Master 通信獲取元信息,再與 ChunkServer 直接通信處理數據。

GFS 設計之初的目標是支持 Google 內部的大規模、高吞吐量、追加寫入的批處理應用。

比如:Web 爬蟲、索引構建等,它爲大數據量、低成本、高可靠性的存儲提供瞭解決方案。

TFS

TFS 是阿里巴巴,針對其電商業務特點(特別是圖片、音視頻等海量小文件存儲和訪問),而開發的分佈式文件系統。

TFS 也採用了 Master-Slave 架構,並在此基礎上進行了優化:

比如:淘寶圖片,商品圖片、用戶頭像… 等等,被廣泛部署在阿里系的多個核心業務中。

TFS 的核心作用是:解決海量小文件的存儲、和高併發訪問問題。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/yq-ILsXDY97CDilPcsxkhA