我现在正在尝试编写一个程序,可以根据当前的CPU温度自动,在同一个数据中心内从一台主机执行 VM迁移。 (基本上从较热的机器到较冷的机器)。
我现在正在使用 Xenserver ,我可以轻松地在其上执行VM迁移(在控制器计算机上使用XenCenter)。
我已经提出了根据温度和资源利用率来选择源和目标机器的算法。
然而,当谈到写一个真正的程序时,我不知道从哪里开始。如果有人能给我一些指导和帮助,我将非常感谢你的帮助。
该计划基本上由两部分组成:一部分用于中心控制,安装在管理主机上。还有一个用于来宾主机(本地控制)。哪个应该在来宾主机的dom0上运行。
本地控制部分用于收集本地主机及其上运行的所有VM的CPU温度和资源利用率信息。收集的信息将根据要求发送到中心控制部分。
中心控制部分将每隔5分钟检查一次所有来宾主机的状态(通过发送请求获取最新的本地信息)。如果任何客户机过热,控制机器将选择目标主机并将一些VM从过热主机迁移到目标主机。
我可以使用Xenserver / Xencenter软件的现有功能以及如何使用?
哪种编程语言最适合此任务?我知道C,C ++,Java,但可以快速学习其他人。
非常感谢您的时间!
答案 0 :(得分:2)
我使用过Python
但Java API也很好用。
首先看看他们为程序员公开的XenServer Management API。
接下来下载库XenAPI.py以连接xenserver。
现在要迁移VM,您需要以下参数vm_reference
& destination_host_reference
。
vm_reference = XenAPI.VM.get_by_uuid(vm_uuid)
destination_host_reference = XenAPI.host.get_by_uuid(destination_host_uuid)
现在迁移VM:
XenAPI.VM.pool_migrate(vm_reference , destination_host_reference , {"live": "true"})