- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
顾龚磊 - 工行分布式OLTP数据库选型研究与实践
工商银行开源数据库负责人顾龚磊分享《工行分布式数据库选型研究与实践》
展开查看详情
1 .工行分布式OLTP数据库选型研究与实践 主讲人:顾龚磊 1
2 . 1.为什么走向分布式 目录 2.为什么选择MySQL CONTENTS 3.MySQL发展之路 4.MySQL发展过程中的 问题及优化 2
3 . 1 为什么走向分布式 3
4 .为什么走向分布式 处理能力 敏捷供应 业务特点 成本控制 业务规模增长迅速, 伴随业务规模增长,开 短平快的交易特点以 由于主机成本较高以 纵向垂直能力无法满 发版本迭代迅速,增量 及7*24 的业务连续性 及其他商业产品投入 足业务规模增长 业务迸发,环境供应面 对传统架构提出了巨 较多licence,总体成 临挑战 大挑战 本无法降低 4
5 .为什么走向分布式 业务支撑 运维能力 单库已无法支撑 传统的基础环境供应 业务规模的增长 以及运维模式无法应 对开发的敏捷迭代 控制成本 降低风险 通过下移主机业 打散数据、解耦各 务至平台,使用 应用业务层依赖、 更廉价的硬件基 降低整体集中式风 础设施。 险 5
6 . 2 为什么选择MySQL 6
7 .为什么选择MySQL 稳定 版本质量优良 有大量互联网公司使用 社区生态发展优良 参与者众多 开源 轻 没有licence 轻量级、灵活易扩展 易自主可控 学习成本较低 配套成熟 同为关系型数据库 业界有较成熟的配套 较Oralce、db2等易上手 解决方案 7
8 . 3 MySQL发展之路 8
9 .MySQL发展之路 1、2017年前MySQL主要用于办公 类非核心平台应用总体规模不超 1169 过200个实例。 787 2、2018年初开始,随着主机业 务下移至平台,平台整体使用 MySQL量出现井喷式增长。 101 161 3、由于分布式架构下MySQL节点 数剧增,为提升机房密度、服务 器资源使用率,通过使用容器化 部署MySQL实例。 9
10 .MySQL管理平台 10
11 .分布式数据库中间件架构图 ◼分布式访问层:应用透明/灵活拆 DBLE 分布式 DBLE 分、开源自主可控 访问层集群 高可用 ◼支持Hash/Range/List等多种分 负载均衡 片算法,可扩展,满足垂直数据分 片、水平数据分片、混合分片等场 SQL转换和分发 景数据节点分片扩展 分片1 分片2 分片N Shard1 M Shard2 M ShardN M ◼支持简单的跨库汇集查询提供类 … 似集中库的操作体验 Shard1 S Shard2 S ShardN S ◼可通过集群解决自身高可用问题 11
12 .MySQL管理平台 运维管理区域 ◼ 定制研发MySQL客户端 组件,分布式中间件DBLE、 业务系统 运维人员 数据库管理平台,实现组 数据操作 件的联动 数据库管理 系统管理 负载均衡 ◼ 支持节点状态监控告警、 MySQL管理平台 安装部署、自动补数等功 服务端口 管理端口 动态管理 系统管理 能 分布式数据访问层 配置中心 高可用管理模块 性能容量 安装部署备份恢复 ◼ 高可用自动切换,实现 节点Agent 监控模块 状态上报 RPO=0,RTO<60s的业务 数据操作 连续性 MySQL 动态管理 ◼ 采用开源MySQL和原生 集群 节点Agent 态数据复制技术,一主多 备架构,实现多份数据冗 余一致性保障 12
13 . 核心应用使用MySQL架构图 A 园区 B 园区 应用特征 1、接入层 服务网关 服务网关 交易特征:高并发、低延时,日均 交易量3亿, 交易延时<100ms;7*24联机服务 应用服务 应用服务 应用服务 应用服务 高可用架构:同城分片双活 器群组13 器群组14 2、产品处理 器群组11 器群组12 DB1 DB2 DB3 DB4 SET11 SET12 SET13 SET14 实施效果:日均交易量1亿以上 服务路由 应用服务 应用服务 应用服务 应用服务 应用服务 应用服务 应用服务 应用服务 本地高可用自动化切换, 3、账务处理 器群组21 器群组22 器群组23 器群组24 器群组25 器群组26 器群组27 器群组28 RPO=0,RTO<60s DB5 DB6 DB7 DB8 同城高可用切换:人工决策、一键 DB1 DB2 DB3 DB4 SET21 SET22 SET23 SET24 SET25 SET26 SET27 SET28 式切换 RTO分钟级 13
14 . 4 MySQL发展过程中的问题及优化 14
15 .MySQL实践中问题 外置存储带来的IO争用 同城RPO无法保证为0 服务器资源利用率低 备份存储节点资源浪费 15
16 .MySQL优化之路 备份优化 SSD引入 通过使用备份至 有效提升50%的IO SEPH的方式实现 04 处理能力 多副本廉价存储 介质备份 03 02 高可用架构 MySQL云 化部署 优化 01 提升服务器资源 一主三从提升同 利用率,环境标 城RPO能力 准化 16
17 .高可用架构优化 A B APP APP APP APP APP APP 域名(指向VIP) MySQL主 MySQL半同步 MySQL异步 MySQL半同步 MySQL半同步 ack=1,降级 ack=2,不降级 17
18 .MySQL云化部署 容器编排、管理 Kubernetes + docker 行内PaaS平台已稳定运行两年,有较成熟的管理平台 对接。Docker相较虚拟机有更轻、资源利用率更高、 部署更易、开发流程自动化等优势。 标准化镜像 MySQL基础镜像(社区5.7.21)+os基础镜像 (SuSE12 sp3) 自研dockfile以及进行镜像管理。 能够通过镜像标准化MySQL的整体供应。 18
19 . 特性1: 特性2: IP固定 数据持久化并自动划分存储 ① docker1 Bare Metal docke2 cbond1 cbond2 Master 1.1.1.1 2.2.2.2 API Server CSI Controller StorMGR PF1 PF2 eth1n eth2 V F V F V F V F V F V F V F V F Node 0 0 0 0 1 1 1 1 1 2 3 n 1 2 3 n Kubelet 物理 物理 CSI agent 连线 连线 VPMGR cb cb cb cb on on on on d1 d2 d3 dn IAAS FC SAN SWITCH GW:1.1.1.254; 2.2.2.254; 3.3.3.254 通过自研了SR-IOV-cni插件实现了网络IP的分配、 通过自研了csi插件,实现了存储本地盘 固定、容器网络的建立等。 /外置盘的按需自动划分以及挂载,并使 好处: 数据持久化。 1.性能接近物理宿主机,时延低 2.万兆网络可虚拟化63对VF(即支持63个容器) 19
20 .备份优化 ⚫ 物理机、虚拟机中使用S3fs提供文件存储 物理机 对象存储集群 ✓ 在物理机/虚拟机中安装、配置s3fs,通过映射 S3fs s3接口 ARM服务器+ 开源ceph+ 纠删码 /backup 关系将后端集群的bucket挂载至本地文件目录,即可 Bucket1 直接使用。 虚拟机 Bucket2 S3fs ✓ 以MySQL的backup目录为例:直接使用S3fs建立 /backup Bucket3 backup与后端集群bucket之间的映射关系即可。 ⚫ 容器中使用S3fs提供文件存储 ✓ 在宿主机中安装配置S3fs,通过两次关系映射, 实现挂载使用。 ✓ 以MySQL容器化中backup目录使用S3fs为例: (1)容器宿主机通过s3fs与后端ceph集群 bucket挂载,目录命名:存储集群名+桶名 (clusterA-bucket1),该挂载目录下创建以(应用 名-主库IP)标识的容器挂载目录。 (2)容器卷挂载,在K8S中将上述路径(/集群 名-桶名/应用名-主库IP)映射到容器的/backup目录。 20
21 .运维坑 网络 网络流量并发大,出现极端增长,压垮防火墙 流量 --控制同城间主从恢复并发、监控网络流量 大事务影响主库业务连续性 --开发指引、对大事务监控并走向自动kill 大事务 大表DDL、sql性能拐点 大表 --定制数据清理、DDL测试,sql语句审核,开发指引 21
22 .后续思路 自动化 实现业务级故障自愈 服务化 通过以微服务的方式实现数据库服务供应,打通与IaaS、PaaS的衔接,做 到数据库服务自供应。 弹性 应对业务量突增,应急扩容等场景下,实现资源的弹性扩缩,能够更有效 地提升服务器资源利用率以及满足特定业务需求。 多租户 进一步研究隔离性更好的虚拟化方案,以弥补docker共享宿主机内核的缺 陷。 22
23 .THANKS 23