南大通用GBase 8a数据库gcware/corosync服务频繁重启的原因 GC_AIS_ERR_TRY_AGAIN

GBase 8a数据库的corosync服务,如果遇到资源不足(内存,磁盘等),或者REDOLOG等重要配置文件损坏,会出现宕机或者内部主动重启情况。启动后如果资源还是不满足,就会再次停止或宕机。

从节点corosync_system.log 或者 gcware_system.log里能看到每个几秒就重启一次,对应的gclusterd服务也在不断的重启。

corosync宕机后,会被monit服务拉起,导致在不断地重启。

已知如下几个原因会出现这个问题,多数是corosync自身认为自己有问题而主动重启的。

1、内存不足

free  查看物理内存
df 查看/dev/shm 空闲内存可用量必须大于128M

2、磁盘空间不足

df 查看磁盘空间
df -i 查看inode空间

3、网卡不稳定不断重启

查看网卡启动记录,比如
grep -i network /var/log/messages

4、允许的线程数不足(关键字:processes)

查看进程的线程限制
cat /proc/`pidof corosync`/limits
或者
cat /proc/`pidof gcware`/limits
su - gbase
ulimit -a 查看当前环境变量

5、老版本集群REDOLOG文件损坏。该文件在/var/lib/gcware/下面。老版本没有对该文件做保护。当文件出现损坏时(tail 文件看不到完整的json格式),corosync宕机。