分布式存储最全详解(图文全面总结)

分布式存储最全详解(图文全面总结)

什么是分布式存储?

分布式存储是一种数据存储系统,它将数据存储在多个节点上,这些节点可以分布在不同的地理位置或网络中。

分布式存储系统通常采用复制、分片、分布式文件系统、或对象存储等技术,来实现数据的存储和管理。

 

分布式存储的特点

在分布式存储存储中,数据通常被分成多个部分,并且每个部分被存储在不同的节点上,这些节点之间可能通过网络连接。

分布式存储,主要有如下4大特点:

分布式存储最全详解(图文全面总结)

1.可靠性高

通过数据的冗余备份、和故障转移机制,分布式存储系统能够保证数据的高可靠性、和持续可用性。

2.扩展性强

分布式存储系统,可以通过增加节点、或存储设备的方式进行水平扩展,以满足不断增长的数据存储需求。

3.性能优良

通过分布式存储,有一个很大特点,就是数据的:读和写,性能都需要很高。

4.数据冗余

通过多份副本技术防止数据丢失,可以在节点故障时自动进行数据修复和重新分配。

 

分布式存储架构技术

常见的分布式存储实现技术,有:HDFS、Ceph、GFS、Switf等。

1.HDFS

HDFS,全称是Hadoop Distributed File System,即Hadoop分布式文件系统。

HDFS是Apache Hadoop生态系统中的一部分,它是一个分布式文件系统,旨在处理大规模数据的存储和处理。

HDFS将数据分成多个块,并在集群中的多个节点上复制存储,当某个节点发生故障时,系统会自动将块复制到其他节点上,保证数据的可靠性和可用性。

HDFS的架构,包括:两个主要组件:NameNode和DataNode

如下图所示:

分布式存储最全详解(图文全面总结)

1.NameNode

NameNode是HDFS的主节点,负责:管理文件系统的命名空间、和数据块的映射关系。

以及,维护文件系统的元数据(如:文件名、文件大小、文件权限等),并处理客户端的文件操作请求。

 

2.DataNode

DataNode是HDFS的工作节点,负责存储数据块和执行数据的读写操作。

每个DataNode都存储一部分数据块,并定期向NameNode报告数据块的存储状态。

整个流程,如下:

  1. 客户端向NameNode发送文件写入请求。
  2. NameNode接收到请求后,确定数据块的存储位置,并将这些信息返回给客户端。
  3. 客户端根据返回的信息,将文件分割成数据块,并直接将数据块发送到对应的DataNode。
  4. 每个DataNode接收到数据块后,将其写入本地文件系统中,并向NameNode发送写入成功的确认信息。
  5. NameNode接收到足够数量的写入确认后,将文件的元数据(如:文件名、文件路径、数据块的存储位置等)持久化到磁盘中。

 

2.Ceph

Ceph是一个开源的分布式存储系统,采用了分布式对象存储、块存储和文件系统的方式,可以在大规模集群中存储和管理数据。

Ceph核心组件,如下图所示:

分布式存储最全详解(图文全面总结)

Ceph的核心组件包括:

  • Ceph OSD(Object Storage Daemon): 负责存储数据的实际节点,每个OSD节点负责管理一部分数据,并处理数据的读写请求。
  • Ceph Monitor: 监控整个集群的状态和健康状况,负责维护集群的元数据信息。
  • Ceph Manager: 管理和监控Ceph集群的状态、性能指标等信息,并提供管理界面和RESTful API。
  • RADOS(Reliable Autonomic Distributed Object Store): RADOS是Ceph的底层存储系统,提供了对象存储和块存储的功能。
  • Ceph OSD Map: 记录了集群中每个OSD的状态和健康情况,以及数据的分布情况等信息。

Ceph采用分布式架构,数据存储在整个集群的多个节点上,提供高可靠性和可扩展性。

 

3.FastDFS

FastDFS是一个开源的轻量级分布式文件系统,用于存储大型文件和文件对象。

FastDFS架构,如下图所示:

分布式存储最全详解(图文全面总结)

包含,如下组件:

  1. Tracker服务器: Tracker服务器负责管理整个FastDFS集群的状态信息,包括存储节点的状态、文件的位置信息等。
  2. Storage服务器: Storage服务器负责实际的文件存储和读取操作,每个Storage服务器都包含了多个存储卷(Volume)。
  3. Client端: 客户端通过FastDFS提供的API向Tracker服务器发送文件上传、下载、删除等请求,客户端直接与存储节点通信进行文件操作。

 

4.GFS

GFS(Google File System)是谷歌开发的一种分布式文件系统,用于存储大规模数据。

GFS架构,如下图所示:

分布式存储最全详解(图文全面总结)

包含,如下组件:

  1. Master节点: GFS集群中有一个称为Master的中心节点,负责管理整个文件系统的元数据信息,包括:文件名、文件路径、数据块的存储位置等。
  2. Chunk服务器: GFS集群中的存储节点称为Chunk服务器,负责存储实际的数据块,每个数据块(Chunk)通常具有固定的大小,例如:64MB。
  3. Client端: 客户端通过GFS提供的API向Master发送文件读写请求,并与Chunk服务器直接通信进行数据读写操作。

 

分布式存储应用场景

分布式存储主要包含如下应用场景:

  1. 大数据存储与处理: 分布式存储系统,能够满足大数据存储和处理的需求,比如:日志存储、数据分析等。
  2. 云计算平台: 云服务提供商,利用分布式存储技术,提供云存储服务,满足用户对存储资源的需求。
  3. 分布式应用程序: 分布式存储系统,为分布式应用程序提供数据存储和共享服务,如:分布式文件共享等。
  4. 物联网应用: 物联网设备产生的海量数据需要进行存储和分析,分布式存储系统可以满足物联网应用的数据存储需求。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    暂无讨论,说说你的看法吧