一.存储&数据库的简介
1.存储系统一系统概览
存储系统是一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件。
2.存储系统一系统特点
作为后端软件的底座,性能敏感
存储系统软件架构,容易受硬件影响
存储系统代码,既“简单”又 “复杂”
3.存储系统一数据怎幺从应用到存储介质
「缓存」很重要,贯穿整个存偖体系
「拷贝」很昂贵.应该尽量減少
硬件设备五花八门,需要有抽象统一的接入层
4.存储系统- RAID技术
RAID出现的背景:
单块大容量磁盘的价格>多块小容量磁盘
单块磁盘的写入性能<多块磁盘的并发写入性能
单块磁盘的容错能力有限,不够安全
容错能力强
RAID 0
多块磁盘简单组合
数据条带化存储,提高磁盘带宽
没有额外的容错设计
RAID 1
一块磁盘对应一块额外镜像盘
真实空间利用率仅50%
容错能力强
RAID 0+1
结合了RAID 0和RAID 1
真实空间利用率仅50%
容错能力强,写入带宽好
5.数据库
数据库可分为关系数据库和非关系数据库。
数据库一关系型数据库特点
关系型数据库是存储系統,但是在存储之外.又发展出其他能力
结化数据友好
支持事务(ACID)
支持复杂查询悟言
非关系型数据庠也是存储系統,但是一般不要求严格的结构化
半结构化数据友好
可能支持事务(ACID)
可能支持复杂查询语言
数据库vs経典存储一结构化数据管理
写入关系型数据庠,以表形式管理
写入文件,自行定义管理结构
二.主流产品刨析
1.1单机存储一概览
单机存储=单个计算机节点上的存储软件系统,一般不涉及网络交互
有本地文件系统,key-value存储
1.2单机存储一本地文件系统
文件系统的管理单元:文件
文件系统接口:文件系统繁多,如Ext2/3/4, sysfs, roots等,但都遵循VFS的统一 抽象接口Linux文件系统的两大数据结构: Index Node & Directory Entry
1.3单机存储一key-value存储
常见使用方式: put(k, v) & get(k)
常见数据结构: LSM-Tree, 某种程度上牺牲读性能,追求写入性能
拳头产品: RocksDB
2.1分布式存储一概览
分布式存储=在单机存储基础上实现了分布式协议,涉及大量网络交互
有分布式文件系统,分布式对象存储
2.2分布式存储一HDFS
时代背景:专用的高级硬件很贵,同时数据存量很大,要求超高吞吐
HDFS核心特点:
支持海量数据存储
高容错性
弱POSIX语义
使用普通x86服务器,性价比高
2.3分布式存储一Ceph
Ceph的核心特点:
一套系统支持对象接口、块接口、文件接口,但是一切皆对象
数据写入采用主备复制模型
数据分布模型采用CRUSH算法