博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Greenplum--Triggering FTS prob故障检测原理
阅读量:3521 次
发布时间:2019-05-20

本文共 3205 字,大约阅读时间需要 10 分钟。

目录

 


最近在恢复gp集群时,看到有[INFO]:-Triggering FTS probe。这是在手动恢复时触发FTS来恢复集群。还有这是如何切换primary和mirror的呢? og_rewind。

20201119:14:26:43:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-4 segment(s) to recover20201119:14:26:43:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Ensuring 4 failed segment(s) are stopped20201119:14:26:44:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Ensuring that shared memory is cleaned up for stopped segments20201119:14:26:44:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Updating configuration with new mirrors20201119:14:26:44:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Updating mirrors20201119:14:26:44:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Running pg_rewind on required mirrors20201119:14:26:46:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Starting mirrors20201119:14:26:46:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-era is f2c869ba60c583e4_20111914261820201119:14:26:46:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Commencing parallel segment instance startup, please wait.......20201119:14:26:50:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Process results...20201119:14:26:50:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Triggering FTS probe20201119:14:26:54:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-******************************************************************20201119:14:26:54:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Updating segments for streaming is completed.20201119:14:26:54:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-For segments updated successfully, streaming will continue in the background.20201119:14:26:54:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-Use  gpstate -s  to check the streaming progress.20201119:14:26:54:047444 gprecoverseg:gptest01:gpadmin-[INFO]:-******************************************************************

前言

FTS(Fault Tolerance Serve)是GreenPlum中的故障检测服务,是保证GP高可用的核心功能。GreenPlum的Segment的健康检测及HA是由GP Master实现的,GP Master上面有个专门的进程–FTS进程,它可以快速检测到Primary或者Mirror是否挂掉,并及时作出Primary/Mirror 故障切换。

一、FTS架构

GreenPlum的Segment的健康检测及HA是由GP Master实现的,GP Master上面有个专门的进程–FTS进程,它可以快速检测到Primary或者Mirror是否挂掉,并及时作出Primary/Mirror 故障切换。如果FTS挂掉了,Master将会重新fork出来一个FTS进程。

Greenplum--FTS故障检测原理

二、FTS实现原理

GP Master上面的FTS进程每隔60s(时间可以配置)向Primary或者Mirror发送心跳包,Primary和Mirror收到心跳包后返回它们的当前状态,FTS进程心跳包的发送状态和Segment返回状态更新元信息和作出故障切换。因为Segment可能很多,为了加快检测速度,FTS是多线程的,默认16个线程。

Greenplum--FTS故障检测原理

三、Segment检测及故障切换

GP Master首先会检测Primary状态,如果Primary不可连通,那么将会检测Mirror状态,Primary/Mirror状态总共有4种:

Primary活着,Mirror活着。GP Master探测Primary成功之后直接返回,进行下一个Segment检测;
Primary活着,Mirror挂了。GP Master探测Primary成功之后,通过Primary返回的状态得知Mirror挂掉了(Mirror挂掉之后,Primary将会探测到,将自己变成ChangeTracking模式),这时候更新Master元信息,进行下一个Segment检测;
Primary挂了,Mirror活着。GP Master探测Primary失败之后探测Mirror,发现Mirror是活着,这时候更新Master上面的元信息,同时使Mirror接管Primary(故障切换),进行下一个Segment检测;
Primary挂了,Mirror挂了。GP Master探测Primary失败之后探测Mirror,Mirror也是挂了,直到重试最大值,结束这个Segment的探测,也不更新Master元信息了,进行下一个Segment检测。
Greenplum--FTS故障检测原理

四、参数配置

4.1、gp_fts_probe_threadcount

用来故障检测的线程数量,默认为16。

4.2、gp_fts_probe_interval

两次检测的时间间隔,默认为60s。如果一次检测时间使用10s,那么剩余50s将会sleep;如果超过60s,将会直接进入下一次检测。

4.3、gp_fts_probe_timeout

检测Segment超时时间,默认值: 20。

4.4、gp_fts_probe_retries

检测Segment失败重试次数,如果超过这个次数,将会认为当前节点挂掉,默认值: 5。

4.5、gp_segment_connect_timeout

Prmary和Mirror文件同步允许连接Mirror最大超时时间,如果达到这个超时时间,Primary将会认为Mirror挂掉了,默认值: 180s

转载地址:http://fmhqj.baihongyu.com/

你可能感兴趣的文章
C# vs2019 智能提示中文突然变成英文
查看>>
编译内核驱动模块出错(./arch/x86/include/asm/xxx fatal error: asm/xxx: No such file or directory)
查看>>
分组加密(ECB、CBC、CFB、OFB)实现(Java)
查看>>
RSA算法原理及实现(Java)
查看>>
中国剩余定理(超详细讲解)
查看>>
Golang之Gin框架源码解读——第一章
查看>>
Golang之Gin框架源码解读——第二章
查看>>
Golang之Gin框架源码解读——第三章
查看>>
Golang之Gin框架源码解读——第四章
查看>>
SELinux详解之第一章——基本介绍
查看>>
SELinux详解之第二章——MLS/MCS
查看>>
linux开机引导和启动过程(详细)(含配置文件解读)
查看>>
Vue学习笔记——常见简写&修饰符
查看>>
vue-element-admin源码解读——项目启动过程
查看>>
vue-element-admin源码解读——数据Mock
查看>>
vue-element-admin源码解读——项目组件布局及状态管理
查看>>
Andriod开发R文件爆红相关解决方法及排查方案
查看>>
汇编语言之寄存器总结
查看>>
【十大经典数据挖掘算法详解】
查看>>
分布式服务器技术选型
查看>>