摘要:
1. 动机与创新
现在的应用对可靠性和可用性的需求越来越高。这主要是由于软件失效通常会造成巨大的经济和信誉的损失,因此对于应用服务器可靠性和可用性的研究是非常必要的。
近年来,很多研究者指出应用在持续运行较长一段时间后通常会出现性能下降和故障率升高等问题。这一普遍的现象被称为软件老化。目前,对于软件老化的研究主要集中在如何减少老化问题和如何为应用服务器实现一个高可用的系统。本文提出了一种新的方法,该方法使用基于虚拟机的软件再生(本文将它命名为VMSR)为应用服务器系统提供高可用性。
2. 方法概要
引起软件老化的因素涉及到操作系统资源可用性的持续下降,数据损坏,以及大量有可能导致系统崩溃或不可预测的系统挂起的错误积累。软件再生技术被广泛的用于避免各种不可预测的错误,主要包括软件老化以及瞬时性错误等问题。软件再生是一种主动的错误管理技术,它通过提前清理系统的内在状态来避免将来有可能发生的更加严重的错误。而虚拟化技术则允许多个操作系统实例并发地运行在一台计算机上,它能够为不同的操作系统实例划分硬件资源。本文采用虚拟化技术完全消除了软件再生所需要的冗余的硬件资源。
在本文中,我们首先提出了一种基于虚拟机技术的软件再生方法VMSR为应用服务器系统提供高可用性。其次,我们使用随机模型对一个运行了多个虚拟机和VMSR框架的物理服务器进行了建模,并且通过数值分析方法和 SHARPE(Symbolic Hierarchical Automated Reliability and Performance Evaluator)模拟工具对该模型进行了评估。VMSR模型具有很好的通用性并且可以捕获应用服务器的多种特征、错误行为以及性能度量结果。
2.1 VMSR 框架
本节我们将着重讨论VMSR系统如何使用虚拟化技术管理再生过程。本文提出的方法是在一台物理服务器上保存一个老化应用的多个副本,通过触发每个副本的再生操作来监测软件老化。当处于活动状态的虚拟机中的原始应用将要被执行再生操作时,我们就将服务迁移到另外一台虚拟机上。图1是VMSR系统的一个简单示例。图2展示了VMSR的操作流程。
| |
图1 单服务器的虚拟化结构 | 图2 基于虚拟机技术的软件再生方法流程 |
当软件老化或者一些潜在的异常在处于活动状态的虚拟机中发生时,VM-LB将触发一个再生操作。如果处于活动状态的虚拟机将要被执行再生操作,则一个处于等待状态的虚拟机将被启动并且新的请求和会话都将从之前的虚拟机中迁移过来。而当发生老化的虚拟中所有的请求都被完成之后,它就可以被执行再生操作。在执行再生操作之后,该虚拟机就恢复到了正常的健康状态。这种方法将虚拟机作为复制的容器从而避免了对硬件资源的额外需求并且它能够在进行软件再生时不中断系统的服务。
2.2 VMSR模型
VMSR模型主要用来对系统老化建立分析模型,而通过解决这一模型可以确定VMSR方法的有效性以及分析出理想状态下的再生过程。
图3给出了VMSR框架的马尔可夫链状态转移图。模型中一共有五种状态:健康状态(Hi),不稳定状态(Ui),替换状态(Si),再生状态(Ri)和失败状态(H0)。我们关注于VMSR框架如何提高系统的可用性和降低应用的停机时间以及由于停机所造成的损失。
在单系统中,只存在LB-VM和一个处于活动状态的虚拟机。
多系统是由LB-VM,一个处于活动状态的虚拟机和n-1个处于等待状态的虚拟机组成。
| (2) |
(i = 0, 1, 2, .., n) | (3) |
(i = 1, 2, .., n) | (4) |
(i =1, 2, .., n) | (5) |
(i = 2, 3, .., n) | (6) |
在图3所示的模型中,处于再生过程的再生状态(R1)和失败状态(H0)时服务是不可用的。在稳定状态下,系统可用性被定义如下:
预期的系统停机时间和停机代价可以被定义为一个关于操作时间(T)的函数。
2.3数值结果
使用本文VMSR框架的系统持续运行一年时间。两次连续失效之间的时间间隔为一年,修复时间为12个小时。健康的虚拟机每15天就变的不再稳定。再生时间和替换时间分别为10分钟和3分钟。可操作的虚拟机个数从单系统(n=1)到多系统(n=4)不等。软件再生的执行时间间隔从(rate=3)到无穷大(rate=0:无再生)不等。在单位时间内,不可预期的停机代价是可预期的再生代价的100倍。
| |
图4 不同再生率和虚拟机个数下的系统可用性 | 图5 不同再生时间和虚拟机个数下的系统可用性 |
如图4和图5所示,当存在两个虚拟机时系统可用性明显高于只有一个虚拟机的情况,但是增加到三个虚拟机时系统可用性却只有极少的增加。当可操作的虚拟机个数等于或者超过三个时,系统可用性的增加微乎其微。图6展示了不同再生率和虚拟机个数下的停机代价。从该结果可以看出,使用两台虚拟机的VMSR方法在构造高可用系统时明显具有更高的性价比和更低的管理代价。
3. 总结
本文提出了一种基于虚拟化技术的软件再生方法,并证明了该方法能够有效的减少软件老化问题。我们使用随机模型方法建立了可用性模型以评估VMSR方法的影响,并根据模型中的参数通过数值计算得出了稳定状态系统的可用性、停机时间和停机代价。结果证明VMSR方法为老化应用提供了连续的可用性和优化的性能。
4. 贡献与意义
本文介绍了一种使用虚拟机技术的软件再生方法VMSR,它能为应用服务器系统提供高可用性。VMSR方法不需要任何额外硬件资源就可以为单个物理服务器提供高可用性。因此,VMSR是一种解决软件老化问题的高性价比的方法。