分布式文件存储详解(4大主流存储架构)

分布式文件存储是大型架构的基石,下面我重点详解分布式文件存储@mikechen

HDFS

HDFS 是 Apache Hadoop 项目的核心组件之一,专为大数据批处理而设计。

HDFS 采用主从(Master/Slave)架构,如下图所示:

分布式文件存储详解(4大主流存储架构)-mikechen

 

NameNode(主节点): 负责管理文件系统的元数据(metadata)。

例如:文件目录结构、文件与数据块…等等,它不存储实际数据。

DataNode(从节点): 负责存储实际的数据块,数据会被切分成固定大小(通常为 128MB 或 256MB)的数据块。

优点:

高吞吐:适合大文件的顺序读写。

Hadoop 生态紧密结合(MapReduce、Hive、Spark 等)。

缺点:

不支持低延迟访问(比如随机小文件读写性能差)。

不适合小文件存储(元数据过载)。

应用场景

大数据处理平台(离线计算、日志存储)。

 

CephFS

Ceph 的分布式文件系统组件,采用 CRUSH 算法进行数据分布。

分布式文件存储详解(4大主流存储架构)-mikechen

Ceph 的核心是 CRUSH 算法,它通过哈希计算和映射,将数据对象动态、均匀地分布在集群中的所有存储设备上,实现了高度的去中心化。

OSD (Object Storage Device): 存储数据对象,每个 OSD 通常对应一个物理硬盘。

Monitor: 负责维护集群的状态信息和元数据。

MDS (Metadata Server): 专门负责管理 CephFS 的文件元数据。

工作流程: 客户端与 MDS 交互获取元数据,然后直接与 OSD 交互进行数据读写。

应用场景:云计算(OpenStack 的默认存储 backend)。

 

GFS

GFS,Google 提出的分布式文件系统,HDFS 的灵感来源。

整体架构,如下图所示:

分布式文件存储详解(4大主流存储架构)-mikechen

GFS 同样采用主从(Master/Slave)架构,原理与 HDFS 非常相似。

Master(主节点): 负责管理元数据,包括文件命名空间、访问控制和数据块位置信息。

Chunkserver(从节点): 负责存储实际数据块(称为 Chunk),每个 Chunk 通常为 64MB。每个 Chunk 也有多副本。

工作流程: 客户端先与 Master 交互获取元数据,然后直接与 Chunkserver 进行数据读写。

 

TFS

TFS 是淘宝自主研发的分布式文件系统,专为淘宝海量的图片、商品、交易等小文件存储而设计。

分布式文件存储详解(4大主流存储架构)-mikechen

TFS 同样采用主从(Master/Slave)架构,但其设计核心是针对小文件进行优化。

特别适合:商品图片、用户头像、短视频、文档…等场景。

评论交流
    说说你的看法