发明名称 基于混合遗传算法的云计算虚拟机动态调度方法
摘要 本发明属于基础设施即服务型(Iaas)云计算领域,涉及一种基于混合遗传算法的云计算虚拟机动态调度方法;该方法的步骤为:监控云计算环境中的物理机和虚拟机负载信息,分析每一台主机的负载周期及变化情况,确定负载变化的周期;通过具有多适应度的混合遗传算法,算出云环境中出现的虚拟机放置组合。本发明根据三个优化目标,计算得出最优化的虚拟机放置策略,作为最终的结果;周期性地执行本发明所述算法,通过虚拟机的动态迁移,实现虚拟机合理放置,提高资源利用率,节省资源。本发明能解决当前云计算中心中资源利用率不高的问题,适应当前云计算中心的自动化管理要求。
申请公布号 CN103576829B 申请公布日期 2016.04.20
申请号 CN201210271831.3 申请日期 2012.08.01
申请人 复旦大学 发明人 吴杰;陈实;吕智慧
分类号 G06F1/32(2006.01)I;G06F9/455(2006.01)I;G06N3/12(2006.01)I;H04L29/08(2006.01)I 主分类号 G06F1/32(2006.01)I
代理机构 上海元一成知识产权代理事务所(普通合伙) 31268 代理人 吴桂琴
主权项 一种基于混合遗传算法的云计算虚拟机动态调度方法,其特征在于,所述的方法包括:监控云计算环境中的物理机和虚拟机负载信息及特征提取,分析每一台主机的负载周期及变化情况,确定负载变化的周期;通过具有多适应度的混合遗传算法,算出云环境中可能出现的虚拟机放置组合,其包括步骤:(1)向历史监控数据库发起请求,获得所有虚拟机的各项负载参数,对周期性的应用以一个周期为单位;对实际环境中常见应用以24小时为单位;(2)进行多适应度混合遗传算法的准备工作:计算出“多适应度”中的子适应度函数1、子适应度函数2、子适应度函数3,通过其线性组合得出总的适应度函数;(3)初始化遗传算法的种群,生成200‑500个个体;(4)通过总适应度函数,进行遗传算法中的迭代过程;根据对精度和时间权衡,可迭代500‑2000代;(5)根据遗传算法的迭代结果,得出最终的动态调度方案;(6)根据结果得出的动态调度方案,进行虚拟机的迁移,所述过程结束,得出最终虚拟机配置方案;(7)根据虚拟机负载的变化情况,每24小时运行一次所述算法,保证资源利用率保持最优化状态;其中,所述的子适应度函数1通过下述公式计算得:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>E</mi><mrow><mi>i</mi><mn>1</mn></mrow></msub><mo>=</mo><mfrac><mfrac><mrow><mi>p</mi><mi>m</mi><mo>-</mo><msub><mi>count</mi><mi>i</mi></msub></mrow><mrow><mi>p</mi><mi>m</mi></mrow></mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></msubsup><mfrac><mrow><mi>p</mi><mi>m</mi><mo>-</mo><msub><mi>count</mi><mi>k</mi></msub></mrow><mrow><mi>p</mi><mi>m</mi></mrow></mfrac></mrow></mfrac><mo>=</mo><mfrac><mrow><mn>1</mn><mo>-</mo><mfrac><mrow><msub><mi>count</mi><mi>i</mi></msub></mrow><mrow><mi>p</mi><mi>m</mi></mrow></mfrac></mrow><mrow><mi>p</mi><mi>m</mi><mo>-</mo><msubsup><mi>&Sigma;</mi><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></msubsup><mfrac><mrow><msub><mi>count</mi><mi>k</mi></msub></mrow><mrow><mi>p</mi><mi>m</mi></mrow></mfrac></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000911309480000011.GIF" wi="1174" he="279" /></maths>其中,对于物理机和虚拟机的特征提取,为:设pm代表云中物理机总数,vm代表云中虚拟机总数,count<sub>i</sub>代表遗传算法中第i个染色体里所占用的物理机数量,p为遗传算法群体中个体数;CPU负载、网络负载和磁盘I/O三项负载参数分别以a,b,c表示,对第k台物理机上承载的虚拟机其数目为n,所述三项负载可分别以三个数组[a<sub>k1</sub>,a<sub>k2</sub>,…,a<sub>kn</sub>],[b<sub>k1</sub>,b<sub>k2</sub>,…,b<sub>kn</sub>],[c<sub>k1</sub>,c<sub>k2</sub>,…,c<sub>kn</sub>]表示,每项负载参数均归一化到[0,1]区间;对每一项负载参数分别求平均值<img file="FDA0000911309480000012.GIF" wi="302" he="86" />所述的子适应度函数2通过下述公式计算得:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mover><msub><mi>a</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mi>n</mi></msubsup><msub><mi>a</mi><mrow><mi>k</mi><mi>j</mi></mrow></msub></mrow><mi>n</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000911309480000021.GIF" wi="517" he="167" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mover><msub><mi>b</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mi>n</mi></msubsup><msub><mi>b</mi><mrow><mi>k</mi><mi>j</mi></mrow></msub></mrow><mi>n</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000911309480000022.GIF" wi="510" he="158" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mover><msub><mi>c</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mi>n</mi></msubsup><msub><mi>c</mi><mrow><mi>k</mi><mi>j</mi></mrow></msub></mrow><mi>n</mi></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000911309480000023.GIF" wi="486" he="167" /></maths>根据所述式(2)(3)(4)的结果,计算此物理机之上三项负载平均值之间的方差值V<sub>k</sub>:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>V</mi><mi>k</mi></msub><mo>=</mo><msup><mrow><mo>(</mo><mrow><mover><msub><mi>a</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>-</mo><mfrac><mrow><mover><msub><mi>a</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>+</mo><mover><msub><mi>b</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>+</mo><mover><msub><mi>c</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover></mrow><mn>3</mn></mfrac></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mrow><mover><msub><mi>b</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>-</mo><mfrac><mrow><mover><msub><mi>a</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>+</mo><mover><msub><mi>b</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>+</mo><mover><msub><mi>c</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover></mrow><mn>3</mn></mfrac></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mrow><mover><msub><mi>c</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>-</mo><mfrac><mrow><mover><msub><mi>a</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>+</mo><mover><msub><mi>b</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover><mo>+</mo><mover><msub><mi>c</mi><mi>k</mi></msub><mo>&OverBar;</mo></mover></mrow><mn>3</mn></mfrac></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000911309480000024.GIF" wi="1605" he="179" /></maths>式(5)表示某一台特定物理机的负载方差值,将所有物理机的方差值相加,得到所有物理机的方差值,即第i个染色体所表现出的方差值S<sub>i</sub>:S<sub>i</sub>=∑V<sub>k</sub>     (6);其中,式(6)的方差值代表的是第i个染色体所代表的放置方案上三项负载之间的偏离度大小,若方差越小,则负载的平均利用率情况越好,若方差越大,表明负载越不平衡;若以∑S代表所有染色体方差的总和,S<sub>i</sub>含义同以上公式(6),则子适应度函数2的计算方法为:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>E</mi><mrow><mi>i</mi><mn>2</mn></mrow></msub><mo>=</mo><mfrac><mfrac><mrow><mo>&Sigma;</mo><mi>S</mi><mo>-</mo><msub><mi>S</mi><mi>i</mi></msub></mrow><mrow><mo>&Sigma;</mo><mi>S</mi></mrow></mfrac><mrow><msubsup><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></msubsup><mfrac><mrow><mo>&Sigma;</mo><mi>S</mi><mo>-</mo><msub><mi>S</mi><mi>k</mi></msub></mrow><mrow><mo>&Sigma;</mo><mi>S</mi></mrow></mfrac></mrow></mfrac><mo>=</mo><mfrac><mrow><mn>1</mn><mo>-</mo><mfrac><msub><mi>S</mi><mi>i</mi></msub><mrow><mo>&Sigma;</mo><mi>S</mi></mrow></mfrac></mrow><mrow><mi>p</mi><mo>-</mo><msubsup><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></msubsup><mfrac><msub><mi>S</mi><mi>k</mi></msub><mrow><mo>&Sigma;</mo><mi>S</mi></mrow></mfrac></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000911309480000025.GIF" wi="1061" he="325" /></maths>所述的子适应度函数3通过下述公式计算得:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>E</mi><mrow><mi>i</mi><mn>3</mn></mrow></msub><mo>=</mo><mfrac><mfrac><mrow><mo>&Sigma;</mo><mi>M</mi><mo>-</mo><msub><mi>M</mi><mi>i</mi></msub></mrow><mrow><mo>&Sigma;</mo><mi>M</mi></mrow></mfrac><mrow><msubsup><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></msubsup><mfrac><mrow><mo>&Sigma;</mo><mi>M</mi><mo>-</mo><msub><mi>M</mi><mi>k</mi></msub></mrow><mrow><mo>&Sigma;</mo><mi>M</mi></mrow></mfrac></mrow></mfrac><mo>=</mo><mfrac><mrow><mn>1</mn><mo>-</mo><mfrac><msub><mi>M</mi><mi>i</mi></msub><mrow><mo>&Sigma;</mo><mi>M</mi></mrow></mfrac></mrow><mrow><mi>p</mi><mo>-</mo><msubsup><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mi>p</mi></msubsup><mfrac><msub><mi>M</mi><mi>k</mi></msub><mrow><mo>&Sigma;</mo><mi>M</mi></mrow></mfrac></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000911309480000026.GIF" wi="1062" he="319" /></maths>其中,设M<sub>i</sub>代表第i个染色体所代表的放置方案上需要迁移的虚拟机数量,以∑M代表所有染色体迁移数量的总和;所述的总适应度函数通过下述公式计算得:E<sub>i</sub>=xE<sub>i1</sub>+yE<sub>i2</sub>+zE<sub>i3</sub>其中x+y+z=1          (9);其中,对某个体,设其三个子适应度值分别为E<sub>i1</sub>,E<sub>i2</sub>,E<sub>i3</sub>,它们的权重分别为x,y,z。
地址 200433 上海市杨浦区邯郸路220号
您可能感兴趣的专利