关注△mikechen△,十余年BAT架构经验倾囊相授!
大家好,我是mikechen睿哥。
分布式存储架构是大型架构的必备技能,下面我就全面来详解分布式存储架构@mikechen
分布式存储架构
分布式存储架构,是当今处理海量数据和高并发访问的关键。
它通过将数据分散存储在多台独立的服务器上,并协调它们之间的协作,从而提供远超单机存储的容量、和扩展性。
理解其核心架构原理,是掌握分布式存储技术的基石。
Ceph:无中心存储架构
Ceph 是典型的无中心分布式存储系统,摒弃了中心调度节点,强调自治/与自动化。
不同于HDFS等依赖中心化元数据节点的系统,Ceph从根本上消除了单一瓶颈。
所有存储节点(OSD)都是对等的,它们共同存储数据和元数据。
并通过算法直接计算数据位置,而非查询中央服务器,避免了单点故障。
Ceph整体架构,如下图所示:
CRUSH是Ceph实现无中心化的核心,它是一种智能的数据分布算法。
根据集群拓扑结构、存储设备的权重和副本策略,直接计算出数据对象应存储在哪些OSD上。
OSD ,实际存储数据的基本单元,通常对应一个磁盘。
OSD进程负责数据读写、复制、故障检测和恢复。
HDFS:大数据存储架构
HDFS (Hadoop Distributed File System), 是Apache Hadoop项目的核心,专为大规模批处理和大数据分析而设计。
HDFS采用经典的主从架构,如下图所示:
主要会包含:NameNode (主节点)、DataNode (从节点)两大核心组件。
+---------------------+|Client|+---------------------+|+---------+----------+||+-----------++-------------------+|NameNode|<-->|SecondaryNameNode|+-----------++-------------------+|+----------+-----------+-----------+||||+------++------++------++------+|DataNode||DataNode||DataNode||...|+------++------++------++------+
NameNode (主节点)
NameNode (主节点),是HDFS的“大脑”。
负责管理文件系统的命名空间(目录树、文件属性),以及文件块(Block)到DataNode的映射关系。
所有的元数据都存储在NameNode的内存中,这使得元数据访问速度极快,但也限制了HDFS能管理的文件数量。
为了解决单点故障问题,现代HDFS通过JournalNode实现了NameNode的高可用(Active/Standby模式)。
DataNode (从节点)
负责存储实际的文件数据块,HDFS 的最小存储单位(默认 128MB 或 256MB)。
同一块数据一般保留多个副本(默认 3 份)分布在不同节点。
DataNode定期向NameNode发送心跳和块报告,汇报自己存储的块列表和健康状态。
HDFS采用主从架构,简单清晰,适合大规模分布式部署。
MinIO:轻量级存储架构
MinIO 是一个高性能、轻量级的分布式对象存储系统,S3 兼容。
适合私有云和边缘计算场景,强调简单部署。
与Ceph类似,MinIO没有独立的元数据服务器。
每个MinIO节点都直接存储、和管理其所拥有的数据和元数据。
MinIO的核心优势:在于它实现了Amazon S3协议的API。
这意味着任何针对S3开发的应用程序或工具,无需修改即可与MinIO进行交互。
这种兼容性极大地降低了学习和迁移成本,并使得MinIO能够融入庞大的S3生态系统。
Amazon S3:云对象存储架构
Amazon S3 是云对象存储的标杆产品,提供高可用、高持久、弹性扩展的全托管对象存储服务。
S3的底层是一个极其庞大和复杂的分布式系统,由亚马逊全球范围内数。以万计的服务器、存储设备和网络组件构成。
全球可用、弹性扩展无需人工干预,与 AWS 生态无缝集成(Lambda、Athena、Glue 等)。
可以用于,海量数据的持久化存储(如图像、视频、日志),跨区域容灾、多云备份。。。等等。
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。