分布式存储最全详解(定义特点及架构应用)

分布式存储最全详解(定义特点及架构应用)-mikechen

什么是分布式存储?

分布式存储技术是一种新型的数据处理技术,主要是将数据分布存储,同时在分布存储的数据之间构建联系,从而构建出一个虚拟的存储设备。

随着互联网技术的发展,分布式存储技术的应用越来越广泛,分布式存储技术充分的利用了网络的优势,把网络上相对比较零散的存储空间虚拟为一个整体。

 

分布式存储的特点

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

分布式存储最全详解(定义特点及架构应用)-mikechen

1.可靠性高

通过冗余副本和数据分布保证数据的完整性和可用性。

2.扩展性强

可以根据存储需求动态添加或删除节点。

3.性能优良

通过分布式计算和数据分布,可以提高读写性能。

4.数据冗余

通过多份副本技术防止数据丢失。

5.成本效益

比单一存储系统更具成本效益,因为可以使用较低成本的服务器组成分布式存储系统集群。

 

分布式存储架构技术

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

1.中间控制节点架构(HDFS)

HDFS主要用于大数据的存储场景,是 Hadoop 大数据架构中的存储组件。

HDFS 是 Hadoop 中存储数据的基石,存储着所有的数据,能够部署在大规模廉价的集群上,极大地降低了部署成本。

在该系统的整个架构中将服务器分为两种类型,一种名为namenode,这种类型的节点负责管理管理数据(元数据),另外一种名为datanode,这种类型的服务器负责实际数据的管理。

如下图所示:

分布式存储最全详解(定义特点及架构应用)-mikechen

1)客户端向NameNode发起请求,获取元数据信息,这些元数据信息包括命名空间、及 DataNode 的位置信息等;

2)NameNode 将元数据信息返回给客户端;

3)客户端获取到元数据信息后,到相应的 DataNode 上读/写数据;

4)相关联的 DataNode 之间会相互复制数据,以达到 DataNode 副本数的要求;

5)DataNode 会定期向 NameNode 发送心跳信息,将自身节点的状态信息报告给 NameNode;

2.完全无中心架构—计算模式(Ceph)

Ceph是当前非常流行的开源分布式存储系统,具有高扩展性、高性能、高可靠性等优点。

在该架构中与HDFS不同的地方在于该架构中没有中心节点,客户端是通过一个设备映射关系计算出来其写入数据的位置。

Ceph核心组件

分布式存储最全详解(定义特点及架构应用)-mikechen

OSD:OSD是负责物理存储的进程,一块磁盘启动一个OSD进程,主要功能是存储数据、复制数据、平衡数据、恢复数据等。

PG:是Ceph中引入了PG(placement group)的概念,PG是一个虚拟的概念而已。

Pool:Pool是存储对象的逻辑分区,它规定了数据冗余的类型和对应的副本分布策略,支持两种类型:副本(replicated)和 纠删码( Erasure Code)。

三者之间的关系:

  1. 一个Pool里有很多PG;
  2. 一个PG里包含一堆对象,一个对象只能属于一个PG;
  3. PG有主从之分,一个PG分布在不同的OSD上(针对三副本类型);

Ceph包含以下几种存储类型:

  • 块存储(rbd);
  • 对象存储(RADOS Gateway);
  • 文件系统(cephfs);

 

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

FastDFS架构,如下图所示:

分布式存储最全详解(定义特点及架构应用)-mikechen

包含,如下组件:

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

 

4.GFS

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

分布式存储最全详解(定义特点及架构应用)-mikechen

GFS采用分布式架构,将数据存储在多个存储节点上,以提供高可靠性和可扩展性。

GFS设计用于存储大型文件,例如:谷歌的Web索引等大规模数据集。

 

5.完全无中心架构—一致性哈希(Swift)

Swift是OpenStack开源云计算项目的子项目之一,被称为对象存储,支持大量数据存储。

与Ceph的通过计算方式获得数据位置的方式不同,Swift是通过一致性哈希的方式获得数据位置。

分布式存储应用场景

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

1.大数据处理

分布式存储可以方便地存储和处理大量数据。

 

2.云存储

分布式存储用于构建公有云存储服务,例如 Amazon S3 和 Microsoft Azure Blob 存储。

 

3.数据库

分布式数据库系统,如 Cassandra 和 MongoDB,可以用于存储高性能和高可用性的数据。

 

4.分布式文件系统

分布式文件系统,如 Hadoop HDFS,用于存储大量文件和数据。

 

5.网络存储

分布式存储用于实现网络存储,多用于提供文件和对象存储。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

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

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

评论交流
    说说你的看法