如何使用xenserver自动执行VM迁移?

时间:2014-03-26 15:14:59

标签: migration virtual-machine xen temperature

我现在正在尝试编写一个程序,可以根据当前的CPU温度自动,在同一个数据中心内从一台主机执行 VM迁移。 (基本上从较热的机器到较冷的机器)。

我现在正在使用 Xenserver ,我可以轻松地在其上执行VM迁移(在控制器计算机上使用XenCenter)。

我已经提出了根据温度和资源利用率来选择源和目标机器的算法。

然而,当谈到写一个真正的程序时,我不知道从哪里开始。如果有人能给我一些指导和帮助,我将非常感谢你的帮助。

该计划基本上由两部分组成:一部分用于中心控制,安装在管理主机上。还有一个用于来宾主机(本地控制)。哪个应该在来宾主机的dom0上运行。

本地控制部分用于收集本地主机及其上运行的所有VM的CPU温度和资源利用率信息。收集的信息将根据要求发送到中心控制部分。

中心控制部分将每隔5分钟检查一次所有来宾主机的状态(通过发送请求获取最新的本地信息)。如果任何客户机过热,控制机器将选择目标主机并将一些VM从过热主机迁移到目标主机。

  1. 我可以使用Xenserver / Xencenter软件的现有功能以及如何使用?

  2. 哪种编程语言最适合此任务?我知道C,C ++,Java,但可以快速学习其他人。

  3. 非常感谢您的时间!

1 个答案:

答案 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"})