分布式是大型架构的基石,下面我重点详解分布式存储系统架构@mikechen
分布式文件存储
分布式文件存储,是最核心的分布式存储形态,主要面向 文件读写场景。
数据以文件形式存放在分布式节点上,对上层提供统一的文件系统视图。
最典型的代表,就是:HDFS(Hadoop Distributed File System)。
核心架构,如下图所示:
NameNode / Metadata Server:负责文件元数据(路径、大小、位置等)管理。
DataNode / Storage Node:存储实际文件数据块。
适合:海量文件存储、高吞吐量顺序读写、可扩展性好。
分布式对象存储
分布式对象存储:以“对象”为最小管理单元,数据和元数据一起存储。
分布式对象存储,将数据视为一个个独立的“对象”来管理,通过全局唯一的对象标识(ID)访问,常见的实现有:Ceph等。
通常采用去中心化的架构,没有单一的元数据管理节点,所有节点都可以处理请求。
适合:互联网应用、云存储、备份归档、CDN(内容分发网络)等。
尤其适合存储海量的图片、视频、日志等非结构化数据。
分布式块存储
以固定大小的块为单位,提供原始存储设备(类似磁盘分区),由上层文件系统或数据库直接管理。
客户端通过虚拟化层将这些块组合成块设备,提供类似硬盘的接口。
适用于需要高性能、低延迟的数据库、和虚拟机存储,典型实现有Ceph RBD等。
分布式键值存储
以键值对或列族为单位存储,强调低延迟、高并发读写。
典型代表有 Redis(内存 KV)、Cassandra、HBase、Dynamo、TiKV。
数据模型简单: 数据被抽象为 Key
和 Value
,没有复杂的关系或查询。
弹性扩展: 依靠一致性哈希等算法,可以轻松地增加或减少节点,实现数据的自动迁移和负载均衡。