这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天
概念
存储系统和数据库系统往往是后端服务的最后一环,提供数据存储、查询能力。本课程会先用模拟案例导入,向学员介绍存储系统、数据库系统的特点,然后解析多个主流产品,最后分享存储和数据库结合新技术演进的方向。
经典案例
一条数据从产生,到数据流动,最后持久化的全生命周期
数据产生
例:用户注册
数据流动
用户 → 后端服务器 → 数据库 → 存储系统或非存储系统
数据持久化
- 校验数据的合法性
- 修改内存
- 写入存储介质
潜在问题
- 如何保证数据不丢
- 处理多人修改
分类
单机存储
单机存储 - 单个计算机节点上的存储软件系统,一般不涉及网络交互
本地文件系统:
文件系统的管理单元是文件
文件系统繁多,但遵循VFS的统一抽象接口
分布式存储
在单机存储基础上实现了分布式协议,涉及到了大量的网络交互
HDFS
特点:
- 支持海量数据存储
- 高容错性
- 弱POSIX语义
- 使用普通x86服务器,性价比高
Ceph
特点:
一套系统支持对象接口,块接口,文件接口,但是一切皆是对象
数据写入采用主备复制模型
数据分布模型采用CRUSH算法
RAID技术
RAID出现的背景:
- 单块大容量磁盘的价格>多块小容量磁盘
- 单块磁盘的写入性能<多块磁盘的并发写入性能
- 单块磁盘的容错能力有限,不够安全
数据库
关系型数据库特点:关系型数据库是存储系统,但是在存储之外,又发展出其他能力 非关系型数据库特点:一般不要求严格的结构化
单机存储
Linux文件系统的两大数据结构 Index Node & Directory Entry
3.2 分布式存储
在单机基础上实现了分布式协议,涉及大量的网络交互,分为两部分:分布式文件系统、分布式对象存储。
分布式数据库解决容量问题
提出了存储节点池化,实现动态扩缩容