腾讯云的存储实践
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL存储 NoSQL存储 虚拟块设备存储 云文件系统 对象存储系统
mysql,主备,VIP 高速,KV,主备,可落地 块设备,T级别大盘,超卖 多点挂载,多份存储 Rest API,动态加速
CDB的演进之路
Cloud Database 云数据库:SQL的关系数据库
什么是CDB(Cloud Database)
K colomn
K struct
K range
第四代? Get record where age< 10
未来的程序员
组件 Apache Mysql Memcache Mongodb Redis Ttserver 自己coding 组件 组件 数据挖掘服 务 存储 服务 渲染 服务 排名 服务
计算 服务 在线办公服 务
用户可以自己搬,不过就是麻烦点。 CDB:帮你做资源的小粒度共享,且可以变化共享粒度
用户可以用虚拟机实现多种粒度共享 用户价值有限。 利润率被挑战。 使用SAS本地磁盘做存储,净利 润率并不高,创造的价值有限, 在现有架构下要想进一步提升利 润率也很困难。
性能被挑战。
CDB 高性能版
存储虚拟化的CDB
Slave
类似于LVS,提供VIP, 起到IP屏蔽的效果,无 论是主备切换还是数据 搬迁都让用户无感知。
部署1-32个mysql实例,实现不 同粒度的共享,基于SAS存储 。
CDB的用户价值
CDB:帮你做failover主被切换而且IP不变 用户可以用程序解决,或用mysql proxy,amoeba等中间件解决。 CDB:帮你做机组搬迁,而且IP不变
未来的程序开发模式将不同于今天,一切都是云化的服务。 如何用好各种云服务,并懂得其内在机制,是未来程序员的生存王道。 你还在吭哧吭哧的搭建各种组件么?
开分支版本是一条不得不走的路。
CBS的演进之路
Cloud Block Storage 云盘:虚拟块设备存储系统
什么是CBS(Cloud Block Storage)
CBS(云盘)为用户提供块层存储服务 CBS表现形式就是一个/dev块设备,用户可以对其做格式化,创建文件系统 CBS的数据存储在远端集群,支持快照,故障转移
这里是SSD
SSD存储层细节
TSSD 存储Set#1: 30T 接入层: access access 接入:15*C1 access
配置层:
master (主)
master (备)
配置系统:2*B6
ssd Tablet :2GB 1500个 Tablet Tablet :2GB
ssd Tablet :2GB 1500个 Tablet Tablet :2GB 存储:10*3*TS8
当前架构,性能有限
不需要块设备,不需要文件系统,IOPS能会再提升1倍到2w左右。 未来10Gb网络下可以再翻番。
innodb
0
…
63
…
16383
16384
…
134217728
网络 环境
Key 0ຫໍສະໝຸດ PageKey 16383
Page
KV存储系统
科普:TFTL是什么
Tencent FTL,将SSD中的FTL层移到主机侧。 擦除单元和写单元大小一致,写放大为1,不存在持续写性能差的问题。 寿命增加一倍 性能提升10倍。
解决了GC问题和WA问题,还能释放OP空间。
FTL:Flash Translation Layer GC:garbage collection 影响持续写性能变化的原因 WA:write amplification写放大,SSD一切算法的根本目的 OP:over-provisioning 预留空间
CDB 单机版(中小开发商需求)
配置层:
master (主)
master (备)
配置系统:2*B6
ssd Tablet :2GB 1500个 Tablet Tablet :2GB
ssd Tablet :2GB 1500个 Tablet Tablet :2GB 存储:10*3*TS8
ssd Tablet :2GB 1500个 Tablet Tablet :2GB
第一代CKV架构(当时叫CMEM)
CMEM 各业务管理
数据流向
Master主机 业务A
业务B
Access接入群(全镜像) cache存储群
备件 备件 备件
1:1镜像
全内存,成本问题?
第二代CKV的架构
MEM集群
前置层
冷数据下沉,热数据激活
SSD集群
7天内有访问的数据算热数据。
SSD子架构模型
TSSD 存储Set#1: 30T 接入层: access access 接入:15*C1 access
用户机器 主机
CBS driver
协议转换层
CBS proxy
落地kv存储层
分布式kv存储
CBS容灾和故障转移
tbs_driver tbs_driver tbs_driver
tbs_proxy
tbs_proxy
tbs_proxy
tbs_proxy
tbs_proxy
tbs_proxy
存储引擎 正常
存储引擎 故障
第三代CBS云盘
块设备LBA
拥有SSD的性能,SATA的成本。
IOPS全部上1w/s。
冷热分介质是降低成本很重要的手段。 SSD集群系统 LRU系统 全局锁
调度系统
SATA集群系统
CBS云盘快照
快速克隆 写 快照层x 写 快照层3 快照备份
快照层2
快照层1 母盘数据 快速回滚
第一次
Redirect-on-write (ROW) 快速盘克隆
存储层:
SSD是CKV的冷数据子系统。
冷热按记录分离
热 用户表 空间 冷 SSD集群 内存集群
对业务数据做分析后:大约80%-90%的数据在7天内不会访问
接入第二代CKV的效果
接口的演进
KV 第一代 基本:set , get , del, 批量:setlist , getlist , dellist 第二代: 局部:setbyoffset , getbyoffset 按列:setbycolomnID , getbycolomnID 第三代: String:append,setbit Hash : key+col name List:lpush,lpop , rpush , rpop Set : add,remove
所以,不要用大企业的海量思维去理解中小开发商的想法。 中小开发商的思维:便宜,安全,便宜,安全,还是便宜,安全。 服务可用性?不一定很care!
天神互动
智明星通
奇矩互动
昆仑在线
省掉备机,只提供主机
通过实时异地流水备份机制保障数据安全,但不能保证服务可用性。
Mysql分支版本
查看每个table的访问次数,访问延时和延时分布。 分离DML,DDL操作,确保安全。 语句分析,避免危险语句。Delete from等。 优化innodb,更加适应网络环境。
ssd Tablet :2GB 1500个 Tablet Tablet :2GB
存储层:
合并写+追加写,减少碎片,减少gc影响
存储实现方式
mysql fs CBS云盘
IOPS能力接近1w,是基于SAS介质CDB的4倍
TSSD 存储Set#1: 30T 接入层: access access 接入:15*C1 access
什么是SAN(FC-SAN和IP-SAN)
SAN(存储区域网络)是一种在高速网络中提供计算机与存储系统间数据传输的技术。
我们的IP-SAN:storage mirror 传统FC-SAN:disk mirror,双网隔离 这里的storage是什么呢? SATA?SAS?SSD?MEM?
CBS架构
微博平台 微博平台 电商平台 电商平台 支付平台 支付平台
现有基础设施平台
大文件存储平台 IDC平台 公司网管平台 研发管理平台 数据分析平台 客服平台
资源管理平台
云存储产品
SQL接口 KeyValue接口 Posix接口 Posix接口 Rest API
CDB
CKV
CBS
CFS
COS
CDB: CKV: CBS: CFS: COS:
大纲
应用前端
协议编解码API 业务平台API(社交、微博等)
云存储的位置
现有业务平台
应用后端
内部云当前主攻范畴 MIG内部云 SNG内部云 公共内部云 IEG内部云
云网关平台(TGW)
社交平台 社区平台 通信平台 通信平台
TAF平台
云逻辑平台
云逻辑平台
游戏云
云存储平台、虚拟机平台
游戏平台 游戏平台
快速rollback
CKV的演进之路
Cloud Key Value 分布式key-value存储系统
CKV是什么
CKV是什么 极高性能、内存级、持久化、分布式的Key-Value存储服务。 适用NoSQL接口的键值型高速存储,以不同空间参数对用户提供服务。
使用CKV的好处 - master/slave热备,切换后实例的IP/Port不变,应用层无需修改配置 -空间自动扩缩,无需业务参与。 - 冷热分离降低成本。
存储引擎 恢复
n台proxy完全镜像,互为容灾 机头A故障后,可以在机头B重新挂盘
第一代CBS云盘
块设备LBA
SSD集群系统 块设备数据存储到SSD集群,通过集群存储来保证多份数据,提高安全性。
第二代CBS云盘
块设备LBA
CHXMast er CHXD /DU
CHXD /DU
SATA集群系统
随机读写太差了。
将存储层虚拟化,来提高利润率。
配置层:
master (主)
master (备)
配置系统:2*B6
ssd Tablet :2GB 1500个 Tablet Tablet :2GB
ssd Tablet :2GB 1500个 Tablet Tablet :2GB 存储:10*3*TS8
ssd Tablet :2GB 1500个 Tablet Tablet :2GB
腾讯云的存储实践
bencheng 2014-5
• 姓名: bencheng(程彬) • 组织:基础架构部
• 08年毕业加入腾讯架构平台部,从事存储平台开发 • 11年至今从事云存储平台开发,聚焦在云数据库CDB和云硬盘 CBS产品研发和运营
平台演进 • CDB的演进之路 • CKV的演进之路 • CBS的演进之路
存储层:
SSD集群
CDB 高性能版第二代
mysql innodb fs 块设备 ISCSI TCP/IP TFTL+TS SD TSSD Tssd_tcp_read Tssd_tcp_write TFTL:Tencent FTL 用于专用场景, 性能再提升10倍。 mysql innodb TCP/IP Innodb直接操作网络
SQL接口,结构化查询场景 第三方业务400余款,公司内部业务300余款 目前共有4000多台机器,提供200T存储空间
原版CDB架构
IP1+Port1
VIP+VPort 主
TGW
mysql1 mysql2 mysql3 replication
Master
备
mysql1 mysql2 mysql3 IP2+Port2