这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记
为什么需要对象存储
- 抖音作为现象级的短视频软件,每一分每一秒都在产生大量数据,对数据存储容量大小是以PB乃至EB为计的
- 传统的分布式文件系统对视频,图片等资源支持较差
- 传统分布式文件系统开发,维护较繁杂
TOS的优势
- 海量: 支持>EB海量存储 对象数量无限制
- 易用: Restful HTTP接口,开发极简单
云原生,按需申请使用 视频/图片相关生态丰富
- 便宜: 使用普通X86服务器 具备冷热数据分级存储能力,成本更低
适用场景
视频、图片、文本、安装包、备份...
静态数据
TOS字节内部实践
分布式存储=分布式+蛋鸡存储
- 存储均匀分布
- 计算均匀分布
- 压力均匀分布
分布式系统相当于一个蜂群,每个节点负责一小部分数据存储和计算。
- hash/range方式的优劣比较?
- 各Partition如何进行负载均衡
持久度之Replication
数据复制多份,多个副本。 副本放置策略
- 多机架
- 多机房
- 多Region
实现高持久度和强吞吐能力。
- Replication的拷贝方式?
- Replication如何解决一致性问题?
成本解法
Ensure Coding
分割原始数据,计算parity,推断节点宕机并替换
- 冗余编码
- 冗余降低
- 额外计算:额外推导宕机节点
那么
- 当前的EC编码算法有哪些?
- 多机房的EC如何实现?
温冷计算
对于不同需求量的数据使用不同的介质存储
架构细化
- Lifecycle: 温冷转换后台服务
- API: 接入层(stateless
- GC:垃圾回收
- Bucket Meta:(stateless
- Object Meta(stateless
- Storage Engine:对象内容存取任务
高可用解法之拆分降低爆炸半径
首先的方法就是一个集群拆分成多个集群,降低爆炸半径 使用完全镜像的主备bucket,出现问题可以随时切换
未来展望
- 容量治理。处理数据大爆炸
- 成本优化
- 大数据生态
- 稳定性提升