GaussDB(for+Redis)与存算分离
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2. GaussDB(for Redis)与存算分离
华为云NoSQL数据库架构师——余汶龙
3. 目录
1 2 3 4
什么是GaussDB(for Redis) 为什么选择存算分离 设计与实现 竞争力总结
4. 背景 - Redis的缺点
2. 快照备份问题
1. AOF膨胀问题
旧日志
内存
写时拷贝
并发写入速度大于同
步速度时,主从脱节
内存
去重、合并
新日志
3. 主从脱节问题
遍历内存
主
5. 容量问题
Shard1
Shard2
Shard3
水平受限:Gossip无中心式管理,限制
RDB文件
了scale out横向扩展,越大越不稳定。
RDB文件
fork
4. 成本高,内存利用率只有50%,性能抖动
fork限制了
scale up垂直
扩展,内存越
从
buffer
垂直受限:
大fork越慢。
5. 背景 - 业界的解法
历史订单、特征工程、日志记录、位置坐标、机
器学习、用户画像等海量数据场景,数据量大、
有效期长、不可丢。
秒杀、热点事件等低时延场景,数据量小、有效期短、可丢失。
为什么要持久化?
1. 硬件价格差异30倍。 256g内存条
2. 容量差异1000倍,开源Redis最大集群TB级,高
斯Redis最大PB级。
VS
256g SSD
6. 我们的应对 - GaussDB(for Redis)
一句话定位:
支持Redis协议的NoSQL数据库,而非缓存。
关键特性:
存算分离——基于华为自研的分布式存储DFV,提供强大的存储能力。
多模架构——复用GaussDB NoSQL架构栈,提供Redis、MongoDB、
Cassandra、Influx等接口。
Gauss
NoSQL
7. 目录
1 2 3 4
什么是GaussDB(for Redis) 为什么选择存算分离 设计与实现 竞争力总结
8. 存算分离 - 数据库上云趋势
客户应用
客户应用
物理机
物理机
物理机
客户应用
虚拟机
虚拟机
虚拟机
Master Master Master Master Master Master
Disk Disk Disk EVS EVS EVS
HA
HA
物理机
物理机
…
HA
物理机
HA
HA
虚拟机
…
虚拟机
HA
Slave Slave Slave Slave Slave
Disk Disk Disk EVS EVS EVS
缺点:
1. 关心机型选择、采购、磁盘Raid等硬件细节。
第二代:虚拟化、云盘服务
优点:
1. 不关心硬件细节;上云简单,适配照搬即可。
缺点:
Master
Master
共享存储
1. EVS为3副本可靠,因此需要付出存储成本放大3倍
的代价。
2. 备机资源浪费,无法提供服务。
…
虚拟机
Master
Disk
虚拟机
Slave
第一代:物理机、裸硬盘
虚拟机
虚拟机
Disk
Disk
第三代:存算分离、共享存储
优点:
1.
2.
3.
4.
不关心硬件细节。
不付出高额成本。
与云原生结合更紧密。
多点读写,全负荷分担。
缺点:
1. 技术改造代价大。
9. 存算分离 - 分而治之
config路由
计算层
Shard1
Shard2
Master
Master
存储层
…
Disk
Disk
Shard3
Master
协议接口 可运维
计算处理 服务化
集群管理 产品化
数据容灾 副本管理
硬件部署 扩缩容
硬件维护 快照备份
Disk
10. 目录
1 2 3 4
什么是GaussDB(for Redis) 为什么选择存算分离 设计与实现 竞争力总结
11. 架构设计 - 软件架构
cfgsvr:高斯Redis的集群管理中心,负责路由、节点故障接管、迁移等, RocksDB: LSM存储引擎,以追加日志的方式,将数据转换成
设计成主备模式,选主依赖DFV租约。 SST文件,存入DFV。
Proxy:对外代理,负责承接用户请求,并识别内部集群,做正确转发。 GeminiFS:负责文件到DFV对象接口的映射。
ShardServer:负责数据的分区管理,并读写DFV。 DFV:提供强大的分布式存储池,强一致、高可用、弹性伸缩。
Proxy
Proxy
Proxy
计
cfgsvr
算
cfgsvr
DataNode1
Slot
Slot
层
DataNode2
Slot
Slot
Slot
RocksDB RocksDB
GeminiFS GeminiFS
Slot
存
储
层
DFV Pool
12. 组网设计
计算域
租户1 VM
VPC
VPC
租户2 VM
A类IP
B类IP
B类IP
VPC网络
Host
VPC网络
系统容器
物理机
物理机
高斯Redis
Gemini
FS
高斯Redis
专用网卡
专用网卡
物理机
DFV Pool
高效存储网络
Ø GeminiFS部署在Host上,使用存储平面专用网卡和
DFV通信;
Ø 数据库进程和GeminiFS使用共享内存方式通信;
存储域
物理机
Ø 租户独占数据库集群,共享DFV Pool存储;
•
存储专用网络平面
物理机
Ø 数据库基于系统容器部署,DFV Pool基于物理机部署;
Gemini
FS
资源租户2 VPC
存储计算分离
Ø 数据库实例部署在计算域,DFV Pool部署在存储域;
Host
高斯Redis
资源租户1 VPC
高斯Redis
•
物理机
13. 容灾架构 - Region内容灾
•
设计目标
数据库节点,在AZ级故障下,依旧提供强一致状态。
•
方案简介
依赖DFV的3AZ能力,实现存储层的AZ容灾;
依赖存储的共享可见,实现计算层的AZA容灾。
•
架构设计
如右图。
•
方案小结
1.实例内节点跨3AZ部署,容忍单AZ故障,且不丢数据。
2.支持多点读写。
3.数据强一致复制。
4.可靠性指标:RPO=0s、RTO<10s、数据持久 度11个9。
14. 容灾架构 - Region间容灾
•
设计目标
实现两个或多个高斯Redis集群实例间的数据双向同步,
应对实例级故障。
•
方案简介
实现一个RsyncServer进程,负责集群下各个节点
间的数据复制,以此为基础实现逻辑完备的灾备
方案。
•
架构设计
如右图。
•
方案小结
1.实例间可跨AZ、跨Region部署。
2.实例间异步复制。
3.支持双向同步,解决冲突。
15. 目录
1 2 3 4
什么是GaussDB(for Redis) 为什么选择存算分离 设计与实现 竞争力总结
16. 核心竞争力 - 强一致
1. 宕机不丢数据。2. 同步不存在堆积。
client
client
主
从
高斯Redis
VS
buffer
Storage
1
社区或友商的不健壮主从结构,存在丢数据风险。
Storage
2
Storage
3
GaussDB(for Redis),三副本强一致,不
存在数据不一致或丢失。
17. 核心竞争力 - 高可用
1. 容忍N-1节点宕机
2. 节点故障后,自动接管
DataNode1
Slot
Slot
Slot
3. 无损升级:滚动式升级。
DataNode2
Slot
DFV Pool
Slot
Slot
DataNode1
Slot
Slot
Slot
Slot
Slot
DFV Pool
购买N个节点,最多允许挂掉N-1个节点,每挂掉一个节点,HA都会把它负责的slot均衡迁移到剩下的shard server上。
Slot
18. 核心竞争力 - 冷热分离
1. 高斯Redis的热数据在内存,冷数据在磁盘
APP1
APP2
2. 自动LRU淘汰冷数据 + 预测算法加载热数据。
APP1
内存Cache
Redis
磁盘SSD
DataBase
业务自己维护缓存与DB的一致性
APP2
高斯Redis自动冷热交换
• 一致性维护差 • 一致性强
• 交互逻辑复杂 • 交互简单,业务友好
19. 核心竞争力 - 弹性伸缩
1. 存算分离,计算和存储单独扩缩容;真正的按需弹性,节省成本。
算力不足只需扩计算
容量不足只需扩存储
2. 计算扩容,无需数据迁移,秒级完成。
DataNode1
Slot
Slot
DataNode2
Slot
Slot
Slot
Slot
DFV Pool
DataNode1 DataNode2 DataNode3
Slot Slot Slot
Slot
Slot
Slot
DFV Pool
一个slot对应一个特定的DFV路径,当我们扩容时,只需要把一个slot扩容到新节点上,告诉新节点访问旧节点该访问的路径即可,而数据本身并没有迁移。
3. 存储逻辑扩容,仅修改配置,秒级完成;存储物理扩容,对应用透明无感。
20. 核心竞争力 - 高性能
1. 受益于多点读写,无备节点浪费资源,因此对比友商,吞吐和时 2. 受益于多线程、压缩比、内存利用率等优势,对比相同内存的开
延,2-3倍领先。 源Redis,吞吐和时延更优秀。
数据量大于内存场景
数据小于内存 + 点查场景
21.