分布式存储
分布式存储:是一种将数据分散存储在多个独立的物理设备上的技术。
通过将数据分散到多个节点上,能够提供高可用性、高可靠性、可扩展性和高性能的存储服务。
分布式存储,适用于大数据存储、云存储、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 采用轻量级设计,专注于文件存储和高效访问,尤其适合存储大量图片、视频等大文件。
尽管分布式存储技术已经广泛应用,但它依然面临着数据一致性、存储成本、网络延迟。。。等挑战,需要不断优化和创新。