JMS集群故障

集成平台JMS故障

故障描述

集成平台业务通信中断 业务不可用

故障处理过程

  1. 发现134机器无法登陆,监控脚本报错,weblogic控制台页面显示该主机状态为SHUTDOWN,

  2. 私有云团队对134机器排查时发现,虚拟化控制台显示该主机黑屏且无法操作,通过授权后对这台机器进行重启,准备恢复这台主机;

  3. 将JMS集群中其余三台主机135/136/137重启JMS服务,但重启失败,显示重启需要加载的文件被锁定,无法打开文件,经过排查发现被锁定的文件,之前均被134这台主机使用,被JMS应用加文件锁;

  4. 私有云团队反馈无法重启134这台主机,报错内容为“由于保护JCPT_core_8.32_BCLinux7.3_45.vmdk的锁定已丢失可能是基础存储出现问题”确定是宿主机有问题,准备重启宿主机。

  5. 私有云团队反馈重启宿主机有报错,该宿主机共有6台虚拟机,为了不影响其他5台虚拟机业务,正在迁移5台虚拟机到其他宿主机上,保留jms单台虚拟机,迁移完成后对该问题宿主机进行重启;

  6. 私有云团队反馈已经将134主机关闭;

  7. 第二次在135/136/137重启服务,日志依然报错,集群启动所依赖的文件还是处于被锁定的状态,判断私有云控制台虽显示关闭的该主机,实际并未真正关闭,访问文件的链路未释放,现在需要尽快停掉

  8. 等待134宿主机关机,先进行重启,如果重启成功则系统恢复正常,如果重启不成功则说明文件损坏,先备份损坏的文件,备份完成后删除损坏文件后再进行重启;

  9. 将宿主机上的其他5台正常虚拟机迁移完成,成功关闭宿主机;

  10. 关闭所有JMS进程,准备第四次重新启动虚拟机

  11. 135/136/137启动服务并持续观察日志是否有报错;

  12. 通过日志观察到仍然有三个文件被锁定,分别JMSSERVER_ISC_FileStore;JMSSERVER_YDXY_FileStore;JMSSERVER_YJY_FileStore;

  13. 134启动成功后,135主机日志报错恢复,但集群状态异常,集中运维团队将JMS集群所有关于JMS服务的进程KILL掉后,再次重启JMS集群;

  14. 重启整个集群4台1134-137主机上JMS服务

  15. JMS集群服务启动成功,日志无报错,故障恢复,业务验证通过;

故障原因

134所在的宿主机跟存储之间的通信出了问题导致虚拟机异常;进而导致操作系统层异常,引起JMS应用异常,致使部分缺省分配在134主机上的JMS持久化存储文件被锁,其余3台主机无法读取被该主机锁定的文件,引起JMS server集群内漂移失败,直至整个集群故障。

问题结局

  1. 联系Oracle高服,评估并解决因虚拟机故障锁定文件资源的问题,实现可以手动操作加载任意资源或其他JMS应用主机可以解锁共享文件
  2. 减小影响范围,在JMS集群内实现134与135之间自由漂移,136与137之间自由漂移,这样一台主机故障仅影响两台主机,防止一台主机故障拖垮整个集群;
  3. 通知与JMS集群对接的系统进行JMS消息处理优化,尽快消费掉JMS集群内的消息;当前JMS集群存储的消息的时间为5-10天,尽量减少存储的时间,减轻JMS集群的未处理消息的数据量和处理压力;
  4. 当前集群的共享存储为NFS,NFS性能较差,每月消息堆积的数据量在20G-50G,都会进行定期JMS持久化操作,考虑更换读取IO性能更好的存储;
  5. 做好宿主机与存储、虚拟机与存储、物理设备和存储设备间网络状况的监控,及时发现问题,及时解决
posted @ 2022-10-20 10:54  机猿巧合  阅读(72)  评论(0编辑  收藏  举报