V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dahuaer
V2EX  ›  程序员

关于各个节点上手动平均分配 VM 的问题

  •  
  •   dahuaer · 2015-11-19 18:27:39 +08:00 · 1933 次点击
    这是一个创建于 3085 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • ESXi 环境下有 10 个节点,共有 2000 台 vm
    • 每次共使用 n 台的 vm ,其他 vm 保持关机状态
      我需要把这 n 台 vm 平均分配到 10 个节点上,保证每个节点上被使用的 vm 数持平(±1vm )

    我有以下两个方案:
    方案一

    ① 获取每个节点上使用中的 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 实现功能的(虽然现在只写了一部分
    另,求推荐算法入门书籍

    lucifer4he
        1
    lucifer4he  
       2015-11-20 10:57:19 +08:00   ❤️ 1
    你去看看一致性哈希。
    可以用那个来分配
    lucifer4he
        2
    lucifer4he  
       2015-11-20 11:00:35 +08:00
    当我没说过,除非不考虑节点挂掉
    dahuaer
        3
    dahuaer  
    OP
       2015-11-20 11:10:52 +08:00
    @lucifer4he 谢谢,当前情况下可以不考虑节点挂掉,因为一旦节点挂掉,测试就算失败了 T_T 。我去学习下一致性哈希算法~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1450 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 16:52 · PVG 00:52 · LAX 09:52 · JFK 12:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.