Tos对象存储架构与实践笔记|青训营笔记

164 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记

架构

image-20220605145939728.png

接入层

API

接入解析并并处理接口请求

元信息层

Object Meta

Bucket Meta

Distributed KV

存储对象元信息

存储引擎层

Storage Engine

Distributed Storage Pool

GC

Lifecycle: 温冷转换后台服务

存储对象内容

业务场景

容量型:海量存储和吞吐,高持久度,成本低

QPS型:对QPS要求极高,比如抽帧业务

解法

Partition

可扩展性,均匀分布,负载均衡,增加容量

Partition Logic:

  • Hash

    主要用来确保数据在预先确定数目的分区中平均分布

    随机写入,无序

    用一个hash函数将key转换为一个数字,再对这个整数取模

  • Range

    基于属于一个给定连续区间的列值,把多行分配给同一个分区,这些区间要连续且不能相互重叠

    有序

各Partition之间如何负载均衡?

RoundRobin 可以参考blog.csdn.net/claram/arti…

平滑加权轮询法(Smooth Weight Round Robin)

Replication

高持久化,防止一切灾害导致数据丢失,提高强吞吐能力

副本放置策略:

  • 多机架
  • 多机房
  • 多Region

拷贝方式以及如何解决一致性问题

参考cloud.tencent.com/developer/a…

EC

Erasure Coding

降低多副本拷贝的成本

优势

纠删码技术作为一门数据保护技术,自然有许多的优势,首先可以解决的就是目前分布式系统,云计算中采用副本来防止数据的丢失。副本机制确实可以解决数据丢失的问题,但是翻倍的数据存储空间也必然要被消耗,这一点却是非常致命的。EC技术的运用就可以直接解决这个问题。

劣势

EC技术的优势确实明显,但是他的使用也是需要一些代价的,一旦数据需要恢复,他会造成2大资源的消耗:

  1. 网络带宽的消耗,因为数据恢复需要去读其他的数据块和校验块
  2. 进行编码,解码计算需要消耗CPU资源

就是既耗网络又耗CPU

EC算法

参考www.jianshu.com/p/acf0f392b…

温冷转换

不常用的数据用廉价的存储介质存储,热点数据和一般数据就用SSD,HDD存。

高可用

集群拆分,一个集群拆分多个集群,减低爆炸半径

开启多个应用,双向同步

镜像灾备,增量双向同步

\