论文部分内容阅读
随着虚拟化技术的快速发展,虚拟化环境已经成为业务系统的主要运行支撑环境之一。然而虚拟化技术仍然面临着许多挑战,实例失效就是其中之一。实例失效指的是由硬件故障、系统软件或应用软件崩溃等所造成的运行支撑环境停止服务的现象。失效检测是处理实例失效的关键环节,及时地失效检测能够有效减少实例失效带来的巨大损失。 心跳检测技术是分布式系统中失效检测的一种常用手段。虚拟化环境的动态性和不可预知性导致实例心跳到达时间可能发生动态变化,历史心跳到达时间有效样本变小,同时虚拟化环境中不同层次的服务实例对失效检测的需求也不尽相同。传统的基于固定超时机制的心跳检测技术已无法适应高度动态的虚拟化环境。而已有的自适应失效检测算法多采用预测器和安全边界模式。然而,预测器的准备期过长,需要依赖大量的历史心跳到达时间有效样本,安全边界无法同时满足动态计算和实例自身调节参数两方面的需求。 针对上述问题,本文设计了一种面向虚拟化环境的失效检测系统。首先,在已有Push方法的基础上,提出一种基于Kalman滤波的心跳到达时间预测器,Kalman滤波模型更新周期快,适应能力强,每收集一个新的样本即可进行更新;其次,结合Chen FD和Bertier FD安全边界的优点,采用了一种混合式的安全边界计算方法;最后,为了减少失效检测信息给虚拟化环境带来的额外开销,失效检测系统采用了一种层次结构,定义了实例与失效检测器之间的关系,设计了一种失效传递检测算法。基于以上设计,本文结合实际的虚拟化平台实现了失效检测系统(Once FD)。模拟实验结果表明,该系统能够在虚拟化环境下进行有效的失效检测,满足不同实例的失效检测需求。