当单体系统扛不住压力时
往往就需要用「集群」来搞定
若要论业内“玩集群”的高手
非鹅厂莫属
↓
↓
这腾讯玩集群的本事
已经到了出神入化的地步我们今天就讲讲其中的一个秘密武器
超大规模分布式存储引擎
YottaStore
↓
为什么是秘密武器?因为
YottaStore虽“神功盖世”,却深藏功与名
江湖上少有它的声音
它作为底层存储引擎
默默支撑着大量腾讯自身的业务
更成为腾讯云很多招牌产品的底座
大名鼎鼎的腾讯云COS对象存储
底层就是YottaStore在“发功”
↓
YottaStore这个秘密武器
都有哪些强大之处呢?
1、强大在于
真正实现对“超大规模”集群的控制
其实,分布式存储不是啥新概念
大家如今都这么玩
但是,一旦玩大了
比如集群规模超过百万节点
就玩不动了
↓
“玩不动”的核心原因
是它的架构卡了脖子
传统分布式存储,通常采用三层架构
↓
传统分布式存储三层架构
第一层,应用层,各种应用、各种数据来源
第二层,管理层,是Master管理节点
第三层,存储层,就是一台台存储服务器,里面存着数据
这种三层架构
“卡脖子”环节显而易见就是Master管理节点
作为大管家,他管理的存储服务器越多就越累、越力不从心
Master这么累,有三个原因
➊ Master单机容量受限
Master里面存着“元数据”
元数据就像是一种电子目录
记录着数据的关键描述信息
如果下面的服务器集群要迅速扩容
Master里的“元数据”也会跟着极速增加
此时,单个Master存储容量受限
扩不了
↓
➋Master“读写请求量”过载
数据读写的时候虽然主要的IO负载由数据节点承担Master节点也需要被高频访问如果集群过大,读写请求量就过大就会瞬间打爆单点Master
➌Master日理万机,分身乏术
Master的管理任务过于集中而繁重比如:数据修复、数据均衡、数据巡检...↓
所以,传统分布式存储架构
要实现“超大规模”的集群
是件很吃力的事情
那么
YottaStore是如何把集群“搞大”的?
↓
YottaStore突破了单点Master的瓶颈
做到单集群可达百万节点的控制
采用分层、分块拆解思路整个架构变得强大而灵活
↓
YottaStore分了四层
1. 接入层:负责所有用户请求的接入、路由等工作。
2. 元数据缓存层:缓存元数据,避免元数据存储节点被高QPS打死。3. 元数据存储层:存储了系统物理结构以及逻辑映射数据。4. 数据存储层:数据存储层保存了用户的真实数据以及它们的冗余。
分层彻底解放了Master
读写请求都不直接经过元数据节点
解决了“读写请求量过载”的问题
同时
元数据能存得更小,管理得更多
1Byte元数据可以管理2GB的物理空间这就意味着一台Master,仅存600G元数据就能支撑上千万台的机器工作解决了Master“单机存储容量受限”的问题这种神操作,在业内独树一帜
除了分层外,还要分块
↓
YottaStore分了五块
将Master功能,拆成一个个的子系统解决了“Master管事太多、太累”问题
1. 空间分配子系统:负责数据写入时的空间分配。
2. 校验修复子系统:负责数据校验、修复工作。3. 数据均衡子系统:负责数据均衡工作。4. 健康检查子系统:负责节点以及硬件健康检查与处理工作。5. 集群管理子系统:集系统状态展示、集群运维管理于一体的集群管理子系统为解决了读写请求的瓶颈
再尖峰的数据流量
都被“稀释”到超大的集群池子里
YottaStore真正做到了“波澜不惊”
2、强大在于
真正实现对“多AZ”集群的控制
客户上云经常要“多AZ部署”本质上是不把鸡蛋放到一个篮子里分担风险,提高可靠性
这时候其实特别考验公有云提供商的多AZ集群的操控能力如何玩转跨机房、跨市、跨省、跨国、跨区域↓
这方面,YottaStore有先天优势
它是原生多AZ架构YottaStore在设计之初就把多AZ的逻辑直接植入系统内部中
3、强大在于
整个集群具有极强的灵活性
↓
能灵活支持多AZ
像单AZ、双AZ、多AZ...
能灵活支持任何副本模式
像两副本、三副本、四副本、五副本...
能灵活支持任意纠删算法
任意的EC编码,任意的M、加任意的N
能自适应各种存储介质和存储硬件
像HDD、SSD、磁带各种介质
再比如处理器、加速卡、智能网卡等等
全部都可以灵活适配
4、强大在于
集群上线、升级速度极快
YottaStore
让一个十万甚至百万规模的存储集群
线上升级只需20分钟就能搞定
没错,20分钟
完成一个超大集群的全面升级
不管集群有多大
上千、数万、十万、百万……
无差别化,“一曲”全搞定
这升级不仅嗖嗖快,更重要的是
整个升级过程,对上层毫无影响
湖底翻江倒海,湖面风平浪静
正因为如此
鹅厂可以持续不断为存储平台叠加特性
在用户无感知状态下,持续平滑演进
5、强大在于
技术普惠,能存得超级便宜
当数据规模非常大的时候
价格就变得异常敏感
如果每台机器仅空闲1%那么,汇聚起来,也是巨大的浪费
实话实说,谁都不想浪费
但是,技术办不到啊
可是YottaStore
集群足够大、调度能力足够强
让每个节点、每块磁盘都尽其所能
↓
这样,相同的硬件设备成本
YottaStore能存得更多、存得更便宜
6、强大在于
“100%”高可用性,“0”故障率
YottaStore,已上线“扛活儿”一年半了
基于庞大的集群支持着鹅厂对内对外的海量数据业务到目前为止,实现了100%可用性,0故障事件更震撼的是只需1人值守运维
↓
有人问既然YottasStore这么吊我怎么才能见识一下
前面我们说过YottaStore是个存储引擎,相当于技术底座支撑着鹅厂很多数据业务和产品看看这些产品的表现就知道YottaStore有多牛了
最典型的是腾讯云COS对象存储
B站、知乎、小红书都用了COSCOS提供4个9的服务可用性、12个9的数据可靠性性能高达30000QPS
并拥有超强的性价比质量、性能、功能、成本、灵活性
这些能力,都源于YottaStore这个底座
↓
在YottaStore引擎的支撑之下
腾讯云COS提供的服务类型也在不断丰富
除了大家熟知的标准存储、低频存储
还推出了面向企业温冷数据的
归档存储和深度归档存储
其中,深度归档存储
每月每GB,价格低至1分钱
可以说,企业任何非结构化数据
不管多复杂,不管有多少
在腾讯云之上,都有容身之地
文:特大妹丨画:怪叔阿柒