看完这篇,DWS故障修复不再愁

2023-10-10 02:40
文章标签 故障 修复 dws 不再 这篇

本文主要是介绍看完这篇,DWS故障修复不再愁,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:本文详细梳理分析了DWS服务面临软硬件故障场景和对应的修复原理,希望借此能够让你对DWS的集群故障修复有个全面深入的了解。

本文分享自华为云社区《GaussDB(DWS)故障修复系统性介绍》,作者: 闻鲜生。

DWS是一个分布式架构的MPP集群,物理部署上涉及数百数千台主机和对应的磁盘,以及这些主机所在的大规模分布式高速组网环境。在逻辑上,MPPDB包括CM、GTM、CN、DN各种实例组件的配合工作。因此DWS的故障场景较多,不过我们提供了针对各种故障场景的系统性修复方案。通过此文可以了解DWS服务面临的故障场景和对应的修复方案。

硬件故障场景

1、可修复故障:主要是指硬件故障后可以修复,并且不会造成数据损坏或者丢失,比如内存条故障更换,raid组内磁盘故障更换,主机断电重启等。这种故障场景下,等待硬件故障恢复后,上面的数据库实例会自动启动并恢复。

2、磁盘故障:包括磁盘故障和raid组故障,可能导致CN,DN数据损坏或者丢失。这种故障场景下,等待硬件故障修复后,需要对上面的CN实例做元数据修复,DN实例做数据修复,CM,GTM实例做配置修复。

3、主机故障:包括系统盘损坏,其他硬件故障导致的主机无法启动等,会导致该主机上部署的软件和数据丢失。这种故障场景下,则需要更换主机,使用新主机替换故障主机,需要在新主机上重装数据库软件,重建上面的数据库实例。

软件故障场景

DWS逻辑上包括OM,CM,GTM,CN,DN六种类型的实例组件,每类组件提供的功能不动,配置的数量也不同,但是共同配合,支撑DWS的运维和业务功能。如下是DWS服务的一种简单部署拓扑图(其中OM属于静态工具因此不再列出,为了拓扑简洁性DN从备也未列出):

其中硬件故障最终体现到DWS数据库实例故障上,DWS集群修复也是通过修复每类故障实例来进行的,每类实例的修复条件和修复思路如下:

  • 集群管理组件(CM)
    • cm_server:主备模式,主备至少有一个正常的才能修复。主要修复配置,以对端为模板重建故障实例。
    • cm_agent:每个节点都部署一个cm_agent,原则上只要有一个正常的cm_agent就能修复。主要修复配置,以正常的cm_agent为模板重建故障实例。
  • 全局事务管理(GTM):主备模式,主备至少有一个正常的才能修复。主要修复配置和少量数据(xid,序列等),以对端为模板重建故障实例。
  • 协调节点(CN):多主多活模式,每个节点可部署一个CN实例,整个DWS集群最多部署20个CN实例。只要有一个正常的CN就能修复。主要修复配置和元数据,以正常的CN为模板重建故障实例。
  • 数据节点(DN):多切片模式,最多支持2048个数据切片。每个数据切片又包括主机,备机,从备三副本。每个DN切片主备从只能故障一个。主机或备机故障以对端实例为模板修复故障实例配置和数据。从备故障以主机实例为模板修复故障实例的配置。

故障修复场景

结合硬件故障场景和软件故障场景,DWS支持的故障修复主要包括:DN主备build,实例修复,节点修复(温备)

DN主备build

DN主备副本通过WAL实时同步数据,由CM来自动完成DN主备实例的状态监控、主备冲裁、主备切换及主备build。如果主DN所在机器发生故障,CM自动完成DN主备切换(备机升主,主机降备),如果故障恢复后,CM会自动做DN主备数据同步(build)来重建故障备机。该场景主要包括机器宕机重启,更换内存条等,是最常见的故障场景也是最简单的故障场景,DWS已经支持自动化处理。

实例修复

实例修复主要指相对于“DN主备build”更复杂的故障场景,该故障场景主要是指某个机器(或多台机器)发生实例级别故障,实例范围包括CM、GTM、CN、DN等实例,故障范围主要包括实例的配置或者数据发生损坏或者丢失,但是故障机器的OS系统和DWS数据库软件还是正常的。该故障场景主要包括机器数据盘,raid组损坏,更换磁盘等。

典型的故障场景和修复示意图如下:

该故障场景DWS已经不能做自动化修复,但是提供了一键式修复工具gs_replace,需要运维人员分析故障场景,预估修复耗时,然后在业务空闲时间窗进行修复。

CM、GTM主要修复配置,秒级修复,对业务和系统负载影响很小;CN涉及元数据重建,耗时与表数量正相关,并且在修复后期会短暂锁集群做元数据追增,阻塞用户DDL业务;DN涉及数据重建,耗时与数据量正相关,修复过程中不影响业务,但会消耗系统的网络和IO资源。

节点修复

节点修复主要处理更加复杂的故障场景,该故障场景主要是指某个机器(或多台机器)发生整机故障,如CPU、内存故障,OS系统损坏导致的机器无法启动。

该故障场景修复思路如下:

1、确认故障范围,包括故障机器,影响的数据库实例。

2、故障机器断电下网。

3、重新准备一台新机器,新机器软硬件规格要和故障机器一样。

4、把新机器的主机名和IP修改成故障机器一样,并加入到DWS集群网络内。

5、通过DWS修复工具在新机器上重建故障机器上的软件、配置和数据。

温备

温备处理的故障场景和节点修复一样,主要是修复方式不一样,温备主要适用于云上场景或者有机器富裕的用户。

主要使用场景如下:

1、针对N台主机的DWS集群,提前规划M台机器作为温备机器,温备机器软硬件规格和DWS集群机器一样。并把温备机器也加入到DWS集群网络环境内。

2、如果DWS集群内某台机器发生了硬件故障且无法修复。

3、把故障机器断电并下网。

4、从温备机器中任找一台机器,然后使用DWS修复工具在温备机器上重建故障机器上面的软件、配置和数据。

本文详细梳理分析了DWS服务面临软硬件故障场景和对应的修复原理,希望借此能够让你对DWS的集群故障修复有个全面深入的了解。具体的使用说明和操作步骤可参见DWS产品文档,从此对DWS故障修复不再愁。

点击关注,第一时间了解华为云新鲜技术~

这篇关于看完这篇,DWS故障修复不再愁的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/177355

相关文章

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地

电脑提示Winmm.dll缺失怎么办? Winmm.dll文件丢失的多种修复技巧

《电脑提示Winmm.dll缺失怎么办?Winmm.dll文件丢失的多种修复技巧》有时电脑会出现无法启动程序,因为计算机中丢失winmm.dll的情况,其实,winmm.dll丢失是一个比较常见的问... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提