上述现象可能存在的原因如下,主要是/cfs/vs/brick/下的配置文件异常;
(1)可能是配置文件错误,如brick_name为null,这种情况可以通过修改配置文件解决;
(2)可能是配置文件缺失,这种情况可以通过重新构造配置文件解决;
(3)可能是配置文件残留 ,这种情况可以通过删除配置文件解决;
(4)可能是配置文件格式被改了,如多了大括号{}等 ,这种情况不好发现,只能调试vs_gluster.sh info create生成的nodejs文件,或者移除所有的/cfs/vs/brick/的配置文件,在所有主机执行命令vs_brick_create.sh生成,再填充新生成的brick配置文件里的brick_name和修改in_cluster为ONLINE来解决。
日志:/sf/log/today/vs/scripts/vs_storage_expand.sh.log(通过这个日志来判断是什么问题)
处理过程:
1、针对配置文件错误(brick_name为null,或in_cluster为OFFLINE)的修改
当brick_name为null时,修改brick配置文件的brick_name字段和in_cluster字段:
步骤1:brick_name字段值由null改为如下的e38fd3ba-ff3e-40fd-991e-18d91ae0347b,具体的操作,如下图所示:
步骤2:in_cluster字段值由OFFLINE改为ONLINE
2、针对配置文件缺失
构造如下等丢失的配置文件:
host-a0369f03403b_jKd63s-4xew-HaTu-DtT4-Z1dt-ov8D-w2fGcD_BRICK_BAK.json
host-a0369f03403b_jKd63s-4xew-HaTu-DtT4-Z1dt-ov8D-w2fGcD_BRICK_REP2.json
3、针对配置文件残留
比较/cfs/vs/brick/下的配置文件与各个主机的vgs信息,如有多余的配置文件,则mv到/root/目录
备注:
以上相关操作都需要后台操作,若是操作不确认建议先备份文件或找专家研发评估确认可以操作后执行,上述关于计算存储容量问题,都可以通过脚本vsts-fix-storage-capacity.sh处理,建议优先使用脚本处理。
扩容主机失败,提示:虚拟存储正在同步数据,请稍后重试!
排查步骤:
1、查看日志/sf/log/today/vs/scripts/vs_storage_expand.sh.log,主要关注【E】字段的日志,比如如下图所示的日志,说明有主机返回了错误需要关注;
2、ssh到提示failed的主机上,查看日志/sf/log/today/vs/scripts/vs_ab_check_changelog.sh.log提示,如下图所示的日志,则说明虚拟机有bad;
现象三:
扩容主机是:虚拟存储中存在异常磁盘,请稍后重试
排查步骤:
1、执行命令 grep UNNORMAL /cfs/vs/partition/*,看是否有UNNORMAL字段的配置文件;
2、如果查看文件中的fault字段提示的错误,则根据fault的字段排查:
fault = depend可能原因有:1)检查存储网络是否异常、2)检查对应的磁盘是否在线;
fault = error_dir_notmount, 后台手动执行mountglusterfs.sh,然后mount查看对应的盘是否挂载成功,如果仍未挂载,查看日志/sf/log/today/vs/scripts/vs_partition_mount.sh.log,根据日志进行排查;
fault=IOerror,查看/sf/log/vs/diskerrstat下对应的记录文件或者查看/sf/log/today目录下的内核日志,看是否存在坏道;
fault=offline,查看磁盘是否离线;
3、如果没有UNNORMAL的盘,调用gluster volume status,查看是否有不正常的brick,如下图所示则说明存在不正常的brick,一般都是磁盘异常或坏道才会导致brick显示N状态,查看内核日志或者黑匣子目录下的dmesg日志确认;
以上若是确认是磁盘损坏或坏道,则需要进行替换磁盘再进行扩容操作;