带你认识存储的本质 - 状态 | 青训营笔记

98 阅读3分钟

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

今日内容

学习完了青训营课程 后端入门 - 存储与数据库 中的 认识存储与数据库主流存储产品剖析 和 存储与数据库的新技术演进 之后的一些总结。

课程内容

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

1. 经典案例

数据的产生

用户->后端服务器->数据库以及其他系统

数据的持久化

  • 校验数据的合法性
  • 修改内存:用高效的数据结构组织数据
  • 写入存储介质:以寿命&性能友好的方式写入硬件

潜在的问题

  • 数据库怎么保证数据不丢失
  • 数据库怎么处理多人同时修改的问题
  • 为什么用数据库,除了数据库还能存到别的存储系统吗
  • 数据库只能处理结构化数据吗
  • 有哪些操作数据库的方式,要用什么编程语言

2. 存储 & 数据库简介

系统概览

涉及到用户,存储介质,内存,网络

系统特点

  • 性能敏感
  • 容易受硬件影响
  • 既简单又复杂

存储器层级结构

image.png

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

  • 缓存很重要
  • 拷贝很昂贵

RAID 技术

  • 出现的背景 - 单块大容量的价格>多块小容量磁盘的价格 - 单块磁盘的写入性能<多块磁盘的并发写入性能 - 单块磁盘的容错能力有限,不够安全

数据库

  • 关系型数据库
    • 关系=集合=任意元素组成的若干有序偶对,反映了事物之间的关系
    • 关系代数=对关系作运算的抽象查询语句
    • 特点
      • 结构化数据友好
      • 支持事务
      • 支持复杂查询语句
  • 非关系型数据库
    • 特点
      • 半结构化数据友好
      • 可能支持事务
      • 可能支持复杂查询语句

结构化数据管理

事务能力(ACID)

复杂查询能力

3. 主流产品剖析

3.1 单机存储

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

  • 文件系统
  • key-value 存储

3.2 分布式存储

在单机的存储基础上实现分布式协议

  • 分布式文件系统
    • HDFS 特点
      • 支持海量数据存储
      • 高容错性
      • 弱 POSIX 语义
      • 使用 x86 服务器,性价比高
    • Ceph 特点
      • 一套系统支持对象接口、块接口、文件接口,但是一切皆对象
      • 数据写入采用主备复制模型
      • 数据分布模型采用 CRUSH 算法
  • 分布式对象存储

3.3 单机关系型数据库

  • 关系型数据库通用组件
    • Query Engine:负责解析 query,生成查询计划
    • Txn Manager:负责事务并发管理
    • Lock Manager:负责锁相关的策略
    • Storage Engine:负责组织内存/磁盘数据结构
    • Replication:负责主备同步

3.4 单机非关系型数据库

  • 交互方式各不相同
  • scheme 相对灵活
  • 尝试拥有 sql 和事务

3.5 分布式数据库

  • 解决容量问题
    • 单点容量有限,受硬件限制
    • 存储节点池化,动态扩缩容
  • 解决弹性问题
  • 解决性价比问题
  • 单写于多写
  • 从磁盘弹性到内存弹性
  • 分布式事务优化

4. 新技术演进

  • 软件架构变更
  • AI 增强
  • 新硬件革命
    • 存储介质变更
    • 计算单元变更
    • 网路硬件变更

SPDK

AI 的引入和功能