分布式存储HDFS
特点:弱Psix文件系统语义(目录/文件、Append写、无法直接HTTP访问)
对象存储TOS(The Object Storage)
- Bucket/Object数据模型
- Bucket:存储对象的桶,可类比云上的Map
- Object:对象,包含三个部分(Key对象名字、Data对象内容、MetaData对象元信息)
- HTTP接口
- 任何时间、任何地点、任何互联网设备上传和下载数据
- 支持HTTP协议的各种客户端都可访问
- 适用场景:视频、图片、文本、安装包、备份、前端js文件等Immutable的静态数据
- Restful接口请求:{Bucket}/{Object Key}
- PUT:上传,返回成功/失败
- GET:下载,返回对象内容
- HEAD(轻量版GET):查找,返回对象元信息
- DELETE:删除,返回成功/失败
- MultiUpload接口(InitUpload、UploadPart、CompleteUpload):分而治之、分片上传
- Listprefix接口:分页
- 各大厂商对象存储服务
- AWS:Simple Storage Service(简称 S3)
- Azure: Azure Blob Stroage
- Google Cloud: Google Cloud Storage
- 字节跳动:对象存储 TOS(The Object Storage)
- 阿里云:对象存储 OSS(Object Storage Service)
- 腾讯云:对象存储 COS(Cloud Object Storage)
- 华为云:对象存储服务 OBS(Object-based Service)
TOS字节实践
完整架构
- 可扩展性解法——Partition分而治之
- 不同数据映射至不同Partition分区
- Partition Logic:Hash/Range
- 作用:扩容机器新建Partition——数据量增加;新增数据写入映射导向新Partition
- 持久度解决——Replication
- 数据复制多份(多副本)
- 副本放置策略:多机架、多机房、多Region
- 作用:高持久度、强吞吐能力
- 成本解法——EC(Erasure Coding)
- 冗余编码:可达到和多副本一样的持久度
- 特点:低冗余度(成本较单纯多副本低)、额外计算(增加了额外的编码计算步骤)
- 成本解法——温冷转换
- 热数据放SSD、冷数据放性能差且廉价的存储介质
- 高可用解法——拆分集群降低爆炸半径
- 高可用解法——镜像灾备