【问题描述】
某天早上,公司内部好多办公系统登录失败。邮件系统、流程管理、代码管理等。但是过了大概一个小时,基本所有情况都恢复正常。
【问题确认】
业务系统的状况:没有任何异常情况,一切访问正常。
数据中心基础实施:连续好多系统报警,而且还有物理主机报警,问题一大堆。
【解决过程】
先来描述一下环境,基本90%以上系统运行在Vmware虚拟化平台之上,业务系统和内部办公管理系统完全隔离为两个不同的集群环境。
办公区为8台宿主机组成的物理集群,集群共享一台存储设备上的存储资源。
首先,我们再一次确认了宿主机的情况,5台宿主机当前运行状态正常,虚拟机也处于正常状态。只有一台宿主机处于失联状态。当把这一台宿主机再次重新启动之后,它也恢复正常了。
再次,查看问题发生时间的日志,包括宿主机日志。我们发现有好多虚拟机发生了HA切换,不仅仅是故障主机上的虚拟机,而且还包括其他非故障主机上的虚拟机。再仔细看,还有好多虚拟机发生了热迁移,有的迁移失败,有的迁移成功。总之几乎所有主机上的虚拟机发生过HA和热迁移现象。
随后,我们再次确认宿主机硬件日志,发现故障时刻点先后有三台宿主机发生重新启动。这样的话,事情就清楚了,几台宿主机先后发生重新启动,触发宿主机上的虚拟机发生HA,在这个过程中由于资源使用的瞬间不均衡,又触发了DRS的自动迁移。这么多事情发生的时间又是如此之集中,导致面积性的故障发生。
【问题总结】
此次问题之后,我们根据环境资源重新评估了HA和DRS等的策略,将激进策略修改为相对保守的策略。
本来虚拟化的HA和DRS策略是为了保障虚拟机的平衡和高可用性的机制,但是在某种不合理策略策略和极端物理故障场合下就有可能导致比正常故障范围还要大很多的面积性故障。试想,如果DRS处于非激进状态,那么在发生HA的时候,即使资源不够,那么故障范围仅限于很小一部分虚拟机,不会发生彼此影响,而且时间集中化的影响。尤其是Windows的虚拟机,成功热迁移的概率比Linux要低很多。所以提醒大家合理设置高可用策略。
在基于X86虚拟化架构实现的过程当中,相信每一个工程师在回忆的时候都不会觉得里面有太复杂太难以忘却的困难点,都觉得是一个非常容易上手的项目。但是是否能够提供一个稳固安全高效的虚拟化架构平台其实并不是一件很简单的事情。
上述故障及其解决只是其中一个案例。
网络虚拟化设计、集群高可用设计、资源调度策略设计、存储的高可用高性能设计、部署实现动态化及运维的自动化等等都是需要精心考虑、细致琢磨、频繁优化才能使其成为一个功能扩展性强、功能稳定可靠、性能发挥持久化的基础平台。
为此,社区在12月30日将基于虚拟化架构当中的高可用设计方面进行细致深入探讨。
拟从以下几个方面展开:
1 集群的高可用性策略及参数选择。
2 集群的资源分配策略制定。
3 集群的资源调度功能策略规划。
4 在复杂应用负载均衡策略条件下的HA及DRS策略规划细节。
5 存储高可用实现的方式以及优劣选择。
希望有更多的同业兄弟,能够基于这些方面以及相关的扩展方面仔细回忆,把自己珍贵的经历和总结分享给大家。
同时也希望在这些方面有过疑问以及现在仍然有很多疑问的的兄弟提出自己的问题和思考,我们一起讨论一起分析。使我们在这条路上多些朋友多些见解,共同成长。
·············
信息来源:AIX专家俱乐部
原文点击:
高可用策略不合理导致的面积性故障