发明名称 一种面向最小能耗的服务器整合方法
摘要 本发明提供一种面向最小能耗的服务器整合方法,包括:周期性获取服务器及其上虚拟机的资源状态和性能数据,同时在物理服务器上用外接瓦特计来周期性测量服务器的能耗并保存;周期性收集服务器的资源状态数据、虚拟机的资源状态数据、服务器的性能数据和虚拟机的性能数据,并进行数据预处理;构建服务器能耗模型;建立虚拟机迁移代价预测模型;求出各虚拟机迁移代价预测值;利用改进的层次分析法进行虚拟机综合评价;计算服务器的服务稳定性指标;确定服务器整合方案;进行服务器整合。本发明根据虚拟机资源需求量和服务器资源剩余量,利用动态装箱算法将虚拟机迁移到适合的服务器中。在保持服务平稳运行情况下开机服务器数量最少。
申请公布号 CN104298339B 申请公布日期 2017.02.15
申请号 CN201410538015.3 申请日期 2014.10.11
申请人 东北大学 发明人 张斌;郭军;刘宇;莫玉岩;闫永明;刘舒;马庆敏;马群;李智
分类号 G06F1/32(2006.01)I 主分类号 G06F1/32(2006.01)I
代理机构 沈阳东大知识产权代理有限公司 21109 代理人 刘晓岚
主权项 一种面向最小能耗的服务器整合方法,其特征在于:包括如下步骤:步骤1:周期性获取服务器及其上虚拟机的资源状态和性能数据,同时在服务器上用外接瓦特计来周期性测量服务器的能耗并保存;将服务器的资源状态数据和性能数据存放在服务器状态和服务性能库中,将虚拟机的资源状态数据和性能数据存放在虚拟机状态和服务性能库中;资源状态数据包括CPU利用率、内存利用率、磁盘读写总量;性能数据包括服务响应时间、吞吐率;步骤2:周期性收集服务器的资源状态数据、虚拟机的资源状态数据、服务器的性能数据和虚拟机的性能数据,并进行数据预处理;步骤3:构建服务器能耗模型;步骤3‑1:建立虚拟机能耗模型:P<sub>VM</sub>(k)=P<sub>e</sub>+a*U<sub>CPU</sub>(k)+b*U<sub>Mem</sub>(k)+c*U<sub>IO</sub>(k)其中,P<sub>VM</sub>(k)表示虚拟机k的能耗,P<sub>e</sub>表示虚拟机的能耗调整值,U<sub>Mem</sub>(k)表示虚拟机k的内存利用率,U<sub>IO</sub>(k)表示虚拟机k的磁盘读写总量,a、b、c表示系数;步骤3‑2:建立服务器能耗模型:<maths num="0001"><math><![CDATA[<mrow><mi>P</mi><mo>{</mo><mi>t</mi><mi>o</mi><mi>t</mi><mi>a</mi><mi>l</mi><mo>}</mo><mo>=</mo><mi>P</mi><mo>{</mo><mi>b</mi><mi>a</mi><mi>s</mi><mi>e</mi><mi>l</mi><mi>i</mi><mi>n</mi><mi>e</mi><mo>}</mo><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>P</mi><mrow><mi>V</mi><mi>M</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001067240510000011.GIF" wi="720" he="115" /></maths>其中,P{total}表示一台服务器的总能耗;P{baseline}表示基础能耗;n表示该服务器上活动虚拟机的数目,<img file="FDA0001067240510000012.GIF" wi="211" he="123" />表示该服务器上所有虚拟机的能耗之和;步骤3‑3:利用周期性获取的服务器及其上虚拟机的资源状态数据和周期性测量得到的服务器的能耗,采用多元回归方法对服务器能耗模型进行训练,得到系数a,b,c和虚拟机的能耗调整值P<sub>e</sub>;步骤4:建立虚拟机迁移代价预测模型;Cost(VM<sub>k</sub>)=αT(k)<sub>mig</sub>+βV(k)<sub>mig</sub>+γT(k)<sub>down</sub>其中,Cost(VM<sub>k</sub>)表示虚拟机k的迁移代价预测值,T(k)<sub>mig</sub>表示虚拟机k的迁移总时间,V(k)<sub>mig</sub>表示虚拟机k的迁移时网络传送总量,T(k)<sub>down</sub>表示虚拟机k的迁移中的停机时间,α、β、γ是虚拟机k迁移代价的指标权重,且α+β+γ=1;<maths num="0002"><math><![CDATA[<mrow><mi>V</mi><msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mrow><mi>m</mi><mi>i</mi><mi>g</mi></mrow></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><msup><mi>i</mi><mo>&prime;</mo></msup><mo>=</mo><mn>0</mn></mrow><msup><mi>n</mi><mo>&prime;</mo></msup></munderover><msub><mi>V</mi><msup><mi>i</mi><mo>&prime;</mo></msup></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mi>V</mi><msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mrow><mi>m</mi><mi>e</mi><mi>m</mi></mrow></msub><mo>&CenterDot;</mo><mfrac><mrow><mn>1</mn><mo>-</mo><msup><mi>&lambda;</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mo>+</mo><mn>1</mn></mrow></msup></mrow><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfrac></mrow>]]></math><img file="FDA0001067240510000021.GIF" wi="781" he="125" /></maths><maths num="0003"><math><![CDATA[<mrow><mi>T</mi><msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mrow><mi>m</mi><mi>i</mi><mi>g</mi></mrow></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><msup><mi>i</mi><mo>&prime;</mo></msup><mo>=</mo><mn>0</mn></mrow><msup><mi>n</mi><mo>&prime;</mo></msup></munderover><msub><mi>T</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>V</mi><msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mrow><mi>m</mi><mi>e</mi><mi>m</mi></mrow></msub></mrow><mrow><mi>R</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mfrac><mo>&CenterDot;</mo><mfrac><mrow><mn>1</mn><mo>-</mo><msup><mi>&lambda;</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mo>+</mo><mn>1</mn></mrow></msup></mrow><mrow><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow></mfrac></mrow>]]></math><img file="FDA0001067240510000022.GIF" wi="780" he="143" /></maths>T(k)<sub>down</sub>=T(k)<sub>n′</sub>+T(k)<sub>res</sub>其中,V<sub>i’</sub>(k)表示虚拟机k每轮迁移的数据传输量;T<sub>i’</sub>(k)表示虚拟机k每轮迁移的传输时间;λ=D/R<1,R(k)为虚拟机k在迁移中内存的传输速度,D(k)为虚拟机k在迁移中内存脏页产生速度;T(k)<sub>n’</sub>表示预拷贝最后一轮虚拟机k迁移产生的内存脏页时间;T(k)<sub>res</sub>表示虚拟机k在目标服务器恢复所需时间;V(k)<sub>mem</sub>为虚拟机k的内存镜像;步骤5:利用虚拟机迁移代价预测模型求出各虚拟机迁移代价预测值;步骤6:利用改进的层次分析法进行虚拟机综合评价;步骤6‑1:将虚拟机的CPU利用率、虚拟机的内存利用率、虚拟机迁移代价预测值、虚拟机能耗值作为准则层,虚拟机综合评价作为目标层,各虚拟机作为方案层;步骤6‑2:将准则层中的每两个准则之间的相对重要度e<sub>ij</sub>作为元素构建综合判断矩阵,该矩阵中的各个元素即判断尺度;<maths num="0004"><math><![CDATA[<mrow><mi>E</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>e</mi><mn>11</mn></msub></mtd><mtd><msub><mi>e</mi><mn>12</mn></msub></mtd><mtd><mo>...</mo></mtd><mtd><msub><mi>e</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>e</mi><mn>21</mn></msub></mtd><mtd><msub><mi>e</mi><mn>22</mn></msub></mtd><mtd><mo>...</mo></mtd><mtd><msub><mi>e</mi><mrow><mn>2</mn><mi>j</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>...</mo></mtd><mtd><mo>...</mo></mtd><mtd><mo>...</mo></mtd><mtd><mo>...</mo></mtd></mtr><mtr><mtd><msub><mi>e</mi><mrow><mi>i</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>e</mi><mrow><mi>i</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>...</mo></mtd><mtd><msub><mi>e</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001067240510000023.GIF" wi="440" he="276" /></maths>其中,准则层的第i个准则与第j个准则的相对重要度e<sub>ij</sub>=w<sub>i</sub>/w<sub>j</sub>,w<sub>i</sub>为准则层的第i个准则的权重,w<sub>i</sub>为准则层的第j个准则的权重;步骤6‑3:确定准则层的各准则对目标层的相对权重、方案层的k’个方案对准则层的相对权重,进行虚拟机综合评价,得到各方案对目标层的评价即方案层中各方案的综合评价;步骤7:计算服务器的服务稳定性指标S即响应时间的标准偏差的倒数,进行服务器的服务性能评价,服务稳定性指标越大,服务器的服务性能越好;<maths num="0005"><math><![CDATA[<mrow><mi>S</mi><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn><mo>/</mo><msub><mi>q</mi><mrow><mi>d</mi><mi>e</mi><mi>v</mi></mrow></msub><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><msqrt><mfrac><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow><mrow><munderover><mo>&Sigma;</mo><mrow><mi>p</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msup><mrow><mo>(</mo><msub><mi>T</mi><mi>p</mi></msub><mo>-</mo><msub><mi>T</mi><mi>&theta;</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></mfrac></msqrt></mrow>]]></math><img file="FDA0001067240510000024.GIF" wi="666" he="223" /></maths>其中,S(s)表示服务器s的服务稳定性指标值,q<sub>dev</sub>(s)表示服务器s的响应时间的标准偏差<img file="FDA0001067240510000031.GIF" wi="501" he="215" />T<sub>p</sub>表示服务器s在第p次监测的服务响应时间;T<sub>θ</sub>表示服务器s监测的服务响应时间的平均值;m表示监测次数;步骤8:确定服务器整合方案,即确定待整合服务器和目标服务器;步骤8‑1:利用改进的层次分析法确定待整合服务器;步骤8‑1‑1:评估服务器各评价指标的主观权重,即服务器各评价指标的主观权值;步骤8‑1‑2:利用信息熵权法评估各服务器客观权重,即服务器各评价指标的客观权值;步骤8‑1‑3:根据服务器各评价指标的主观权值w′<sub>i</sub>、服务器各评价指标的客观权值v′<sub>i</sub>,计算服务器评价指标的综合评价权值;<maths num="0006"><math><![CDATA[<mrow><msub><mi>a</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><msubsup><mi>w</mi><mi>i</mi><mo>&prime;</mo></msubsup><msubsup><mi>v</mi><mi>i</mi><mo>&prime;</mo></msubsup></mrow><mrow><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msup><mi>n</mi><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup></munderover><msubsup><mi>w</mi><mi>i</mi><mo>&prime;</mo></msubsup><msubsup><mi>v</mi><mi>i</mi><mo>&prime;</mo></msubsup></mrow></mfrac></mrow>]]></math><img file="FDA0001067240510000032.GIF" wi="237" he="197" /></maths>其中,a<sub>i</sub>为服务器评价指标的综合评价权值;步骤8‑1‑4:求得服务器评估结果B’;步骤8‑1‑4‑1:确定监测时间T,并将服务器的每个评价指标进行分级;步骤8‑1‑4‑2:通过监测到的评价指标数据,计算评价指标i在第c级的时间:<maths num="0007"><math><![CDATA[<mrow><msub><mi>&tau;</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>c</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>d</mi><mo>=</mo><mn>1</mn></mrow><mi>x</mi></munderover><msub><mi>t</mi><mi>d</mi></msub></mrow>]]></math><img file="FDA0001067240510000033.GIF" wi="254" he="126" /></maths>其中,t<sub>d</sub>表示各评价指标在第c级第d个时间段内的时间值,x为在第c级的时间段的总数目;步骤8‑1‑4‑3:计算评价指标i在第c级的概率;p<sub>ic</sub>=τ<sub>i</sub>(c)/T步骤8‑1‑4‑4:将评价指标i在第c级的概率p<sub>ic</sub>作为元素f<sub>ic</sub>形成评判矩阵F=[f<sub>ic</sub>];步骤8‑1‑4‑5:已求得各评价指标的综合权重记为A=[a<sub>1</sub>,a<sub>2</sub>,…,a<sub>n”</sub>],则评估结果为:<img file="FDA0001067240510000035.GIF" wi="195" he="46" />步骤8‑1‑4‑6:对评估结果B利用加权平均法求得服务器的最终评估结果:<maths num="0008"><math><![CDATA[<mrow><msup><mi>B</mi><mo>&prime;</mo></msup><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msup><mi>n</mi><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup></munderover><msub><mi>iB</mi><mi>i</mi></msub><mo>/</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msup><mi>n</mi><mrow><mo>&prime;</mo><mo>&prime;</mo></mrow></msup></munderover><msub><mi>B</mi><mi>i</mi></msub></mrow>]]></math><img file="FDA0001067240510000034.GIF" wi="362" he="127" /></maths>其中,B<sub>i</sub>为B的第i列元素,利用加权平均法求得的评估结果;步骤8‑1‑5:将评估结果小的服务器作为待整合的服务器;步骤8‑2:采用改进的全局动态装箱算法选择目标服务器:将多个目标服务器作为箱子,待整合服务器上的各台虚拟机作为需要装箱的多个物体,得到映射方案即为将多台虚拟机分别装箱到多台服务器中;步骤8‑2‑1:混合重排:除待整合服务器的服务器集群记为矩阵C<sub>begin</sub>,服务器集群中的所有虚拟机与待整合服务器上的所有虚拟机记为new_vm[s],对new_vm[s]进行混合重排,并将混合重排后的虚拟机放入需进行装箱的虚拟机列表,记为all_vm[],然后按照虚拟机的容量进行降序排列;步骤8‑2‑2:全局动态二维装箱:利用全局动态装箱算法对all_vm[]中的虚拟机进行全局动态二维装箱,装箱后的各虚拟机的状态分布矩阵记为C<sub>sta</sub>;步骤8‑2‑3:减少迁移次数,即调整C<sub>sta</sub>:由于装箱后的各虚拟机的状态分布矩阵C<sub>sta</sub>与原来集群状态矩阵C<sub>begin</sub>不一样,如果各VM在装箱前后的映射位置不同,需要进行VM的迁移,为减少迁移次数,就需调整C<sub>sta</sub>,使之与C<sub>begin</sub>尽量相近,减少虚拟机迁移代价;步骤9:根据服务器整合方案即待整合服务器和目标服务器,进行服务器整合:将其上所有的虚拟机都迁移到目标服务器上,然后关闭待整合服务器。
地址 110819 辽宁省沈阳市和平区文化路3号巷11号