对象存储 | 青训营笔记

116 阅读2分钟

对象存储的优势

分布式存储选型

分布式存储也有分布式文件系统和对象存储,如何选择?

可以从海量、易用、便宜三个角度考虑:

  • 分布式文件系统HDFS的文件数量受Name Node限制,而对象存储的对象数量无限制

  • HDFS提供伪POSIX文件接口,开发略复杂;非云原生,搭建维护麻烦;视频/图片相关生态接入复杂。而对象存储提供Restful HTTP接口,开发简单;云原生;视频/图片相关生态丰富。

  • HDFS使用普通x86服务器,成本较低;对象存储在此基础上还具备冷热数据分级存储能力,成本更低。

适用场景

  • 适合:静态、immutable(视频,图片,文本,安装包、备份、前端js文件)

  • 不适合:结构化、mutable(关系型数据:商品订单;KV:缓存记录;随机写:在线编辑文件;append写:大数据计算的中间结果;频繁更新)

对象存储的用法

Restful接口

  • Put 上传视频

  • Get 下载视频

  • Head 查看视频元信息

  • Delete 删除视频

MultiUpload接口

弱网环境,总是上传到99%就卡住,可以通过MultiUpload解决此场景:

  • InitUpload

  • UploadPart

  • CompleteUpload

ListPrefix接口

查看桶里面有哪些对象时,可以采用分页列举接口:ListPrefix

开发一个对象存储

经典业务场景

容量型:

  • 代表业务

    • 片源:用户上传源视频

    • 转码:源文件转码后的视频

  • 特点:海量容量、海量吞吐、高持久化

  • 挑战

    • 可拓展性:容量、吞吐可线性拓展

    • 成本 & 持久度:单位存储成本足够低

QPS型:

  • 代表业务

    • 抽帧:源视频审核用抽帧
  • 特点:QPS极高

  • 挑战

    • 可拓展性:QPS可线性拓展

实践

  • 可拓展性解法 - Partition

    • partition logic:hash、range
  • 持久度解法 - Replication

    • 带来高持久度和强吞吐能力(多个副本可以提供服务)

    • 但也需要拷贝方式和一致性问题

  • 成本解法

    • Erasure Code:可达到和多副本一样的持久度

      • 低冗余度:成本较单纯的多副本更低

      • 额外计算:增加了额外的编码计算步骤

    • 温冷转换:数据是有温度的,将冷数据转移到性能更差但更廉价的存储介质

  • 高可用解法

    • 拆分降低爆炸半径

    • 镜像灾备,增量双向同步

架构细化

  • API:接入层

  • Bucket Meta:Bucket元信息服务

  • Object Meta:对象元信息服务

  • Distributed KV:Range Partition的分布式KV,用于持久化对象元数据

  • Storage Engine:对象内容存取服务

  • Distributed Storage Pool:分布式存储池,三副本 或 EC存储

  • Lifecycle:温冷转换后台服务

  • GC:垃圾回收后台服务