我有以下两个方案:
方案一
① 获取每个节点上使用中的 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 实现功能的(虽然现在只写了一部分
另,求推荐算法入门书籍
1
lucifer4he 2015-11-20 10:57:19 +08:00 1
你去看看一致性哈希。
可以用那个来分配 |
2
lucifer4he 2015-11-20 11:00:35 +08:00
当我没说过,除非不考虑节点挂掉
|
3
dahuaer OP @lucifer4he 谢谢,当前情况下可以不考虑节点挂掉,因为一旦节点挂掉,测试就算失败了 T_T 。我去学习下一致性哈希算法~
|