TOS对象存储 | 青训营
对象存储
对象存储(Object Storage Service,OSS),也叫基于对象的存储,是一种解决和处理离散单元的方法,可提供基于分布式系统之上的对象形式的数据存储服务。
之前写过文章描述存储系统分类的,主要是单机存储和分布式存储。
海量 | 易用 | 便宜 | |
---|---|---|---|
分布式文件系统HDFS | 支持PB->EB海量存储 文件数量受Name Node限制 |
伪Posix文件接口,开发略复杂 非云原生,搭建维护较麻烦 视频/图片相关生态接入略复杂 |
使用普通X86服务器,成本低 |
对象存储TOS | 支持>EB海量存储 文件数量无限制 |
Restful HTTP接口,开发极简单 云原生,按需申请使用 视频/图片相关生态丰富 |
使用普通X86服务器 具备冷热数据分级存储能力,成本更低 |
Bucket/Object语义
- Bucket:存储对象的桶,可类比一个云上的Map。
- Object:对象,包含如下三个部分
- Key:对象的名字,可类比Map的Key
- Data:对象的内容,例如视频/图片内容
- MetaData:对象的一些元信息,如对象大小,对象Content-Type,也可以存储自定义元信息
HTTP接口
- 任何时间、任何地点、任何互联网设备上传和下载数据
- 支持HTTP协议的各种客户端都可访问
接口速览
- GET:下载对象
- HEAD:查看对象元信息
- PUT:上传对象
- DELETE:删除对象
- ...........
使用对象存储
Restful接口
- PUT:
- 参数: Bucket, Key, 对象内容
- 返回: 成功/失败
- GET :
- 参数: Bucket, Key
- 返回: 对象内容
- HEAD: Lite版GET
- 参数: Bucket, Key
- 返回: 对象元信息,如大小/Content-Type等
- DELETE:
- 参数: Bucket, Key
- 返回: 成功/失败
MultiUpload:
- lnitUpload:
- 参数: Bucket, Key
- 返回: Uploadld
- UploadPart:
- 参数: Uploadld,Partld,Part内容
- 返回: 成功/失败
- CompleteUpload: 参数: Uploadld, Partld Array 返回: 成功/失败
分页列举接口ListPrefix:
- ListPrefix参数:
- prefix: key前缀
- delimiter:分隔符,默认为/
- max-keys :本次分页数量
- start-after:分页起始对象Key
- ListPrefix返回:
- common-prefix:共同前缀
- objects:对象key列表
- isTruncated:是否已经列举完
对象存储实战学习
经典三层架构
- 接入层:接入解析并处理接口请求
- 元信息层:存储对象元信息
- 存储引擎层:存储对象内容
细化
业务有很多,根据不同业务分为容量型的业务和QPS的业务。
首先是容量型的业务:
代表业务
- 片源:用户上传源视频
- 转码:源文件转码后的视频
特点
- 容量:海量,>EB
- 吞吐:海量,>>100GB/S
- 高持久度:用户视频不能丢
挑战
- 可扩展性:容量/吞吐需可线性扩展
- 成本:单位存储成本需要足够低
- 持久度:如何在保证成本的情况下,确保高持久度
其次是基于QPS型的业务:
代表业务
抽帧: 源视频审核用抽帧
特点
QPS: 极高,>>100K/s
挑战
可扩展性: QPS需可线性扩展
可扩展性解法---Partition
分布式存储=分布式+单机存储
分布式
- 存储均匀分布
- 计算均匀分布
- 压力均匀分布
分布式系统相当于一个蜂群,每个节点都负责一小部分数据存储和计算,达到1 1 >=2的效果
Partition(分而治之)
- 分而治之: 不同数据映射至不同Partition分区
- Partition Logic: Hash/Range
可扩展性如何达成
- 数据量增加: 扩容机器新建Partition
- Parition Logic: 新增数据写入映射导向新Partition
持久度解法---Replication
数据单节点存储,一定有较大概率丢失无法找回! !!
复制(Replication) 数据复制多份,即多个副本副本放置策略:
- 多机架: 可抵抗机架级别故障
- 多机房: 可抵抗机房级别故障
- 多Region: 可抵抗Region级别故障
好处:
- 高持久度: 不丢数据
- 强吞吐能力: 多个副本可以提供服务
成本解法---EC
Replication虽然可以解决持久度问题,但是单纯多副本拷贝成本也非常高!
EC (Erasure Coding)冗余编码: 可达到和多副本一样的持久度
特点
- 低冗余度: 成本较单纯多副本低
- 额外计算: 增加了额外的编码计算步骤
成本解法---温冷转换
比较热门的数据放在访问速度快的存储介质上面,特别冷门的视频等可以放到一些不追求访问速度的存储介质上。
架构细化
高可用解法---拆分降低爆炸半径
一个集群拆分成多个集群,有效降低爆炸半径
高可用---粤核酸的启发
高可用---镜像灾备
完全镜像的主备Bucket,出现问题随时切换,真正100%的可用性
增量双向同步
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbcffe
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01