来源 :银融时代2025-03-27
平安银行当前主流架构为存算一体,数据库使用开源 MYSQL,通过 vmware 虚拟化进行资源隔离,操作系统是 REDHAT,存储使用的是本地盘,主备同步使用 MYSQL 数据复制技术,建设的标准是两地三中心一主四备的架构。

图 23 两地三中心一主四备的架构示意图
1、面临痛点
一资源使用率不均。由于虚拟化后单物理机上部署多台虚拟机,但是每个虚拟机上运行的 MySQL 数据库因业务而异,导致的计算资源与存储资源分配和使用不均衡,整机的资源使用率经常会出现计算或者磁盘先到达瓶颈,而剩下的资源却比较空闲的情况,导致整体的资源使用率难以提升。
二是故障场景下 RPO 难以满足。因为传统的 MySQL 架构基于数据库事务日志的传输和回放,在故障场景下的主从切换,因为日志的同步存在网络时延、大事务等客观影响因素,而且在繁忙的数据库体现尤为明显,切换的 RTO/RPO 可能会到 1 分钟到 15 分钟甚至更久,难以满足金融业的需求。
三是受制于国外商用软硬件。虽然 MySQL 为开源数据库产品,但是使用的 VMWARE 虚拟化技术、红帽操作系统、服务器硬件都是国外商用软硬件,在基础架构层技术仍然受制于人。四是虚拟机 OS 过多,如果选择我国 OS 会显著增加成本。
2、解决方案
方案一:存算分离虚拟化 MYSQL
这种架构是对当前 MySQL 架构的改进,但是需要从下而上解决之前的问题。一是设备采用 ARM/海光信创服务器;二是采用 59 我国虚拟化技术;三是不再使用本地盘、改用外接的我国存储;四是采用开源或者我国操作系统。

图 24 升级改造路径示意图
上图是规划的建设路径,路径上各个环境的方案已经测试验证通过,存算解耦只能帮助解决计算资源和存储资源不均衡的问题,但是无法解决数据一致性的问题。
解决数据一致性问题,目前有两个思路。
一是通过数据库层的强同步实现,MySQL 最多只能实现半同步复制,无法实现强同步复制,所以需要使用数据一致性保障能力更强的数据库版本。
二是通过存储层的数据共享,实现主写备读的模式,来实现主库故障情况下保障数据一致性,实现 RPO=0。以上两种方案各有优缺点,还在进一步研究和验证过程中。
针对资源使用率的问题,如何避免过高和过低,还在研究如何合理调度通过削峰填谷来实现资源有效利用,可能会建设一套智能化的资源管理系统。
方案二:容器化 MYSQL
MYSQL 上容方案,可能是未来的部署方案,目前还只是在测试方案探索阶段,有很多问题需要解决。设想通过容器化实现数据库服务化,数据库可按需进行资源动态的扩缩容管理,实现 Serverless 能力。

图 25 容器化后架构示意图
上图为容器化后 MYSQL 的架构方案,该方案使用外接共享存储,在上容的同时使用存算分离架构,是一种更加彻底的存算分离。该架构下同 IDC 内不再建设有备库,主库故障后利用 K8S 的调度和共享存储能力,在原存储上可以迅速拉起新节点实现故障转移,而在同城跨 IDC 机房建设有另外一套独立的 K8S 集群,通过数据库复制技术进行跨 IDC 主从同步。
该架构有以下优点:
一是 RTO 和 RPO 的提升。
存算分离后,在容器化部署中,当出现主机故障时可以在原有外接存储上利用 K8S 的调度能力迅 61 速拉起一个新 POD 节点,由于使用同样的存储,相比传统架构可以做到数据零丢失。而在同城双活中,MYSQL 运行在另外一套的 K8S 集群和共享存储,使用数据库自身的主从复制进行数据同步。极端场景下,单 IDC 的机房、K8S 集群、主机、存储故障,都可以做到切换到双活的 MYSQL 进行对外提供服务。
二是资源利用率提升。
计算资源和存储资源解耦,资源调度更具有弹性,提高资源利用的同时,可增加单台物理机的部署密度,进一步提升资源利用率。同时由于利用了存储和容器的能力, MYSQL 的从库也较传统的一主四从架构减少到一主两从,进一步减少资源的消耗。而且在容器化部署中,对于资源的弹性伸缩调度,相比传统架构会变得更为灵活。