1. 背景:
gcware组件是GBase 8a集群状态组件,主要记录集群级别信息如:SCN、Tableid、集群节点拓扑信息和节点服务状态信息。
gcware采用网络探测方式检查各节点及运行在节点上的数据库服务状态,在失败并尝试retry次数后仍失败后会记录节点服务异常状态并启动集群高可用功能,避免coordinator向状态异常的节点发送sql任务。
当出现节点服务状态异常后会在gcware日志中记录相关信息,可以通过排查gcware日志方式排查节点异常历史信息。
2.节点状态异常时gcware日志内容解读:
/var/log/gcware/gcware_****.log
节点服务状态异常时信息:
07-31 13:10:44.056304 [TID: 1433523968]StateChangeTrackCallback [ENTER] trankflag = 4 clusterstatechange = 2
07-31 13:10:44.056434 [TID: 1433523968]num = 1
07-31 13:10:44.056504 [TID: 1433523968]nodeid = 1705224384
07-31 13:10:44.056540 [TID: 1433523968]StateChangeTrackCallback [LEAVE]
恢复后日志信息:
07-31 13:17:33.885692 [TID: 237033216]StateChangeTrackCallback [ENTER] trankflag = 4 clusterstatechange = 1
07-31 13:17:33.885732 [TID: 237033216]num = 1
07-31 13:17:33.885753 [TID: 237033216]nodeid = 1705224384
07-31 13:17:33.885773 [TID: 237033216]StateChangeTrackCallback [LEAVE]
其中trankflag代表如下:
trankflag = 4 gclusterd
trankflag = 8 gbased
trankflag = 32 syncserver
代表状态异常的服务内容
clusterstatechange = 2 代表有节点服务异常启动高可用
clusterstatechange = 1 代表异常状态恢复
nodeid为根据节点IP计算的nodeid,在gcware配置文件中集群拓扑信息中可以查看
分析具体实例如下:


日志解读如下:
corosync.log日志在RsyncTools detail日志中报错时刻记录了port scan error的报错,且报错的IP指向10.133.151.227
日志中的nodeid = -476609270 是集群在IPV6兼容模式下IP地址取:::ffff:10.133.151.227时计算得出的nodeid,与ipv4模式下计算出的3818358026等价
具体换算方法为:
3818358026 换算为16进制: E397850A
增加八位FFFF兼容ipv6为: FFFFFFFFE397850A
换算为10进制:-476,609,270





