分布式存储系统是大型架构的基石,下面我重点详解分布式存储系统@mikechen
分布式存储系统
分布式存储系统,顾名思义,就是将数据分散地存储:在多台独立的计算机、或服务器上。
这些独立的计算机通过网络连接起来,作为一个整体对外提供存储服务。
分布式存储,数据分散在多个地方,就像有很多个小型图书馆,每个图书馆都收藏一部分书。
如下图所示:
分布式存储,系统将数据切片(Sharding)、或复制(Replication)到不同的存储节点上。
并通过一个分布式文件系统或分布式数据库来管理这些数据,使得用户感觉像是在操作一个单一的、巨大的存储设备。
分布式存储方案
常见的分布式存储系统,包含:HDFS、CephFS、GlusterFS、TFS…等等。
HDFS 是 Hadoop 生态系统的分布式文件系统,设计用于存储大规模数据,支持高吞吐量的顺序读写,适合批处理任务。
它采用主从架构,NameNode 管理元数据,DataNode 存储实际数据。
如下图所示:
优点:
支持超大文件存储(TB/PB级)。
高容错性,自动多副本备份及快速故障恢复。
流式数据访问模式,适合批量处理。
简化一致性模型,一次写入多次读取,保证数据一致性。
可构建在廉价硬件上,降低成本。
缺点:
不适合低延迟访问,响应时间相对较长。
大量小文件对NameNode内存压力大,性能下降。
不支持强事务管理。
CephFS
Ceph是一个开源、自我修复、自我管理的分布式存储系统,支持对象存储、块存储和文件存储三种模式。
整体架构,如下图所示:
优点:
高扩展性,支持动态添加/移除节点。
高可靠性,多副本和纠删码保障数据安全。
支持多协议,满足多样化存储需求。
缺点:
部署和管理复杂,技术门槛较高。
硬件需求高,初期投入较大。
学习曲线陡峭,运维难度较大。
GFS
GlusterFS是基于对象的开源分布式文件系统,完全抽象于已有文件系统之上。
实现弹性哈希算法替代元数据服务,适合云存储和大规模存储需求。
优点:
架构简单: 无中心节点,易于部署和管理,没有单点故障。
成本低廉: 可以运行在普通商用硬件上。
缺点:
性能瓶颈: 在处理大量小文件时性能表现不佳。
不适合高并发写入: 对于多个客户端同时对一个文件进行写入操作时,性能可能会受到影响。
TFS
TFS 是由阿里巴巴(淘宝)自主研发的分布式文件系统,专为海量小文件存储而设计。
它的设计初衷是为了解决淘宝网图片、商品详情等海量小文件的存储和访问问题。
高效处理小文件,这是它最大的优势。
能够非常高效地管理和访问海量的小文件,解决了 HDFS 等系统在这方面的痛点。
但是,不适合大文件,它的设计是为小文件优化的,对于大文件的读写性能并不突出。