GaussDB(DWS)运维管理系列基础篇一:升级介绍与展望

举报
闻鲜生 发表于 2020/09/29 18:00:57 2020/09/29
【摘要】 运维管理模块是任何软件产品最基础和重要的一部分。是软件产品的门户,也是用户接触和使用软件产品的和前提和基础。如安装部署能让用户快速上手使用,升级能让产品平滑更新,扩容能让产品扩充能力,故障修复能让产品快速恢复,监控告警能让产品提前预知或及时排除故障。其在可用性,易用性,可靠性,可维护性、在线运维方面都有较高的要求。本文将详细介绍GaussDB(DWS)重要运维管理功能“升级”的原理和使用。

摘要

运维管理模块是任何软件产品最基础和重要的一部分。是软件产品的门户,也是用户接触和使用软件产品的和前提和基础。如安装部署能让用户快速上手使用,升级能让产品平滑更新,扩容能让产品扩充能力,故障修复能让产品快速恢复,监控告警能让产品提前预知或及时排除故障。其在可用性,易用性,可靠性,可维护性、在线运维方面都有较高的要求。本文将详细介绍GaussDB(DWS)重要运维管理功能“升级”的原理和使用。


前言

不断更新和演进是软件的一个重要行为,升级是软件更新的重要保证。伴随着新特性不断推出和历史问题修复,软件升级和打补丁显得格外重要。升级和打补丁需要满足如下要求:

  • 软件版本的无缝、平滑过渡。

  • 业务中断时间尽量少,以至于在线。

  • 用户体验前向兼容。

而数据库升级比其他软件升级更为复杂,不光是软件本身的更新,还要支持其管理的数据的升级。数据库升级需要考虑如下因素:

  •  软件升级,即软件本身的更新。

  • 元数据升级,即软件管理数据的方式的更新。

  • 业务数据升级,即软件管理的数据的升级。

随着数据库版本的快速演进,升级愈显重要,其可靠性、性能、业务中断、易用性急需改善。


升级演进

GaussDB(DWS)升级经过多个版本的演进,其性能,可靠性逐步提升。并提供了不同场景的各种升级方式。如下是演进过程:

  • 大版本全量升级:新版本重建数据库,元数据导入导出,业务数据全量mv方式。依赖于数据库对象个数和业务数据量大小、业务数据表文件数。已在V1R8停用。

  • 就地升级:原地替换二进制,修改系统表方式。依赖于系统表的逻辑大小(数据对象个数)和物理大小(系统表脏页)及数据库个数。

  • 小版本离线升级:停机,替换二进制,启动集群。业务中断时间是一次集群的重启时间。

  • 小版本滚动升级:保留老二进制文件,新目录安装新二进制,按照组件(om_monitorcm_agentETCDCNdummy DNstandby DN/GTM/CMmaster DN/GTM/CM)滚动切换到新二进制,然后主备切换。整个升级过程中涉及两次switchover,业务中断时间依赖于在线switchoverCN retry能力。

  • 小版本闪断升级:基于小版本滚动升级基础,保留老二进制文件,新目录安装新二进制,先切换管理组件(om_monitorcm_agentETCDcm_server),再一次性切换业务组件(GTMCNDN),只闪断一次业务。目前DWS已使用。

就地升级原理介绍

目前8.0主要使用的升级方式是就地升级。其已经支撑现网线下和公有云多套集群成功升级到新版本。

1、公有云升级流程

DWS服务升级主要分2部分,管控面升级和租户面升级:

各个region的管控面升级回滚主要通过CDK平台完成,升级后组件自行功能验证。

升级实例的信息:

租户面升级在ServiceCM平台由SRE操作,操作可分为DWS Guest升级和数据库内核升级:

主要流程如下所示:


2、线下updatetool升级

通过登录UpdateService操作界面,创建升级工程,进行一键式升级。



3、数据库内核升级流程

数据库内核升级是通过替换二进制+更新元数据的方式进行升级。

包括初始阶段,准入检查,环境准备,停机,备份,升级,update catalog,提交8个阶段。



升级性能目标

版本 业务中断
升级时间窗
8.0版本升级 小于60分钟
建议4小时
8.0版本补丁 10分钟 建议2小时
8.1版本升级 小于30分钟 建议2小时
8.1版本补丁 秒级闪断 建议30分钟
8.x版本升级 灰度滚动升级 在线升级
8.x版本补丁 函数注册,无闪断 在线补丁


升级问题定位

升级过程日志概览见下表:

流程

日志目录

日志记录信息说明

创建升级工程

${BIGDATA_LOG_HOME}/update-service/scriptLog/

创建工程脚本执行

${BIGDATA_LOG_HOME}/controller/scriptlog/restore_package.log

升级包瘦身还原

${BIGDATA_LOG_HOME}/controller/scriptlog/installPack.log

部署新版本组件包

${BIGDATA_LOG_HOME}/update-service/runLog/update-manager.log

集群信息与工程初始化

${BIGDATA_LOG_HOME}/upgrade/prepare.log

升级信息准备

分发软件包

${BIGDATA_LOG_HOME}/update-service/runLog/update-manager.log

包分发-工具侧

${BIGDATA_LOG_HOME}/controller/controller.log

包分发-controller侧

${BIGDATA_LOG_HOME}/update-service/runLog/omm_upd_agent.log

原子包部署

${BIGDATA_LOG_HOME}/update-service/scriptLog/distribute_deploy_adapter.log

升级适配包部署

升级Manager

${BIGDATA_LOG_HOME}/upgrade/upgrade.log

升级Manager过程中脚本执行

${BIGDATA_LOG_HOME}/controller/scriptlog/installPack.log

注册新版本部件

升级集群前准备

${BIGDATA_LOG_HOME}/upgrade/upgrade.log

适配components

适配adapter

${BIGDATA_LOG_HOME}/controller/controller_client.log

进入、退出agent更新模式

${BIGDATA_LOG_HOME}/update-service/runLog/update-manager.log

进入、退出agent更新模式

安装新版本部件

配置生成

组件账户信息升级

Postinstall处理

${BIGDATA_LOG_HOME}/controller/controller.log

安装新部件

配置生成

组件账户信息升级

Postinstall处理

升级集群

${BIGDATA_LOG_HOME}/update-service/runLog/update-manager.log

停止服务

备份服务

升级前处理

启动新服务

${BIGDATA_LOG_HOME}/ controller/controller.log

停止服务

启动新服务

提交确认

${BIGDATA_LOG_HOME}/upgrade/commit.log

旧版本部件删除

oms升级确认

agent升级确认

${BIGDATA_LOG_HOME}/update-service/runLog/update-manager.log

新服务提交确认

旧版本部件卸载

${BIGDATA_LOG_HOME}/controller/controller.log

组件账户信息确认

旧版本部件卸载

${BIGDATA_LOG_HOME}/update-service/scriptLog/

删除升级软件包脚本执行

回滚

${BIGDATA_LOG_HOME}/upgrade/rollback.log

回退JDK

回退Adapter适配

回退component适配

卸载新版本部件

agent回退

oms回退

${BIGDATA_LOG_HOME}/update-service/runLog/update-manager.log

激活旧版本部件

配置刷新

停止服务

组件服务回退

启动旧版本服务

部件回退

进入与退出Agent更新模式

${BIGDATA_LOG_HOME}/controller/controller.log



激活旧版本部件

配置刷新

停止服务

启动旧版本服务

组件账户信息回退

部件回退

${BIGDATA_LOG_HOME}/update-service/scriptLog/

删除升级软件包脚本执行

UpdateService的日志分为审计日志和调试日志,位置见下表:

文件目录

日志类别

日志说明

/var/log/Bigdata/audit/upgrade

审计日志

记录UpdateService接收到的命令及其执行结果

${BIGDATA_LOG_HOME}/update-service/catalina

${BIGDATA_LOG_HOME}/update-service/core

${BIGDATA_LOG_HOME}/update-service/runLog

${BIGDATA_LOG_HOME}/update-service/scriptLog

运行日志

安装运行过程中产生的日志


结语

在数据仓库产品使用过程中,升级和打补丁是使用频率较高的功能。本文中仅仅介绍了GaussDB(DWS)升级的大致流程和基本原理,及性能目标。如果现网变更中遇到升级相关问题,还需联系相关技术支持。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。