发明名称 云平台环境下虚拟机部署的目标主机选择方法
摘要 本发明涉及云平台技术,具体的说是涉及一种在云平台环境中部署虚拟机时,资源调度模型及其目标主机选择方法。本发明提出基于可用资源二维链表的目标主机优选方法,它能根据虚拟机部署的资源需求在可用资源二维链表中快速定位目标主机候选集,从较小范围的候选集中搜索目标主机,可提高目标主机选定速度。本发明也改进了主机选择策略和主机选择算法,用户可灵活选择基于快速方式部署或基于负载均衡方式部署虚拟机,该选择算法可以优选出一个最适合的目标主机部署虚拟机,并满足平台主机间负载均衡性。本发明尤其适用于云平台环境下虚拟机部署的目标主机选择。
申请公布号 CN104008002B 申请公布日期 2016.11.30
申请号 CN201410268251.8 申请日期 2014.06.17
申请人 电子科技大学 发明人 陆鑫;苏晶
分类号 G06F9/455(2006.01)I;G06F9/48(2006.01)I;G06F9/50(2006.01)I;H04L29/08(2006.01)I 主分类号 G06F9/455(2006.01)I
代理机构 成都宏顺专利代理事务所(普通合伙) 51227 代理人 李玉兴
主权项 云平台环境下虚拟机部署的目标主机选择方法,其特征在于,包括以下步骤:a.设置云资源访问接口将外部虚拟机部署请求任务放入部署请求队列中;具体方法为:在虚拟机管理系统中,建立一个队列缓冲区,用于存放虚拟机部署请求任务,在队列单元中记录虚拟机部署请求任务信息,包括虚拟机部署请求任务标识、部署资源需求和虚拟机镜像模板,所述部署资源需求包括CPU内核个数、内存量和磁盘量,虚拟机部署请求任务r可表示为:r=&lt;R<sub>id</sub>,R<sub>u</sub>,R<sub>m</sub>,R<sub>hd</sub>,R<sub>im</sub>&gt;,其中,R<sub>id</sub>为虚拟机部署请求的唯一标识;R<sub>u</sub>为请求的CPU内核个数;R<sub>m</sub>为请求的内存量;R<sub>hd</sub>为请求的磁盘量;R<sub>im</sub>为请求的虚拟机镜像模板;b.设置虚拟机管理模块通过主机资源监控模块实时获取当前平台各主机资源与负载数据,并将可用于部署虚拟机的主机标号列表记录在可用资源二维链表中,所述可用资源二维链表中按照各主机空闲资源量倒序排列主机标号结点;所述可用资源二维链表由水平链表和垂直链表构成,其中构成水平链表的各个结点表示不同的可用CPU内核数,具有相同CPU内核数的主机标号构成垂直链表,并与相应的水平链表结点连接;c.虚拟机管理模块从步骤a中部署请求队列中提取一个虚拟机部署任务,通过目标主机选择模块确定该虚拟机部署任务将部署的目标主机,其具体方法为:c1.目标主机选择模块根据该虚拟机部署任务的资源需求,在步骤b中所述的可用资源二维链表中定位目标主机候选集,其具体方法为根据该虚拟机部署任务的资源需求,在可用资源二维链表中找出满足虚拟机CPU资源需求和内存需求的候选主机集合;通过目标主机选择模块确定该虚拟机部署任务将部署的目标主机为采用基于负载均衡的选择策略,具体为:c11.目标主机选择模块根据虚拟机部署的CPU资源需求,在可用资源二维链表中选出满足部署虚拟机CPU资源需求的所有主机结点集合;c12.根据虚拟机部署的内存资源需求,在步骤c11中选出的主机结点集合中选出满足内存资源需求的主机结点集合,并标记为候选主机集合;c13.分别计算出候选主机集合中各主机部署虚拟机的代价值;计算出候选主机集合中各主机部署虚拟机的代价值的具体方法为:采用平台主机间的负载均衡度LoadPlat表示主机部署虚拟机的代价值,平台主机间的负载均衡度LoadPlat表示为:<maths num="0001"><math><![CDATA[<mrow><mi>L</mi><mi>o</mi><mi>a</mi><mi>d</mi><mi>P</mi><mi>l</mi><mi>a</mi><mi>t</mi><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>LoadH</mi><mi>i</mi></msub><mo>;</mo></mrow>]]></math><img file="FDA0001084395110000021.GIF" wi="590" he="149" /></maths>其中,n为平台主机数量,LoadH<sub>i</sub>标识主机i与平台平均负载的偏离度:<maths num="0002"><math><![CDATA[<mrow><msub><mi>LoadH</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mo>|</mo><msub><mi>cpu</mi><mrow><mi>u</mi><mi>t</mi><mi>i</mi></mrow></msub><mo>-</mo><msub><mi>cpu</mi><mrow><mi>a</mi><mi>v</mi><mi>g</mi></mrow></msub><mo>|</mo><mo>+</mo><mo>|</mo><msub><mi>mem</mi><mrow><mi>u</mi><mi>t</mi><mi>i</mi></mrow></msub><mo>-</mo><msub><mi>mem</mi><mrow><mi>a</mi><mi>v</mi><mi>g</mi></mrow></msub><mo>|</mo></mrow><mn>2</mn></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0001084395110000022.GIF" wi="1185" he="132" /></maths>其中,cpu<sub>uti</sub>表示主机i的cpu利用率:<maths num="0003"><math><![CDATA[<mrow><msub><mi>cpu</mi><mrow><mi>u</mi><mi>t</mi><mi>i</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>cpu</mi><mrow><mi>u</mi><mi>s</mi><mi>i</mi></mrow></msub></mrow><mrow><msub><mi>cpu</mi><mrow><mi>s</mi><mi>u</mi><mi>m</mi><mi>i</mi></mrow></msub></mrow></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0001084395110000023.GIF" wi="387" he="119" /></maths>其中,cpu<sub>usi</sub>表示主机i的已用CPU内核个数,cpu<sub>sumi</sub>表示主机i的cpu总个数;mem<sub>uti</sub>表示主机i的内存利用率:<maths num="0004"><math><![CDATA[<mrow><msub><mi>mem</mi><mrow><mi>u</mi><mi>t</mi><mi>i</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>mem</mi><mrow><mi>u</mi><mi>s</mi><mi>i</mi></mrow></msub></mrow><mrow><msub><mi>mem</mi><mrow><mi>s</mi><mi>u</mi><mi>m</mi><mi>i</mi></mrow></msub></mrow></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0001084395110000024.GIF" wi="445" he="111" /></maths>其中,mem<sub>usi</sub>表示主机i的已用内存量,mem<sub>sumi</sub>表示主机i的内存总量;cpu<sub>avg</sub>表示平台所有主机的平均cpu利用率:<maths num="0005"><math><![CDATA[<mrow><msub><mi>cpu</mi><mrow><mi>a</mi><mi>v</mi><mi>g</mi></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>cpu</mi><mrow><mi>u</mi><mi>t</mi><mi>i</mi></mrow></msub><mo>;</mo></mrow>]]></math><img file="FDA0001084395110000025.GIF" wi="470" he="150" /></maths>mem<sub>avg</sub>表示平台所有主机的平均mem利用率:<maths num="0006"><math><![CDATA[<mrow><msub><mi>mem</mi><mrow><mi>a</mi><mi>v</mi><mi>g</mi></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>mem</mi><mrow><mi>u</mi><mi>t</mi><mi>i</mi></mrow></msub><mo>;</mo></mrow>]]></math><img file="FDA0001084395110000026.GIF" wi="510" he="150" /></maths>c14.选择具有最小代价值的主机作为虚拟机部署的目标主机;c2.根据目标主机候选算法在目标主机候选集中选出最小部署代价的目标主机,并将选定的目标主机的标号返回虚拟机管理模块进行虚拟机部署。
地址 611731 四川省成都市高新区(西区)西源大道2006号