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

141 阅读4分钟

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

存储系统和数据库系统往往是后端服务的最后一环,提供数据存储、查询能力。本课程介绍了存储系统、数据库系统的特点,解析多个主流产品,分享存储和数据库结合新技术演进的方向

1、经典案例

1.1 数据的产生

用户操作使数据从无到有地产生,向后端服务器传输

1.2 数据的流动

设备->后端服务器->数据库->其他系统

1.3 数据的持久化

检验数据的合法性(是否已存在)->修改内存(用高效的数据结构组织数据)->写入存储介质(以寿命&性能友好的方式写入硬件)

1.4 潜在的问题

如何保证数据不丢、多人同时修改问题、可以使用其他存储系统吗、数据库只能处理结构化数据、操作数据库的方式及使用的编程语言

2、存储&数据库简介

2.1 存储系统

2.1.1 系统概览

存储系统:提供读写、控制类接口,能安全有效地把数据持久化的软件

2.1.2 系统特点

性能敏感、容易受硬件影响、代码既“简单”又“复杂”

2.1.3 存储器层级结构

2.1.4 数据从应用到存储介质

缓存、拷贝、硬件设备需要有统一的接入层

2.1.5 RAID技术

RAID(Redundant Array of Inexpensive Disks):单机存储系统做到高性能/高性价比/高可靠性

为什么RAID?

多块小容量磁盘价格低、多块磁盘的并发写入性能高、单块磁盘的容错能力有限

2.2 数据库

关系型数据库、非关系型数据库

2.2.1 概览

关系(Relation)

2.2.2 关系型数据库特点

是存储系统,结构化数据友好、支持事务(ACID)、支持复杂查询语言(SQL)

2.2.3 非关系型数据库特点

是存储系统,半结构化数据友好、可能支持事务、可能支持复杂查询语言

2.3 数据库对于经典存储

2.3.1 结构化数据管理

数据写入关系型数据库以表形式管理、写入文件自行定义管理结构

2.3.2 事务能力

Atomicity:事务内的操作要么全做,要么不做

Consistency:事务执行前后,数据状态是一致的

Isolation:可以隔离多个并发事务,避免影响

Durability:事务一旦提交成功,保证持久性

2.3.3 复杂查询能力

SQL灵活简洁

2.4 数据库使用方式

SQL

3、主流产品剖析

3.1 单机存储

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

3.1.1 本地文件系统

Index Node:记录元数据 Directory Entry:记录文件名

3.1.2 key-value存储

LSM-Tree,追求写入性能

3.2 分布式存储

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

3.2.1 HDFS

Management Node->Storage Node

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

3.2.2 Ceph

一切皆对象、数据写入采用主备复制模型、数据分布模型采用CRUSH算法(权重+HASH+随机抽签)

3.3 单机关系型数据库

Oracle、MySQL、PostgreSQL

Memory->HardDisk Temp data->Redo Log Files & Others

3.4 单机非关系型数据库

MongoDB、Redis、Elasticsearch

交互方式各不相同、没有关系约束schema相对灵活、支持SQL和事务

3.4.1 Elasticsearch使用案例

能做到“模糊搜索”,还能自动算出关联程度

3.5 分布式数据库

存储节点池化,动态扩缩容

3.5.1 解决弹性问题

CPU资源紧张->扩容,访问新数据库->缩容,访问新数据库

3.5.2 解决性价比问题

要写500GB数据,容量不够,但是CPU利用率仅20%->扩容,满足了容量需要,但是CPU浪费更严重->使用共享存储池,不扩CPU

3.5.3 More to Do

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

4、新技术演进

软件架构变更、AI增强、新硬件革命

4.1 SPDK

Bypass OS kernel已经成为一种趋势

SPDK:直接从用户态访问磁盘、SPDK poller可以绑定特定的CPU核不断轮询、无锁数据结构

4.2 AI&Storage

4.3 高性能软件

RDMA网络、Persistent Memory、可编程交换机、CPU/GPU/DPU

课后个人总结

存储系统和数据库系统往往是后端服务的最后一环,提供数据存储、查询能力。通过本课程我了解了存储系统、数据库系统的特点,还有多个主流产品以及存储和数据库结合新技术演进的方向