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

84 阅读1分钟

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

存储系统

一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,性能敏感,软件架构容易受硬件影响。

image.png 存储链路上缓存很重要,拷贝很昂贵,硬件多样需要有抽象统一的接入层

RAID技术

Redundant Array of inexpensive Disks

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

数据库系统

关系型数据库 vs 非关系型数据库

关系型数据库是存储系统,首先对结构化数据友好,支持事务acid,支持复杂查询语言;非关系型数据库也是存储系统,对半结构化数据友好,可能支持事务,可能支持复杂查询语言

主流产品剖析

单机存储

单机存储 = 单个计算机中的存储软件系统,有本地文件系统和本地kv系统。

文件系统的管理单元:文件,都遵循vfs的统一抽象接口。Index Node记录文件元数据,如id、大小、权限、磁盘文章等,属于文件的唯一标识,会被存储到磁盘上;Directory Entry,记录文件名,inode指针,层级关系,dentry是内存结构,与inode的关系是N:1

k-v存储,常见数据结果LSM-Tree,追求写入性能,RocksDB

分布式存储-HDFS

HDFS核心特点:支持海量数据存储,高容错性,弱POXIS语义,使用普通的x86服务器,性价比高

分布式存储——ceph(万金油,源码可读)

ceph核心特点:一套系统支持对象接口、块接口、文件接口,一切皆对象;数据写入采用主备复制模型,数据分布模型采用CRUSH算法

单机型数据库

Oracle商用无敌,开源mysql和postgreSql称霸 Query Engine——负责解析query,生成查询计划,txn manager——负责事务并发管理;Lock Manager——负责锁相关的策略;Storage Engine——负责组织内存/磁盘数据结果;Replication——负责主备同步;关键内存数据结构,B-树,B+-树,LRU list;关键磁盘数据结果,WriteAheadLog、Page

非关系型数据库:MongoDb、Redis、Elasticsearch三足鼎立。

ES:面向文档存储,可序列化weijson,支持嵌套,存储index,index=文档的集合,粗糙和构建索引能力依赖lucene引擎(源码可读)

MongoDB:面向温江存储,存在[collection],支持事务,以来wiredTiger引擎

Redis:高性能,数据结构丰富

分布式数据库

容量问题:单点容量有限,受硬件限制——>存储节点池化,动态扩缩容

弹性问题

新技术

SPDK?AI Sorange?高性能硬件:RDMA网络,persistent Memory,可编程交换机,cpu/gpu/dpu