主流储存产品剖析 | 青训营笔记

108 阅读3分钟

3.主流产品剖析

单机存储 = 单个计算机节点上的存储软件系统,一般不涉及网络交互

3.1 单机存储

本地文件系统

image.png

key-value存储

key作为索引,value就是对应的值 (就像hashMap) image.png

3.2 分布式存储

分布式存储 = 在单机存储基础上实现了分布式协议,涉及大量网络交互

HDFS

时代背景:专用的高级硬件很贵,同时数据存量很大,要求超高吞吐

HDFS核心特点:

  • 支持海量数据存储
  • 高容错性:由于故障率不如高级硬件,所以当个别硬件出问题了要保证还能正常运行。
  • 弱POSIX语义
  • 使用普通x86服务器,性价比高

架构图:

image.png

Management Node作为管控面,保存的是系统数据存储的拓扑,读数据时先跟NameNode交互,找到数据存放的位置,再去Storage Node取数据。

HDFS上发展出的计算体系:让数据和计算逻辑挨得近些,甚至直接在数据存放的节点上做计算,这个计算体系就把它推到DataNode上去做计算,减少DataNode的移动,通过网络来交互,提高效率。

Ceph

Ceph的核心特点:

  • 一套系统支持对象接口、块接口、文件接口,但是一切皆对象
  • 数据写入采用主备复制模型:先写到主结点,再去做链状冗余复制
  • 数据分布模型采用CRUSH算法 (数据分布模型是指对于写入到数据系统往往分成多个副本进行冗余存储来保证可靠性,而这几个副本如何在物理服务器上去存储就需要一定的分布模型,分布算法)

架构图:

image.png

image.png

3.3 单机关系型数据库

image.png

内存和磁盘: image.png redo log 文件存操作日志

3.4 单机非关系型数据库

非关系型数据库交互方式各不相同

MongoDB、 Redis 和 Elasticsearch

image.png

各自的特点:

image.png

实际应用举例:(以Elasticsearch为例)

image.png

发布内容:数据库将帖子信息用json格式各个字段存储下来。

查询信息:模糊匹配,发起一个包含查询关键词的query,发给Elasticsearch,进行查询然后返回结果。 (传统的关系型数据库默认情况下无法做到模糊查询)。

3.5 分布式数据库

为解决单机型数据库的问题 : 容量,弹性,

  1. 容量问题: 单机型数据库通过本地文件提供的文件接口来访问存储底层存储介质,但是可挂载的磁盘始终有限。 通过池化技术,把存储介质做成存储池(由许多物理或虚拟机组成),当存储池达到的使用达到一定阈值,存储池软件会自动加入新的存储节点,对database透明(感受不到)。

image.png

  1. 弹性问题:(扩缩容导致的容量问题)

也可以用池化技术来解决。

image.png

  1. 性价比:

image.png

  1. 待解决的问题

现在单机和分布式都只支持单写,不支持多用户同时写入。

存储空间可以扩容,那么内存能否同样用相同的技术继续扩容?

分布式事务的算法和分布式模型的优化。

image.png

写在最后

呜呜呜,啥也不懂🤯

屏幕截图 2022-12-30 004700.png