《一种虚拟机的部署方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种虚拟机的部署方法及装置.pdf(14页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103902353 A (43)申请公布日 2014.07.02 CN 103902353 A (21)申请号 201410126765.X (22)申请日 2014.03.31 G06F 9/455(2006.01) G06F 9/50(2006.01) H04L 12/24(2006.01) (71)申请人 华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人 谢华国 罗文通 张春宇 康达祥 方莹 (74)专利代理机构 北京同达信恒知识产权代理 有限公司 11291 代理人 黄志华 (54) 发明名称 一种虚拟机的部署方法及。
2、装置 (57) 摘要 本发明实施例提供一种虚拟机的部署方法及 装置, 根据 M 个待部署虚拟机中每两个虚拟机之 间的网络部署流量, 将M个待部署虚拟机分为N个 组, 使得 N 个组之间的网络部署流量最小, 再将同 一个组内的虚拟机部署在同一个物理机上。通过 上述方法, 由于 N 个组之间的网络部署流量最小, 因此, 将同一个组内的虚拟机部署在同一个物理 机上后, 物理机之间所需的网络流量也最小, 可有 效节省物理机之间的网络流量。 (51)Int.Cl. 权利要求书 2 页 说明书 10 页 附图 1 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书10页。
3、 附图1页 (10)申请公布号 CN 103902353 A CN 103902353 A 1/2 页 2 1. 一种虚拟机的部署方法, 其特征在于, 包括 : 获取 M 个待部署虚拟机中每两个虚拟机之间的网络部署流量, M 为大于等于 2 的正整 数 ; 根据所述 M 个待部署虚拟机中每两个待部署虚拟机之间的网络部署流量, 将所述 M 个 待部署虚拟机划分为 N 个组, 使得所述 N 个组之间的网络部署流量最小, 其中 N 为大于等于 2, 小于等于 M 的正整数 ; 将所述 N 个组分别部署在 K 个物理机上, 使得同一个组内的待部署虚拟机部署在同一 个物理机上, 其中, K 为大于等于 。
4、1, 小于等于 N 的正整数。 2. 如权利要求 1 所述的方法, 其特征在于, 将所述 N 个组分别部署在 K 个物理机上, 具 体包括 : 将所述N个组按照组的单位资源收益值从大到小的顺序, 先后部署在K个物理机上 ; 其 中, 组的单位资源收益值为 : 所述组内所有待部署虚拟机的收益参数值之和与所述组内所有待部署虚拟机所需资 源对应的资源参数值之和的比值。 3. 如权利要求 1 或 2 所述的方法, 其特征在于, 将所述 N 个组分别部署在 K 个物理机 上, 具体包括 : 将所述 N 个组部署在满足指定条件的 K 个物理机上, 其中所述指定条件为用于部署第 i 组的物理机剩余的资源对应。
5、的资源参数值不小于所述第 i 组内所有待部署虚拟机所需资 源对应的资源参数值之和, i 为 1 到 N 之间的任意正整数。 4. 如权利要求 3 所述的方法, 其特征在于, 当 M 大于 2 时, 所述方法还包括 : 针对所述 N 个组中的第 i 组, 当不存在满足指定条件的物理机, 且所述第 i 组有大于 1 个待部署虚拟机时, 将所述第i组内的待部署虚拟机划分为S个组, 其中S为大于等于2, 小 于 M-1 的正整数 ; 将所述 S 个组分别部署在 T 个物理机上, 使得同一个组内的待部署虚拟机部署在同一 个物理机上, 其中, T 为大于等于 1, 小于等于 S 的正整数。 5. 如权利要。
6、求 3 所述的方法, 其特征在于, 当 M 大于 2 时, 所述方法还包括 : 针对所述 N 个组中的第 i 组, 当不存在满足指定条件的物理机, 且所述第 i 组只有 1 个待部署虚拟机时, 选择所述 N 个组中除所述第 i 组之外任意一个组中一个已部署的虚拟 机 ; 如果将所述选择的已部署的虚拟机替换为所述第 i 组内的虚拟机后, 所述 K 个物理机 之间的网络部署流量之和与替换前所述 K 个物理机之间的网络部署流量之和的差值小于 设定阈值, 且替换后所述 K 个物理机上部署的虚拟机的收益参数值之和大于替换前所述 K 个物理机上部署的虚拟机的收益参数值之和时, 用所述第 i 组内的虚拟机替。
7、换所述选择的 已部署的虚拟机。 6. 一种虚拟机的部署装置, 其特征在于, 包括 : 获取模块, 用于获取 M 个待部署虚拟机中每两个虚拟机之间的网络部署流量, M 为大于 等于 2 的正整数 ; 划分模块, 用于根据所述获取模块获取的所述 M 个待部署虚拟机中每两个待部署虚拟 机之间的网络部署流量, 将所述 M 个待部署虚拟机划分为 N 个组, 使得所述 N 个组之间的网 权 利 要 求 书 CN 103902353 A 2 2/2 页 3 络部署流量最小, 其中 N 为大于等于 2, 小于等于 M 的正整数 ; 部署模块, 用于将所述划分模块划分的所述N个组分别部署在K个物理机上, 使得同。
8、一 个组内的待部署虚拟机部署在同一个物理机上, 其中, K 为大于等于 1, 小于等于 N 的正整 数。 7. 如权利要求 6 所述的装置, 其特征在于, 所述部署模块具体用于, 将所述划分模块划 分的所述 N 个组按照组的单位资源收益值从大到小的顺序, 先后部署在 K 个物理机上 ; 其 中, 组的单位资源收益值为 : 所述组内所有待部署虚拟机的收益参数值之和与所述组内所 有待部署虚拟机所需资源对应的资源参数值之和的比值。 8. 如权利要求 6 或 7 所述的装置, 其特征在于, 所述部署模块具体用于, 将所述划分模 块划分的所述 N 个组部署在满足指定条件的 K 个物理机上, 其中所述指定。
9、条件为用于部署 第i组的物理机剩余的资源对应的资源参数值不小于所述第i组内所有待部署虚拟机所需 资源对应的资源参数值之和, i 为 1 到 N 之间的任意正整数。 9.如权利要求8所述的装置, 其特征在于, 当M大于2时, 所述划分模块还用于, 针对所 述 N 个组中的第 i 组, 当不存在满足指定条件的物理机, 且所述第 i 组有大于 1 个待部署虚 拟机时, 将所述第i组内的待部署虚拟机划分为S个组, 其中S为大于等于2, 小于M-1的正 整数 ; 所述部署模块还用于, 将所述划分模块划分的所述S个组分别部署在T个物理机上, 使 得同一个组内的待部署虚拟机部署在同一个物理机上, 其中, T。
10、为大于等于1, 小于等于S的 正整数。 10. 如权利要求 8 所述的装置, 其特征在于, 当 M 大于 2 时, 所述部署模块还用于, 针对 所述划分模块划分的所述 N 个组中的第 i 组, 当不存在满足指定条件的物理机, 且所述第 i 组只有 1 个待部署虚拟机时, 选择所述 N 个组中除所述第 i 组之外任意一个组中一个已部 署的虚拟机 ; 如果将所述选择的已部署的虚拟机替换为所述第i组内的虚拟机后, 所述K个 物理机之间的网络部署流量之和与替换前所述 K 个物理机之间的网络部署流量之和的差 值小于设定阈值, 且替换后所述 K 个物理机上部署的虚拟机的收益参数值之和大于替换前 所述 K 。
11、个物理机上部署的虚拟机的收益参数值之和时, 用所述第 i 组内的虚拟机替换所述 选择的已部署的虚拟机。 权 利 要 求 书 CN 103902353 A 3 1/10 页 4 一种虚拟机的部署方法及装置 技术领域 0001 本发明涉及通信技术领域, 尤其涉及一种虚拟机的部署方法及装置。 背景技术 0002 虚拟化云计算技术的兴起和发展正逐渐影响改变着整个计算机产业界和学术界, 云计算带给 IT 全新的资源整合和使用模式, 基于虚拟化的资源按需分配与调度可以提高 云平台资源的利用率, 提升云平台的服务质量, 也降低云用户的总体使用成本。 0003 目前, 云平台通过聚集物理机硬件与网络资源, 形。
12、成大规模计算资源池, 虚拟机可 部署于物理机上, 云平台则通过资源调度系统, 把物理机资源分配给虚拟机, 通过虚拟机运 行应用程序, 实现向用户提供云计算服务。 0004 由于每个物理机所能提供的资源都是有限的, 物理机的数量也是有限的, 因此, 在 现有技术中, 在物理机上部署虚拟机时, 通常考虑的是如何在最少的物理机上部署最多的 虚拟机, 用以达到物理机资源最大利用率的目的。 0005 然而, 在实际应用中, 由于虚拟机之间往往也需要进行信息交互, 因此, 如果将需 要大量信息交互的多个虚拟机部署在不同的物理机上, 就会浪费物理机之间大量的网络流 量来满足部署于这些虚拟机之间的交互。 发明。
13、内容 0006 本发明实施例提供一种虚拟机的部署方法及装置, 用以解决现有技术中跨物理机 的网络流量大的问题。 0007 第一方面, 提供一种虚拟机的部署方法, 包括 : 0008 获取 M 个待部署虚拟机中每两个虚拟机之间的网络部署流量, M 为大于等于 2 的 正整数 ; 0009 根据所述 M 个待部署虚拟机中每两个待部署虚拟机之间的网络部署流量, 将所述 M 个待部署虚拟机划分为 N 个组, 使得所述 N 个组之间的网络部署流量最小, 其中 N 为大于 等于 2, 小于等于 M 的正整数 ; 0010 将所述 N 个组分别部署在 K 个物理机上, 使得同一个组内的待部署虚拟机部署在 同。
14、一个物理机上, 其中, K 为大于等于 1, 小于等于 N 的正整数。 0011 结合第一方面, 在第一方面的第一种可能的实现方式中, 将所述 N 个组分别部署 在 K 个物理机上, 具体包括 : 0012 将所述 N 个组按照组的单位资源收益值从大到小的顺序, 先后部署在 K 个物理机 上 ; 0013 其中, 组的单位资源收益值为 : 0014 所述组内所有待部署虚拟机的收益参数值之和与所述组内所有待部署虚拟机所 需资源对应的资源参数值之和的比值。 0015 结合第一方面或第一方面的第一种可能的实现方式, 在第一方面的第二种可能的 说 明 书 CN 103902353 A 4 2/10 页。
15、 5 实现方式中, 将所述 N 个组分别部署在 K 个物理机上, 具体包括 : 0016 将所述 N 个组部署在满足指定条件的 K 个物理机上, 其中所述指定条件为用于部 署第i组的物理机剩余的资源对应的资源参数值不小于所述第i组内所有待部署虚拟机所 需资源对应的资源参数值之和, i 为 1 到 N 之间的任意正整数。 0017 结合第一方面的第二种可能的实现方式, 在第一方面的第三种可能的实现方式 中, 当 M 大于 2 时, 所述方法还包括 : 0018 针对所述 N 个组中的第 i 组, 当不存在满足指定条件的物理机, 且所述第 i 组有大 于 1 个待部署虚拟机时, 将所述第 i 组内。
16、的待部署虚拟机划分为 S 个组, 其中 S 为大于等于 2, 小于 M-1 的正整数 ; 0019 将所述 S 个组分别部署在 T 个物理机上, 使得同一个组内的待部署虚拟机部署在 同一个物理机上, 其中, T 为大于等于 1, 小于等于 S 的正整数。 0020 结合第一方面的第二种可能的实现方式, 在第一方面的第四种可能的实现方式 中, 当 M 大于 2 时, 所述方法还包括 : 0021 针对所述 N 个组中的第 i 组, 当不存在满足指定条件的物理机, 且所述第 i 组只有 1个待部署虚拟机时, 选择所述N个组中除所述第i组之外任意一个组中一个已部署的虚拟 机 ; 0022 如果将所述。
17、选择的已部署的虚拟机替换为所述第 i 组内的虚拟机后, 所述 K 个物 理机之间的网络部署流量之和与替换前所述 K 个物理机之间的网络部署流量之和的差值 小于设定阈值, 且替换后所述 K 个物理机上部署的虚拟机的收益参数值之和大于替换前所 述 K 个物理机上部署的虚拟机的收益参数值之和时, 用所述第 i 组内的虚拟机替换所述选 择的已部署的虚拟机。 0023 第二方面, 提供一种虚拟机的部署装置, 包括 : 0024 获取模块, 用于获取 M 个待部署虚拟机中每两个虚拟机之间的网络部署流量, M 为 大于等于 2 的正整数 ; 0025 划分模块, 用于根据所述获取模块获取的所述 M 个待部署。
18、虚拟机中每两个待部署 虚拟机之间的网络部署流量, 将所述 M 个待部署虚拟机划分为 N 个组, 使得所述 N 个组之间 的网络部署流量最小, 其中 N 为大于等于 2, 小于等于 M 的正整数 ; 0026 部署模块, 用于将所述划分模块划分的所述N个组分别部署在K个物理机上, 使得 同一个组内的待部署虚拟机部署在同一个物理机上, 其中, K为大于等于1, 小于等于N的正 整数。 0027 结合第二方面, 在第二方面的第一种可能的实现方式中, 所述部署模块具体用于, 将所述划分模块划分的所述 N 个组按照组的单位资源收益值从大到小的顺序, 先后部署在 K 个物理机上 ; 0028 其中, 组的。
19、单位资源收益值为 : 所述组内所有待部署虚拟机的收益参数值之和与 所述组内所有待部署虚拟机所需资源对应的资源参数值之和的比值。 0029 结合第二方面或第二方面的第一种可能的实现方式, 在第二方面的第二种可能的 实现方式中, 所述部署模块具体用于, 将所述划分模块划分的所述 N 个组部署在满足指定 条件的 K 个物理机上, 其中所述指定条件为用于部署第 i 组的物理机剩余的资源对应的资 源参数值不小于所述第i组内所有待部署虚拟机所需资源对应的资源参数值之和, i为1到 说 明 书 CN 103902353 A 5 3/10 页 6 N 之间的任意正整数。 0030 结合第二方面的第二种可能的实。
20、现方式, 在第二方面的第三种可能的实现方式 中, 当 M 大于 2 时, 所述划分模块还用于, 针对所述 N 个组中的第 i 组, 当不存在满足指定条 件的物理机, 且所述第 i 组有大于 1 个待部署虚拟机时, 将所述第 i 组内的待部署虚拟机划 分为 S 个组, 其中 S 为大于等于 2, 小于 M-1 的正整数 ; 0031 所述部署模块还用于, 将所述划分模块划分的所述 S 个组分别部署在 T 个物理机 上, 使得同一个组内的待部署虚拟机部署在同一个物理机上, 其中, T 为大于等于 1, 小于等 于 S 的正整数。 0032 结合第二方面的第二种可能的实现方式, 在第二方面的第四种可。
21、能的实现方式 中, 所述部署模块还用于, 针对所述划分模块划分的所述 N 个组中的第 i 组, 当不存在满足 指定条件的物理机, 且所述第 i 组只有 1 个待部署虚拟机时, 选择所述 N 个组中除所述第 i 组之外任意一个组中一个已部署的虚拟机 ; 如果将所述选择的已部署的虚拟机替换为所述 第 i 组内的虚拟机后, 所述 K 个物理机之间的网络部署流量之和与替换前所述 K 个物理机 之间的网络部署流量之和的差值小于设定阈值, 且替换后所述 K 个物理机上部署的虚拟机 的收益参数值之和大于替换前所述 K 个物理机上部署的虚拟机的收益参数值之和时, 用所 述第 i 组内的虚拟机替换所述选择的已部。
22、署的虚拟机。 0033 本发明实施例提供一种虚拟机的部署方法及装置, 根据 M 个待部署虚拟机中每两 个虚拟机之间的网络部署流量, 将 M 个待部署虚拟机分为 N 个组, 使得 N 个组之间的网络部 署流量最小, 再将同一个组内的虚拟机部署在同一个物理机上。通过上述方法, 由于 N 个组 之间的网络部署流量最小, 因此, 将同一个组内的虚拟机部署在同一个物理机上后, 物理机 之间所需的网络流量也最小, 可有效节省物理机之间的网络流量。 附图说明 0034 图 1 为本发明实施例提供的虚拟机部署方法 ; 0035 图 2 为本申请实施例提供的虚拟机的部署装置结构示意图 ; 0036 图 3 为本。
23、发明实施例提供的虚拟机的部署装置硬件结构示意图。 具体实施方式 0037 本发明实施例提供一种部署虚拟机的方法, 旨在使物理机之间的网络流量最小, 以达到节省跨物理机网络流量的目的。 该方法根据预设的每两个虚拟机之间的网络部署流 量, 将 M 个待部署虚拟机分为 N 个组, N 个组之间的网络部署流量最小, 再将同一个组内的 虚拟机部署在同一个物理机上。 两个虚拟机之间的网络部署流量是指两个虚拟机之间的可 部署最大网络流量, 该可部署最大网络流量可以是申请部署虚拟机的用户申请的, 也可以 是网络提供商指定的。 0038 下面结合说明书附图, 对本发明实施例进行详细描述。 0039 图 1 为本。
24、发明实施例提供的虚拟机部署方法, 具体包括以下步骤 : 0040 S101 : 获取 M 个待部署虚拟机中每两个虚拟机之间的网络部署流量。 0041 其中, M 为大于等于 2 的正整数。 0042 在本发明实施例中, 可在云平台中预置部署装置, 部署装置可获取待部署虚拟机 说 明 书 CN 103902353 A 6 4/10 页 7 中每两个虚拟机之间的网络部署流量。具体的, 假设用户向云平台申请 M 个虚拟机时, 可设 定其申请的各虚拟机之间的网络部署流量, 用户申请的这些虚拟机即为待部署虚拟机, 部 署装置则可根据用户向云平台提交的申请虚拟机的申请请求, 获取用户申请的 M 个待部署 。
25、虚拟机中每两个虚拟机之间的网络部署流量。 0043 例如, 用户要申请 5 个虚拟机, 分别为虚拟机 A E, 也即, 虚拟机 A E 就是 5 个 待部署虚拟机, 用户设定虚拟机A与虚拟机B之间的网络部署流量为100M、 虚拟机B与虚拟 机 C 之间的网络部署流量为 200M、 虚拟机 A 与虚拟机 C 之间的网络部署流量为 100M、 虚拟 机D与虚拟机E之间的网络部署流量为100M。 用户将上述虚拟机的数量以及各虚拟机之间 的网络部署流量携带在申请请求中发送给云平台, 云平台中的部署装置则获取用户预设的 这 5 个待部署虚拟机中每两个虚拟机之间的网络部署流量。 0044 S102 : 根。
26、据M个待部署虚拟机中每两个虚拟机之间的网络部署流量, 将M个待部署 虚拟机划分为 N 个组, 使得该 N 个组之间的网络部署流量最小。 0045 其中, N 为大于等于 2, 小于等于 M 的正整数, 该 N 个组中任意两个组之间的网络部 署流量为 : 第一组内的所有待部署虚拟机与第二组内的所有待部署虚拟机之间的网络部署 流量之和。 0046 继续沿用上例, 部署装置确定了待部署虚拟机 A E 中每两个虚拟机之间的网络 部署流量后, 针对虚拟机 D 和虚拟机 E, 可确定虚拟机 A C 与虚拟机 D 和虚拟机 E 之间均 不需要网络流量, 也即, 虚拟机 A C 与虚拟机 D 和 E 之间的网。
27、络部署流量最小, 因此, 部署 装置可将虚拟机 A C 分为一个组, 将虚拟机 D 和虚拟机 E 分为另一个组。这样, 对于这两 个组中的任意一个组来说, 该组内的所有虚拟机与另一个组内的所有虚拟机之间所需的网 络流量之和为最小, 即为 0。 0047 S103 : 将N个组分别部署在K个物理机上, 使得同一个组内的待部署虚拟机部署在 同一个物理机上。 0048 其中, K 为大于等于 1, 小于等于 N 的正整数。 0049 在本发明实施例中, 由于步骤 S102 中每个组内的虚拟机与其他组内的虚拟机之 间的网络部署流量最小, 因此, 将同一个组内的虚拟机部署在同一个物理机上后, 各物理机 。
28、之间所需的网络流量也最小, 可以减少因虚拟机之间的交互而浪费的网络流量, 一个组内 的虚拟机之间的大量交互只在其所在的物理机内部进行即可。 0050 继续沿用上例, 部署装置将虚拟机 A C 分为一个组, 将虚拟机 D 和 E 分为一个组 后, 可将虚拟机 A C 部署在一个物理机上, 将虚拟机 D 和 E 部署在另一个物理机上, 从而, 由于虚拟机 A C 与虚拟机 D 和 E 之间不需要进行交互, 因此, 部署虚拟机 A C 的物理机 和部署虚拟机 D 和 E 的物理机之间也不需要进行交互, 虚拟机 A C 之间的交互可在部署 虚拟机 A C 的物理机内部进行, 虚拟机 D 和 E 之间的。
29、交互可在部署虚拟机 D 和 E 的物理 机内部进行, 进而可节省这两个物理机之间的网络资源。 0051 当然, 部署装置也可将虚拟机AE均部署在同一个物理机上, 只要保证同一个组 内的虚拟机部署在同一个物理机上即可。 0052 进一步的, 由于将一个虚拟机部署在一个物理机上后, 该虚拟机需要使用该物理 机上的资源 (例如计算资源、 存储资源等) 来运行, 因此, 将 M 个待部署虚拟机分为 N 个组后, 上述步骤 S103 中部署装置将 N 个组分别部署在 K 个物理机上的方法可以为 : 将 N 个组部署 说 明 书 CN 103902353 A 7 5/10 页 8 在满足指定条件的 K 个。
30、物理机上, 其中该指定条件为用于部署第 i 组的物理机剩余的资源 对应的资源参数值不小于该第 i 组内所有待部署虚拟机所需资源对应的资源参数值之和, i为1到N之间的任意正整数。 也即, 部署装置在部署一个组内的虚拟机时, 在各物理机中, 查找剩余的资源不小于该组内所有虚拟机所需的资源的和值 (即, 第二和值) 的物理机, 查 找到的物理机即为满足指定条件的物理机, 再将该组内的所有虚拟机都部署在查找到的物 理机上。 0053 更进一步的, 由于对于一个组内的虚拟机来说, 并不是所有的物理机都可以部署 该组内的虚拟机 (如, 剩余的资源小于该组内虚拟机所需的资源的和值的物理机) , 因此, 为。
31、 了在节省物理机之间的网络流量的同时, 兼顾虚拟机所带来的收益, 在本发明实施例提供 的上述部署方法中, 对M个待部署虚拟机分为N个组之后, 可优先部署收益较大组内的虚拟 机。具体的, 部署装置对 M 个待部署虚拟机分为 N 个组之后, 可将该 N 个组按照组的单位资 源收益值从大到小的顺序, 先后部署在 K 个物理机上。其中, 一个组的单位资源收益值为 : 该组内所有待部署虚拟机的收益参数值之和, 与该组内所有待部署虚拟机所需资源对应的 资源参数值之和的比值。这样, 即可保证单位资源收益值较大的组内的虚拟机可以被优先 部署, 进而提高了可以带来较大收益的组内的虚拟机被成功部署的几率。 005。
32、4 另一方面, 当 M 大于 2 时, 所述 N 个组中的第 i 组内可能包括多个虚拟机 ; 部署装 置将 M 个待部署虚拟机分为 N 个组后, 针对该 N 个组中的第 i 组, 当不存在满足指定条件的 物理机, 且该第 i 组有大于 1 个待部署虚拟机时, 也即, 当所有的物理机剩余的资源均小于 该第 i 组内所有虚拟机所需的资源的和值, 且该第 i 组有大于 1 个待部署虚拟机时, 部署装 置则可将该第 i 组内的待部署虚拟机再划分为 S 个组, 使得所述 S 个组之间的网络部署流 量最小, 其中, S 为大于等于 2, 小于 M-1 的正整数, 再将该 S 个组分别部署在 T 个物理机上。
33、, 使得同一个组内的待部署虚拟机部署在同一个物理机上, 其中, T 为大于等于 1, 小于等于 S 的正整数。 0055 具体的, 将第 i 组内的虚拟机再划分为 S 个组时, 同样要根据该第 i 组内每两个待 部署虚拟机之间的网络部署流量, 按照 S 个组之间的网络部署流量最小的划分方式, 将该 第 i 组内的待部署虚拟机重新划分为 S 个组。 0056 例如, 假设第i组内有虚拟机AC, 其中, 虚拟机A与虚拟机B之间的网络部署流 量为 100M, 虚拟机 B 与虚拟机 C 之间的网络部署流量为 200M, 则当没有任何一个物理机剩 余的资源不小于该第 i 组内所有虚拟机所需的资源的和值 。
34、(即, 虚拟机 A C 所需的资源的 和值) 时, 由于该第 i 组内有 3 个待部署虚拟机, 因此部署装置将第 i 组内的虚拟机再划分 为 S 个组。假设 S 为 2, 则 : 0057 部署装置如果将虚拟机 A 重新划分为一个组, 记为第一组, 将虚拟机 B 和 C 重新划 分为另一个组, 记为第二组, 则第一组中的虚拟机 A 只与第二组中的虚拟机 B 之间有 100M 的网络部署流量, 因此重新划分的两个组之间的网络部署流量就是 100M。如果将虚拟机 B 重新划分为一个组, 将虚拟机 A 和 C 重新划分为另一个组, 则由于虚拟机 B 与虚拟机 A 之间 有 100M 网络部署流量, 。
35、虚拟机 B 与虚拟机 C 之间有 200M 网络部署流量, 因此重新划分的两 个组之间的网络部署流量为 100M+200M=300M。如果将虚拟机 C 重新划分为一个组, 将虚拟 机 A 和 B 重新划分为另一个组, 则由于虚拟机 B 与虚拟机 C 之间有 200M 的网络部署流量, 因此重新划分的两个组之间的网络部署流量为 200M。可见, 重新划分的两个组之间所需的 说 明 书 CN 103902353 A 8 6/10 页 9 网络流量最小的划分方式是第一种划分方式, 第一种划分方式可使重新划分的组之间的网 络部署流量为最小的100M, 因此, 采用第一种划分方式重新对该第i组内的虚拟机。
36、AC分 组, 并在重新分组后, 按照将同一个组内的虚拟机部署在同一个物理机上的方式, 将重新分 组后的虚拟机部署在 T 个物理机上。 0058 另外, 部署装置将 M 个待部署虚拟机分为 N 个组后, 针对该 N 个组中的第 i 组, 当 不存在满足指定条件的物理机 (即, 所有的物理机剩余的资源均小于该第 i 组内所有虚拟 机所需的资源的和值) , 且该第 i 组只有 1 个待部署虚拟机时, 则可选择 N 个组中除第 i 组 之外任意一个组中的一个已部署的虚拟机, 如果将选择的该已部署的虚拟机替换为该第 i 组内的虚拟机后, 所述 K 个物理机之间的网络部署流量之和与替换前所述 K 个物理机。
37、之间 的网络部署流量之和的差值小于设定阈值, 且替换后所述 K 个物理机上部署的虚拟机的收 益参数值之和大于替换前所述 K 个物理机上部署的虚拟机的收益参数值之和时, 采用该第 i 组内的虚拟机替换选择的该已部署的虚拟机。 0059 例如, 假设用户要申请 5 个虚拟机, 分别为虚拟机 A E, 也即, 虚拟机 A E 即为 5 个待部署虚拟机, 用户设定虚拟机 A 与虚拟机 B 之间的网络部署流量为 100M、 虚拟机 B 与 虚拟机 C 之间的网络部署流量为 200M、 虚拟机 A 与虚拟机 C 之间的网络部署流量为 100M、 虚拟机D与虚拟机E之间的网络部署流量为100M。 用户将上述。
38、虚拟机的数量以及各虚拟机 之间的网络部署流量携带在申请请求中发送给云平台, 云平台中的部署装置则获取这 5 个 待部署虚拟机中每两个虚拟机之间的网络部署流量。 0060 部署装置将虚拟机 A C 分为一个组, 记为第一组, 将虚拟机 D 和虚拟机 E 分为另 一个组, 记为第二组。部署装置将第一组内的虚拟机 A C 部署在第一物理机上, 但部署装 置在部署第二组内的虚拟机 D 和 E 时, 发现没有任何物理机的剩余资源不小于该第二组内 的虚拟机 D 和 E 所需的资源的和值, 从而将第二组重新划分为两个组, 将虚拟机 D 重新划分 为一个组, 记为第三组, 将虚拟机 E 重新划分为另一个组, 。
39、记为第四组。 0061 针对第三组, 部署装置确定第二物理机的剩余资源不小于第三组内的虚拟机 D 所 需的资源, 因此将第三组内的虚拟机 D 部署在第二物理机上。 0062 针对第四组, 部署装置发现仍没有任何物理机的剩余资源不小于该第四组内的虚 拟机 E 所需的资源, 因此, 从已部署的虚拟机 A D 中选择一个虚拟机。根据当前已部署的 各虚拟机 (已部署的虚拟机为虚拟机 A D) 中每两个虚拟机之间的网络部署流量, 可确定 当前第一物理机和第二物理机之间的网络部署流量之和为 0, 。 0063 假设设定阈值为 20M, 当选择的已部署的虚拟机是虚拟机 A 时, 则部署装置如果将 已部署在第。
40、一物理机上的虚拟机 A 替换为第四组中的虚拟机 E (即, 将虚拟机 A 迁出第一物 理机, 将虚拟机 E 部署在第一物理机上) , 则由于虚拟机 E 与虚拟机 D 之间的网络部署流量 为 100M, 因此替换后第一物理机与第二物理机的网络部署流量之和为 100M, 而替换前的第 一物理机与第二物理机之间的网络部署流量之和为 0, 因此替换后各物理机之间所需的网 络流量之和 100M 减 0 不小于设定阈值 20M, 从而不将部署在第一物理机上的虚拟机 A 替换 为第四组的虚拟机 E。类似的, 也不将部署在第一物理机上的虚拟机 B、 C 替换为第四组的 虚拟机 E。 0064 当选择的已部署的。
41、虚拟机是虚拟机 D 时, 则部署装置如果将已部署在第二物理机 上的虚拟机 D 替换为第四组中的虚拟机 E, 则替换后第一物理机与第二物理机之间的网络 说 明 书 CN 103902353 A 9 7/10 页 10 部署流量之和仍为 0, 因此替换后各物理机之间的网络部署流量之和 0 减替换前各物理机 之间的网络部署流量之和0的差值小于设定阈值20M, 假设虚拟机E的收益参数值大于虚拟 机 D 的收益参数值, 则部署装置将已部署在第二物理机上的虚拟机 D 替换为第四组中的虚 拟机 E, 即, 将虚拟机 D 迁出第二物理机, 将虚拟机 E 部署在第二物理机上。 0065 后续的, 对于被替换出来。
42、的虚拟机, 部署装置则可针对该被替换出来的虚拟机查 找满足指定条件的物理机, 若查找到, 则将该被替换出来的虚拟机部署在查找到的物理机 上, 若未查找到, 则该被替换出来的虚拟机部署失败, 可向用户返回该虚拟机的部署失败消 息。 0066 以上为本发明实施例提供的虚拟机的部署方法, 基于同样的发明思路, 本发明实 施例还提供了相应的虚拟机部署装置, 如图 2 所示。 0067 图 2 为本申请实施例提供的虚拟机的部署装置结构示意图, 具体包括 : 0068 获取模块 201, 用于获取 M 个待部署虚拟机中每两个虚拟机之间的网络部署流量, M 为大于等于 2 的正整数 ; 0069 划分模块2。
43、02, 用于根据所述获取模块201获取的所述M个待部署虚拟机中每两个 待部署虚拟机之间的网络部署流量, 将所述 M 个待部署虚拟机划分为 N 个组, 使得所述 N 个 组之间的网络部署流量最小, 其中 N 为大于等于 2, 小于等于 M 的正整数 ; 0070 部署模块203, 用于将所述划分模块202划分的所述N个组分别部署在K个物理机 上, 使得同一个组内的待部署虚拟机部署在同一个物理机上, 其中, K 为大于等于 1, 小于等 于 N 的正整数。 0071 所述部署模块 203 具体用于, 将所述划分模块 202 划分的所述 N 个组按照组的单 位资源收益值从大到小的顺序, 先后部署在 。
44、K 个物理机上 ; 其中, 组的单位资源收益值为 : 所述组内所有待部署虚拟机的收益参数值之和, 与所述组内所有待部署虚拟机所需资源对 应的资源参数值之和的比值。 0072 所述部署模块 203 具体用于, 将所述划分模块 202 划分的所述 N 个组部署在满足 指定条件的 K 个物理机上, 其中所述指定条件为用于部署第 i 组的物理机剩余的资源对应 的资源参数值不小于所述第 i 组内所有待部署虚拟机所需资源对应的资源参数值之和, i 为 1 到 N 之间的任意正整数。 0073 当 M 大于 2 时, 所述划分模块 202 还用于, 针对所述 N 个组中的第 i 组, 当不存在 满足指定条件。
45、的物理机, 且所述第 i 组有大于 1 个待部署虚拟机时, 将所述第 i 组内的待部 署虚拟机划分为 S 个组, 其中 S 为大于等于 2, 小于 M-1 的正整数 ; 0074 所述部署模块 203 还用于, 将所述划分模块 202 划分的所述 S 个组分别部署在 T 个物理机上, 使得同一个组内的待部署虚拟机部署在同一个物理机上, 其中, T 为大于等于 1, 小于等于 S 的正整数。 0075 当 M 大于 2 时, 所述部署模块 203 还用于, 针对所述划分模块 202 划分的所述 N 个 组中的第 i 组, 当不存在满足指定条件的物理机, 且所述第 i 组只有 1 个待部署虚拟机时。
46、, 选择所述 N 个组中除所述第 i 组之外一个已部署的虚拟机 ; 如果将所述选择的已部署的虚 拟机替换为所述第 i 组内的虚拟机后, 所述 K 个物理机之间的网络部署流量之和与替换前 所述 K 个物理机之间的网络部署流量之和的差值小于设定阈值, 且替换后所述 K 个物理机 上部署的虚拟机的收益参数值之和大于替换前所述 K 个物理机上部署的虚拟机的收益参 说 明 书 CN 103902353 A 10 8/10 页 11 数值之和时, 用所述第 i 组内的虚拟机替换所述选择的已部署的虚拟机。 0076 图 3 为本发明实施例提供的虚拟机的部署装置硬件结构示意图, 具体包括 : 0077 处理器。
47、 301、 存储器 302、 通信接口 303 和总线 304。处理器 301、 存储器 302、 通信 接口 303 通过总线 304 相互连接。 0078 总线 304 可以用于在两个设备、 器件之间传输数据或信号。例如, 总线具体可以包 括地址总线、 数据总线、 控制总线等, 为便于表示, 图 3 中仅用一条粗线表示, 但并不表示仅 有一根总线或一种类型的总线。 0079 通信接口 303, 用于获取 M 个待部署虚拟机中每两个虚拟机之间的网络部署流量, M 为大于等于 2 的正整数。 0080 存储器 302, 用于存放程序。具体地, 程序可以包括程序代码, 所述程序代码包 括用于实现。
48、上述实施例提供的方法的计算机操作指令。存储器 302 可能包含高速随机 存取存储器 (random access memory, 简称 RAM)存储器, 也可能还包括非易失性存储器 (non-volatile memory) , 例如至少一个磁盘存储器。 0081 处理器301执行存储器302所存放的程序, 用于实现本发明实施例提供的方法, 包 括 : 0082 通过通信接口 303 获取 M 个待部署虚拟机中每两个虚拟机之间的网络部署流量, M 为大于等于 2 的正整数 ; 0083 根据所述 M 个待部署虚拟机中每两个待部署虚拟机之间的网络部署流量, 将所述 M 个待部署虚拟机划分为 N 。
49、个组, 使得所述 N 个组之间的网络部署流量最小, 其中 N 为大于 等于 2, 小于等于 M 的的正整数 ; 0084 将所述 N 个组分别部署在 K 个物理机上, 使得同一个组内的待部署虚拟机部署在 同一个物理机上, 其中, K 为大于等于 1, 小于等于 N 的正整数。 0085 本发明实施例提供的虚拟机的部署装置可以是各种形态的装置, 如集成在一块芯 片上或通过硬件电路搭建实现等。 0086 本发明实施例还提供一种存储介质, 该存储介质中存储计算机程序, 该计算机程 序用于实现本发明实施例提供的虚拟机的部署方法, 例如, 所述虚拟机的部署方法包括 : 0087 获取 M 个待部署虚拟机中每两个虚拟机之间的网络部署流量, M 为大于等于 2 的 正整数 ; 0088 根据所述 M 个待部署虚拟机中每两个待部署虚拟机之间的网络部署流量, 将所述 M 个。