虚拟负载

2024-09-15

虚拟负载(精选4篇)

虚拟负载 篇1

虚拟化技术是企业创建绿色数据中心的核心技术之一, 多处理器技术的快速发展使计算能力有了突破性的提高, 同时也使虚拟化技术成为研究热点。虚拟化技术通过在底层物理环境与虚拟机之间建立虚拟机监视层, 从而屏蔽了复杂的底层物理环境, 使物理机硬件资源不仅能够同时被多个虚拟机共享, 处于运行状态的虚拟机还可以在两台不同的物理机之间进行无间断的迁移[1]。因此, 为了合并服务器资源和应用, 虚拟化技术逐渐成为大型企业构建安全稳定的企业架构的最佳解决方案。

目前, 在商业发展和开源技术研究中有多种虚拟化架构, 其中包括剑桥大学的XEN。在Xen中, 多个虚拟机同时运行在相互隔离的虚拟环境中, 共享底层物理硬件, 包括处理器资源, 且各个虚拟机能够以接近物理计算系统的性能运作[2]。Xen中常用的三种CPU调度算法包括:BVT (借用虚拟时间算法) 、SEDF (最早截止时间优先算法) 和基于信任值算法 (Credit) , 三种算法各有不同的性能瓶颈, 因此, 如何实现高效调度成为虚拟化技术中面临的更大挑战。

专利CN102053858A中提出了一种虚拟机调度算法, 通过监测虚拟机的CPU调度以及状态标识信息, 解决了锁抢占问题, 从而在多处理器架构中实现更精确的可调度状态监测, 提高底层物理CPU资源的利用率[3]。华中科技大学的金海提出了一种Xen虚拟化环境中动态感知音频应用的CPU调度算法, 通过设置合适的时间片大小以及增加实时优先级等策略, 提高了Xen中音频应用的播放性能[4]。

本文提出了一种SMP (对称多处理器) 系统中的动态负载均衡 调度算法 — 动态最早 截止时间 优先算法 (DLB_DEF) 来提高物 理CPU利用率 , 从而减少 空闲CPU。为了实现该算法, 我们设计了一种共享等待队列, 考虑到多处理器环境中cache和内存的同步关系, 使虚拟CPU在执行完任务之前都在同一个物理CPU上执行。仿真实验表明, 改进后的DLB_DEF算法能够优化系统性能, 并完全消除空闲物理CPU。

2SEDF算法以及SMP架构

2.1SEDF算法

在虚拟化计算环境中, 多个虚拟机通过分时调度策略共享物理处理器资源, 每个虚拟机就是一个域, 每个域对应一个或多个虚拟CPU (VCPU) [5]。因此, 如何公平高效地将物理CPU资源分配给多个虚拟机, 并使CPU有效利用率达到合理范围就是一个问题。

SEDF算法是一种基于最早截止时间策略的实时算法, 每个VCPU都会根据自身处理情况设置一个参数:最早截止期限 (deadline) , SEDF根据该时间参数决定VCPU的调度顺序[6], 而且VCPU的优先级根据deadline的改变而变化。SEDF算法将调度具有最早截止时间的VCPU, 从而保证虚拟机任务能及时完成。

每个域都设置一个三元组 (s, p, x) , 时间片s和周期时间p共同表示该域请求的CPU份额和时间, flag是一个boolean类型的值, 表示该域是否能够占用额外的CPU份额, 三个参数时间粒度的设置对调度的公平性影响很大。VCPU结构体的属性如图1所示, 每个PCPU包含2个双链表队列, 如图2所示。

runnableq队列中的VCPU都是处于running或runnable状态, 根据deadline参数排序, 队首的VCPU处于running状态, 而其他VCPU都处于runnable状态, 必须在deadline规定时间内执行调度;waitq队列中的VCPU处于runnable状态, 还未开始计时。

总之, SEDF算法可以通过参数动态配置VCPU的优先级, 因此在负载较大的实时系统中具有较高性能, 当系统负载较小时其CPU使用率可以达到100%, 然而, 随着负载逐渐增大, 一些任务就会发生时间错误, 错过截止期来不及处理而夭折。另外, SEDF算法不支持SMP架构, 从而不能实现对多CPU间全局负载均衡的控制。

2.2SMP架构

在SMP架构中, 多个处理器共享内存, 但每个处理器都对应一个私有cache, 大多数调度算法都遵循就近原则执行调度, 也就是说首选本地CPU来执行相应的任务, 从而提高cache命中率。当一个私有cache被修改后, 就要考虑内存和cache之间的一致性问题, 即不仅要确保修改后cache和相应内存之间的一致性, 而且要确保内存和其他cache之间的一致性。在执行过程中, VCPU可能会处于挂起状态, 比如时间片到或被其他事件阻塞, 此时VCPU虽然停止执行, 但是其对应的私有cache中还保存着运行时环境[7], 当处于挂起状态的VCPU被再次唤醒时, 使其在上次执行过的物理CPU上继续执行, 从而减少数据一致性产生, 即就近调度原则。

为了提高CPU资源的利用率, 就要重视cache和内存一致性带来的性能消耗问题。即VCPU在PCPU之间的频繁调度会产生严重的cache抖动, 进而使数据一致性问题产生额外的性能损耗, 严重降低CPU执行速度[8]。

3DLB_DEF算法的设计

通过上节中对SEDF算法的分析可知:SEDF在实时性环境中具有较好性能, 但不支持SMP架构, 如果一个CPU空闲, 它只能等待新的VCPU任务到来, 而此时其他CPU的任务量可能已经超载, 此时SMP架构中的多处理器系统的物理性能远低于具有相同处理器个数的系统。基于此研究结论, 本文提出一种基于SMP架构的虚拟机负载均衡调度算法——DLB_DEF算法。

在DLB_DEF算法中 , 共享队列share Waitq中的VCPU按照deadline参数进行排序, 且都处于runnable状态, 如图3所示为share Waitq结构体属性:

每个PCPU具有不同的等待时间权值, 即为对应runnableq队列中存放的VCPU的运行时间总和。当PCPU空闲时就从共享等待队列中调取VCPU任务, 同时, 考虑到cache就近原则, 将该VCPU任务上次执行过的PCPU记作pre_pcpu, 改进后CPU和VCPU的结构体属性分别如图4和图5所示:

假设物理机有M个可运行的PCPU, 如式 (1) 所示;式 (2) 为runnableq队列中的所有VCPU;式 (3) 为所有PCPU的weight集合;式 (4) 为weight集合中的最小时间权值。

改进后的动态负载均衡算法DLB_DEF与SEDF算法相同, PCPU都是优先调用具有最早截止期限的VCPU, 通过增加并实时更新共享等待队列share Waitq, 从而实现动态负载均衡。DLB_DEF算法如图6所示:

4仿真实验与结果

4.1仿真平台及环境配置

Schedsim是一种CPU调度模拟器, 提供了良好的接口, 能够实现先来先服务算法、短作业优先算法等多种常见的调度算法[9]。基于Schedsim, 本文设计并实现了SEDF算法和改进后的DLB_EDF算法, 并模拟了两种算法在不同数量处理器上的调度情况, 最后对两种算法调度的系统性能进行了分析和比较。

将SEDF和DLB_EDF中的一个VCPU任务记作一个进程, 由5个参数表示:进程ID号、优先级、就绪时间、执行时间和最早截止期限。为了满足仿真实验的需要, 假设PCPU个数最大为6, 配置5个进程池, 分别包含10、20、40、60、80个进程, 仿真实验步骤如下:

步骤1:创建的进程池至少符合以下要求:12个就绪时间相同而最早截止期限不同的进程, 22个就绪时间和最早截止期限都相同的进程, 32个执行时间不同而就绪时间和最早截止期限相同的进程, 42个分别具有不同的就绪时间、执行时间和最早截止期限的进程, 5就绪时间与执行时间之和大于最早截止期限的2个进程, 6将所有进程的最早截止期限设置为与优先级成反比。

步骤2:进程池中的所有进程入队。

步骤3:配置PCPU个数, 选择调度算法和调度模式。

步骤4:运行模拟器。

以下实验结果是以包含40个VCPU的进程池作为参考, 对每个进程池分别做10组测试, 并取10组数据的平均值。

4.2仿真结果分析

当两个算法的进程都完成时, 如图7、图8、图9分别为系统吞吐量、平均周转时间和平均应答时间的比较结果。

通过图7-9我们可以看到, 当PCPU个数为1时, 由于需要考虑cache就近原则, 因此DLB_DEF的系统吞吐量和任务完成率比SEDF算法略小, 但是平均周转时间以及平均响应时间比SEDF略大;当PCPU个数增多, 即在支持SMP架构的多 处理系统 中 , 具有负载 均衡策略 的DLB_DEF算法的各个性能指标都略超过SEDF, 系统吞吐量和任务完成率逐渐增大, 平均周转时间以及平均响应时间却逐渐减小。特别地, 当DLB_DEF和SEDF的系统吞吐量具有最大差值时, PCPU个数等于4, 即在PCPU为4时DLB_DEF算法具有最优性能。当PCPU个数继续增大为6时, SEDF算法由于空闲PCPU的出现而导致多种系统指标性能降低, 而此时, 在DLB_DEF算法中, 虽然PCPU个数增多, 但由于共享等待队列的互斥性, PCPU调用任务时等待互斥锁的解锁时间逐渐增大, 同时, 共享等待队列的更新也要占用更多时间, 因此, DLB_DEF算法的系统吞吐量、任务完成率、平均周转时间以及平均响应时间也逐渐达到平稳状态。

当PCPU个数逐渐增多时, 即具有更多处理器来执行系统任务时, SEDF和改进后的DLB_DEF算法的任务完成数和任务完成率都逐渐增大, 但是两者的完成率都达不到100%, 即有些VCPU由于错过截止时间而错过执行的机会, 但是DLB_DEF在总体上完成量比SEDF多。

5总结

本文主要对SEDF算法进行分析, 针对其不支持SMP架构的不足, 提出一种动态负载均衡算法DLB_DEF。该算法设计了一个共享等待队列存储VCPU任务, 并根据cache就近原则和PCPU的等待时间权值, VCPU可选择最优PCPU执行其任务。DLB_DEF算法不仅可以降低cache抖动带来的性能损耗, 还可以通过获取PCPU的最小等待权值来增大PCPU使用率。最后, 在Schedsim仿真环境中模拟SEDF和DLB_DEF, 仿真结果表明, DLB_DEF在系统吞吐量、平均周转时间和应答时间、进程完成率等性能指标上都略优于SEDF算法。目前仅在模拟环境中执行DLB_DEF算法, 下一步任务要将DLB_DEF嵌入到XEN源代码中并运行在真实虚拟环境中。

摘要:基于XEN的CPU调度算法已经广泛应用于很多实时系统中, 但是在多处理器系统中却很难实现负载均衡。本文提出一种虚拟机环境中支持SMP架构的CPU调度算法, 该算法在CPU调度算法中增加共享等待队列, 并基于cache缓存和内存的一致性问题, 使得虚拟环境中的多个处理器根据自身任务处理情况, 动态调整共享等待队列中VCPU的执行顺序, 这样就可以避免处理器空闲, 提高处理器使用率。通过仿真实验, 证明该算法支持CPU全局负载均衡, 可以避免cache和内存一致问题所产生的性能降低, 提高系统吞吐量, 降低VCPU执行的平均周转时间和响应时间, 使处理器资源得到充分利用。

关键词:XEN,虚拟机,CPU调度,SMP,负载均衡

参考文献

[1]怀进鹏, 李沁, 胡春明.基于虚拟机的虚拟计算环境的研究与发展[J].软件学报, 2007, 18 (8) :1016-1026.

[2]Paul Barham, Ian Pratt, Keir Fraser, et al, “Xen andthe art of virtualization, ”In SOSP’03:Proc of the nineteenth ACMsymposium on Operating systems principles, New York, ACM, 2003, 15:164-177.

[3]金海, 吴松, 石宣化, 等.一种虚拟CPU调度方法[P].中国专利, 102053858, 2011-05-11.

[4]Huacai Chen, Hai Jin, Kan Hu, et al.“Adaptiveaudio-aware scheduling in Xen virtual environment, ”In AICCSA’10:Proc of the ACS/IEEE International Conference on ComputerSystems and Applications.USA, IEEE Computer SocietyWashington, 2010:1-8.

[5]Hyunsik Choi, Saeyoung Han, Sungyong Park and EunjiYang, “A CPU Provision Scheme Considering Virtual MachineScheduling Delays in Xen Virtualized Environment, ”TENCON’09:2009 IEEE Region 10 Conference.2009:1-6.

[6]Xinjie Zhang, Dongsheng Yin, “Real-time Improvementof VCPU Scheduling Algorithm on Xen, ”In CSSS’11:ComputerScience and Service System.2011:1506-1509.

[7]常建忠, 刘晓建.虚拟机协同调度问题研究.计算机工程与应用, 2011, 47 (6) :38-41.

[8]Min Lee, A.S.Krishnakumar, P.Krishnan et al.“Supporting Soft Real-Time Tasks in the Xen Hypervisor, ”InVEE'10:Proceedings of the 6th ACM SIGPLAN/SIGOPSinternational conference on Virtual execution environments[J].New York, ACM, 2010, 45:97-108.

[9]姚文斌, 郑兴杰.一种改进的SEDF算法[J].小型微型计算机系统.2010, 31 (3) :446-450.

虚拟负载 篇2

虚拟化是云计算平台实现动态资源管理的关键技术, 虚拟机是基于虚拟化的云平台中最基础的数据负载和运行单元[1,2]。虚拟机迁移是指在虚拟机运行时, 当负载过高或故障发生时, 将虚拟机的运行状态完整、快速地从一个宿主平台迁移到另一个宿主平台, 整个迁移过程对用户透明, 无需暂停虚拟机和中断业务进程, 可有效地提高虚拟机服务器系统的负载均衡和高可用性, 降低服务器维护的时间、空间资源、人力成本和管理费用等。由于虚拟化的封装性, 虚拟机迁移可以支持原宿主机和目标宿主机硬件平台之间的异构性, 可轻松实现云平台中硬件资源动态分配。主流的虚拟化软件供应商均提出自己的虚拟机动态迁移技术, 如VMware公司的VMotion和Xen公司的Live Migration等。如图1所示。

1 研究情况

虚拟机迁移一般依靠对迁移阈值的判断, 一旦负载超过设定的阈值即触发迁移。因此, 只能在负载出现异常或发生故障时进行迁移, 无法最大程度发挥实时迁移的效果。虚拟机自主迁移方法可以对迁移需求进行自动识别、判断并决策, 实现自动或辅助迁移虚拟机。有研究者提出, 利用负载阈值对宿主机后续时间节点的负载趋势进行预测, 避免瞬时负载峰值触发的虚拟机迁移问题[3]。在触发迁移后采用加权概率转发方式选择迁移目标节点, 解决传统负载均衡技术中的群聚冲突问题。针对节点的触发类型和虚拟机的负载特征, 可以采用多阈值方式触发迁移, 完成对拟迁移的虚拟机以及迁移目标节点的选择[4]。虚拟机集群资源调度策略可用最佳适应算法寻找虚拟机迁移的目标主机, 通过使用上限阈值和下限阈值约束资源利用率的方法, 使负载平衡目标与节能目标相统一, 引入最小迁移周期避免了虚拟机资源利用率不稳定带来的频繁迁移[5]。文献[6]文中提出的虚拟机全系统在线迁移方法, 能迁移包括外存数据在内的虚拟机全系统状态, 最小化迁移过程中的虚拟机暂停时间, 并保证数据的一致性和完整性。在集群环境下, 为了提高虚拟机Xen的迁移效率, 文献[7]提出了一种面向可扩展集群环境的快速可靠的虚拟机迁移方法, 该方法能够在虚拟机迁移过程中自动分配资源, 在充分利用集群资源和保证文件完整性的前提下, 提高了迁移效率。文献[8]文中提出了云计算中, 虚拟机放置的自适应管理框架, 与带应用服务级目标约束的虚拟机放置多目标优化遗传算法, 与传统的启发式和单目标优化算法相比, 提出的框架及算法使得多个应用的服务级目标的违背率最低, 且能有效减少虚拟机迁移次数和物理结点的使用数量。文献[9]文中提出一种新型虚拟机动态迁移框架, 并在Xen和KVM这2种典型的开源虚拟机监控器基础上, 实现了原型系统。

虚拟机自主迁移主要关注3个方面的问题: (1) 迁移虚拟机选择, 即在触发迁移的源节点上哪个虚拟机需要迁移; (2) 迁移时机选择, 即在什么时间启动迁移; (3) 迁移目标节点选择, 即迁出的虚拟机放在哪个目标机器上运行。其中, 由负载变化引发的虚拟机迁移和迁移时机选择为自主迁移的重点解决问题, 是本文的研究内容。如果能实现与实际负载误差达到极小值的负载预测, 就能决定需要迁移的虚拟机节点和时间点, 使虚拟机在负载过高发生前即触发迁移, 可最大程度保障系统的高效运行。本文主要对传统的自主迁移策略和负载预测方法进行了改进。

文献[4]提出的迁移调度策略, 定期对比多种负载参数值与阈值, 当任一参数值连续多次超过阈值时, 立即自动触发虚拟机迁移。该策略并未对实现对负载变化的预测, 无法在负载升高前触发迁移。文献[3]提出的迁移策略, 除了对n个负载中的k个负载值进行观察外, 还使用时间序列预测技术中的自回归模型AR (n) 对下一个负载值进行了预测, 解决传统负载均衡技术中的群聚冲突问题。本文结合两者的迁移策略, 参考文献[3]文利用负载阈值预测宿主机后续时间节点负载趋势的方法, 提出了改进的虚拟机自主迁移策略。该策略以超过多负载阈值为迁移触发条件, 以连续的虚拟机实际负载值作为监测对象, 当实际负载值连续大于负载阈值q达到时间阈值k后, 才触发负载预测计算;在负载预测计算时间w内, 当n个预测值中存在m个高于迁移阈值的预测值, 将形成一种可触发迁移的趋势, 该趋势就是一种波动变化, 依靠负载预测算法来计算。

文献[3]使用的时间序列预测技术中的自回归模型AR (n) , 是预测虚拟机负载值的一种有效的方法。该模型使用n个过去的、按时间序列排列的观测值对未来做出预测。例如观测的负载值序列:Y1, Y2, …, Yt-1, 对于这个给定的时间序列, 利用P阶自回归模型AR (p) 预测第t个时刻的负载值, 根据该值进行基于多阈值策略的迁移虚拟机判断。但由于AR (n) 模型适用于预测与自身前期相关的现象, 而服务器系统的负载是随机的, 负载值的相关性不强, 其自相关系数的设定直接影响负载预测的准确性和性能。本文提出一种基于虚拟机负载波动预测的迁移方法, 认为虚拟机的负载变化过程是一种波动平衡过程, 通过分析波动平衡情况, 预测负载变化和负载波浪从低到高的转势时间点。实验数据表明, 该方法有更好的自适应性, 可有效改善虚拟机自主迁移的效率, 比传统的基于多阈值的负载预测技术, 有更高的准确性。在与实际的三种负载对比实验中, 只产生了较小的误差。

2 虚拟机自主迁移策略

引发服务器系统负载波动因素较多, 除了白天夜晚的负载有明显规律外, 瞬时负载的规律性并不强, 无法通过一种定量的方法直接计算。因此, 预测虚拟机负载是一个不完全信息环境问题, 其计算过程可以看作是一个不确定问题的求解过程。系统无法得知与造成负载高低问题的全部状态空间, 难以通过一套算法来求解, 只能依靠部分已知的负载状态空间和一些特殊的经验型规则, 通过在一个随机时间域内设计启发式函数进行试探求解。

预测主机的负载在w个单位时间内, 如果n个负载值中存在m个高于阈值的负载值, 将形成一种可触发迁移的趋势, 该趋势结束后将出现低于阈值的负载波浪趋势, 这个过程称之为循环周期[10]。因此预测过程中, 最重要的是确定波浪曲线图中的负载点与负载波浪的转势时间。负载点即虚拟机的负载值, 转势时间即由低负载转向高负载的时间点。因此, 需设计两个启发式函数分别计算负载预测点和转势时间。

2.1 定义

定义1设所有宿主机节点的集合为P:{Pl, P2, …, Pe};迁移源节点的集合为S={Sl, S2, …, Sj};每个源节点可以看成其虚拟机的集合Sj={vi1, vi2, …, vij};迁移目标节点的集合为T={tl, t2, …, tu};P=S∪T, 且P可在源节点和目标节点的角色中转换。若P因资源缺乏而启动迁移, 则该节点为源节点, 即P∈S;若P资源丰富可接收迁移来的虚拟机, 则该节点为目标节点, 即P∈T。P运行迁移调度方法, 以实现虚拟机自主迁移管理。

定义2设计自主迁移方法的二元组和三元组, 解释如下:

(1) X、Y分别表示物理节点与节点上运行的虚拟机;

(2) C、M、B分别表示系统占用的CPU、内存和带宽利用率, 其权重可根据该业务的资源占用特点, 如CPU密集型的业务可把设定CPU的权重设定为最大。

2.2 迁移触发策略

迁移时机策略即虚拟机迁移的触发策略, 它指根据宿主机的负载, 判断是否需要把虚拟机迁移到其他宿主机上。

迁移触发策略定义为资源利用率三元组, 根据业务需求分别设定三种资源阈值。当虚拟机的四种性能参数超过任意一种资源利用率, 则把该虚拟机定义为e (rs, w) , rs为超过该类资源阈值的资源利用率, w为连续超越阈值的单位时间, 这是为了确保一个小的瞬时负载峰值不会触发无谓的迁移, 只有当负载超过设定的阈值持续一段时间后才触发迁移, 该时间设为k。

当主机负载大于某个阈值时, 对它未来的n个负载值进行观测, 如果至少有m个值也大于阈值, 则对它的下一个负载值进行预测, 预测值大于阈值时才触发迁移。m和n大小的选择会使迁移激进或保守。对于给定的n值, 小的m值会导致激进的虚拟机迁移, 而大的m值需要负载超过阈值的时间更持久, 从而导致一个更保守的方式。当n=1时, 是最激进的方式, 也就是传统负载均衡方法中仅基于阈值的方式, 只要负载大于阈值就触发迁移。另外, 阈值本身的大小也会影响迁移的触发是否激进。低的阈值设定导致更激进的迁移, 在这种情况下宿主机资源利用率低下, 高的阈值会使资源利用率较高, 但是可能影响应用程序的性能。除了对n个负载中的m个负载值进行观察外, 还需要对下一个负载值进行预测。当存在ek (rs, w) , 则设计负载预测队列X (e1, e2, …, ek) , ek为连续k个时间单位的负载预测值, 该值可根据预测的需求动态调整, 以适应数据中心的业务负载的变化。

这个限制条件确保了负载呈下降趋势的宿主机不会触发一个虚拟机迁移, 也形成了基于连续负载升高形成一个持续上升的负载趋势后, 可以此预测虚拟机的下一个负载情况的理论基础。

算法1迁移触发算法

2.3 启发式函数

为了获得虚拟机的负载数据, 了解负载的波动趋势, 配置4台联想万全R520 G7作为宿主机负载测试节点, 并划分24台不同资源配置的虚拟机, 进行为期8周的数据采集。配置社交网络数据挖掘系统在虚拟机上运行, 通过收集系统的数据获取与分析功能所产生正常的工作负载作为原负载始数据。通过安装Cacti EZ 9监控虚拟机系统以下几种负载数据:RAM的使用, 平均CPU使用, 磁盘I/O (读和写) , 网络 (读或写) 的使用。

对8周的四组数据进行研究分析发现, 一台虚拟机负载连续下降的Ⅰ波浪完成后, 随后如果负载上升, 其上升波浪II的高度约为下降Ⅰ浪高度1.2~1.8倍的概率为8.33%, 2.34~2.67倍的概率4.52%, 3.05~3.19倍的概率最高, 约为68.25%, 6.91%的情况下达会到3.2倍以上。根据波动平衡理论最具特点的发现, 约等于3.14159的圆周率π与反向螺旋的波动平衡变化密切相关, 一系列的圆周率的分割率决定了反向螺旋的波动平衡点, 也就是波动的预测点。因此使用波动平衡理论尝试计算虚拟机的波动负载预测值, 当使用作为常数, 可分割出Ⅱ浪的其他几个可能的负载点, Ⅰ浪中点的倍, 是一个负载预测点A, 即A点的倍, 是下一个负载预测点B, 即B点的倍是下一个预测点C, 即表示这组负载波浪的分割率:

因此可以总结出Ⅱ浪的负载预测点的启发式函数:

同理使用作为常数比率分别分割Ⅰ波浪, 也可计算出Ⅰ波浪的负载预测点。

(1) 预测的负载和时间点

趋势波浪时间平衡点为坐标轴的X值, 其标识符号分别表示为:

Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ、Ⅶ、……

趋势波浪负载平衡点为坐标轴的Y值, 其标识符号分别表示:

ⅰ、ⅱ、ⅲ、ⅳ、ⅴ、ⅵ、ⅶ、……

(2) 波浪转势角度和转势时间

按n分圆等分的垂直方向的时间平衡线是使波动转势的时间点, 当波动穿越时间平衡线或进入时间平衡线附近的区间时, 波动将出现逆转或使波动增幅加大。波动平衡理论用n分圆的转势角度表示波动发生逆转的时间, 也就是转势时间。如:Ⅲ波的转势时间是Ⅰ和Ⅱ波周期的圆转势角度决定的, Ⅳ波的转势时间则由Ⅱ和Ⅲ波的n1分圆转势角度与Ⅰ和Ⅱ波周期的圆转势角度决定的:

8分圆的转势角度是波动理论最常用的转势时间判断的角度。如图2所示。设Ⅰ和Ⅱ波浪的已运行时间为160分钟, 把该时间设为一个完整的圆周期时间。当波浪再运行了125分钟时, 生成的Ⅲ波浪已接近Ⅰ和Ⅱ波浪的圆周期时间, 即125/160=0.75=6/8, 则Ⅲ浪的转势时间点可用最接近Ⅲ浪的运行时间的转势角度315°表示, 即圆转势时间的3/4, 则Ⅲ浪的转势时间t为120分钟, 则该转势时间的启发式函数为:

3 实验与结果分析

3.1 实验环境

实验的硬件环境为:4台联想万全R520 G7作为宿主机节点, 每节点配置2颗Xeon E5603 1.6GHz CPU、8GB ECC DDR3内存和集成Intel双千兆网卡, 并划分多个不同资源配置的虚拟机, 所有节点使用SAN连接3TB网络存储。软件环境为:RHEL5, 虚拟化软件Xen 3, 配置Apache运行Python开发的社交网络数据挖掘系统在虚拟机上运行, 由系统的数据获取与分析功能产生正常的工作负载。通过Prime、Memtester和Iperf工具分别测试CPU、内存及网络带宽的利用率。Prime是一款专门测试CPU压力与稳定性的软件, 可以测试高负荷计算任务下CPU的承受能力。Iperf是一个网络性能测试工具, 可以测试TCP和UDP的极限带宽性能, 可以报告带宽, 延迟抖动和数据包丢失。Memtester主要是测试内存利用率的软件, 其测试的主要项目有随机值, 异或比较、与或运算等等;通过给定测试内存的大小和次数, 可以对系统现有的内存进行测试。通过三种软件可以测试数据中心服务器在正常工作情况下, 不同类型的负载情况, 并获得实际CPU、内存的负载情况和带宽的利用率。

3.2 负载预测计算

根据服务器运行的负载情况, 选择数据中心的综合负载波浪运行60分钟起计算并取值。即使用60分钟后的负载波浪I的负载点值作为预测算法的输入值, 通过启发式公式计算出I波浪出现后的预测负载点及波浪转势时间。根据负载波动转势时间式 (3) , Ⅰ、Ⅱ负载波浪运行了361分钟, Ⅱ浪到达高度为8.5。当负载波浪再运行312分钟时, 该时间段内生产的Ⅲ波浪运行时间仍在Ⅰ和Ⅱ浪周期内, 即312/361=7/8, 则Ⅲ浪的转势时间点为361分钟周期的7/8圆转势时间, 为316分钟, 可在第316分钟进行虚拟机的自主迁移。即:

根据负载分割率计算方法 (1) , 用比率分割Ⅰ/2浪以下的负载点, 可得到另一组初始转势阶段的负载预测点。合并用分割的各负载点, 可得到圆周率π分割的负载点集合系数当Ⅲ=πⅡ=3.14159×8.5=26.7035, 根据负载预测点的启发式函数式 (2) 可得到如下的Ⅲ波浪负载点预测计算式:

由预测负载点可获得如图3所示的负载预测曲线:

3.3 结果分析

通过服务器运行及软件实施的负载压力测试, 实施虚拟机负载预测方法与触发虚拟机迁移的多阈值方法比较, 负载预测方法明显更接近实际负载波动的曲线图, 负载预测点与实际负载值的误差更小, 如图4所示。负载预测的波动转势时间测试中, 误差时间约20%的预测点约占76.9%, 如图5所示。在一个负载波浪中, 除了起始时间点的负载值, CPU的负载预测的误差率小于15%, 其中最低误差率仅为1.5%, 预测效果好, 见图6所示。内存和带宽的预测误差相对较高, 最高为35%的误差, 最低为5%, 误差率超过30%的预测点数量约占20%, 如图7和图8所示。如果根据实验结果决定迁移实际和节点, 结合多阈值方法判断, 虚拟机自主迁移与人工判断的手动或自动迁移的, 其准确率可达到83.67%。但由于迁移过程需要消耗大量CPU和内存, 低于10%的错误率仍将导致业务运行受到影响。

4结语

由于启发式负载预测方法是通过数学模型计算, 预测负载波浪的趋势, 从而决定迁移触发时机和迁移的节点。实验结果表明, 该方法与实际负载误差小, 可有效预测负载升高的时机和节点的负载, 在社交网络数据挖掘系统平台中能避免负载升高引起的虚拟机停机。但该方法并未对客观条件变化和预测误差进行自动识别和计算, 往往难以完全回避这些引起负载突然变化的因素。因此, 设计基于客观条件变化自动识别和预测误差强化学习并自我修正, 包括根据数据中心的综合负载变化进行预测, 都是启发式计算方法下一步研究的重要方向。

摘要:成熟的虚拟化技术使云计算软件架构可以灵活、高效、充分地管理和利用硬件资源。虚拟机迁移是实现动态资源管理的关键技术, 也是保障云计算平台负载均衡和高可用的重要前提。提出一种基于虚拟机负载波动预测的启发式迁移方法。通过分析虚拟机负载波动平衡情况, 设计启发式方法预测虚拟机的负载点和负载波浪的转势时间。实验数据表明, 该方法有较强的自适应性, 可有效改善虚拟机自主迁移的效率, 达到辅助迁移虚拟机的目的。

关键词:虚拟机,自主迁移,波动,启发式,负载点,转势时间

参考文献

[1]Chen Kang, Zheng Weimin.Cloud computing:system instances and current research[J].Journal of Software, 2009, 20 (5) :1337-1348.

[2]Buyya R, Yeo C S, Venugopal S.Market-oriented Cloud computing:vision, hype and reality for delivering IT services as computing utilities[C]//The l0th IEEE International Conference on High Performance Computing and Communications.Dalian China:IEEE, 2008:5-13.

[3]刘媛媛, 高庆一, 陈阳.虚拟计算环境下虚拟机资源负载均衡方法[J].计算机工程, 2010, 36 (16) :30-32.

[4]刘进军, 陈桂林, 胡成祥.基于负载特征的虚拟机迁移调度策略[J].计算机工程, 2010, 37 (17) :276-278.

[5]周文煜, 陈华平, 杨寿, 等.基于虚拟机迁移的虚拟机集群资源调度[J].华中科技大学学报:自然科学版, 2011, 39 (1) 130-133.

[6]张彬彬, 罗英伟, 汪小林, 等.虚拟机全系统在线迁移[J].电子学报, 2009, 37 (4) :894-899.

[7]刘诗海, 孙宇清, 石维琪, 等.面向可扩展集群环境的快速虚拟机迁移方法[J].东南大学学报:自然科学版, 2011, 41 (3) :468-472.

[8]李强, 郝沁汾, 肖利民, 等.云计算中虚拟机放置的自适应管理与多目标优化[J].计算机学报, 2011, 34 (12) :2253-2264.

[9]刘鹏程, 陈榕.面向虚拟机的动态迁移框架[J].计算机工程, 2010, 36 (5) :37-39.

虚拟负载 篇3

软件在长时间持续运行后表现出的系统性能降低或停机的现象称作软件衰退。软件衰退通常与内存泄露、未终止的线程、数据损坏、未释放的文件锁或者超负荷运转有关。软件衰退会导致高维护成本、服务质量下降、响应时间增加或拒绝服务等,这对于军工、国防等重要计算系统造成了极为严重的后果。

软件衰退现象存在于各类型软件系统中,虚拟化计算系统中也不能例外。虚拟机本身具有的透明性、隔离性、封装性和可管理性等特点使得基于虚拟机的虚拟计算环境具备较好的可扩缩性、可迁移性和服务器整合等能力,能显著地提高系统可用性。然而无论是处于底层实现了虚拟化技术的中间层软件VMM,还是处于上层的VMs都可能发生软件衰退导致可用性降低,因此在虚拟计算系统中的自愈研究显得尤为重要。软件衰退现象不可避免,为了降低软件衰退造成的危害,AT&T贝尔实验室的Y. Huang[1]首次提出“软件自愈”的概念,其基本思想是在系统失效之前,通过周期性地暂停软件的运行以清除系统的内部状态以使系统重新恢复到初始状态或中间状态,以预防将来可能发生的更为严重的故障。软件自愈作为一种主动预防性的软件容错技术已成为解决软件衰退问题的重要手段之一,使其与虚拟化技术相结合,降低衰退对于虚拟化系统核心组件VMM的影响,进一步提高虚拟化系统可用性有着重要价值。

自愈分析模型研究工作旨在构建一个能描述软件系统动态行为的分析模型,并刻画系统状态变化规律,通过对模型求解,做出关于“何时实施自愈”和“采用何种策略实施自愈”等问题的最优自愈调度,为虚拟化系统的性能分析提供理论依据。现有的自愈分析模型研究最常采用的自愈策略是基于时间的自愈策略TSRP(Time-based Software Rejuvenation Policy)[2,3,4,5,6],其基本思路是:借助于数学工具建立刻画计算系统运行时状态变迁的模型,以最大化系统可用性等性能指标为优化目标,应用数学方法求解获取最优的自愈时间间隔,并以该时间间隔周期性地实施自愈操作。文献[2]把TSRP策略应用VMM自愈,提出一种快速自愈方法warm-reboot,该方法认为VMM在整个系统中扮演的角色比VMs重要得多,因此重点考虑VMM的衰退和失效过程,而忽视了VMs发生软件衰退的可能性。同样地,文献[3]也把TSRP策略应用虚拟化系统自愈,不过考虑的自愈对象是VMs,他们认为VMM相对于VM而言可信性更高,故发生衰退的可能性较小,因此重点仅考虑了VMs的自愈过程,忽略了VMM对于整个系统可用性的影响。文献[2,3]中工作均仅把虚拟化系统中部分组件作为研究对象,而文献[4]同时把VMs和VMM都作为自愈对象加以研究,且都采用了TSRP策略。上述工作存在一个不足之处就是忽略了负载对整个系统性能的影响,传统计算系统和集群系统的自愈分析模型已研究发现自愈策略的实施对于服务可用性的改善效果显著依赖于系统负载[5],因此有必要在虚拟化计算系统的自愈模型研究中也考虑负载因素。

本文以VMM和VMs为自愈对象,综合考虑了上述因素,并对传统的时间自愈策略有所改进,提出了基于时间和负载的周期性延时自愈策略,并采用随机回报网建模工具,分别构造了无自愈、采用TSRP策略、基于时间和负载的周期性延时自愈策略等3种自愈分析模型,进行了数值仿真分析和比较,验证合理的自愈调度对于提升虚拟化系统可用性、吞吐率的有效性。

1 建模与分析

本文考虑单服务器虚拟化系统,其构架如图1所示。借助VMM可在服务器上隔离出多个虚拟运行环境(VMs)。通常,底层的VMM被称为上层VMs的宿主,VMs依赖于VMM为其分配完成计算所需的任何逻辑资源。宿主VMM自身不提供服务,而由宿主中的VMs对外提供服务,且宿主中的不同VM可以提供不同的服务,也可以提供相同的服务,本文主要考虑后者,即在多个VM中部署同一应用程序的多个副本多VMs以集群方式(n,k)运行于VMM上,其中n为能同时提供服务的VM个数,k为保证系统可用而至少提供服务的VM个数。

随机Petri网SPN(Stochastic Petri Net)作为一种系统性能分析的数学描述工具,包含了并行、不确定性、异步和分布描述能力和分析能力,已在很多领域得到了成功应用。随机回报网SRN(Stochastic Reward Net)作为SPN的一个分支,允许系统性能测量可以用回报定义形式表达,在可变弧权、变迁实施函数和变迁实施优先级等多个方面扩展了模型的描述功能,在自愈分析建模领域有着广泛的应用[4,7,8],因此本文中采用SRN建模系统状态变化过程, 建立3种不同自愈场景的自愈分析模型,其中模型A为不采用任何自愈措施的基本模型,模型B中VMM和VM集群均采用基于时间自愈策略的自愈模型,而模型C表示考虑了不同负载强度的自愈模型。本文中关于SRN模型元素的图形表示,作如下约定:窄条表示瞬时变迁,空矩形表示时间变迁,实心矩形表示确定的时间变迁,用#表示库所中的令牌数目。

1.1 基本模型

考虑不采取自愈操作的情形,其SRN模型如图2示,出于简单性,简记为模型A。初始时刻,库所Pvm_up和库所Pvmm_s中分别有n个令牌和1个令牌,表明它们均处于健壮态,此时发生失效的概率近似为0。

随着时间的推移,VMs和VMM不可避免地会发生衰退,衰退过程在图中分别用时间变迁Tvm_uTvmm_u表示,且上述变迁可以服从一般分布。衰退所经历状态变化过程为:Pvm_upPvm_uPvmm_sPvmm_u,令牌从库所Pvm_upPvmm_s转移到库所Pvm_uPvmm_u,表示VMsVMM进入失效可能态,该状态下虽然仍能提供服务,但发生失效的概率大大提高。此时若不采用任何预防性的维护措施,则在上述状态驻留了一段时间后,最终各自进入失效状态Pvm_failPvmm_fail,在图中该失效过程类似地分别用时间变迁Tvm_failTvmm_fail表示,同样地上述变迁也可以服从一般分布,经历状态变化过程Pvm_uPvm_fail,以及Pvmm_uPvmm_fail后,令牌转移到库所Pvm_failPvmm_fail中,表示VMs和VMM分别进入失效状态。

VMs和VMM的恢复过程在图中分别用时间变迁Tvm_repairTvmm_repair表示,实施时分下述三种情况:(1) 当VM处于失效态,VMM处于健壮态或失效可能状态时,Tvm_repair实施,经历状态变化过程Pvm_failPvm_up ,令牌从库所Pvm_fail转移到库所Pvm_up。(2) 当VM处于健壮或者失效可能状态,VMM处于失效态时,上层依赖于令牌的可变弧集清除所有VM相关库所中的令牌,且Tvmm_repair实施,经历状态变化过程Pvm_failPvmm_upPvmm_failPvmm_s ,分别往Pvm_upPvmm_s中送入n个和1个令牌,系统回到初始的健壮态。这是因为VMM的失效会导致整个系统失效,即此时不论VMs的健康状况如何都将停机,且随后VMM的恢复操作将导致整个系统的恢复操作。(3) 当VMVMM均处于失效态时,Tvmm_repair实施,过程与(2)类似。

此外,Tcommon_fault表示一些常见类型的系统故障,如硬件故障等。当Tcommon_fault点火时,相当于VMM失效,瞬时变迁t3、t4用于将VMM相关库所中的令牌移除。

在模型A中,当满足如下条件之一则系统不可用:(1) VMM处于失效状态;(2) VM集群中能提供服务的VM个数(即VMs处于健壮和实效可能状态的令牌数目之和)小于k。因此以系统可用性为度量的SRN模型回报函数可定义为:

Asys=1-E(unavailability)

=1-E((#Pvm_up+#Pvm_u)<k

‖(#Pvmm_fail=1 1:0)) (1)

其中Asys表示系统可用性,E(i)为系统处于稳态i的概率。

1.2 基于时间策略的自愈模型

考虑对VM、VMM均采用基于时间自愈策略的自愈模型,如图3所示,简记为模型B。与模型A的不同之处在于:(1) 在VMM层和VMs层分别增加两个新的库所Pvmm_reju和库所Pvm_reju,当库所中存在令牌时,分别表示VMM和VM处于自愈态。(2) 在VMM层和VMs层分别增加两个新的时间变迁Tvm_rejuTvmm_reju表示各自的自愈过程。(3) 增加了表示基于时间的周期性自愈策略的时钟模型。

对于VMs层,当Pvm_u中有令牌时,确定的时间变迁Tdet使能,VM自愈时钟开始计时。当自愈时间间隔到达时,Tdet点火,库所Pclock_vm中的令牌转移到Pvm_startreju中。若Pvm_startreju中有令牌,则瞬时变迁tto_reju使能,Pvm_u中所有的令牌转移至Pvm_toReju中。随着自愈过程Tvm_reju的实施,经历状态变化过程Pvm_toRejuPvm_up,被自愈的VM重新回到健壮态。

对于VMM层,增加了从健壮态Pvmm_s或者失效可能状态Pvmm_u→自愈态Pvmm_reju→健壮态Pvmm_s的过程。确定的时间变迁Tvmm_Interval确保了VMM以固定时间间隔自愈。当固定时间间隔到达时,如果此时系统没有失效,变迁Tvmm_Interval点火,将Pclock_vmm中的令牌转移到Pvmm_reju_start内。若此时瞬时变迁tvmm_reju0、tvmm_reju1两者之一使能,则Pvmm-reju中将会出现一个令牌,即VMM进入自愈态。当VMM实施自愈时,上层所有VM相关库所清除令牌。在实施自愈后,变迁和Tvmm_repairTvmm_reju 在库所Pvmm_sPvm_up中分别放置1个和n个令牌,系统恢复到初始健壮态。

在基于时间自愈策略的分析模型中,基本模型中系统不可用的两种条件依然成立,此外当VMM处于自愈态,即库所Pvmm_reju有1个令牌时,系统同样是不可用的,故以系统可用性为度量的SRN模型回报函数可定义为:

Asys=1-E(unavailability)

=1-E(((#Pvm_up+#Pvm_u)<k)

‖((#Pvmm_fail)‖(#Pvmm_reju)):1 1:0) (2)

1.3 融入负载因素的自愈模型

鉴于负载因素对于系统可用性的影响,改进了模型B中采用的基于时间的自愈策略,提出了一种适用于VMs的基于时间和负载的周期性延时自愈TLPDRP(Time and Load-based Periodic Delay Rejuvenation)。该策略的基本思想是把负载分成两种强度,峰值强度和非峰值强度,当处于某一自愈时刻点时,若系统负载处于非峰值强度,则VM进行自愈,这一过程与模型B相似;若系统负载处于峰值强度,则等待一个自愈延时,直到非峰值时刻来临时再对VM进行自愈。

采用基于时间和负载的周期性延时自愈策略的分析模型如图4所示,同样的把模型简记为模型C。与模型B的不同之处在于:(1) 新增了库所PpeakPoff_peak分别表示负载峰值强度和非峰值强度;(2) 新增了确定性的时间变迁TpeakToff_peak,表示两种不同负载强度之间周期性的相互转换过程;(3) 新增了从库所Ppeak到VM时钟模型中瞬时变迁timm的禁止弧,该禁止弧体现了负载峰值时刻延时自愈的思想。

在本模型中,同样以系统可用性为度量的SRN模型回报函数可定义为:

Asys=∑iΩp(iM(i) (3)

其中Ω表示模型状态空间,p(i)表示状态i的稳态概率,M(i)是一个指示函数,表示处于状态i时,VM集群中可用的VM个数是否大于k,如式(4)所示:

除了可用性度量之外,由于模型融合了系统负载因素,所以还可定义系统吞吐率作为另一个性能度量。按照负载强度,可把模型状态空间Ω进一步划分为两个子空间ΩpeakΩoffpeak,分别表示处于负载峰值的状态集和处于非峰值的状态集,且有:

Ω=ΩpeakΩoffpeakΩpeakΩoffpeak

R1和R2分别为峰值时和非峰值时刻请求到达的速率,x为VM请求处理的速率。系统吞吐率定义为单位时间内整个系统处理的请求数,如式(5)所示:

E[T]=∑iΩp(i)×min(R(i),M(i)x) (5)

其中p(i)和M(i)定义与式(3)相同,R(i)表示不同负载强度下负载达到速率:

R(i)={R1iΩpeakR2iΩoffpeak

2 实验结果和分析

2.1 实验设置

单服务器虚拟化系统中VM层采用集群方式(n,k),其中nk取值分别为3和1。SRN模型涉及的时间变迁,除了变迁TdetTvmm_Interval服从确定性分布外,其余变迁均服从指数分布,对应的变迁实施速率如表1所示。为了进一步研究SRN模型所刻画系统的性能,采用SPNP[9]软件包来进行仿真分析。SPNP软件包求解时,能自动地将上层模型转化为马尔可夫模型并进行稳态解、可达图等的计算。

2.2 系统可用性

图5是VM、VMM取不同自愈间隔时三种模型的系统稳态可用性变化曲面图。模型A不使用任何自愈策略,故可用性为一平面。从图中可明显看出,而当自愈行为过于频繁时,使用自愈策略的模型(模型B、模型C)的可用性比模型A反而低;当VM、VMM的自愈间隔取合理值时,使用自愈策略的模型优势突显。同步变化VM、VMM的自愈间隔,可以发现相同的自愈调度情形下,使用TLPDRP策略的模型C的系统可用性比使用TSRP策略的模型B的系统可用性更高。

图6是系统可用性随负载峰值持续时间变化的曲线。图6(a)中,可以看出模型A的可用性曲线为一直线。模型B、模型C的可用性随峰值持续时间的增加而减小,表明每天峰值持续时间越长,负载越高,系统失效的可能性增加,系统可用性下降。但由于模型C考虑了负载因素,可用性下降地并不明显,而未考虑负载因素的模型B对大负载的持续时间比较敏感,当峰值持续时间不断上升时,模型B的系统可用性甚至比模型A更低(在图6(a)M点之后)。图6(b)中,从系统可用性提升率来看,相对于模型B,模型C对系统可用性有更好的提升,且当负载较大时,使用TLPDRP策略的模型其自愈效果优于TSRP的。

2.3 系统吞吐率

为进一步验证TLPDRP对系统吞吐率的提升效果,图7(a)展示了模型B和C的吞吐率随VM、VMM自愈间隔变化,图7(b)展示了在每天峰值持续时间不断增加的情况下,模型C对模型B系统吞吐率的提升率。图7(a)可以看出,在相同的VM、VMM自愈间隔下,模型C的吞吐率总是比模型B更高。在图7(b)中,随着峰值持续时间的增大,负载量不断增大,模型B和模型C的吞吐率都将会随之变大,考虑了负载因素的模型C相对于模型B吞吐率的最大提升率为0.155个百分点。

3 结 语

本文从系统可用性和吞吐率方面,主要对基于时间策略的自愈模型和融入负载因素的自愈模型进行了分析和比较,仿真实验的结果表明:在为VMM和VM选取合适的自愈调度的前提下,融入负载因素的自愈模型无论是在系统可用性,还是吞吐率等指标方面都优于基于时间策略的自愈模型;融入负载因素的自愈模型在系统负载动态变化时表现得更为稳定,适合应用于真实系统。

摘要:软件自愈分析模型作为自愈技术研究的核心内容之一,为如何实施自愈提供了决策依据。采用随机回报网,建立应用三种不同自愈策略的分析模型,分别刻画不考虑自愈、考虑基于时间的自愈策略以及考虑时间和负载因素的自愈策略情形下系统状态变化过程。数值仿真实验表明:基于时间的自愈策略在选取合理的自愈间隔的前提下在系统稳态可用性方面优于不考虑自愈的情形,自愈是一种提高系统可用性的有效方法;进一步地发现,基于时间和负载的自愈策略在可用性和吞吐率方面均优于基于时间的自愈策略,不同自愈策略对于系统可用性的改善效果显著依赖于系统负载。

关键词:虚拟机,虚拟机监控器,软件自愈,可用性,吞吐率

参考文献

[1]Huang Y,Kintala C,Kolettis N,et al.Software Rejuvenation:Analy-sis,Module and Applications[C]//Proceeds of the IEEE Intl.Sympo-sium on Fault Tolerant Computing,Pasadena,CA,Jun 27-30,1995.1995:381-390.

[2]Kourai K,Chiba S.A fast rejuvenation technique for server consolidationwith virtual machines[C]//Int.Conf.on Dependable Systems and Net-works(DSN),Edinburgh,June 25-28 2007.2007:245-255.

[3]Alonso J,Silva L,Andrzejak A,et al.High-Available Grid Servicesthrough the use of Virtualized Clustering[C]//Proceedings of the 8thIEEE/ACM International Conference on Grid Computing,Austin,Tex-as,Sept 19-21 2007.2007:34-41.

[4]Rezaei A,Sharifi M.Rejuvenating high available virtualized systems[C]//Proceedings of 5th International Conference on Availability,Re-liability and Security(ARES2010),Krakow,Feb 15-18 2010.2010:289-294.

[5] Salfner F,Wolter K. Analysis of service availability for time-triggered rejuvenation policies[J].Journal of Systems and Software,2010, 83:1579-1590.

[6] Letian Jiang, Xiangyu Peng, Guozhi Xu.Time and Prediction based Software Rejuvenation[C]//Proc. Second International Conference on Information Technology and Computer Science,Kiev,July 24-25 ,2010.2010:114-117.

[7] Thein T,Park J S. Availability Analysis of Application Servers Using Software Rejuvenation and Virtualization[J]. Computer Science and Technology, 2009,24(2):156-162.

[8]Thein T,Sung-Do J Chi.Availability Modeling and Analysis on Virtual-ized Clustering with Rejuvenation[J].International Journal of Comput-er Science and Network Security,2008,8(9):72-80.

虚拟负载 篇4

随着互联网技术及应用的飞速发展,计算机网络已经成为大多数高校开设的计算机专业的核心基础课程之一。然而鉴于路由器、交换机、防火墙等网络设备价格偏高[1,2],很多高校都无力构建真实的网络环境,由此导致计算机网络课程的实训教学环节也受到了一定的限制影响。即便某些高校已然构建有完善的网络实验室,但设备数目与学生现实需求却仍然难以匹配,每位学生平均可占用的实验时间都有严格标配,束缚了学生的才能施展空间。针对这一重点教学现状,国家适时推出了《关于开展国家级虚拟仿真实验教学中心建设工作的通知》(教高司函[2013]94号),重点抓好虚拟仿真实验教学中心信息管理平台建设、视频材料制作设计等工作。积极利用企业的开发实力和支持服务能力,充分整合学校信息化实验教学资源,以培养学生综合设计和高新能力为出发点,创造性地建设与应用高水平软件共享虚拟实验、仪器共享虚拟实验和远程控制虚拟实验等教学资源,提高教学能力,拓展实践领域,丰富教学内容,降低成本和风险,开展绿色实验教学[3,4]。

另据研究可知,负载平衡是指路由器在其前往目标地址的度量值相同的所有的网络端口之间分配数据流的能力。负载均衡可提高网段的利用率,从而增加有效的网络带宽。

为了弥补实体实验室的应用不足,本文引入了GN3网络模拟器[5]。GNS3是一种可以仿真复杂网络的图形化网络模拟器。实际上,GNS3可解析为Dynagen的图形化前端环境工具软件,而Dynamips则是仿真IOS的核心程序。Dynagen运行在Dynamips之上,目的是提供更为友好的、基于文本的用户界面。综上分析可知,GNS3允许在Windows、Linux系统上仿真IOSs,由其支持的路由器平台、防火墙平台(PIX)的类型已堪称全面丰富。通过在路由器插槽中配置上Ether Switch卡,也可以仿真该卡所支持的交换机平台。在GNS3中,真正运行的是实际的IOS,能够使用IOS设计支持的所有命令和参数。另外,GNS3还是一种开源软件,无需付费就可使用。但是,若使用Cisco的IOS,却需要符合Cisco的版权规定。

1 实验拓扑结构

本次实验平台是GN3,路由器型号是7200,IOS是C7200-JK.BIN,面板是vxr,NPE为npe-400,适配卡slot 0是C7200-IO-FE,slot 1则是PA-4T+,实验拓扑图如图1所示。

2 实验步骤

1)配置各端口的IP地址,命令如下:

2)配置R1路由协议,启用eigrp路由协议,进程号为1,关闭自动汇总功能,默认是开启的,对外宣告192.168.12.0和192.168.41.0网段,配置命令如下:

3)比照R1的配置过程,同样配置R2、R3、R4路由器,使用show running-config命令可以查到运行结果,具体如图2所示。

3 实验调试

3.1 实验1

综上设计可知,在R4上输入show ip route命令就可查看到结果确认信息。信息效果显示如图3所示。

本次实验只关注路由器R2的Loopback 1,虽然路由器R4到达路由器R2的Loopback 1有2条路径,但是路由器会将FD最小的那条路径放入路由表,所以就重点选用了fastethernet 0/0接口。

在路由器R4上输入show ip eigrp topology命令可查看到如图4所示的拓扑表。

由图4中的输出可知,第二条路径(经由s1/0接口)的AD为2 297 856,而最优路由(经由F0/0接口)的FD为2 300 416,AD<FD,满足可行性条件,所以第二条路径(经由s1/0接口)是最优路由(经由f0/0接口)的可行后继。

3.2 实验2

通过适当的配置,使得在路由器R4上浏览查看R2的Loopback 1的路由条目为等价路由,由此即可实现等价负载均衡。根据EIGRP度量值的计算公式,这2条路径的最小带宽是相同的,只要两者的延迟之和相同,就是等价路由,为此,可在路由器R4上设定如下的配置:

至此,可在R4上查看如图5所示的路由表。

以上输出表明路由条目“2.2.2.0”确实有2条等价路径,由此可清晰推得EIGRP是支持等价负载均衡的。

3.3 实验3

将R4的以太口f0/0的delay恢复到原来的值:

通过“variance”命令来研究EIGRP的非等价负载均衡。在3.1节的实验结果中发现,对于“2.2.2.0”路由条目,在路由器R4的拓扑结构数据库中存在如下的记录:

现在只需要在R4的路由器上调整variance的值,使得这2条路径在路由表中均呈现为可见与可用,在此给出R4上的配置如下:

在R4上使用show ip route eigrp命令可查看EIGRP路由表信息,完整内容如图6所示。

以上输出表明路由条目“2.2.2.0”有2条路径可达,但是两者的度量值不同,这就是所说的非等价路由,从而证明EIGRP是支持非等价负载均衡的。

4 结束语

在计算机虚拟化网络平台下,研究选用了GN3仿真软件,究其根源在于该实验过程与真实环境的事件结果始终一致。同时,研究中设计展开一系列实验,有助于学生直观掌握:EIGRP等价负载均衡的实现方法、EIGRP非等价负载均衡的实现方法、修改EIGRP度量值的方法和可行距离(FD)、通告距离(RD)以及可行性条件(FC)的深层含义。为今后学生从事网络管理的相关探讨研发奠定了良好的应用技术实践基础。

摘要:为解决计算机网络实验室投资成本高与真实环境少的问题,本文拟将GN3网络模拟器引入计算机网络课程的实训教学中,可以生成与真实设备一样的运行环境。以思科路由器的EIGRP配置为例,设计了一个动态路由配置方案拓扑图,并给出详细的配置命令,对实验效果进行了仿真验证与分析。

关键词:计算机网络,GN3,仿真实验教学,路由选择

参考文献

[1]樊昌信,曹丽娜.通信原理[M].6版.北京:国防工业出版社,2006.

[2]田安红,付承彪.虚拟化网络平台下静态路由选择研究[J].实验技术与管理,2014,31(3):102-104.

[3]阮灿华.批处理脚本在高校计算机机房管理中的应用[J].鄂州大学学报,2013,20(4):67-68,72.

[4]阮灿华.基于云计算的Saa S模式的课程教学资源库建设研究[J].智能计算机与应用,2013,3(1):57-59.

上一篇:华裔父亲形象论文下一篇:柔性化工作流