-
虚拟机整合技术(VM consolidation,VMC)通常被用于释放和回收虚拟机中的碎片化虚拟资源。这项技术在概念上类似于虚拟机迁移,但相比之下VMC更强调虚拟机内的预留资源整合。当前的VMC算法主要分为静态整合算法和动态整合算法两类。其中静态算法因为静态参数模型而得名,一些静态模型常常被简化为具有低操作开销和高全局优化性能的bin-packing模型。但在资源利用率处于高动态变化的场景中,一旦资源参数被设定为VM的峰值资源利用率,静态的bin-packing算法就会表现出极差的资源利用率。因此,当任务还需同时要满足高服务等级协议(service-level agreement,SLA)时,静态算法就会导致VM群内形成大量资源碎片[1-4]。
与此相反,动态算法支持计算并选定两台当前资源利用率互补最好的VM进行资源整合,从而获得较好的局部资源整合效果,但其在全局资源整合效率上却有较大的缺陷[5-7]。文献[8]提出了一种精确反映VM资源利用率互补程度的方案。该方案采用了时间序列分析和皮尔逊相关系数公式等回归统计工具,在历史统计数据的基础上对虚拟机未来资源利用率进行精确的预测计算和互补性测试,从而能对VM未来的资源整合提供依据。但这个方案仍然有一个明显的缺陷:任意一个VM在算法的整个流程中最多只有一次与其他虚拟机整合的机会,许多整合后的VM平均资源利用率仍然较低。基于此,文献[9]提出了一种改进的算法—iterative correlation match algorithm (CMA)。该算法允许一次整合完成后的整合虚拟机(CVM)再次参与整合的相关性计算,而不是直接将CVM从待整合的VM序列中删除。这样一些具有高整合潜力的VM就拥有不止一次整合的机会。但是,该算法仍然有一个明显的缺陷:即该算法是一种贪婪算法,总是搜寻当前具有全局最小相关系数的两台VM进行整合,却忽略了按VM的资源利用率进行全局优化调度。这将会在整合流程的后半部分导致严重的线性规划难题。这个缺陷只依靠ICMA并不能得到解决。这是因为现有的动态整合算法几乎都是直接利用最小线性相关系数启发式算法。这些算法所做的改进只是单纯地尽可能增加算法流程中虚拟机最小线性相关整合的次数,而缺乏对于虚拟机相关整合原理的本质研究。
本文提出了一种基于SICC的新型虚拟资源整合工具。该工具融合了静态和动态两种完全不同的虚拟机整合算法模型,依靠SICC算法将在时域具有高动态资源特性的初始状态虚拟机(original VMs)转变为具有准静态资源特性和较高平均资源利用率的整合虚拟机。接着使用成熟的FFD算法完成这些CVM在数据中心物理服务器中的聚合过程。SICC算法的策略在于:通过一定的算法变化,大幅减小原始VM中过大的资源利用率峰值-均值差值,从而有效地避免在虚拟机中形成难以利用的资源碎片。
-
采用1440个数据抽样点模拟一台VM一天的时间序列,并在此基础上构造一个短相关模型对未来资源利用率进行预测。一旦能获取每个VM的未来资源利用率时间序列,就有可能找出当前全局最佳互补的VM整合配对。 $\{ x_t^1\} $ 和 $\{ x_t^2\} $ 分别代表ARMA模型计算出的两台VM在未来一段时间的资源利用率。皮尔逊相关系数定义为:
$$r = \frac{{\sum\limits_{t = 1}^{1440} {(X_t^1 - \mathop {{X^1}}\limits^\_ )(X_t^2 - \mathop {{X^2})}\limits^\_ } }}{{\sqrt {\sum\limits_{t = 1}^{1440} {{{(X_t^1 - \mathop {{X^1}}\limits^\_ )}^2}} } \sqrt {\sum\limits_{t = 1}^{1440} {{{(X_t^2 - \mathop {{X^2}}\limits^\_ )}^2}} } }}{\text{ }}$$ (1) 式中,系数r是一个衡量两台VM相关系数的基本指标,在-1~1之间变动,最好的互补VM整合配对是对应于具有全局最小线性相关系数的VM整合配对。
-
ICMA这一类基于最小相关系数的整合算法有一个重要的缺陷:该系数只能衡量两台或两台以上VM间的资源利用率相关互补关系。因此,首要目标是找出一个或一组基于单个VM的可测物理量来对相关整合算法的算法效能进行描述。在文献[10]提供的实验数据和结论的基础上,首先推导出一个结论:对于初始状态的VM而言,如其中一个具有更大的资源利用率方差,则其在相关整合算法中具有更高的整合优先级。
令Va(b)代表初始状态虚拟机VMa(b)的资源利用率方差,若Va>Vb且差值较大,则可以认为:
定理 1 当系统中初始状态的VM数量足够多时,对于类似于ICMA的基于线性相关性的整合算法而言,相对于具有更高的合并优先级。
证明:定理1等价于一台VM的资源利用率曲线包络的振幅越大,较振幅较小的VM就有越高的概率在初始VM群中找到合适的VM组成相关整合系数足够小的配对组。建立一个简化的模型演示和的组合情况。A,B和C代表3种不同的单位步长的特征振幅信号,分别对应于1,0和-1。A和C定义为单位步长中明显大于和小于VM资源利用率平均值的抽样点,而B代表与VM资源利用率平均值差距不大的抽样点。利用率序列中A的个数与C的个数相等,但少于B的个数。
令信号B在VMa和VMb中的概率等于ρ0,信号A和信号C出现的概率相等,则有:
$${\rho _0}(A) = {\rho _{\text{0}}}(B) = {\rho _1} = \frac{1}{2}(1 - {\rho _0})$$ (2) 根据假设有:
$${\rho _0} > \frac{1}{2}(1 - {\rho _0})$$ (3) 则可以推出:
$${\rho _0} > \frac{1}{3}$$ (4) VMa和VMb的任意步长中,存在9种不同配对关系:
负相关关系:A-C,C-A,B-B
不相关关系:A-B,C-B,B-A,B-C
正相关关系:A-A,C-C
则VMb任意步长中共有45种可能配对组合,记为 $L_{45}^{{V_b}}$ ,以及14种可能的负相关组合,记为 $L_{14}^{{V_b}}$ 。则低振幅VM的负相关整合条件概率为:
$$\eqalign{ & {P_b} = P(L_{14}^{{{\text{V}}_b}}\left| {L_{45}^{{{\text{V}}_b}}} \right.) = P\left( {\frac{{L_{14}^{{V_b}}L_{45}^{{V_b}}}}{{L_{45}^{{V_b}}}}} \right) = \cr & \frac{{{\rho _0}{\rho _1}(8\rho _1^2 + 6\rho _0^2)}}{{(\rho _0^2 + 2{\rho _0}{\rho _1})(6\rho _1^2 + 8{\rho _0}{\rho _1} + \rho _0^2)}} \cr} $$ (5) 令 $\frac{{{\rho _1}}}{{{\rho _0}}} = t$ ,则式(5)可改写为:
$${P_b} = \frac{{t(8{t^2} + 6)}}{{(1 + 2t)(6{t^2} + 8t + 1)}}$$ (6) 同理,VMa中的对应参数为 $L_{27}^{{{\text{V}}_a}}$ 和 $L_{11}^{{{\text{V}}_a}}$ ,则对应的负相关整合概率为:
$$\eqalign{ & {P_a} = P(L_{11}^{{{\text{V}}_a}}\left| {L_{27}^{{{\text{V}}_a}}} \right.) = P\left( {\frac{{L_{11}^{{V_a}}L_{27}^{{V_a}}}}{{L_{27}^{{V_a}}}}} \right) = \cr & \frac{{2{t^4} + 4{t^3} + 4t + 1}}{{8{t^4} + 8{t^3} + 6{t^2} + 4t + 1}} \cr} $$ (7) 则有:
$$\frac{{{P_a}}}{{{P_b}}} = \frac{{24{t^7} + 92{t^6} + 108{t^5} + 90{t^4} + 104{t^3} + 62{t^2} + 14t + 1}}{{64{t^7} + 64{t^6} + 96{t^5} + 80{t^4} + 44{t^3} + 24{t^2} + 6t}}$$ (8) 即具有连续两个特征振幅的VM有更高的合并优先级。
至此证明了资源利用率方差可以作为一个衡量初始状态VM整合潜力的重要参数,并且整合潜力还正相关于VM的方差。与此同时还发现初始状态VM可以分为两种基本方差类型:Type I型VM和Type II型VM。其中Type I型VM的方差主要由低频率高振幅的方差构成。而Type II的方差构成形式与Type I正好相反。由此,在定理1的基础上可推导出定理2。
定理 2 在ICMA算法中,Type I类型的VM比Type II类型的VM更可能成为当前全局最优互补配对的组成部分。
证明:设:
$$\left\{ \matrix{ {\rm{V}}{{\rm{M}}_1}{\rm{, V}}{{\rm{M}}_2} \in {\rm{ Type I}} \hfill \cr {\rm{V}}{{\rm{M}}_3}{\rm{, V}}{{\rm{M}}_4} \in {\rm{ Type II}} \hfill \cr} \right.$$ (9) $$\left\{ \matrix{ {\rm{min(Var(V}}{{\rm{M}}_1}{\rm{),Var(V}}{{\rm{M}}_2})) > {\rm{min}}({\rm{Var}}({\rm{V}}{{\rm{M}}_1}{\rm{),Var(V}}{{\rm{M}}_2}{\rm{))}} \hfill \cr {\rm{coeff(V}}{{\rm{M}}_1}{\rm{, V}}{{\rm{M}}_2}) < {\rm{coeff}}({\rm{V}}{{\rm{M}}_{\rm{3}}}{\rm{, V}}{{\rm{M}}_{\rm{4}}}) < 0 \hfill \cr} \right.$$ (10) 式中,函数coeff代表相关系数;Var(VMa)表示Vma的资源利用率方差。 ${\vec S_a}$ 代表VMa的资源利用率抽样序列,而 ${\vec S_{(a,b)}}$ 代表VMa,b的资源利用率抽样序列。则有:
$$\left\{ \matrix{ {{\vec S}_{(1,2)}} = {{\vec S}_1} + {{\vec S}_2} \hfill \cr {{\vec S}_{(3,4)}} = {{\vec S}_3} + {{\vec S}_4} \hfill \cr} \right.$$ (11) $$\left\{ \matrix{ {\rm{Var(V}}{{\rm{M}}_{(1,2)}}) < {\rm{min}}({\rm{Var}}({\rm{V}}{{\rm{M}}_{\rm{1}}}{\rm{),Var(V}}{{\rm{M}}_{\rm{2}}}{\rm{))}} \hfill \cr {\rm{Var(V}}{{\rm{M}}_{{\rm{(3,4)}}}}) < {\rm{min}}({\rm{Var}}({\rm{V}}{{\rm{M}}_{\rm{3}}}{\rm{),Var(V}}{{\rm{M}}_{\rm{4}}}{\rm{))}} \hfill \cr {\rm{Var(V}}{{\rm{M}}_{({\rm{1}},{\rm{2}})}}) > {\rm{Var}}({\rm{V}}{{\rm{M}}_{({\rm{3}},{\rm{4}})}}{\rm{)}} \hfill \cr} \right.$$ (12) 根据定理1,可以证明VM3,4在ICMA中进行整合配对的优先概率比VM1,2低。则可知两个Type I VM 进行整合配对时有更大的概率成为当前全局最优的互补配对。但是,由Type II 生成的CVM比由Type I 生成的CVM拥有更大的方差,即Type II VM 的持续整合潜力优于Type I VM。这证明ICMA算法中总是选择全局最小相关系数对应的虚拟机对进行整合配对并不是一个最优的资源整合策略。
-
首先定义两个概念,即相关系数序列(CCS)和峰值利用率柱状分布(PUB)对算法效能进行衡量。CCS包括了一个VM整合过程中所有按时间序列排列的和整合配对对应的相关系数。PUB则被用来作为衡量每个VM名义资源利用率的基准。本节的首要任务是建立CVM的峰值资源利用率(PRU)模型,并设计出一种有效的方法测量相关系数对资源利用率的影响。假设第i个VM的PRU为Pi,并且第i个VM的资源利用率时间序列为 ${\overrightarrow S _i}$ 。则CVM的PRU可以表示为:
$$\eqalign{ & {P_{{\text{CVM}}}} = \max ({\overrightarrow S _1} + {\overrightarrow S _2}) \cr & {\text{s}}{\text{.t}}{\text{. }}\max ({P_1},{P_2}) \leqslant {P_{{\text{CVM}}}}{\text{ }} \leqslant {\text{ }}{P_1}{\text{ }} + {\text{ }}{P_2} \cr} $$ (13) 时间序列 ${\overrightarrow S _i}$ 是一个随机向量,因此不可能通过依靠逐点计算随机序列 ${\overrightarrow S _1}$ 和 ${\overrightarrow S _2}$ 之和以外的方法准确预测序列的峰值数值大小和在序列中所处位置。研究表明,当相关系数大于-0.5时,两台初始VM各自的PRU的数值和所处的位置比两台VM的整体互补程度更能影响最终形成的CVM的PRU特征。图2展示的是一个相关系数为-0.38的初始VM整合配对的例子。通常,-0.38在整合产生的相关系数里被认为是一个相对较小的值。仿真结果表明CVM的总体优势被两个初始VM的PRU区域强正相关后产生的峰值区域所影响。
因此并不能直接断言初始VM的低相关系数一定和CVM的低PRU相关。但另一项研究结果显示这两个参数是有关联的。这个结论建立在对10万个相关系数位为负的VM整合配对实例的数据回归分析的基础上。研究表明当相关系数低于-0.5时,生成的CVM的PRU和资源平均利用率的差值变化可以保持在一个相对较小的线性区域。
该研究的仿真结果如图3所示,当一对初始状态虚拟机的线性相关系数小于-0.5时,其峰值均值差小于8.63%标准VM。一般认为,当峰值均值差小于10%标准VM时就可以将对应的CVM看作为一个静态参数的VM。基于这些分析,可以推导出定理3。
定理 3 当两台VM整合后的线性相关系数小于-0.5时,CVM的PRU满足:
$$\eqalign{ & {P_{{\text{CVM}}}} \approx {\text{mean}}({{\vec S}_1} + {{\vec S}_2}) \cr & {\text{s}}{\text{.t}}{\text{. correlation coefficient}} \leqslant - {\text{0}}{\text{.5}} \cr} $$ (14) 意味着当一个整合配对组的相关系数(CC)不大于-0.5时,可以在整合时使用CVM的资源利用率均值代替资源利用率峰值(PRU),从而有效地避免预留资源浪费。解决了上述问题,可以在整合ICMA-0.5和FFD算法的基础上设计SICC算法。
算法1 ICMA-0.5算法流程
1) 将现有的N个VM/CVM放入待配对序列;
2) 使用ARMA算法生成N×1440原始数据矩阵,并使用式(1)生成N×N维CC矩阵;
3) 矩阵中搜索coeffmin:
① 若coeffmin≤-0.5且PRUCVM≤100%,令N=N-1,记录下当前coeffmin,使用新的CVM数据更新(N-1)×1440原始数据矩阵和(N-1)×(N-1)CC矩阵;
② 若coeffmin≤-0.5且PRUCVM>100%,令coeffmin=1并跳到步骤①;
③ 若coeffmin>-0.5,算法结束。
执行上述SICC算法后,虚拟资源管理工具可以方便地再次采用FFD算法将SICC最终生成的CVM聚合到物理服务器中[11]。
-
本文的实验在不同的方面对SICC算法进行评估。实验使用了195个初始PRU分布在15%~75%的实际VM数据。初始PRU的数据分布符合实测数据常用的假设,即峰值分布30%上限,标准差分布15%上限[12]。令和分别代表初始状态虚拟机的均值和方差。则实验中所有初始状态虚拟机VM的平均均值μ和平均方差δ大致满足关系:
$$\left\{ \matrix{ \bar \mu = {{\sum\limits_{i = 1}^N {{\mu _i}} } \over N} = 30\% c \hfill \cr \bar \delta = {{\sqrt {\sum\limits_{i = 1}^N {\delta _i^2} } } \over N} = 15\% c \hfill \cr} \right.$$ (15) 并且,在195个初始状态VM中,有17个低容量初始VM、136个中等容量VM和42个高容量VM,分别对应于PRU<25%,25%≤PRU≤50%和PRU> 50%。
算法2 SICC算法流程
1) 将初始状态的VM分成3个部分:
① 若RU < 25%,将符合条件的VM放入第1部分,并在第1部分内运行;
② 若25%≤RU≤50%,将符合条件的VM放入第2部分,并在第2部分内运行;
③ 若RU>50%,将符合条件的VM放入第3部分,并在第3部分内运行。
2) 将步骤1)中产生的所有的CVM合并,并再次运行。
3) 依次计算步骤2)中各个CVM的PRUCVM。并将这些PRUCVM按顺序放入存储列表中。
4) 逆序排列PRUCVM存储列表,并运行FFD算法进行第2阶段整合。
图4比较了相同初始条件下ICMA算法产生的结果和SICC第二阶段再次整合后的结果。仿真数据表明,第二阶段完成后,SICC算法最后剩余的CVM数量明显少于ICMA剩余的数量。并且,SICC产生的CVM在峰值均值差远小于ICMA的情况下,平均PRU高出了ICMA相同指标13%。结果证明了SICC能有效地利用FFD带来的高效的全局整合顺序增益。
图5对SICC的资源管理控制工具在数据中心服务器级别的效能进行了研究。使用一种常用的初始假设条件,即初始状态虚拟机的资源利用率平均值符合30%平均值标准VM资源,标准差为15%标准VM资源。实验中设置了3000台符合上述假设的初始状态VM,并假设每台物理服务器的CPU资源等效于10台标准VM的CPU资源。资源管理工具在上述假设条件下进行了100次服务器级的VM整合及再聚合仿真实验。图5指出SICC整合后CVM的平均值为1274个,只占ICMA整合后CVM数量的85%。并且1274个CVM平均需要125个服务器进行聚合,是同等初始条件下ICMA所需服务器数量的95%。该仿真证明,这种基于SICC的资源管理工具在提高服务器资源利用率方面是相当有效的。
Virtualization Resource Management Tool Based on Improved Virtual Machine Consolidation Algorithm
-
摘要: 提出了一种基于分段迭代相关性整合(SICC)的虚拟机整合与放置策略,并将它作为云资源管理工具的核心结构。SICC算法整合了时间序列分析、线性相关性分析和传统的FFD算法,并基于虚拟机的最小资源利用率建立了一套新的虚拟机动态资源整合理论。数值仿真结果表明,在虚拟机整合过程中,新的基于SICC的架构在使用不同的初始动态条件时,以虚拟机为粒度的物理资源利用率性能提升3%~20%;在以服务器为粒度的物理资源利用率性能提升超过5%。Abstract: In the paper, we propose a virtual machine (VM) consolidation and placement strategy, named segmentation iteration correlation combination (SICC). The SICC algorithm integrates several algorithms, such as time series analysis, linear correlation analysis and traditional first fit decreasing (FFD). A new dynamic resource consolidation theory is then established based on the virtual machine minimum resource utilization parameter. The simulation results indicate that the novel SICC framework can improve the physical resource utilization by 3% to 20% in the VM granularity and by up 5% in the server granularity.
-
[1] GONG W, CHEN Z, YAN J, et al. An optimal VM resource allocation for near-client-datacenter for multimedia cloud[C]//Ubiquitous and Future Network (ICUFN). Shanghai:IEEE, 2014:249-255. [2] PAPAGIANNI C, LEIVADEAS A, PAPAVASSILIOUS S, et al. On the optimal allocation of virtual resources in cloud computing networks[J]. IEEE Transactions on Computers, 2013, 62(6):1060-1071. [3] LIU K, PENG J, LIU W, et al. Dynamic resource reservation via broker federation in cloud service:a fine-grained heuristic-based approach[C]//IEEE Global Communications Conference (GLOBECOM).[S.l.]:IEEE, 2014:2338-2343. [4] BELOGLAZOV A, ABAWAJY J, BUYYA R. Energy-aware resource allocation heuristics for efficient management of data centers for cloud computing[J]. Future Generation Computer Systems, 2012, 28(5):755-768. [5] BUYYA R, RANJAN R, CALHEIROS R N. Intercloud:Utility-oriented federation of cloud computing environments for scaling of application services, algorithms and architectures for parallel processing[J]. Computer Science, 2010, 6081:13-31. [6] MENG X, ISCI C, KEPHART J, et al. Efficient resource provisioning in compute clouds via VM multiplexing[C]//The 7th International Conference on Autonomic Computing (ICAC). New York, USA:ACM, 2010:11-20. [7] VERMA A, DASGUPTA G, NAYAK T K, et al. Server workload analysis for power minimization using consolidation[C]//USENIX Annual Technical Conference.[S.l.]:USENIX Assocoation Berkeley, 2009:28-28. [8] APTE R, HU L, SCHWAN K, et al. Discovering dependencies between virtual machines using cpu utilization[C]//The 2nd Conference On Hot Topics in Cloud Computing (HotCloud). California, USA:USENIX Assocoation Berkeley, 2010:17-23. [9] WAN J, PAN F, JIANG C. Placement strategy of virtual machines based on workload characteristics[C]//IEEE 26th International Parallel and Distributed Processing Symposium Workshops and PhD Forum (IPDPSW).[S.l.]:IEEE, 2012:1827. [10] DINDA P A. The statistical properties of host load[C]//Fourth Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers. Berlin:Springer Heidelberg, 1998:1-23. [11] MARTELLO S, TOTH P. Knapsack problems:Algorithms and computer implementations[M]. New York, USA:Wiley, 1990. [12] MISHRA A, HELLERSTEIN J L, CIRNE W. Towards characterizing cloud backend workloads:Insights from google compute clusters[J]. ACM Sigmetrics Performance Evaluation Review, 2009, 37(4):34-41.