探索 GreatADM:图形化部署 MGR 的全新体验
摘要:
在 DBA 的日常工作中,快速部署数据库高可用架构,且标准化地入网部署数据库是一项重要的基础任务。本文将介绍常见的部署 MGR 的方式,并重点介绍万里数据库的 GreatADM 数据库管理平台进行图形化、可视化、标准化的部署过程,以提高交付效率和质量,给 DBA 提供一种全新的体验。(本文阅读大约需要 4-6 分钟)
引言
常见的数据库入网交付的方式和各自优缺点
方式一:手动部署
这是最基本的部署方式,需要手动在每个节点上安装、配置 cnf 和管理各节点,命令交互太多。虽然借助社区版的 MySQL Shell 操作相对简单,但对于大规模部署,手动操作可能耗费大量时间和人力,并且容易出现配置错误和一致性问题。
方式二:批量管理工具
使用配置管理工具(如 Ansible、Puppet、Chef 等)可以实现自动化的数据库安装部署,来解决批量交付时重复的劳动。通过编写配置文件和定义任务,配置管理工具可以自动执行安装、配置和启动 MGR 的步骤。这种方式可以提高部署效率并确保一致性,但对于初学者来说,配置管理工具的学习和配置可能需要一定的时间和学习成本。
方式三:GreatADM 数据库管理平台
也是今天要介绍的主角。GreatADM 提供了图形化、可视化、标准化、流程化的部署 MGR 的能力,极大地简化了部署过程。说到这里大家可能脑子有诸多疑问:
GreatADM 是什么?
都有哪些功能?
能解决什么问题?
支不支持国产操作系统?
怎么部署数据库流程是什么?
安装平台麻烦吗?哪里可以下载到?
我暂且先只回复第一个问题,其他的大家可在文章中或者 GreatSQL 社区历史文章中发现。技术干货 | 从DBA视角看数据库运维管理平台
GreatADM 是什么?GreatADM(GreatDB Administrator Platform )
是一款万里数据库管理平台。支持基于 GreatDB 、GreatSQL、MySQL 多种集中式方案全生命周期的管理的软件。接下来我们就来动手边实践边看。
Let's go
文章整体内容,围绕如何图形化交付 MGR,以及交付之后 GreatADM 都有哪些功能,快速了解如何上手,以及个人觉得使用的几个功能点。
一、GreatADM 自身的安装
二、图形化部署 MGR 的流程
三、作为 DBA 个人觉得不错的 3 个点
四、总结回顾
一、GreatADM 数据库管理平台的快速安装
1.安装和配置 GreatADM
首先解压软件包
拿到 GreatADM 软件包为一个 zip 的压缩包,解压之后得到一个adm_install.sh
的 shell 安装脚本和一个GreatADM的主程序包
。
GreatADM 支持在多个国产操作系统安装部署,如麒麟、欧拉、龙蜥、统信、BClinux 等。
2.配置安装脚本
这里需要配置安装的主机 IP,以及 WEB 访问 GreatADM 的端口和主机的操作系统用户名和密码,本次用是 root,也可以使用 sudo user 密码等信息。
a)、ADM_IP_ARRAY=(172.17.139.50 )
如果是高可用安装,此处可以配置多个 IP 地址,GreatADM 支持平台服务高可用配置和故障自切换。支持直接安装部署在远程主机上。
b)、ADM_WEB_PORT=80
默认浏览器访问管理页面端口,可按需自定义
c)、SSH_USER=rootSSH_PASSWORD=abc123
本地安装是将 GreatADM 平台单机部署。如果配置双机高可用,则需要先行配置双机之间的 ssh 互信认证,然后调整认证方式,填写公钥文件路径即可
SSH_AUTH=pubkeySSH_KEY_FILE=/root/.ssh/id_ras
平台元数据库配置,默认无需配置,内置 sqlite3 作为基础元数据的数据库,轻量且易用,一般建议支持 20 台主机以下私有规模。
如果超过 20 台主机,可考虑接入 ADM 自身部署的数据库中,目前简单测试了一下在16C 16G 500G/SSD
配置下,使用 GreatSQL 作为元数据库,创建和纳管了 40 多套万里 GreatRouter 高可用集群、主从、MGR 等多类架构大约 130+台主机,无压力。
3.执行安装

安装完成之后,可通过登录http://172.17.139.50:80
来访问 GreatADM 的管理页面

4.登录图形界面
首次登录 GreatADM,需要修改默认的初始密码,用户账号可以是邮箱地址、可以是用户名。

默认平台超管为:用户名adm
和adm@greatdb.com
两种可以登录,如下

二、使用 GreatADM 部署 GreatSQL MGR
GreatADM 管理平台默认对 MySQL 数据库架构的 4 大分类,并且支持用户已自建的 MySQL5.7/8.0 的统一纳管到平台和复制拓扑自动探测和拓扑绘制。支持 GreatDB、GreatSQL、Percona Server、MySQL 类型的数据库类型。

A、GreatDBRouter 三节点:
对应万里 GreatDB 数据库企业版高可用解决方案
B、PAXOS 高可用复制:
支持 MGR、以及 GreatSQL MGR+VIP 方案
C、主备多副本:
传统的主从复制、双主、双主一从、多主多从等方案
D、单实例节点:
提供批量交付多个单点场景,以及实例的一键批量诊断、实例巡检报告生成等服务,同时支持单节点升级为其他高可用架构。
接来下我们开始安装 MGR,本次我们选用 GreatSQL 版本来部署 MGR,GreatSQL 是适用于金融级应用的国内自主开源数据库,可以作为 MySQL 或 Percona Server 的可选替换,用于线上生产环境,且完全免费并兼容 MySQL 或 Percona Server。
1.添加主机信息

自动识别操作系统版本和 CPU 平台信息,可以按需增加机房、机架、机柜等信息。GreatADM 同时支持资源池方式的数据库部署方式,可将多台物理主机的 cpu、内存、磁盘标准化为一个计算资源池,通过从资源池中按需分配数据库实例的算力,以提高物理主机的资源利用效率,这点倒是挺不错。这个我们下期再做介绍。

2.调整参数模板、确认软件包
查看内置的参数模板

当然用户可以按需上传参数,可以绑定项目名称,作为私有项目独享,也可以作为公共模板多项目共用

本次我们调整内置的参数模板,同时可按需【添加参数】暂时调整如下 2 项innodb_buffer_pool_size、innodb_buffer_pool_instances
这里的这个参数模板,以及参数搜索框不错,可以快速模糊匹配参数

上传数据库二进制包,自动识别软件包的属性信息。

这里我们上传了 GreatSQL 社区版本,还有 XtraBackup 备份工具。当然 GreatADM 在安装时,会自动搜索同目录路径是否存在数据库包,如果有的话会自动识别加载。这点确实省去不少通过 web 浏览器上传软件包的时间。到此,我们部署数据库的必要条件都已经具备,下一步准备执行 MGR 的图形化安装。
3.数据库安装部署
选择 Paxos 高可用部署方案,因 MGR 采用 Paxos 协议,所以外部我们选择 Paxos 架构,物理主机部署方式进行。选择对应的数据库版本、备份工具、参数模板、并填写默认的数据库名称、管理员账号密码等。
进行三阶段流程:
1、基础配置
2、系统预检查
3、执行交付部署

【安装前配置】如下:

【主机预检查】,检查项如主机时区时间、swap 交换分区、安全策略 selinux、分区挂载、系统资源限制、内核参数等共计近 20 项预检内容,均为历史经验积累的转化。

当不满足预检内置条件时,会弹框提醒,按级别分为必检项(必须满足前置条件项),次要,仅提醒三类。

【交付部署】,同样按标准流程进行交付,且记录各阶段的交付日志,以便问题溯源和历史记录翻阅。

【完成交付】之后,跳转到数据库管理拓扑主页

到此我们就完成了 MGR 的图形化交付,并可直观的看到拓扑状态,和对应的事务执行情况等信息。感觉怎么样?
三、DBA 运维中个人觉得实用的 3 点
1、拓扑绘制和可操作性
【拓扑作用】DBA 可以直接基于拓扑图查看当前数据库节点运行状态、复制延迟等待、实例角色信息,同时可以基于拓扑做 MGR 的节点切换,服务器启停等操作,直观的拓扑结构,和状态信息,以及启停操作按钮,用起来很惬意。

操作示例如在拓扑上执行【重启实例】,所有的操作均记录日志,保证操作时间、任务状态、操作暂停、终止和重试,做到操作有记录,可查询,防止误操作和随意变更操作。

历史操作记录

2、多视角监控清晰直观
GreatADM 提供了实时的集群状态监控和管理功能。可以通过 GreatADM 查看集群状态、执行数据同步、进行主从切换等操作。【实例所在主机负载实时动态更新】

【实例复制概览】全览实例状态,以及延迟情况,并支持在线扩缩,以及节点操作

【实例负载】针对实例的实时会话信息,当前业务或者某一阶段的繁忙程度,实例负载尽收眼底。

【负载趋势】另外对 DBA 来说的主机层面的资源用量和趋势,现在独立一个面板,直接全局统计数据增长趋势图,并给出资源用量评估,直观且高效。解决了做评估无依据或需要人工命令行统计,或者表格比对人工绘图的耗时耗力的问题。

【多维度监控】在监控告警中,提供 3 个维度的视角,数据库架构全局维度、单实例节点维度、主机维度来进行全方位监控。做不同维度按需监控,按需开关,按需分屏展示的可操作性和灵活性。

【自定义监控】基于统一模板化的面板之外,同时兼顾用户想自定义监控面板的诉求,GreatADM 做了展示面板的可配置性改进。将部分通用能力通用标准,以友好的 web 页面组织起来,让监控的 dashboard 可按用户需求自助定制,尊重不同业务库级差异性,而差异化监控的诉求。

3、基线参数和一键修复
GreatADM 提供基线参数模板的校验,以及变更参数历史的记录,和一键修复功能,这大大降低了 DBA 在维护数据库过程中,因手动变更参数之后未将参数固定写入到配置导致的丢失,遗忘等问题。个人觉得对 DBA 比较实用的功能。参数变更可按需应用不同节点,且支持差异化配置。

针对不同节点的参数,基于参数基线做变更比对

及时发现参数差异,并支持一键修正,这结局了 DBA 在一对多的数据库运维管理中,不同业务数据库的参数变更历史,全靠记忆或者现场搜索、现场查看 cnf 要便捷高效的多,且不易出错,相当实用。

这是目前个人使用过程中觉得比较不错的几个点。
四、内容总结
通过 GreatADM 创建 MGR 的过程,可以看到 GreatADM 从一键脚本安装、再到创建 MGR 架构时主机、软件包管理、参数模板、环境预检、到完成,完全是流程化、模板化、规范化的交付。 特别是在国产化的背景下,版本差异交付适配难、运维管理频踩坑、告警消息策略固化,各类告警无聚合压制、巡检诊断内容价值低廉、只有备份能力,恢复全靠人工,跨机房灾备无法统筹管理等问题。GreatADM 针对上述问题逐个击破,使用户在面临多样化环境中,管理更加规范、直观、高效便捷。GreatADM 就是结合部分金融和运营商私有国产化交付场景下,打造的一款全方位、多场景的覆盖的数据库管理平台产品。
对于用户而言,GreatADM 提供了常见业务场景中,数据库标准化交付、规范化扩缩变更操作、日常监控管理、以及运维历史可溯源的能力,为业务的平稳运行保驾护航。
对于 DBA 而言,在一对多的数据库架构管理中,选择合适的工具,合适的平台才能使工作更高效,处理问题更方便,才能保障数据库平稳运行,减少 DBA 人工管理成本,降低定位问题的门槛,而 GreatADM 为 DBA 提供了一种全新的体验。
如果大家有什么问题或文中有描述错误,欢迎指出,大家可以随时留言,感谢大家阅读。
版权声明: 本文为 InfoQ 作者【GreatSQL】的原创文章。
原文链接:【http://xie.infoq.cn/article/a21aca60859501eafbecfb5bb】。文章转载请联系作者。
评论