存储的本质| 青训营笔记

96 阅读4分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天 

本文是对于掘金课程的课程笔记,针对课程内容的一些重难点、本人在学习存储知识时候进行的简单记录。

一、本堂课的重点内容

  1. 经典案例
  2. 存储&数据库简介
  3. 主流产品剖析
  4. 新技术演进

二、详细知识点介绍

经典案例

数据的产生:当小明填写好资料,注册好用户之后,数据便从无到有产生了

数据的流动:一条用户注册数据->后端服务器->数据库->其他系统

数据的持久化:校验数据的合法性->修改内存->写入存储介质

问题:

  • 数据保证不丢?
  • 多人同时修改?
  • 除了数据库别的存储介质?
  • 数据库只能处理结构化数据吗?
  • 哪些操作数据库方式?用什么编程语言?

存储&数据库简介

什么是存储系统?

一个提供了读写、控制接口,能够安全有效地把数据持久化的软件,可以称之为存储系统。

系统特点:

  • 性能敏感
  • 存储系统代码,简单(读写代码简单)又复杂(非IO路径上的各种异常处理复杂)
  • 存储系统软件架构,容易受硬件影响

存储器层级结构

  • 最上层极小容量,极快
  • 最下层大容量,很慢(磁带)

数据怎么从应用到存储介质?

  • 缓存很重要,贯穿整个存储体系
  • 拷贝很昂贵,尽量减少(消耗CPU)

RAID技术:

单机存储系统怎么做到高性能,高性价比,高可靠性?

RAID:Redundant Array of Inexpensive Disks

  • RAID0: 多块磁盘简单组合,没有额外容错设计
  • RAID1:一块磁盘对应一块额外镜像盘,真实空间利用率只有50%,容错能力强
  • RADI0+1:结合RAID0和RAID1,真实空间利用率仍然50%,容错能力强,写入带宽好

数据库和存储系统不一样吗?

  • 关系型数据库:结构化数据友好,支持事务,支持复杂查询语言
  • 非关系型数据库:半结构化数据友好,可能支持事务,可能支持复杂查询语言

关系:反映了事物间的关系 关系代数:对关系作运算的抽象查询语言 SQL:方便人类阅读的关系代数表达形式

数据库 vs 经典存储

  • 写入关系型数据库,以表形式管理
  • 用经典的存储系统,写入文件,自行定义管理结构
  • 数据库支持事务能力(ACID,原子性,一致性,隔离性,持久性)
  • 复杂查询能力

主流产品剖析

  • 单机存储
  • 分布式存储
  • 单机关系数据库
  • 单机非关系型数据库
  • 分布式数据库

单机存储

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

本地文件系统

linux:一切皆文件,两大数据结构index node&directory entry

key-value存储:常见数据结构lsm-tree,拳头产品RocksDB

分布式存储

HDFS:堪称大数据时代的基石

核心特点:

  • 支持海量数据存储
  • 高容错性
  • 弱POSIX语义
  • 使用普通x86服务器,性价比高

Ceph:开源分布式存储系统里的万金油

核心特点:

  • 一切皆对象
  • 采用主备复制模型
  • 数据分布模型采用CRUSH算法

单机数据库

关系型数据库:

商业产品Oracle称王,开源产品MySQL&PostgreSQL称霸

通用组件:

  • Query Engine
  • Txn Manager
  • Lock Manager
  • Storage Engine
  • Replication

非关系型数据库:

MongoDB、Redis、Elasticsearch三足鼎立

分布式数据库

解决容量问题:

  • 单点容量有限,受硬件限制
  • 存储节点池化,动态扩缩容

解决弹性问题:

  • CPU紧张不够用,扩容
  • 缩容,数据无法写入
  • 池化,解决容量问题

解决性价比问题

  • 要写500GB数据,容量不够了,但是CPU里利用率只有20%
  • 扩容,CPU利用率只有10%
  • 使用共享存储池,不需要扩CPU

挑战:

  • 单写 VS 多写
  • 从磁盘弹性到内存弹性
  • 分布式事务优化

新技术演进

  • SPDK:直接从用户态访问磁盘,中断->轮询,无锁数据结构
  • AI&Strorage
  • 高性能硬件

三、课后个人总结

本次课程让我对存储系统和数据库有了进一步了解,也解开了我之前对存储系统和数据库概念的混淆问题。如果要开发项目,存储是绕不开的一步,数据必须持久化,且存储的过程也非常重要,于是针对各种存储问题,本次课程进行了系统性地说明,也介绍了各种数据库及其特性,让人受益匪浅。