专业的编程技术博客社区

网站首页 > 博客文章 正文

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

baijin 2024-12-14 10:25:42 博客文章 8 ℃ 0 评论

大家好,我是mikechen。

分布式存储是分布式系统架构的重要组成部分,特别是互联网大厂的图片视频都广泛使用到了,下面我就重点来详解分布式存储@mikechen

本篇已经收纳于mikechen创作的《阿里架构师进阶专题合集》里面。

分布式存储

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

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

分布式存储的特点

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

1.可靠性高

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

2.扩展性强

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

3.性能优良

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

4.数据冗余

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

5.成本效益

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

分布式存储架构技术

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

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

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

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

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

如下图所示:

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

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

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

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

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

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

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

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

Ceph核心组件

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);

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

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

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

分布式存储应用场景

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

1.大数据处理

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

2.云存储

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

3.数据库

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

4.分布式文件系统

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

5.网络存储

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

以上

本篇已经收纳于mikechen创作的《阿里架构师进阶专题合集》里面。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表