云计算环境下虚拟机服务质量保证和评估方法:研究综述
郝佳, 张彬彬, 岳昆
云南大学 信息学院,云南 昆明 650500
通信作者:岳 昆(1979-),男,云南人,博士,教授,博士生导师,研究方向为海量数据处理与不确定性人工智能.E-mail:kyue@ynu.edu.cn.

作者简介:郝 佳(1993-),女,云南人,博士生,研究方向为云计算与海量数据分析.E-mail:729897483@qq.com.

摘要

云计算是一种按需付费的资源使用模式.它通过虚拟化技术,向用户提供具有服务质量保证的计算、存储以及网络资源.然而,与物理服务器相比,虚拟化环境的特点使得虚拟机的服务质量(Quality of Service,QoS)难以保证,例如,虚拟化技术本身的限制、虚拟机上所运行的应用的行为难以被准确预测、虚拟机性能评估困难、以及虚拟机行为监控困难等.分析上述困难,阐述学界对虚拟机服务质量保证的研究现状,总结对易于量化的QoS指标及难以量化的QoS指标的评估和保证方法.最后,总结与虚拟机QoS相关的问题,并展望未来的研究方向和亟待解决的问题.

关键词: 云计算; 虚拟机; 服务质量保证; 服务质量评估
中图分类号:TP391 文献标志码:A 文章编号:0258-7971(2018)06-1093-15
A survey of approaches for QoS guarantee measurement of virtual machines in cloud computing environment
HAO Jia, ZHANG Bin-bin, YUE Kun
School of Information Science and Engineering,Yunnan University,Kunming 650500,China
Abstract

Cloud computing is a pay-as-you-go resource usage schema.It provides the quality of service(QoS) guaranteed computing,storage and the network resources via the virtualization technologies.However,there are some difficulties for virtual machine QoS assurance during the process of resource provision due to the virtualized environments.For example,it is limited by the virtualization technologies themselves,and difficult to predict the behavior of applications run on virtual machines.Meanwhile,it is difficult to predict the performance of virtual machines and also difficult to monitor their behaviors.Our work first elaborates on these difficulties,and then analyzes the state-of-the-art studies on the QoS assurance of virtual machines.Finally,we summarized the QoS related problems of virtual machines.We further discuss the future research issues and critical problems that need to be solved.

Keyword: cloud computing; virtual machine; QoS guarantee; QoS measurement

“ 基础设施即服务(Infrastructure as a Service, IaaS)” 的云计算, 是一种按需租用、按量付费的资源使用模式[1].它通过虚拟化技术, 有效地将物理服务器(Physical Machine, PM)上包括计算、存储和网络在内的多种资源, 通过分时复用和空间划分[2]等方式, 利用网络传输, 以虚拟机(Virtual Machine, VM)的形式提供给用户, 用户按需租用这些基础设施并按资源使用量付费.例如, 亚马逊的弹性计算云EC2(Elastic Compute Cloud)[3]和阿里云提供的弹性计算服务(Elastic Compute Service)[4]等都是此类资源使用模式.在这种资源提供方式中, 虚拟化技术成为了研究的核心.

虚拟化技术起源于20世纪60年代, 其目标是通过分割内存和硬盘等能够分割的资源、以及分时复用CPU等无法分割的物理资源, 使得从用户的角度看, 自己的操作系统独占计算机资源[5].虚拟化技术的发展使物理资源能够被灵活地分割和复用, 提高了物理资源的利用率.虚拟机是对底层资源的一种抽象, 因此其创建过程较物理机而言更为简单, 同时虚拟机也更易于管理, 包括复制、保存、移动及存储等操作[6, 7, 8].

然而, 虚拟化技术中也存在一些问题和挑战.文献[8, 9, 10]指出, 当前虚拟机之间的隔离机制不够完善, 使得运行在同一物理主机上的虚拟机应用无法真正运行在一个完全隔离的环境中.这种情况导致了虚拟机之间存在干扰, 造成虚拟机的性能下降, 表现为各个虚拟机上所运行的应用响应时间增加、吞吐率下降等.此外, 文献[11, 12, 13]也指出, 由于隔离机制的不完善, 导致虚拟机的安全性等一些非功能性的服务质量指标得不到保证, 有研究表明虚拟化的特殊环境增加了虚拟机受到外界攻击的可能.除了传统的拒绝服务攻击(Deny of Service, DoS), 也出现了其他一些针对虚拟机环境的攻击方式, 如虚拟机监控器(Hypervisor)对虚拟机的攻击, 以及虚拟机之间的互相攻击等[14].因此, 隔离机制的不完善, 成为了虚拟机无法向用户保证包括响应时间、吞吐率、安全性以及鲁棒性等服务质量(Quality of Service, QoS)的一个重要原因.

除了虚拟化技术的一些限制之外, 还有一些其他因素导致了虚拟机的QoS难以保证, 包括虚拟机上所运行应用的行为难以被准确预测、虚拟机的性能评估困难、以及虚拟机行为监控困难等.概括而言, 导致虚拟机QoS难以保证的原因包括如下几个方面.

(1) 虚拟化技术存在限制 虚拟化技术使多个虚拟机运行在同一个物理主机上, 共享物理主机资源, 提高了资源的利用率.然而虚拟化技术仍然存在一些限制, 体现在以下2个方面.

① 虚拟机之间存在性能干扰.虚拟机监控器通过特定机制将物理资源分割后提供给各个虚拟机, 虚拟机间不完善的隔离机制导致多个虚拟机运行时, 它们之间存在资源竞争, 这种竞争关系会导致虚拟机之间产生难以预测的性能干扰[15, 16, 17].因此, 虚拟机之间的性能互扰, 成为了虚拟机QoS难以保证的原因之一.

例如, Xen[18]的半虚拟化I/O实现过程中, 虚拟机的I/O操作都通过特权域Domain-0来进行代理操作, 客户操作系统的I/O性能受到特权域负载的影响, 导致I/O操作频繁的虚拟机吞吐率难以保证.

② 虚拟机监控器无法完全了解虚拟机上的应用信息.

传统的操作系统, 可以很容易地了解其上运行的具体的应用信息.然而, 对于虚拟机而言, 互相独立的多个用户操作系统和其上运行的应用是以虚拟机监控器的存在为基础的, 虚拟机监控器对各个虚拟机上运行的应用信息了解有限, 因此无法准确提供应用所需的QoS保证.

(2) 虚拟机上所运行负载的行为难以准确预测 运行在虚拟机上的负载具有复杂性、动态性以及不确定性, 这导致了虚拟机上运行负载的行为难以准确预测.因此, 分配虚拟机资源的过程中, 由于无法准确预估虚拟机上运行应用的类型、行为和所需资源, 会导致分配的资源与预期的QoS存在偏差[19, 20].

① 虚拟机上运行负载具有复杂性.虚拟机上部署的应用的复杂性主要体现在下面几个方面.第一, 多个虚拟机上所运行负载的运行时间难以准确预测, 可能导致在某个时刻多个虚拟机上的应用同时运行, 使得物理主机的资源使用情况超过所能承受的峰值[19, 20], 从而无法保证QoS.第二, 应用所要求的资源之间存在依赖关系, 例如, 若一个虚拟机上的负载应用需要内存资源, 那么可能虚拟机监控器需要调用CPU、高速缓存、I/O带宽等资源才能满足这一需求.

② 虚拟机上运行的负载具有动态性.虚拟机上应用负载的动态性主要体现在不同的负载可能会随着时间的变化而变化[21, 22], 同时该应用负载在用户之间的受欢迎程度也会随着时间变化而不同.这就会导致预测负载的行为更加困难, 从而难以分配保证QoS的虚拟机资源.文献[23]也指出, 多个虚拟机上所运行的应用之间可能会有通信, 那么如果应用运行增多, 在固定的带宽约束下, 虚拟机应用的响应时间一定会增加.

③ 虚拟机上运行的负载具有不确定性.虚拟机上所部署应用的不确定性, 体现在网络的连接属性以及流量大小随用户负载持续变化, 因此导致应用在某一时刻所需要资源量具有不确定性.如何分配有限的资源, 满足虚拟机上的应用对资源的不确定需求, 保证虚拟机的QoS, 这是一个NP难问题[24].

综上所述, 虚拟机上所部署应用负载的复杂性、动态性以及不确定性, 都有可能导致虚拟机的软、硬件难以准确部署, 因此也成为了虚拟机QoS难以保证的又一主要因素.

(3) 影响虚拟机性能的因素较多, 且评估困难

① 影响虚拟机性能的特征复杂.虚拟机性能是QoS中重要的组成部分, 影响虚拟机性能的因素有很多, 例如, 文献[24, 25]指出, 影响虚拟机性能的因素包括物理主机上CPU的微架构、内存的主频、硬盘的接口、虚拟机监控器的类型, 以及虚拟机监控器所采用的调度算法, 等等.虚拟机性能建模时, 应该充分考虑这些因素, 才能保证虚拟机性能的评估结果尽可能准确, 从而保证虚拟机QoS预测的准确性.文献[26, 27, 28]在进行虚拟机性能建模时考虑的虚拟机特征相对较少, 仅涉及CPU使用情况、分配内存的大小以及I/O带宽等少量因素, 未能全面、深入地研究影响虚拟机性能的特征.

② 不够准确的“ 虚拟机特征-QoS模型” 会导致性能评估不准确.虚拟机性能建模时所采用的模型, 对性能评估具有重要影响.虚拟机诸多特征和性能之间存在复杂的非线性关系, 且虚拟机的性能也会随着其上运行应用的资源需求不同而呈现不同的特性.文献[29, 30]用线性模型来建立虚拟机特征和性能之间的关系, 用该模型来简化虚拟机性能的评估过程.这样自然会使得虚拟机性能不能被准确评估、与QoS有关的指标不能被准确预测, 从而导致虚拟机资源难以被准确分配.虚拟机资源若分配过少, 会导致QoS无法保证; 而虚拟机资源分配过多, 则会导致资源和能源的浪费.

③ 虚拟机资源监控方案选择不当.在虚拟机运行期间, 实时监控虚拟机资源的使用情况, 对保证虚拟机资源的可用性、可靠性等QoS具有重要意义.文献[31]指出, 由于虚拟机上运行的应用对底层的资源的实际需求会随着用户需求的变化而不断变化, 因此, 为了提供必要的资源状态信息, 虚拟机监控设备需要对物理资源的运行状态和资源使用状态进行实时监控.然而, 不同的监控方案会引入不同的资源开销, 对虚拟机性能产生不同的影响, 所以选择合理的监控方案也是保证虚拟机QoS的一个重要基础.

文献[32]总结了当前一些虚拟机监控方案的优缺点.一些商业化的虚拟机监控解决方案可以很方便的获取到资源使用状况, 包括网络流量、存储等数据, 但只针对特定的云平台, 适用性不广, 例如, Amazon Cloud Watch Cloud Management System(CMS), 它旨在提供基于Web服务的虚拟化资源监控方法, 允许开发者进行二次开发, 也可以和其他的虚拟机资源监控方案进行整合, 但只局限于亚马逊的AWS.除了CMS之外, Runtime Model for Cloud Monitoring(RMCM)能针对多个平台, 它能处理具有差异性的虚拟化资源, 因此, 对于多种不同的计算机资源, 都可以同样的方式工作.但是, 该解决方案需要手动安装和配置, 影响了虚拟资源的可扩展性.因此, 监控方案选择不当, 也会成为虚拟机运行过程中QoS难以保证的原因.

综上所述, 虚拟机运行过程中, 虚拟化技术的限制、虚拟机上运行负载难以有效预测、虚拟机特征多、评估难、以及虚拟资源的监控方案选择不当, 都有可能导致虚拟机运行时的QoS难以保证.从云服务提供商的角度来看, 无法提供QoS相关的保证, 也就是违反了SLA(Service Level Agreement)协议, 会降低用户的信任, 从而被处罚.

因此, 预测有可能违反虚拟机QoS的行为, 并及时采取相应的措施来避免虚拟机的QoS下降, 是学界对虚拟机QoS保证开展研究的主要动机.目前, 基于虚拟机QoS的特点, 它们主要被分为两种类型, 即易于量化的QoS指标和难以量化的QoS指标.在对虚拟机可量化QoS指标的研究中, 又分为对虚拟机整体的QoS指标保证的研究和对虚拟机各个资源组件的QoS指标保证的研究.其中, 对于虚拟机整体情况而言, 易于量化的QoS指标包括虚拟机上所运行应用的响应时间、虚拟机的吞吐率, 以及应用的时延等.而对于虚拟机各个组件来说, QoS指标又包括了CPU每秒所处理百万条指令的数量(Million Instruction Per Second, MIPS)、内存和硬盘的读写速度, 以及每秒所读取、写入的数据量等.而对于难以量化的指标的QoS保证的研究, 主要包括了对虚拟机的可用性、鲁棒性、安全性、容错性等方向的研究.具体情况如图1所示.

图1 QoS保证研究及相应QoS指标Fig.1 The research of QoS guarantee and the corresponding QoS indicators

本文首先概述虚拟化技术的基本方式及特征, 然后基于虚拟化的特征, 分别总结分析对于易于量化的QoS保证和不易量化的QoS保证方法.对于易于量化的QoS保证, 又分别从虚拟机整体和各个不同的资源组件出发, 对目前的主要方法进行总结、分析和对比.

1 针对易于量化指标的QoS评估

对于可量化的虚拟机QoS保证, 从虚拟机的整体情况看, 旨在解决虚拟机上所运行应用的响应时间延长, 吞吐率降低等服务质量下降的问题.从虚拟机的各个组件来看, QoS下降主要反映在CPU的运行时间加长以及每秒所处理的指令数目下降、内存与外存的交换字节增多以及I/O的吞吐率下降等.这些QoS下降的原因, 主要是由于虚拟化中隔离机制不完善所导致的资源竞争、虚拟机上所运行负载难以预测, 以及虚拟机QoS预测参数选择不完整、预测模型选择不恰当.大多数对于保证虚拟机整体以及各个组件的QoS研究中, 普遍采取的技术路线如图2所示.

图2 虚拟机易于量化指标的QoS保证的技术路线Fig.2 Technical route of virtual machine easy-guarantee QoS indicators

下面分别针对阐述图2技术路线中的各个步骤.

(1) 确定所研究的QoS类型.即为确定所要保证的QoS参数, 主要包括了应用的响应时间、吞吐率等.

(2) 选取虚拟机特征.主要在应用的软件特征、硬件特征, 以及运行时环境特征中选取虚拟机特征.虚拟机的软件特征主要包括虚拟机监控器的类型、虚拟机监控器所采用的虚拟机调度算法等; 虚拟机的硬件特征主要包括物理CPU的架构、内存容量和主频等; 而运行时环境特征主要包括运行在同一台物理主机上的虚拟机个数, 以及多个虚拟机上的负载类型等.

(3) 建立“ 虚拟机特征-QoS” 模型.模型的选取关系到预测QoS能否保证准确性和高效性.目前, 多数研究所运用的模型主要分为两类, 线性模型和非线性模型.其中, 非线性模型又主要包括奇异值分解(Singular Value Decomposition, SVD)、贝叶斯网(Bayesian Network, BN)、隐马尔科夫模型(Hidden Markov Model, HMM)和人工神经网络(Artificial Neural Network, ANN)等.

(4) 采取相应措施.当模型预测得到虚拟机的QoS可能无法被保证时, 主要采取的措施包括虚拟机迁移、虚拟机资源调整等方式, 来更准确地适应虚拟机对资源的需求.

1.1 虚拟机整体QoS保证研究

1.1.1 易于量化指标的形式化表示 对于虚拟机整体的QoS保证研究, 主要包括响应时间的保证和吞吐率的保证[33].虚拟机的响应时间被定义为从用户发出请求到用户请求得到响应的时间, 这可以通过两次时间戳的差值得到.而虚拟机的吞吐率指得是一段时间内, 虚拟机正确执行用户请求的次数.

一些研究试图通过建立合理的“ 虚拟机特征-QoS模型” , 来提高虚拟机预测QoS的准确性.目前, 主要的虚拟机建模方法如表1所示.

表1 “ 虚拟机特征-QoS” 建模方法总结 Tab.1 Summary of modeling meehods for virtual machine properties and QoS

针对虚拟机QoS预测, “ 虚拟机特征-QoS模型” 的主要建模步骤包括:①选择可能影响虚拟机QoS的软件特征、硬件特征和运行时环境特征; ②通过改变这些特征, 获取不同配置的虚拟机特征数据, 同时在这些虚拟机上获得对应的QoS数据; ③将虚拟机特征和QoS数据进行预处理; ④通过对数据的分析来构建虚拟机“ 特征-QoS” 的线性或是非线性模型; ⑤指定虚拟机特征, 根据模型来预测虚拟机当前的QoS值.

1.1.2 线性模型在虚拟机整体QoS保证中的应用 将QoS目标与虚拟机特征用线性模型来建模, 是一种普遍的思路.文献[9, 29-30, 34-35]主要通过设置约束条件, 并选取有可能会导致虚拟机QoS难以保证的虚拟机特征, 用线性模型来表达它们和QoS之间的线性依赖关系.然后, 通过线性规划和一些启发式算法(如蚁群算法、遗传算法、粒子群优化算法等), 预测给定虚拟机特征下时的QoS值, 进而判断服务质量是否能被满足.

文献[9]针对网络数据传输密集型应用, 研究如何在提高网卡利用率的同时也保证应用运行时吞吐率的方法, 将虚拟机的QoS需求和虚拟机各个特征之间的约束关系, 抽象成多目标线性优化问题, 然后利用多项式时间启发算法来预测网络I/O密集型应用的QoS, 选择最能保证QoS同时资源利用率最高的虚拟机放置方式.文献[34]结合了线性模型和堆排序算法, 给虚拟机分配足够的计算资源节点, 通过硬件的冗余部署, 来保证虚拟机的吞吐率.文献[29, 30]也同样采用线性模型的方法, 建立虚拟机特征和性能之间的关系模型, 以此来实现性能的动态控制和细粒度的资源分配.

用线性模型来对虚拟机特征和QoS之间的关系建模是一种简单便捷的操作.然而, 虚拟机特征和QoS之间往往存在复杂的非线性依赖关系, 这种关系无法用线性模型准确表达.此外, 当虚拟机的特征之间存在多个约束关系时, 预测虚拟机的QoS值可能会成为一个NP难问题.

1.1.3 非线性模型在虚拟机整体QoS保证中的应用 除了线性模型之外, 也有许多工作用非线性模型来表达虚拟机特征和QoS之间的关系.文献[26, 36]选用奇异值分解方法进行QoS保证的预测, 主要通过对虚拟机组件和QoS所构成的矩阵进行降维和奇异值近似分解操作, 预测虚拟机QoS的变化趋势.使用基于奇异值分解的方法, 可以很容易地提取影响虚拟机QoS值的主分量, 但这种方法可解释性不强, 无法很好地解释QoS的预测模型.

文献[27, 37, 38]选择合适的人工神经网络模型, 将所选虚拟机特征作为输入值, 输入到类似“ 黑盒” 结构的神经网络模型中, 使得用户不必知道具体的实现细节, 就可以通过输出结果来预测QoS值.然而, 人工神经网络往往需要耗费大量的计算资源, 且容易造成局部最优.

此外, 文献[39, 40]运用马尔科夫模型、文献[45]采用队列模型, 分别建立虚拟机特征和QoS的联系, 以此预测虚拟机的运行状态和QoS.

文献[25, 41, 42, 43]提出采用贝叶斯网的建模方法, 构建立虚拟机中的QoS和虚拟机特征的非线性模型.基于图论和概率论, 贝叶斯网能够有效地表达各个节点之间的非线性依赖关系, 因此, 使用贝叶斯网模型能实现用概率值的大小, 更准确地预测虚拟机的QoS, 同时也可以预测在同等虚拟机特征取值下QoS的波动情况.然而, 贝叶斯网由于其概率参数来源于训练数据集, 使得基于贝叶斯网无法利用其概率推理算法预测训练集中未出现过的样本的QoS值, 贝叶斯网本身的这一局限也为BN在评估QoS能否保证的问题上带来了挑战.

以上使用非线性模型来评估虚拟机特征和QoS的方法, 能够更为有效地实现虚拟机QoS的预测.然而, 如何合理有效地选取多个虚拟机特征、对数据进行预处理、如何改进传统的算法并使其能用于要解决QoS预测问题, 也成为了用非线性模型来进行QoS预测这类研究的重点和难点.

1.1.4 虚拟机QoS保证的方法 前述的多种模型试图通过提高模型预测的准确程度, 减少可能导致QoS下降、以及违反服务等级协议行为的发生.然而, 当QoS下降时, 就需要采取一些必要的措施来尽可能保证QoS、且降低损失.这些措施主要包括2类, 一类是在一台主机内部的资源调配, 另一类是在多台主机范围内进行虚拟机迁移.这2种方式的优点、缺点及考虑因素如表2所示.

表2 保证QoS的措施 Tab.2 Methods of QoS guaranteed

(1) 虚拟机资源预分配、动态调配与虚拟机整体QoS保证.许多研究工作首先通过模型对虚拟机资源的预测情况, 来预先分配合适的虚拟机资源.当虚拟机运行过程中, 虚拟机监控器监测到有可能导致QoS无法保证的行为出现的时候, 及时调整资源分配、降低避免违背服务等级协议的可能性.

文献[46, 47, 48]综合考虑资源使用情况、QoS保证方法, 以及经济花销, 试图在前期通过花费最少的经济支出, 来保证虚拟机的QoS.然而, 当有可能导致QoS无法保证的行为出现时, 又通过调整虚拟机资源来降低违反SLA协议的可能.其中, 文献[46]借助经济学中定价的方法, 让用户选择在高峰期是愿意花更多的经济开销来保证QoS、或者愿意牺牲一些QoS.用户的选择决定了资源的分配模式.文献[47]提出了一个新的资源分配方式, 通过将用户对资源的需求映射到相应的物理资源上, 从而发现关键的影响虚拟机QoS的资源因素, 并根据关键因素来采取措施, 从而减少经济花销和违反SLA的可能.文献[48]综合考虑实现多个QoS保证, 包括网络带宽、应用的完成时间、以及资源的可靠性等, 基于排序算法将资源按照用户的需求进行分配, 当出现导致QoS下降的行为时, 及时调整服务器上的资源使用.

文献[49, 50, 51]对传统的SVD算法和线性回归算法做了改进, 提出了更为有效的资源调度策略, 提高了物理资源的使用效率, 减少了使QoS无法保证的行为的发生.文献[49]首先基于SVD算法快速的将应用所需要的资源进行分类, 然后将资源根据可用性做降序排列, 根据贪心算法和资源分类结果, 从而找到可用性最强的资源并分配.文献[50]通过策略管理器持续收集各类服务的用户行为习惯, 建立用户行为特征信息表, 给每类服务任意时间片段内的工作状态和QoS等级作好标记; 当有计算任务提交到任务管理器时, 任务计划与调度器通过查询用户行为特征信息表, 规划任务队列和资源分配算法, 实现单位资源的用户对QoS的满意度最大化.文献[51]采用非线性回归模型实现较为准确的虚拟机所需的细粒度资源和性能之间的预测建模, 从而实现资源的调度和调整.

然而, 合理地对虚拟机资源进行预先分配, 以及当出现问题时及时调控虚拟机资源, 它们都对“ 虚拟机特征-QoS模型” 预测时的准确性提高了要求; 不够准确的预测结果, 将有可能导致资源的使用率不高.在调整资源的过程, 也需要考虑额外的计算和资源开销及网络延迟带来的损失.

(2) 虚拟机迁移、资源整合与虚拟机整体QoS保证.除了虚拟机资源的预分配与及时调控外, 还有很多工作基于多台主机之间的虚拟机迁移来减少虚拟机QoS无法保证的可能性.文献[9, 16, 52, 53, 56]基于虚拟机迁移来保证QoS, 主要思想是首先通过“ 虚拟机特征-QoS模型” 来预测QoS可能无法保证的虚拟机, 然后综合考虑被迁移虚拟机的网络I/O开销、内存复制开销和目标主机的负载均衡等多种因素, 据此确定哪些虚拟机需要进行迁移、以及迁移到哪一台目标主机上.

文献[9, 16]基于虚拟机迁移, 提出当系统中捕捉到可能有会导致SLA违反的行为发生时, 虚拟机集群中的中心管理节点就会通知其他执行节点, 并及时进行虚拟机迁移, 在降低损失的同时也提高了资源利用率、并降低能耗.文献[52, 53]通过建立贝叶斯网来预测是否有QoS无法保证的情况出现, 若有则综合考虑迁移时间、虚拟机内存使用情况和能源利用, 选择代价最小的迁移方案.

然而, 在虚拟机的迁移过程中, 也需要考虑多方面的因素, 例如, 如何保证迁移之后的虚拟机能满足QoS、如何保证迁移过后的物理服务器的负载均衡、如何减少迁移过程中的网络I/O开销等[53].

(3) 公有云平台中虚拟机整体QoS保证.基于公有云平台来研究虚拟机QoS的保证, 也是一类具有代表性的工作, 主要包括微软Azure[57]、阿里云[58]、谷歌云服务[59]等.这些研究通过使用特定的工具、算法来分析测试现有的公有云平台上各个物理主机的资源利用情况, 然后给出相应的虚拟机QoS保证策略.

文献[57]研究微软Azure云服务中的各个虚拟机的关键特征, 在保证高QoS要求的同时, 减轻预测性能的压力.文献[58]对阿里云的数据进行分析, 讨论了阿里云存在一些约束, 即资源在空间和时间上的利用、资源需求、以及线上/线下工作对资源的需求都具有不平衡性.文献[59]主要通过分析谷歌数据中的任务完成时间、用户个数、调度事件等属性, 指出虚拟机中要实现QoS的有效保证还存在很多困难和挑战.因此, 提高云的效率、保证服务的QoS、以及通过合理有效的资源分配来提高资源的应用效率, 是这类研究的关键问题.文献[60]指出, 在SPEC Cloud对公有云平台中虚拟机的可扩展性进行测试时, 可以通过增加每个应用实例的用户数量、用户实例、每个虚拟机节点上的应用个数, 以及为每个实例增加CPU个数、内存大小、带宽等资源, 来测试某个虚拟机所能承受的负载极限, 从而测试虚拟机的可扩展性和弹性.

综上所述, 虚拟机的整体QoS保证是研究热点的热点之一.通常通过建立表达虚拟机特征和QoS关系的模型, 来预测是否有可能出现QoS下降的情况; 若有, 则采取相应的虚拟机资源调整、虚拟机迁移等方式, 避免QoS下降.在这种研究模式中, “ 虚拟机特征-QoS模型” 的选择显得非常重要, 若不能合理选择有效的模型来对虚拟机特征和QoS之间复杂的依赖关系进行建模, 则可能导致虚拟机QoS评估时出现偏差.同时, 在虚拟机迁移时, 也需要考虑目标主机和当前主机上的资源负载; 若目标主机上的资源利用率较高, 则有可能导致迁移之后的虚拟机QoS下降的更加严重.上述虚拟机QoS保证过程如图3所示.

图3 虚拟机QoS保证的操作流程Fig.3 Operation process of guaranteeing the QoS of virtual machines

1.2 虚拟机各组件的QoS保证

文献[34, 35, 44, 56, 61]从多个资源组件的角度来保证虚拟机的QoS.这些组件主要涉及计算机的CPU、存储和网络资源, 导致这些组件QoS难以保证的原因和应对措施总结如表3所示.

表3 虚拟机各组件QoS难以保证的原因及措施 Tab.3 Virtual machines' QoS hard-guaranteed reasons and corresponding resolutions

从CPU层面来看, 多个虚拟机通过调度轮流获得CPU执行时间.但这些算法都有一些局限性, 会导致CPU的QoS难以保证, 例如, Xen支持的CPU调度算法就主要包括了SEDF(Simple Earliest Deadline First)调度算法、以及Credit调度算法[36].SEDF调度算法根据任务满足截止期限的紧迫性来修改任务的优先级, 从而保证最紧迫的任务能够及时完成.当系统的负载相对较低时, 这种算法很有效, 但是当系统负载很大时, 会使很多任务错过截止时间、来不及被CPU处理而夭折, 甚至可能导致CPU时间大量花费在调度上.因此, 当系统负载较大时, 基于SEDF算法的CPU的QoS会难以保证[18, 36].而Credit调度算法的缺点在于不能保证实时性, 其全局负载平衡策略过于简单, 容易导致CPU因为进程未就绪而空闲的情况.此外, 由于该算法的全局分配策略简单, 而容易使得CPU的分配错误率高, 从而导致CPU的QoS难以保证[18, 36].因此, 可以通过优化虚拟机中CPU的调度算法来保证虚拟机CPU的QoS.

从内存层面来看, 多个虚拟机划分物理主机的内存空间存储数据, 共享内存带宽访问数据, 访存时对Cache的竞争会影响内存性能.因此, 可以通过优化内存分配、增大内存带宽, 同时缓解虚拟机对Cache的竞争来保证内存的QoS.

从网络I/O层面上看, 多个虚拟机上应用的数据流需要通过共享的物理网络链接来完成数据交换.因此, 可以通过增加物理链接的带宽来加快网络的传输速度, 从而保证虚拟机网络资源的QoS.很多研究也是基于以上的思想进行各个组件的QoS优化和保证.

文献[34, 35]通过优化虚拟机CPU的调度算法来保证CPU的QoS, 首先预测虚拟机资源的使用情况, 然后分别基于改进的SEDF调度算法和改进的EDF算法来保证CPU在各个虚拟机之间分配的公平性和合理性.基于这2种改进的CPU调度算法进行测试时, 即使在当CPU密集型应用和I/O密集型应用同时运行的强干扰情况下, 多个虚拟机的吞吐率和CPU时延都在QoS保证的范围内.

文献[44, 56, 61]通过启发式算法和改进的K-means算法来保证虚拟机各个组件的QoS.文献[44]提出了一个资源调度模型, 并基于启发式算法得到该模型的可行解, 通过该模型来保证CPU、网络I/O和内存的QoS.文献[56]也是通过采用启发式调度算法, 通过平衡多个物理主机上的负载来实现CPU的运算速度、内存交换速度和I/O吞吐率在QoS保证的范围内.文献[61]采用改进的K-means算法克服了传统算法中中心不确定的缺点, 使得评估虚拟机的CPU、内存和磁盘I/O的使用情况时, 结果更加准确.

2 针对难以量化指标的QoS评估

虚拟机QoS的指标中, 有一些是不易于量化的, 例如, 安全性、可用性、容错性、鲁棒性等, 总结如表4所示.

表4 难以量化的QoS指标及其QoS保证方法 Tab.4 Hard-quantified QoS indicators and their guaranteed methods
2.1 虚拟机的安全性保证

在难以量化和保证的虚拟机QoS指标中, 用户最关心安全性问题[62, 63].云计算依靠虚拟化技术为用户提供资源; 如何有效地为用户提供具有安全性保证的资源, 是必须考虑的问题.

2.1.1 虚拟机安全性难以保证的原因 虚拟机中安全性难以保证的原因主要包括以下几类.

(1) 虚拟化技术中隔离机制不够完善.这可能会导致一台虚拟机受到攻击时, 同一台主机上部署的其他虚拟机也存在安全威胁.

(2) 由于互联网的开放性和虚拟机的特殊性, 虚拟机更容易受到攻击.除了传统的分布式拒绝服务攻击(Distributed Denial of Service, DDoS)和注入式攻击(Cross Site Scripting, CSS)之外, 还有一些专门针对虚拟机的攻击方式[59], 例如, 专门针对虚拟机监控器的攻击、Xen上其他非特权虚拟机对Domain-0的攻击、以及各个虚拟机之间的互相攻击.

2.1.2 应对虚拟机安全威胁的措施 为了应对这些安全威胁, 主要采用以下4类措施[60].

(1) 安全Hypervisor.通过保护虚拟机监控器, 来达到保护虚拟机资源隔离性、数据安全性、通信安全性和代码完整性的目的.

(2) 针对专门攻击的防御措施.主要针对网络攻击, 并实现通信数据保护;

(3) 建立基于硬件的可信安全域或可信链.在虚拟化环境中, 通过建立安全策略、安全访问机制等, 为用户提供安全访问数据的模式, 同时利用可信计算技术来保证虚拟机平台的可信性.

(4) 传统安全检测技术的应用.通过在虚拟机监控器层设置传统的安全检测模块(如入侵检测), 来提升系统的安全性和独立性.

2.1.3 虚拟机安全性保证中尚存在的问题 现有的虚拟机安全性保证方法[60, 64], 仍存在一些不足之处.首先, 这些方法都是从单一的某个方面出发, 考虑单一模块或数据流的安全性, 并没有一个整体的安全性保障体系; 其次, 从实际应用的特点和安全保证的需求看, 安全算法和安全策略的选择也需要考虑虚拟机的性能因素, 而许多涉及虚拟机安全性保证算法并未考虑算法的性能开销.此外, 如果虚拟机中的安全策略过多, 则实际应用中虚拟机的性能也会受到较大干扰; 再者, 安全模块自身的安全性也不能忽略, 否则, 当模块自身受到攻击时无法保障系统安全.

2.2 虚拟机的可用性保证

除了安全性之外, 如何保证虚拟机系统的可用性也是QoS保证的一个关键问题.文献[65]定义了虚拟化技术中的可用性, 是指在一定时间和一定条件下, 虚拟机能正确执行用户定义的功能和分配的任务的能力.许多研究从硬件部署层面和资源调度层面, 试图保证虚拟机的可用性.

一类有代表性的工作是通过部署冗余的硬件、或及时更换失效的硬件来保证虚拟机的可用性.文献[69]通过分析微软Azure云中连续4个月以来的硬件失效情况, 得出硬盘失效是导致虚拟机不可用的最主要原因的结论.此外, 磁盘冗余阵列控制器失效和服务器使用年限过长, 也是导致虚拟机服务不可用的原因.文献[65]也指出, 硬件的可靠程度与虚拟机的可用性成正比.因此, 可以通过引入优化模型来预测那些具有较高不可用概率的硬件, 然后采取相应措施(如用SSD替换HDD)及时更换使用年限过长的服务器、提供可靠性更高的控制器等.

另一些有代表性的工作是通过及时调整虚拟机资源分配, 来保证虚拟机的可用性.文献[70]以实现虚拟机的可用性为出发点, 利用多目标优化模型得到资源调整方案, 通过虚拟机迁移或虚拟机资源动态分配算法来实现资源调整.

多目标优化模型综合考虑了虚拟机性能、能耗和可用性, 最终获取最合适的虚拟机资源整合方式.文献[68]提出用队列模型和马尔科夫过程来建模, 从而保证资源的可用性和有效性.文献[72]采用分而治之的思想, 将应用划分为多个层次后, 通过背包问题进行建模, 将各个部分的应用部署在多个虚拟机上执行, 以此来保证可用性.

2.3 虚拟机的容错性保证

虚拟机的容错性可描述为:如果一个虚拟机系统对出现的错误能及时修正, 同时能对改变的环境特征进行自适应处理, 那么这个系统就是可被用户接受的[70].虚拟机中的容错性也是服务质量中很重要的一个方面, 虚拟机对其各个组件的容错性是虚拟机资源可用性的一个重要保障.虚拟化环境中, 可能会发生多种错误, 包括超时、网络错误、硬件错误、软件错误、数据库错误等, 因此也需要提出相应的策略来保证虚拟机各个方面的容错性.对于虚拟机容错性的保证来说, 一类有代表性的工作是通过建立错误检测算法, 检测是否有不能正确执行应用的虚拟机节点; 若有, 则把这个虚拟机节点删除、重新建立虚拟机, 以此来保证虚拟机的容错性[73, 74, 75].

文献[73]基于哈希函数中的比特密度概念, 提出通过比较所需要传输的数据和内存映像中数据的相似程度, 来减少网络传输中的错误.文献[74]提出了一个Fault Tolerance in Cloud computing(FTMC)模型来保证每一个虚拟机节点的可靠性和容错性; 若是发现某个虚拟机节点不能正确的执行应用, 则移除这个节点.文献[75]提出一个静态调度算法, 来实现虚拟机容错性、性能和能源之间的平衡.

2.4 虚拟机的鲁棒性保证

虚拟机的鲁棒性是指, 在虚拟机运行过程中, 当发生异常或危险情况下, 虚拟机能正常运行、且应用执行不受干扰的可靠性程度[71], 鲁棒性主要通过虚拟机迁移来保证[33, 61, 71].

文献[33]检测虚拟机是否有可能违反QoS的行为发生, 然后通过虚拟机的放置策略和迁移技术来保证虚拟机的鲁棒性.文献[71]主要针对物理主机故障、网络故障和遭到恶意攻击时的故障这3种情况对虚拟机鲁棒性的影响, 来考虑应采取的应对措施.针对物理主机的故障, 主要通过在虚拟机迁移过程中的预迁移(Pre-copy)和后迁移(Post-copy)时, 对源主机和目标主机采取不同的热备份方式, 来保证虚拟机迁移过程中的鲁棒性.针对网络故障, 主要通过设置虚拟机的响应机制来保证; 针对遭到恶意攻击时的虚拟机故障, 通过引入加密机制对虚拟机所传输的数据进行加密, 来保证虚拟机的鲁棒性.

虚拟机中难以量化的QoS类型很多, 正是由于这些指标的约束, 用户租用虚拟机资源时, 一些非功能性的需求才得以保证.

3 总结与展望

虚拟化技术作为云计算的核心, 通过对底层资源的抽象, 使得依托于虚拟化技术的各个虚拟机能够灵活地分割、复用物理主机资源.虚拟化技术在提高物理资源的利用率、扩大资源提供商的经济效益的同时, 也使得用户能够以低价、易用、易管理的方式使用计算机资源.虚拟资源提供商与用户签订SLA协议, 向用户承诺在虚拟机运行期间, 虚拟资源的各项指标必须满足QoS保证, 否则便会被处罚.

然而, 虚拟机运行过程中存在一些导致QoS无法保证的因素, 主要包括虚拟化技术难以保证虚拟机间性能隔离、虚拟机上运行负载的类型的多样性和复杂性难以预估、虚拟机性能评估模型的选择不当, 以及虚拟资源的监控方案选择不当等.针对这些挑战, 学界开展了许多关于QoS保证的研究.本文基于这些QoS指标的特点, 将它们分为易于量化的QoS指标、以及不易于量化的QoS指标两种类型, 来分别阐述它们的研究现状.

易于量化的QoS指标主要包括应用的响应时间、吞吐率、应用时延等.而难以量化的QoS指标主要包括了虚拟机的安全性、可用性、容错性以及鲁棒性.对于这类指标, 大多研究方案都是通过建立“ 虚拟机特征-QoS” 模型, 从而及时预测是否存在有违反QoS指标的行为发生, 若有, 则采取相应的措施来避免.在选择合适的“ 虚拟机特征-QoS” 模型时, 模型主要包括2类, 一类是线性模型, 另一类是非线性模型.

线性模型具有操作简单、预测容易等优点被广泛采用.许多工作通过线性优化、增加约束限制、采用整数规划等方法, 来分析、预测、评估可能导致QoS下降的行为.然而, 由于虚拟机的多个特征之间, 以及特征和QoS之间, 存在复杂的非线性依赖关系.例如, 随着虚拟机被分配的内存增加, 虚拟机的QoS在一段时间内也呈现增长趋势.然而, 当内存的容量增加到一定程度之后, 虚拟机的QoS值便无明显的改变.因此, 采用单一的线性模型将难以有效拟合虚拟机的QoS与特征之间的变化, 容易导致错误的预测结果.同时, 当虚拟机的特征过多时, QoS的预测难度也会增加, 这是一个NP难问题.

另一类建立“ 虚拟机特征-QoS” 模型的方法采用非线性模型, 主要包括奇异值分解、人工神经网络、马尔科夫模型、贝叶斯网等.这些模型相较线性模型来说, 能够有效地拟合虚拟机特征和QoS之间存在的非线性关系, 预测结果也更加准确.但它们各自也都存在不足之处, 例如, 基于贝叶斯网的方法无法预测训练集中未出现过的数据集, 基于人工神经网络的方法则主要针对大量的数据集, 当数据量很小时, 预测结果也有可能不够准确, 但当数据量增加时, 算法的运行时间又会增加.因此, 根据数据量、虚拟机特征以及运行效率来合理地选择虚拟机QoS的预测方法, 是未来研究工作的重点.

当预测得到有可能导致虚拟机QoS下降的行为发生时, 则采取相应措施.措施主要分为2种, 即同一台物理主机上的虚拟机资源调配和不同虚拟机主机之间的虚拟机迁移.在同一台物理主机之间进行虚拟机资源调配是一种高效的虚拟机QoS保证方法.在工作前期, 虚拟机资源的分配情况取决于其上运行的工作负载类型及其运行情况, 这些情况难以被完全准确地预测.因此, 合理地配置虚拟机资源是一个棘手的问题.资源配置太少, 可能导致工作负载不稳定, 甚至是虚拟机宕机; 但若资源配置太多, 则超额的资源可能会被浪费, 且开销增加.所以, 在前期为虚拟机分配适当资源, 并在其运行时进行实时监控、测试虚拟机的QoS, 实现在资源发生短缺时及时进行虚拟机资源调配, 是一种有效, 且经济可行的方式.此外, 若同一台虚拟机上的物理资源无法满足资源调配需求, 则考虑通过虚拟机迁移的方式.虚拟机迁移过程对用户是透明的, 且用户在虚拟机上运行的应用可以不用中断.这个方法有益于虚拟机的整合, 实现数据中心服务器上的负载均衡, 避免物理主机出现过载.

除了考虑虚拟机的一些可量化QoS指标之外, 虚拟机一些难以量化的QoS指标的保证也十分重要, 其中, 用户最关心安全性指标.在虚拟机应用越来越广泛的同时, 安全问题也越来越突出.各种针对虚拟机的攻击也越来越多, 如虚拟机逃逸攻击、拒绝服务攻击、特定病毒和恶意软件攻击等.为使虚拟化平台的数据存储和计算过程可靠和可信, 必须首先保证虚拟机的安全.所以, 未来也必须采取更加强硬的措施来保证虚拟机运行时的安全性.此外, 虚拟机的可用性、容错性和鲁棒性也是虚拟机运行时必须具备的, 可以保证在虚拟机出现硬盘故障、软件故障或网络故障等情况时, 还能正常运行.

综上所述, 围绕本文总结分析的与虚拟机QoS保证相关的方法, 将来的相关研究工作包括:

(1) 虚拟机QoS评估方法 对于一些易于量化的指标, 如响应时间、吞吐率, 目前的工作主要依靠“ 虚拟机特征-QoS模型” 来预测QoS, 并且对可能损害QoS的行为采取措施.在分析虚拟机特征与QoS之间的关系时, 简单的线性模型并不足以表达虚拟机各个特征之间复杂的依赖关系, 也无法预测出虚拟机QoS的波动情况.因此, 在后续的研究中, 无论是对整体虚拟机的QoS保证的研究, 还是对单个组件(如CPU、内存、磁盘I/O等)QoS保证的研究, 选取有效、合理的模型不仅能提高虚拟机性能评估的准确性, 同时也能减少无法保证QoS情形的发生, 使得虚拟机资源预分配的准确性提高, 减少后期资源调配的开销.

对于一些难以量化的QoS类型, 如安全性、可用性、容错性等, 则需要设计合理、有效的算法来保证虚拟机整体的服务质量, 而不只是单个组件.有必要时, 综合考虑开销、能耗等因素, 部署冗余的硬件来保证服务质量, 这一方面的支撑技术也是值得深入研究的课题.

(2) 虚拟机QoS保证措施 此外, 在措施选取阶段, 需要考虑多方面的因素, 例如, 当采用虚拟机迁移的方式来保证QoS时, 也需要考虑能耗、负载均衡、物理服务器利用率等问题.如何综合考虑多方面的因素、选取合适的方法, 最终实现QoS保证, 是云计算环境下虚拟机QoS研究的重要内容.

The authors have declared that no competing interests exist.

参考文献
[1] DANILOV A, ANDERSEN J, MOLODKINA. The NIST definition of cloud computing[J]. Communications of the ACM, 2011, 53: 50. DOI: DOI:10.6028/NIST.SP.800-145. [本文引用:1]
[2] Amazon EC2[Z/OL]. [2018/06/05]. http://aws.amazon.com/ec2/. [本文引用:1]
[3] LU C Z, YE K J, XU G Y, et al. Imbalance in the cloud: An analysis on Alibaba cluster trace[J]. BigData, 2017: 2884-2892. [本文引用:1]
[4] ZHONG A, JIN H, SONG W. Performance implications of non-uniform VCPU-PCPU mapping in virtualization environment[J]. Cluster Computing, 2013, 16(3): 347-358. [本文引用:1]
[5] ROSENBLUM M, GARFINKEL l T. Virtual machine monitors: current technology and future trends[J]. IEEE Computers, 2005, 38(5): 39-47. [本文引用:1]
[6] ZHU J, LI J, ZHUANG Y. Utility-based virtual cloud resource allocation model and algorithm in cloud computing[J]. International Journal of Grid & Distributed Computing, 2015, 8: 177-190. [本文引用:1]
[7] CHEN P, NOBLE B. When virtual is better than real[C]. Proceedings of the Workshop on Hot Topics in Operating Systems, 2011: 20-23. [本文引用:1]
[8] IBRAHIM S, HE B, JIN H. Towards pay-as-you-consume cloud computing[C]. Proceedings of the International Conference on Services Computing, 2011: 370-377. [本文引用:2]
[9] LIN J, CHEN C. Interference-aware virtual machine placement in cloud computing systems[C]. Proceedings of the International Conference on Computer & Information Science, 2012: 598-603. [本文引用:3]
[10] CHIANG R, HUANG H. Tracon: Interference-aware scheduling for data-intensive applications in virtualized environments[C]. Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, 2011: 1-12. [本文引用:1]
[11] NATHUJI R, KANSAL A, GHAFFARKHAH A. Q-clouds: managing performance interference effects for qos-aware clouds[C]. Proceedings of the 5th European Conference on Computer Systems, 2010: 237-250. [本文引用:1]
[12] TICKOO O, IYER R, ILLIKKAL R. Modeling virtual machine performance: challenges and approaches[J]. ACM Sigmetrics Performance Evaluation Review, 2009, 37(3): 55-60. [本文引用:1]
[13] 张建勋, 古志民, 郑超. 云计算研究进展综述[J]. 计算机应用研究, 2010, 27(2): 429-433.
ZHANG J, GU Z, ZHENG C. Survey of research progress on cloud computing[J]. Application Research of Computers, 2010, 27(2): 429-433. [本文引用:1]
[14] KOH Y, KNAUERHASE Y, BRETT P. An analysis of performance interference effects in virtual environments[C]. Proceedings of the International Symposium on Performance Analysis of Systems & Software, 2007: 200-209. [本文引用:1]
[15] NOVAKOVIC D, VASIC N, OVAKOVIC S. Deep dive: Transparently identifying and managing performance interference in virtualized environments[C]. Proceedings of the USENIX Conference on Annual Technical Conference, 2013: 219-230. [本文引用:1]
[16] CALHEIROS R, RANJAN R, BUYYA R. Virtual machine provisioning based on analytical performance and QoS in cloud computing environments[C]. Proceedings of the International Conference on Parallel Processing, 2011: 295-304. [本文引用:2]
[17] FRANK Y, HYEONG K. Enabling consolidation and scaling down to provide power management for cloud computing[C]. Proceedings of the USENIX Conference on Hot Topics in Cloud Computing, 2011: 14. [本文引用:1]
[18] BARHAM P, DRAGOVIC B, FRASER K. Xen and the art of virtualization[C]. Proceedings of ACM Symposium on Operating Systems Principles, 2003: 164-177. [本文引用:3]
[19] ZHANG W, LIU J, LIU C. Workload modeling for virtual machine-hosted application[J]. Expert Systems with Applications, 2015, 42(4): 1835-1844. [本文引用:2]
[20] LUO Z, QIAN Z. Burstiness-aware server consolidation via queuing theory approach in a computing cloud[C]. Proceedings of the International Symposium on Parallel & Distributed Processing, 2013: 332-341. [本文引用:2]
[21] QUIROZ A, KIM H, PARASHAR M. Towards autonomic workload provisioning for enterprise grids and clouds[C]. Proceedings of the International Conference on Grid Computing, 2009: 50-57. [本文引用:1]
[22] SHYAM G, MANVI S. Virtual resource prediction in cloud environment: A Bayesian approach[J]. Journal of Network & Computer Applications, 2016(65): 144-154. [本文引用:1]
[23] GAREY M, JOHNSON D. Computers and intractability: A guide to the theory of NP-Completeness[M]. W H Freeman, 1979. [本文引用:1]
[24] KOUSIOURIS G, CUCINOTTA T, VARVARIGOU T. The effects of scheduling, workload type and consolidation scenarios on virtual machine performance and their prediction through optimized artificial neural networks[J]. Journal of Systems & Software, 2011, 84(8): 1270-1291. [本文引用:2]
[25] HAO J, ZHANG B, YUE K. Performance measurement and configuration optimization of virtual machines based on the bayesian network[C]. Proceedings of the 3rd International Conference on Cloud Computing and Security, 2017: 641-652. [本文引用:2]
[26] LI F, YANG D, ZHOU P. Modeling application performance in a virtualized environment[J]. Computer Systems & Applications, 2015(24): 9-15. [本文引用:1]
[27] KRAFT S, CASALE G, KRISHNAMURTHY D. I/O performance prediction in consolidated virtualized environments[C]. Proceedings of the International Conference on Performance Engineering, 2011: 295-306. [本文引用:2]
[28] KUNDU S, RANGASWAMI R, DUTTA K. Application performance modeling in a virtualized environment[C]. Proceedings of the International Symposium on High Performance Computer Architecture, 2010: 1-10. [本文引用:1]
[29] WANG R. A virtual data center design and implementation of dynamic performance control system[D]. Shanghai: Shanghai Jiaotong University, 2011. [本文引用:2]
[30] XIONG H, WANG C. Cloud application classification and fine-grained resource provision based on prediction[J]. Journal of Computer Applications, 2013, 33(6): 1534-1539. [本文引用:2]
[31] 江逸茗, 兰巨龙, 周慧琴. 网络虚拟化环境下的资源监控策略[J]. 电子与信息学报, 2014, 36(3): 708-714.
JIANG Y M, LAN J L, ZHOU H Q. Resource monitoring policy for network virtualization environment[J]. Journal of Electronics & Information Technology, 2014, 36(3): 708-714. [本文引用:1]
[32] 李浩然. OpenStack虚拟机资源监控关键技术的研究与实现[D]. 北京: 北京邮电大学, 2017.
LI H R. The research and implementation of resource monitoring based on openstack virtual machine[D]. Beijing: Beijing University of Posts and Telecommunications, 2017. [本文引用:1]
[33] MENG X, PAPPAS V, ZHANG L. Improving the scalability of data center networks with traffic-aware virtual machine placement[C]. Proceedings of the 29th Conference on Information Communications, 2010: 1154-1162. [本文引用:3]
[34] GUPTA D, CHERKASOVA L, GARDNER R. Enforcing performance isolation across virtual machines in Xen[C]. Proceedings of the USENIX International Conference on Distributed System Platform, 2006: 342-362. [本文引用:3]
[35] CUCINOTTA T, GIANI D, FAGGIOLI D. Providing performance guarantees to virtual machines using real-time scheduling[C]. Proceedings of the Workshop on Virtualization & High-Performance Cloud Computing, 2010: 657-664. [本文引用:2]
[36] 王凯, 侯紫峰. Xen虚拟CPU空闲调度算法[J]. 计算机研究与发展, 2013, 50(11): 2429-2435.
WANG K, HOU Z F. An idle virtual CPU scheduling algorithm on Xen virtual machines[J]. Journal of Computer Research and Development, 2013, 50(11): 2429-2435. [本文引用:3]
[37] LI B, GUO S, WU Y. Construction and resource allocation of Cost-Efficient clustered virtual network in software defined networks[J]. Journal of Grid Computing, 2017(4): 1-17. [本文引用:1]
[38] ELI C, ANAND B, ALEXANDRE M. Resource central: understand ing and predicting workloads for improved resource management in large cloud platforms[C]. Proceedings of the Symposium on Operating System Principles, 2017: 153-167. [本文引用:1]
[39] LU C, YE K, XU G. Imbalance in the cloud: An analysis on alibaba cluster trace[C]. Proceedings of the IEEE International Conference on Big Data, 2017: 2884-2892. [本文引用:1]
[40] MORSHEDLOU H, MEYBODI M. Decreasing impact of SLA violations: a proactive resource allocation approach for cloud computing environments[J]. IEEE Transactions on Cloud Computing, 2014, 2(2): 156-167. [本文引用:1]
[41] WU L, GARG K, BUYYA R. SLA-based resource allocation for software as a service provider(SaaS) in cloud computing environments[C]. Proceedings of the International Symposium on Cluster, Cloud and Grid Computing, 2011: 195-204. [本文引用:1]
[42] SAGBO K, HOUNGUE P. Quality architecture for resource allocation in cloud computing[J]. Service-oriented and Cloud Computing, 2012(7592): 154-168. [本文引用:1]
[43] ERGU D, KOU G, PENG Y. The analytic hierarchy process: task scheduling and resource allocation in cloud computing environment[J]. Journal of Supercomputing, 2013, 64(3): 835-848. [本文引用:1]
[44] EMEAKAROHA V, BRANDIC I. SLA-aware application deployment and resource allocation in clouds[C]. Proceedings of the Computer Software and Applications Conference Workshops, 2011: 298-303. [本文引用:3]
[45] DELIMITROU C, KOZYRAKIS C. Quasar: resource-efficient and QoS-aware cluster management[C]. Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems, 2014: 127-144. [本文引用:1]
[46] 周景才, 张沪寅, 查文亮, . 云计算环境下基于用户行为特征的资源分配策略[J]. 计算机研究与发展, 2014, 51(5): 1108-1119.
ZHOU J C, ZHANG H Y, ZHA W L, et al. User-aware resource provision policy for cloud computing[J]. Journal of Computer Research and Development. 2014, 51(5): 1108-1119. [本文引用:2]
[47] RAJAN K, KAKADIA D, CURINO C. Perf orator: Eloquent performance models for resource optimization[C]. Proceedings of the ACM Symposium on Cloud Computing, 2016: 415-427. [本文引用:2]
[48] RUIU P, CARAGNANO G, GRAGLIA L. Automatic dynamic allocation of cloud storage for scientific applications[C]. Proceedings of the International Conference on Complex, Intelligent, and Software Intensive Systems, 2015: 209-216. [本文引用:2]
[49] XIA Q, LAN Y, XIAO L. Scheduling resource of IaaS clouds for energy saving based on predicting the overloading status of physical machines[C]. Proceedings of the International Conference on Algorithms and Architectures for Parallel Processing, 2015(9523): 211-221. [本文引用:2]
[50] RAMEZANI F, NADERPOUR M, LU J. Hand ling uncertainty in cloud resource management using fuzzy Bayesian networks[C]. Proceedings of the IEEE International Conference on Fuzzy system, 2015: 1-8. [本文引用:2]
[51] SHYAM G, MANVI S. Virtual resource prediction in cloud environment: A Bayesian approach[J]. Journal of Network & Computer Applications, 2016(65): 144-154. [本文引用:2]
[52] YAN C, LI Z, YU X. Bayesian networks-based selection algorithm for virtual machine to be migrated[C]. Big Data and Cloud Computing, 2016: 573-578. [本文引用:2]
[53] LI Z, YAN C, YU X. Bayesian network-based virtual machines consolidation method[C]. Future Generation Computer Systems, 2017: 75-87. [本文引用:3]
[54] REISS C, TUMANOV A, GANGER G R, et al. Heterogeneity and dynamicity of clouds at scale: Google trace analysis[C]. ACM Symposium on Cloud Computing, 2012: 1-13. [本文引用:1]
[55] MATLOOBI R, ZOMAYA Y. Managing performance degradation of collocated virtual machines in private cloud[C]. Proceedings of the International Conference on High performance Computing and Communications, 2017: 128-135. [本文引用:1]
[56] VINCENT C, EMEAKAROHA I, MICHAEL M. SLA-aware application deployment and resource allocation in clouds[C]. Proceedings of the Computer Software & Application Conference Workshops, 2011: 298-303. [本文引用:4]
[57] CURTIS A R, KESHAV S, LOPEZ-ORTIZ A. LEGUP: using heterogeneity to reduce the cost of data center network upgrades[C]. ACM Conference on Emerging networking Experiments and Technology, 2010: 1-12. [本文引用:2]
[58] MHOUTI A E, ERRADI M, NASSEH A. Using cloud computing services in e-learning process: Benefits and challenges[J]. Education & Information Technologies, 2017(4): 1-17. [本文引用:2]
[59] AHAMED F, SHAHRESTANI S, JAVADI B. Security aware and energy-efficient virtual machine consolidation in cloud computing systems[C]. Trustcom, 2016: 1516-1523. [本文引用:3]
[60] 秦中元, 沈日胜, 张群芳, . 虚拟机系统安全综述[J]. 计算机应用研究, 2012, 9(5): 1618-1622.
QIN Z Y, SHEN R S, ZHANG Q F, et al. Survey on virtual machine system security[J]. Application Research of Computers, 2012, 9(5): 1618-1622. [本文引用:3]
[61] YADAV N, SINGH V, KUMARI M. Generalized reliability model for cloud computing[J]. International Journal of Computer Applications, 2014, 88(14): 13-16. [本文引用:4]
[62] XU M, JIANG X, SANDHU R. Towards a VMM-based usage control framework for OS kernel integrity protection[C]. Proceedings of lCACM Symposium on Access Control MODELS and Technologies, 2007: 71-80. [本文引用:1]
[63] DENG W, LIU F, JIN H. Lifetime or energy: Consolidating servers with reliability control in virtualized cloud datacenters[C]. Proceedings of the International Conference on Cloud Computing Technology and Science, 2012: 18-25. [本文引用:1]
[64] LI J, CUI Y, MA Y. Modeling message queueing services with reliability guarantee in cloud computing environment using colored petri nets[C]. Mathematical Problems in Engineering, 2015: 1-20. [本文引用:1]
[65] JAYASINGHE D, PU C, EILAM T. Improving performance and availability of services hosted on IaaS clouds with structural constraint-aware virtual machine placement[C]. Proceedings of IEEE International Conference on Services Computing, 2011: 72-79. [本文引用:2]
[66] NACHI N. Characterizing cloud computing hardware reliability[C]. Proceedings of ACM Symposium on Cloud Computing, 2010: 193-204. [本文引用:1]
[67] YADA T, UEDA K. VM placement control considering network band width for high availability distributed clusters[C]. Proceedings of Asia-Pacific Conference on Communications, 2018: 1-6. [本文引用:1]
[68] 周文煜, 陈华平, 杨寿保, . 基于虚拟机迁移的虚拟机集群资源调度[J]. 华中科技大学学报: 自然科学版, 2011, 39(S1): 130-133.
ZHOU W Y, CHEN H P, YANG S B, et al. Resource scheduling in virtual machine cluster based on live migration of virtual machine[J]. Journal of Huazhong University of Science and Technology: Nature Sciences, 2011, 39(S1): 130-133. [本文引用:1]
[69] 曾文琦, 叶家炜, 杨阳, . 面向应用服务的虚拟机性能评估[J]. 计算机工程与设计, 2014(10): 3631-3638.
ZENG W Q, YE J W, YANG Y, et al. VM s performance analysis based on application service[J]. Computer Engineering and Design, 2014(10): 3631-3638. [本文引用:1]
[70] HAMMER L, YAZIDI A, BEGNUM K. An inhomogeneous hidden markov model for efficient virtual machine placement in cloud computing environments[J]. Journal of Forecasting, 2017, 36(4): 407-420. [本文引用:2]
[71] ANIS Y, FREDERIK UNG, HÄREK HAUGERUD. Effective live migration of virtual machines using partitioning and affinity aware-scheduling[J]. Computers & Electrical Engineering, 2018, 69: 240-255. [本文引用:3]
[72] ALEXANDROV A, FOLKERTS E, SACHS K. Benchmarking in the cloud: What it should, can, and cannot be[C]. Proceedings of TPC Technology Conference on Performance Evaluation & Benchmarking, 2012: 173-188. [本文引用:1]
[73] TOMASZEK L. Model-driven development of virtual network embedding algorithms with model transformation and linear optimization techniques[C]. MODEL, 2018: 39-54. [本文引用:2]
[74] MINAROLLI D, FREISLEBEN B. Distributed resource allocation to virtual machines via artificial neural networks[C]. Proceedings of Euromicro International Conference on Parallel, Distributed and Network-Based Processing, 2014: 490-499. [本文引用:2]
[75] RADHAKRISHNAN A, KAVITHA V. Energy conservation in cloud data centers by minimizing virtual machines migration through artificial neural network[J]. Concurrency and Computation: Practice and Experience, 2016, 98(11): 1-18. [本文引用:2]