关于数据仓库:数仓备机DN重建快速修复你的数仓DN单点故障

3次阅读

共计 1616 个字符,预计需要花费 5 分钟才能阅读完成。

摘要: 大规模分布式系统中的故障无奈防止。当 DN 产生单点故障时,复原伎俩有哪些,又是如何复原的,本节重点介绍操作 gs_ctl build 是如何修复 DN 单点故障的。

本文分享自华为云社区《华为云数仓备机 DN 重建,疾速修复 DN 单点故障!》,原文作者:welblupen。

1. 技术背景

GaussDB(DWS) 的 DN 高可用架构为主、备、从备架构。即在分布式环境中,残缺的集群数据采纳分片技术散布在多个 DN 组上,每组 DN 承当一个数据分片,包含:一个主 DN、一个备 DN 和一个从备 DN。主和备各有一份残缺的数据,从备上个别不存储数据,仅在备机故障时做数据的暂存,当备机故障复原之后,为了放弃集群数据的一致性,须要备机连贯主机进行数据和 xlog 日志的拷贝。

2. 备机 DN 须要进行重建的场景

2.1. 主机产生单点故障之后,备机进行 failover 升主,原主降备,集群降级;待原主故障复原后,可能会导致主备机 WAL 日志 CRC 校验失败,CM 零碎检测到该状态后会主动通过备机重建的形式进行主动备机重建。

2.2. 备机产生单点故障之后,备机状态变为 unknown,集群降级,待备机故障复原之后,需须要进行备机重建操作同主机同步数据。

3. 备机 DN 重建的操作分类

3.1. 增量重建:gs_ctl build -b incremental -Z datanode

用处:

增量 build 可修复常见的主机或实例故障导致的备机日志分叉问题,也可修复局部数据文件失落的问题,在重建过程中产生主机异样,能够手动回退有损复原。

过程:

  • 获取差别文件:通过解析 Xlog 日志获取主备 DN 差别文件
  • 备份与复原:对主备差别文件进行严格进行原子化复原和备份,过程中出错可复原,排除谬误后,可再次调用重入
  • 传输文件:由备机创立指定(1-16)个线程从主机拉取差别文件
  • 实现增量重建期待 xlog 日志落盘

剖析:

增量重建是,依据 Xlog 日志计算主备 DN 差别文件,将文件发送给备 DN, 在备机数据没有损坏的状况下疾速进行增量重建,代价较小。

3.2. 全量重建:gs_ctl build -b full -Z datanode

用处:

备机全量重建可能修复绝大多数数据和日志损坏或失落的场景,但修复工夫比增量 build 更长

过程:

  • 获取差别文件:应用根据硬件调优的 CRC-32C 系列算法获取主 DN 上相应文件的 CRC 校验值,同时本地也进行对应操作,二者比拟取得差别文件列表
  • 备份与复原:默认无原子化,但会尝试进行原子化复原,疏忽复原后果成败
  • 传输文件:由备机创立指定(1-16)个线程从主机拉取差别文件
  • 实现增量重建期待 xlog 日志落盘

剖析:

全量重建是一种以主 DN 文件为基准,备 DN 文件同其进行校验,如果备 DN 文件的某个文件块校验不统一,则主机将此文件块发给备 DN。与全量清理重建相比拟,拷贝的数据量和 WAL 日志量都更少,代价中等。

3.3. 全量清理重建:gs_ctl build -b fullcleanup -Z datanode

用处:

与 full 模式区别为:同步前须要清理 DN 主机的数据目录。可能修复绝大多数数据和日志损坏或失落的场景,但修复工夫比其余模式更长

过程:

  • 清理备机数据文件:备机清空数据目录,保留配置文件
  • 主机向备机传输全量镜像:主机应用单个线程将本人的数据目录除了配置文件外,全副发给备机
  • 实现全量重建期待 xlog 日志落盘

剖析:

全量清理重建是备机清空数据目录,保留配置文件,向主机发送全量重建申请,主机将本人的数据目录除了配置文件外,全副发给备机,重建后启动备机,代价较大。

4. 总结

备机 DN 重建性能次要目标是单点故障修复,备机重建形式依照实现分为全量重建,全量清理重建和增量重建,均和主 DN 进行交互。当 DN 呈现单点故障时,操作人员应该依据理论损坏水平和资源耗费抉择适合的重建办法进行备机的数据重建。

想理解 GuassDB(DWS) 更多信息,欢送微信搜寻“GaussDB DWS”关注微信公众号,和您分享最新最全的 PB 级数仓黑科技~

点击关注,第一工夫理解华为云陈腐技术~

正文完
 0