金仓数据库 KingbaseES 单机扩集群部署方案介绍

背景
传统的单机数据库架构在处理大规模数据、高并发访问和高可用性能要求时,存在明显的局限性。企业在数字化转型过程中,对于数据处理的需求日益增长,对数据库性能和高可用的需求更为迫切。因此单机向集群的转变是应对业务增长和技术挑战的自然选择,单机扩展成集群后,不仅能增强系统的处理能力、稳定性和可用性,还能提高资源的利用效率和整体业务的灵活性。
单机扩展成集群的策略有多种,但在决定扩展策略时应结合业务需求、资源可用性、成本预算和技术支持等因素进行综合考虑,特别是需要结合用户业务模型对停机时间的要求,需要最大程度的考虑用户需求。金仓数据库提供了多种单机扩集群的策略可供选择,可支持数据迁移、离线扩展与在线扩展方式,在线扩展方式能更好的保护系统连续性,提升可用性。
单机数据库的局限性
单机数据库以其低成本、简易管理以及特定情境下的高效能,在某些需求明确且资源有限的情况下提供了一种经济和灵活的解决方案。然而,随着业务规模和复杂度的增加,其局限性也逐渐显现出来。
主要表现如下:
性能瓶颈:单机数据库性能受限于服务器的硬件资源(如 CPU、内存、磁盘 I/O)。随着数据量增长和访问负载的增加,可能导致服务器性能不足,将直接影响数据库响应速度和吞吐量。
数据处理效率(高并发):大量并发操作可能导致数据库中并发事务管理复杂性增加、锁冲突问题频发,从而影响性能。同时,在短时间内需要处理大量数据或请求可能会超过单机数据库的处理能力,导致响应时间延长。
高单点故障风险:单机数据库一旦出现故障(如硬件故障、操作系统崩溃等),将导致整个数据库不可用,从而导致业务中断和数据丢失。
综上,单机数据库在某些场景下能够满足用户需求,但在现代化企业级应用中,尤其是在处理大规模数据、高并发访问和高可用性能要求时,存在明显的局限性。
金仓单机扩集群部署方案
通常单机扩集群常用策略有三种:数据迁移、在线扩展和离线扩展。
各策略的特点对比如下:

金仓数据库原有的集群化部署方式有多种,传统部署方式有 GUI 数据库部署工具和基于 CLI 的一键部署脚本,新型的云原生部署方式有基于 k8s 平台的 helm 方式和 operator 方式。无论何种部署方式,对于用户来说均只需知道部署服务器的相关信息,以及集群部署的关键参数便可快速部署一套集群,部署方式简捷。
基于这些部署方式,金仓数据库又衍生了使用已有单机数据库扩展成集群功能,支持离线扩展和在线扩展,扩展方式简单,特别适用于在面对高负载、大数据处理和业务连续性需求时快速升级现有基础设施。
单机扩集群的架构图如下:

单机扩集群,各扩展方案简介如下:
数据库部署工具支持使用已有单机数据库扩展成集群
在部署工具集群的基本配置界面增加了是否使用已存在的 data 目录选项框,勾选时,输入框可配置,需配置为对应的单机 data 目录绝对路径,此处修改后,会自动修改的集群的 data 部署路径,和配置的单机 data 目录保持一致。再根据需要设置其余关键参数,便可根据部署工具步骤快速将单机扩展成集群。
一键部署脚本支持使用已有单机数据库扩展成集群
在一键部署配置文件中,增加了 use_exist_data 参数以用于配置是否使用已有 data 部署集群。参数配为 1,再配置上 data 绝对路径 data_directory 参数,其余关键参数正确配置,执行部署脚本便可快速将单机扩展成集群。
云原生部署方式支持使用已有单机数据库扩展成集群
数据库可以通过增加对应 CR 的 replicaCount 的值来将已有单机数据库扩展成集群。通过修改配置文件,增加 replicaCount 的参数值,实现在线有序且平滑的扩容副本数。控制器会逐个按需添加新节点,直到节点 Pod 数量与扩容后 replicaCount 值相等。
评论