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.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 17:37
浙ICP备14020137号-1 $Map of visitor$