分布式存儲系統詳解(圖文全面總結)
分布式存儲
分布式存儲:是一種將數據分散存儲在多個獨立的物理設備上的技術。
通過將數據分散到多個節點上,能夠提供高可用性、高可靠性、可擴展性和高性能的存儲服務。
分布式存儲,適用于大數據存儲、云存儲、CDN、備份與災難恢復...等多個領域。
比如:日志數據、傳感器數據、Web 日志、大型數據庫...等。
分布式存儲系統
常見的分布式存儲實現技術,有GFS、HDFS、Ceph...等。
GFS
GFS(Google File System),是 Google 為了滿足其大規模分布式計算需求,而設計的分布式文件系統。
GFS 設計的核心目標之一是處理大規模的文件和數據集,能夠支持大吞吐量的數據讀寫。
GFS 是一個分布式系統,采用主從架構。
圖片
Master節點
Master 是 GFS 的核心組件,負責維護文件系統的元數據。它維護著以下信息:
- 文件到塊的映射表(File-to-block mapping)。
- 每個塊的位置(Block location)。
- 文件的元數據(如大小、訪問權限等)。
ChunkServer節點
存儲文件塊,負責數據的讀寫。
客戶端
提供文件系統的接口,與Master和ChunkServer交互。
在 Google 的生產環境中,GFS 主要用于存儲大文件(通常是幾百 MB 到幾 GB 的文件),并且能處理文件大小不可預測的情況。
HDFS
HDFS 采用了類似 GFS 的設計,旨在存儲大規模的文件數據,特別適用于大數據處理和分析任務。
HDFS 適用于存儲大規模數據,尤其是對大數據處理框架(如 MapReduce)中的數據存儲與訪問非常高效。
HDFS 包含兩個主要組件:
圖片
NameNode
負責管理文件系統的元數據,包括文件和目錄的層次結構,以及文件塊的位置。
DataNode
實際存儲數據塊,負責執行數據的讀取與寫入操作。
HDFS 支持對大文件(通常是 GB 、或 TB 級別),進行高效的存儲和處理,數據塊的大小默認為 128MB。
Ceph
Ceph作為一款成熟的分布式存儲系統,在性能、可靠性、可擴展性等方面表現出色。
隨著云計算、大數據等技術的不斷發展,Ceph的應用場景也將越來越廣泛。
圖片
Ceph可以同時扮演對象存儲(RADOS)、塊存儲(RBD)和文件系統(CephFS)的角色,滿足各種應用場景的需求。
Ceph 的對象存儲模型基于 CRUSH(Controlled Replication Under Scalable Hashing)算法,進行數據分布,具有很好的可擴展性。
CRUSH算法能夠感知集群中的故障域,確保數據的高可用性。
FastDFS
FastDFS, 是一個開源的輕量級分布式文件系統,專注于高效的文件存儲、文件分發以及高可用性
圖片
FastDFS 的部署與維護相對簡單,適合快速搭建、和使用。
FastDFS 采用輕量級設計,專注于文件存儲和高效訪問,尤其適合存儲大量圖片、視頻等大文件。
盡管分布式存儲技術已經廣泛應用,但它依然面臨著數據一致性、存儲成本、網絡延遲。。。等挑戰,需要不斷優化和創新。