我有以下两个方案:
方案一
① 获取每个节点上使用中的 vm 数,得到节点上使用 vm 最少的节点上, vm 的数值 a
② 计算出每个节点上使用中 vm 数和 a 的差值 b ,并从每个节点上取出 b 台 vm ,存入列表 vmList 中
③ 将 vmList 中的 vm 先 Live migration 到 vm 数最小的节点上,然后 lm 到第二少的节点上,以此类推
方案二
① 根据 n ,计算出每个节点上应有的 vm 数 c,d ( c 和 d 有可能相等)
② 计算出每个节点上使用中 vm 数和 a
③ 如果 a 等于 c or d ,则不对当前节点进行调整;若不等于 c 或者 d ,则计算 a 和 c or d 的差值,结果>0 的话,向其他节点迁移 vm 。结果<0 ,则计算其他节点
好吧,其实我现在的思路也挺混乱的。希望有大神解惑。 PS :我是用的 PowerShell 实现功能的(虽然现在只写了一部分
另,求推荐算法入门书籍
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.